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

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

Issue 7163001: Merge 88411 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/782/
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 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 // before running scripts. 428 // before running scripts.
429 m_isPaused = false; 429 m_isPaused = false;
430 scriptStartPosition = m_scriptToProcessStartPosition; 430 scriptStartPosition = m_scriptToProcessStartPosition;
431 m_scriptToProcessStartPosition = uninitializedPositionValue1(); 431 m_scriptToProcessStartPosition = uninitializedPositionValue1();
432 return m_scriptToProcess.release(); 432 return m_scriptToProcess.release();
433 } 433 }
434 434
435 void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken) 435 void HTMLTreeBuilder::constructTreeFromToken(HTMLToken& rawToken)
436 { 436 {
437 AtomicHTMLToken token(rawToken); 437 AtomicHTMLToken token(rawToken);
438
439 // We clear the rawToken in case constructTreeFromAtomicToken
440 // synchronously re-enters the parser. We don't clear the token immedately
441 // for Character tokens because the AtomicHTMLToken avoids copying the
442 // characters by keeping a pointer to the underlying buffer in the
443 // HTMLToken. Fortuantely, Character tokens can't cause use to re-enter
444 // the parser.
445 //
446 // FIXME: Top clearing the rawToken once we start running the parser off
447 // the main thread or once we stop allowing synchronous JavaScript
448 // execution from parseMappedAttribute.
449 if (rawToken.type() != HTMLToken::Character)
450 rawToken.clear();
451
438 constructTreeFromAtomicToken(token); 452 constructTreeFromAtomicToken(token);
453
454 if (!rawToken.isUninitialized()) {
455 ASSERT(rawToken.type() == HTMLToken::Character);
456 rawToken.clear();
457 }
439 } 458 }
440 459
441 void HTMLTreeBuilder::constructTreeFromAtomicToken(AtomicHTMLToken& token) 460 void HTMLTreeBuilder::constructTreeFromAtomicToken(AtomicHTMLToken& token)
442 { 461 {
443 processToken(token); 462 processToken(token);
444 463
445 // Swallowing U+0000 characters isn't in the HTML5 spec, but turning all 464 // Swallowing U+0000 characters isn't in the HTML5 spec, but turning all
446 // the U+0000 characters into replacement characters has compatibility 465 // the U+0000 characters into replacement characters has compatibility
447 // problems. 466 // problems.
448 m_parser->tokenizer()->setForceNullCharacterReplacement(m_insertionMode == T extMode || m_insertionMode == InForeignContentMode); 467 m_parser->tokenizer()->setForceNullCharacterReplacement(m_insertionMode == T extMode || m_insertionMode == InForeignContentMode);
(...skipping 2366 matching lines...) Expand 10 before | Expand all | Expand 10 after
2815 } 2834 }
2816 2835
2817 bool HTMLTreeBuilder::pluginsEnabled(Frame* frame) 2836 bool HTMLTreeBuilder::pluginsEnabled(Frame* frame)
2818 { 2837 {
2819 if (!frame) 2838 if (!frame)
2820 return false; 2839 return false;
2821 return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiate Plugin); 2840 return frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiate Plugin);
2822 } 2841 }
2823 2842
2824 } 2843 }
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