Example #1
0
// For special android files
void WebUrlLoaderClient::didReceiveAndroidFileData(PassOwnPtr<std::vector<char> > vector)
{
    if (!isActive() || !vector->size())
        return;

    // didReceiveData will take a copy of the data
    m_resourceHandle->client()->didReceiveData(m_resourceHandle.get(), vector->begin(), vector->size(), vector->size());
}
Example #2
0
void HTMLDocumentParser::processTokensFromBackgroundParser(PassOwnPtr<CompactHTMLTokenStream> tokens)
{
    ASSERT(shouldUseThreading());

    // didReceiveTokensFromBackgroundParser can cause this parser to be detached from the Document,
    // but we need to ensure it isn't deleted yet.
    RefPtr<HTMLDocumentParser> protect(this);

    // FIXME: Add support for InspectorInstrumentation.

    for (Vector<CompactHTMLToken>::const_iterator it = tokens->begin(); it != tokens->end(); ++it) {
        ASSERT(!isWaitingForScripts());

        // FIXME: Call m_xssAuditor.filterToken(*it).
        m_textPosition = it->textPosition();
        constructTreeFromCompactHTMLToken(*it);

        if (isStopped())
            return;

        // FIXME: We'll probably need to check document()->frame()->navigationScheduler()->locationChangePending())
        // as we do in canTakeNextToken;

        if (isWaitingForScripts()) {
            ASSERT(it + 1 == tokens->end()); // The </script> is assumed to be the last token of this bunch.
            runScriptsForPausedTreeBuilder();
            return;
        }

        if (it->type() == HTMLTokenTypes::EndOfFile) {
            ASSERT(it + 1 == tokens->end()); // The EOF is assumed to be the last token of this bunch.
            prepareToStopParsing();
            return;
        }
    }
}