Changeset 61163 in webkit
- Timestamp:
- Jun 14, 2010 5:07:14 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/Android.mk
r61120 r61163 252 252 html/HTML5Lexer.cpp \ 253 253 html/HTML5DocumentParser.cpp \ 254 html/HTML5PreloadScanner.cpp \ 255 html/HTML5ScriptRunner.cpp \ 254 256 html/HTML5TreeBuilder.cpp \ 255 html/HTML5ScriptRunner.cpp \256 257 html/HTMLAllCollection.cpp \ 257 258 html/HTMLCollection.cpp \ -
trunk/WebCore/CMakeLists.txt
r61149 r61163 905 905 html/HTML5Lexer.cpp 906 906 html/HTML5DocumentParser.cpp 907 html/HTML5PreloadScanner.cpp 908 html/HTML5ScriptRunner.cpp 907 909 html/HTML5TreeBuilder.cpp 908 html/HTML5ScriptRunner.cpp909 910 html/HTMLAllCollection.cpp 910 911 html/HTMLAnchorElement.cpp -
trunk/WebCore/ChangeLog
r61161 r61163 1 2010-06-14 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 Add a preload scanner for the HTML5 parser 6 https://bugs.webkit.org/show_bug.cgi?id=40557 7 8 This patch adds a simple preload scanner for the HTML5 parser. This 9 preload scanner is not as awesome as the old one because it doesn't 10 scan CSS, but it's much simpler. 11 12 * Android.mk: 13 * CMakeLists.txt: 14 * GNUmakefile.am: 15 * WebCore.gypi: 16 * WebCore.pro: 17 * WebCore.vcproj/WebCore.vcproj: 18 * WebCore.xcodeproj/project.pbxproj: 19 - Build file torture. 20 * html/HTML5DocumentParser.cpp: 21 (WebCore::HTML5DocumentParser::write): 22 - Call into the preload scanner when waiting for a script. 23 * html/HTML5DocumentParser.h: 24 * html/HTML5PreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp. 25 (WebCore::HTML5PreloadScanner::HTML5PreloadScanner): 26 (WebCore::HTML5PreloadScanner::scan): 27 - A simple loop to pump the preload scanner's lexer. 28 (WebCore::HTML5PreloadScanner::processToken): 29 - Preload interesting resources. Stolen from the old preload 30 scanner. 31 (WebCore::HTML5PreloadScanner::scanningBody): 32 * html/HTML5PreloadScanner.h: Copied from WebCore/html/PreloadScanner.h. 33 1 34 2010-06-14 Adam Barth <abarth@webkit.org> 2 35 -
trunk/WebCore/GNUmakefile.am
r61149 r61163 1090 1090 WebCore/html/HTML5DocumentParser.cpp \ 1091 1091 WebCore/html/HTML5DocumentParser.h \ 1092 WebCore/html/HTML5 TreeBuilder.cpp \1093 WebCore/html/HTML5 TreeBuilder.h \1092 WebCore/html/HTML5PreloadScanner.cpp \ 1093 WebCore/html/HTML5PreloadScanner.h \ 1094 1094 WebCore/html/HTML5ScriptRunner.cpp \ 1095 1095 WebCore/html/HTML5ScriptRunner.h \ 1096 1096 WebCore/html/HTML5ScriptRunnerHost.h \ 1097 WebCore/html/HTML5TreeBuilder.cpp \ 1098 WebCore/html/HTML5TreeBuilder.h \ 1097 1099 WebCore/html/HTMLAllCollection.cpp \ 1098 1100 WebCore/html/HTMLAllCollection.h \ -
trunk/WebCore/WebCore.gypi
r61149 r61163 1473 1473 'html/HTML5DocumentParser.cpp', 1474 1474 'html/HTML5DocumentParser.h', 1475 'html/HTML5PreloadScanner.cpp', 1476 'html/HTML5PreloadScanner.h', 1477 'html/HTML5ScriptRunner.cpp', 1478 'html/HTML5ScriptRunner.h', 1475 1479 'html/HTML5TreeBuilder.cpp', 1476 1480 'html/HTML5TreeBuilder.h', 1477 'html/HTML5ScriptRunner.cpp',1478 'html/HTML5ScriptRunner.h',1479 1481 'html/HTMLAllCollection.cpp', 1480 1482 'html/HTMLAllCollection.h', -
trunk/WebCore/WebCore.pro
r61149 r61163 614 614 html/HTML5Lexer.cpp \ 615 615 html/HTML5DocumentParser.cpp \ 616 html/HTML5PreloadScanner.cpp \ 617 html/HTML5ScriptRunner.cpp \ 616 618 html/HTML5TreeBuilder.cpp \ 617 html/HTML5ScriptRunner.cpp \618 619 html/HTMLAllCollection.cpp \ 619 620 html/HTMLAnchorElement.cpp \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r61149 r61163 33334 33334 </File> 33335 33335 <File 33336 RelativePath="..\html\HTML5PreloadScanner.cpp" 33337 > 33338 </File> 33339 <File 33340 RelativePath="..\html\HTML5PreloadScanner.h" 33341 > 33342 </File> 33343 <File 33336 33344 RelativePath="..\html\HTML5ScriptRunner.cpp" 33337 33345 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r61158 r61163 2547 2547 97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97DD4D840FDF4D6D00ECF9A4 /* XSSAuditor.cpp */; }; 2548 2548 97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 97DD4D850FDF4D6E00ECF9A4 /* XSSAuditor.h */; }; 2549 97E7936511C6030900E649BC /* HTML5PreloadScanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97E7936311C6030900E649BC /* HTML5PreloadScanner.cpp */; }; 2550 97E7936611C6030900E649BC /* HTML5PreloadScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E7936411C6030900E649BC /* HTML5PreloadScanner.h */; }; 2549 2551 97E8B35611A23CE200169409 /* HTML5Lexer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97E8B35411A23CE200169409 /* HTML5Lexer.cpp */; }; 2550 2552 97E8B35711A23CE200169409 /* HTML5Lexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E8B35511A23CE200169409 /* HTML5Lexer.h */; }; … … 8122 8124 97DD4D840FDF4D6D00ECF9A4 /* XSSAuditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XSSAuditor.cpp; sourceTree = "<group>"; }; 8123 8125 97DD4D850FDF4D6E00ECF9A4 /* XSSAuditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XSSAuditor.h; sourceTree = "<group>"; }; 8126 97E7936311C6030900E649BC /* HTML5PreloadScanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTML5PreloadScanner.cpp; sourceTree = "<group>"; }; 8127 97E7936411C6030900E649BC /* HTML5PreloadScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTML5PreloadScanner.h; sourceTree = "<group>"; }; 8124 8128 97E8B35411A23CE200169409 /* HTML5Lexer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTML5Lexer.cpp; sourceTree = "<group>"; }; 8125 8129 97E8B35511A23CE200169409 /* HTML5Lexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTML5Lexer.h; sourceTree = "<group>"; }; … … 13415 13419 97E8B35411A23CE200169409 /* HTML5Lexer.cpp */, 13416 13420 97E8B35511A23CE200169409 /* HTML5Lexer.h */, 13421 97E7936311C6030900E649BC /* HTML5PreloadScanner.cpp */, 13422 97E7936411C6030900E649BC /* HTML5PreloadScanner.h */, 13417 13423 A83B3AEE11ADEFF500458809 /* HTML5ScriptRunner.cpp */, 13418 13424 A83B3AEF11ADEFF500458809 /* HTML5ScriptRunner.h */, … … 19399 19405 97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */, 19400 19406 CE172E011136E8CE0062A533 /* ZoomMode.h in Headers */, 19407 97E7936611C6030900E649BC /* HTML5PreloadScanner.h in Headers */, 19401 19408 B6693EEC11AD63E6003F2770 /* IDBObjectStore.h in Headers */, 19402 19409 B6693EEE11AD63E6003F2770 /* IDBObjectStoreRequest.h in Headers */, … … 21700 21707 E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */, 21701 21708 97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */, 21709 97E7936511C6030900E649BC /* HTML5PreloadScanner.cpp in Sources */, 21702 21710 BC275B7911C5D1C300C9206C /* JSWebKitPointCustom.cpp in Sources */, 21703 21711 BC275B7D11C5D23500C9206C /* JSWebKitCSSMatrixCustom.cpp in Sources */, -
trunk/WebCore/html/HTML5DocumentParser.cpp
r61107 r61163 30 30 #include "Frame.h" 31 31 #include "HTML5Lexer.h" 32 #include "HTML5PreloadScanner.h" 32 33 #include "HTML5ScriptRunner.h" 33 34 #include "HTML5TreeBuilder.h" … … 124 125 m_treeConstructor->setPaused(!shouldContinueParsing); 125 126 if (!shouldContinueParsing) 126 return; 127 break; 128 } 129 130 if (isWaitingForScripts()) { 131 ASSERT(m_lexer->state() == HTML5Lexer::DataState); 132 if (!m_preloadScanner) { 133 m_preloadScanner.set(new HTML5PreloadScanner(m_document)); 134 m_preloadScanner->appendToEnd(m_input.current()); 135 } 136 m_preloadScanner->scan(); 127 137 } 128 138 … … 158 168 if (appendData) { 159 169 m_input.appendToEnd(source); 170 if (m_preloadScanner) 171 m_preloadScanner->appendToEnd(source); 172 160 173 if (m_writeNestingLevel > 1) { 161 174 // We've gotten data off the network in a nested call to write(). … … 236 249 ASSERT(!m_scriptRunner->inScriptExecution()); 237 250 ASSERT(!m_treeConstructor->isPaused()); 251 238 252 pumpLexerIfPossible(); 239 253 -
trunk/WebCore/html/HTML5DocumentParser.h
r61107 r61163 41 41 class HTML5ScriptRunner; 42 42 class HTML5TreeBuilder; 43 class HTML5PreloadScanner; 43 44 class ScriptController; 44 45 class ScriptSourceCode; … … 184 185 OwnPtr<HTML5ScriptRunner> m_scriptRunner; 185 186 OwnPtr<HTML5TreeBuilder> m_treeConstructor; 187 OwnPtr<HTML5PreloadScanner> m_preloadScanner; 186 188 bool m_endWasDelayed; 187 189 int m_writeNestingLevel;
Note: See TracChangeset
for help on using the changeset viewer.