Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: Source/WebCore/html/parser/HTMLTreeBuilder.cpp

Issue 7155003: Merge 88411 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/742/
Patch Set: Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/WebCore/html/parser/HTMLToken.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google, Inc. All Rights Reserved. 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved.
3 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 // before running scripts. 427 // before running scripts.
428 m_isPaused = false; 428 m_isPaused = false;
429 scriptStartPosition = m_scriptToProcessStartPosition; 429 scriptStartPosition = m_scriptToProcessStartPosition;
430 m_scriptToProcessStartPosition = uninitializedPositionValue1(); 430 m_scriptToProcessStartPosition = uninitializedPositionValue1();
431 return m_scriptToProcess.release(); 431 return m_scriptToProcess.release();
432 } 432 }
433 433
434 void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken) 434 void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken)
435 { 435 {
436 AtomicHTMLToken token(rawToken); 436 AtomicHTMLToken token(rawToken);
437
438 // We clear the rawToken in case constructTreeFromAtomicToken
439 // synchronously re-enters the parser. We don't clear the token immedately
440 // for Character tokens because the AtomicHTMLToken avoids copying the
441 // characters by keeping a pointer to the underlying buffer in the
442 // HTMLToken. Fortuantely, Character tokens can't cause use to re-enter
443 // the parser.
444 //
445 // FIXME: Top clearing the rawToken once we start running the parser off
446 // the main thread or once we stop allowing synchronous JavaScript
447 // execution from parseMappedAttribute.
448 if (rawToken.type() != HTMLToken::Character)
449 rawToken.clear();
450
437 constructTreeFromAtomicToken(token); 451 constructTreeFromAtomicToken(token);
452
453 if (!rawToken.isUninitialized()) {
454 ASSERT(rawToken.type() == HTMLToken::Character);
455 rawToken.clear();
456 }
438 } 457 }
439 458
440 void HTMLTreeBuilder::constructTreeFromAtomicToken(AtomicHTMLToken& token) 459 void HTMLTreeBuilder::constructTreeFromAtomicToken(AtomicHTMLToken& token)
441 { 460 {
442 processToken(token); 461 processToken(token);
443 462
444 // Swallowing U+0000 characters isn't in the HTML5 spec, but turning all 463 // Swallowing U+0000 characters isn't in the HTML5 spec, but turning all
445 // the U+0000 characters into replacement characters has compatibility 464 // the U+0000 characters into replacement characters has compatibility
446 // problems. 465 // problems.
447 m_parser->tokenizer()->setForceNullCharacterReplacement(m_insertionMode == T extMode || m_insertionMode == InForeignContentMode); 466 m_parser->tokenizer()->setForceNullCharacterReplacement(m_insertionMode == T extMode || m_insertionMode == InForeignContentMode);
(...skipping 2366 matching lines...) Expand 10 before | Expand all | Expand 10 after
2814 } 2833 }
2815 2834
2816 bool HTMLTreeBuilder::pluginsEnabled(Frame* frame) 2835 bool HTMLTreeBuilder::pluginsEnabled(Frame* frame)
2817 { 2836 {
2818 if (!frame) 2837 if (!frame)
2819 return false; 2838 return false;
2820 return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiate Plugin); 2839 return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiate Plugin);
2821 } 2840 }
2822 2841
2823 } 2842 }
OLDNEW
« no previous file with comments | « Source/WebCore/html/parser/HTMLToken.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698