Changeset 61366 in webkit
- Timestamp:
- Jun 17, 2010, 7:01:00 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 16 added
- 10 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/preloader (added)
-
LayoutTests/fast/preloader/image-expected.txt (added)
-
LayoutTests/fast/preloader/image.html (added)
-
LayoutTests/fast/preloader/link-expected.txt (added)
-
LayoutTests/fast/preloader/link.html (added)
-
LayoutTests/fast/preloader/resources (added)
-
LayoutTests/fast/preloader/resources/image1.png (added)
-
LayoutTests/fast/preloader/resources/link1.css (added)
-
LayoutTests/fast/preloader/resources/script1.js (added)
-
LayoutTests/fast/preloader/resources/style1.css (added)
-
LayoutTests/fast/preloader/script-expected.txt (added)
-
LayoutTests/fast/preloader/script.html (added)
-
LayoutTests/fast/preloader/style-expected.txt (added)
-
LayoutTests/fast/preloader/style.html (added)
-
WebCore/Android.mk (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/GNUmakefile.am (modified) (1 diff)
-
WebCore/WebCore.gypi (modified) (1 diff)
-
WebCore/WebCore.pro (modified) (1 diff)
-
WebCore/WebCore.vcproj/WebCore.vcproj (modified) (1 diff)
-
WebCore/WebCore.xcodeproj/project.pbxproj (modified) (5 diffs)
-
WebCore/html/CSSPreloadScanner.cpp (added)
-
WebCore/html/CSSPreloadScanner.h (added)
-
WebCore/html/HTML5PreloadScanner.cpp (modified) (3 diffs)
-
WebCore/html/HTML5PreloadScanner.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r61356 r61366 1 2010-06-17 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 Add CSS scanning to HTML5PreloadScanner 6 https://bugs.webkit.org/show_bug.cgi?id=40802 7 8 Add a testing framework for the preload scanner. These test cover 9 basic preloader behavior. They have a small hack to work around a bug 10 in the preload scanner discovered while writing the tests. I'll fix 11 the bug and remove the hack in a followup patch. 12 13 * fast/preloader/image-expected.txt: Added. 14 * fast/preloader/image.html: Added. 15 * fast/preloader/link-expected.txt: Added. 16 * fast/preloader/link.html: Added. 17 * fast/preloader/resources/image1.png: Added. 18 * fast/preloader/resources/link1.css: Added. 19 * fast/preloader/resources/script1.js: Added. 20 * fast/preloader/resources/style1.css: Added. 21 * fast/preloader/script-expected.txt: Added. 22 * fast/preloader/script.html: Added. 23 * fast/preloader/style-expected.txt: Added. 24 * fast/preloader/style.html: Added. 25 1 26 2010-06-17 Dimitri Glazkov <dglazkov@chromium.org> 2 27 -
trunk/WebCore/Android.mk
r61255 r61366 245 245 html/Blob.cpp \ 246 246 html/CollectionCache.cpp \ 247 html/CSSPreloadScanner.cpp \ 247 248 html/DOMFormData.cpp \ 248 249 html/File.cpp \ -
trunk/WebCore/ChangeLog
r61365 r61366 1 2010-06-17 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 Add CSS scanning to HTML5PreloadScanner 6 https://bugs.webkit.org/show_bug.cgi?id=40802 7 8 This patch just cribs the CSS preload scanning algorithm from the old 9 preload scanner. We also invented a way of testing the preload 10 scanner. 11 12 Tests: fast/preloader/image.html 13 fast/preloader/link.html 14 fast/preloader/script.html 15 fast/preloader/style.html 16 17 * Android.mk: 18 * GNUmakefile.am: 19 * WebCore.gypi: 20 * WebCore.pro: 21 * WebCore.vcproj/WebCore.vcproj: 22 * WebCore.xcodeproj/project.pbxproj: 23 * html/CSSPreloadScanner.cpp: Added. 24 (WebCore::isWhitespace): 25 (WebCore::CSSPreloadScanner::CSSPreloadScanner): 26 (WebCore::CSSPreloadScanner::reset): 27 (WebCore::CSSPreloadScanner::scan): 28 (WebCore::CSSPreloadScanner::tokenize): 29 (WebCore::CSSPreloadScanner::emitRule): 30 * html/CSSPreloadScanner.h: Added. 31 (WebCore::CSSPreloadScanner::): 32 * html/HTML5PreloadScanner.cpp: 33 (WebCore::HTML5PreloadScanner::HTML5PreloadScanner): 34 (WebCore::HTML5PreloadScanner::processToken): 35 (WebCore::HTML5PreloadScanner::scanningBody): 36 * html/HTML5PreloadScanner.h: 37 1 38 2010-06-17 Abhishek Arya <inferno@chromium.org> 2 39 -
trunk/WebCore/GNUmakefile.am
r61255 r61366 1055 1055 WebCore/html/CollectionCache.h \ 1056 1056 WebCore/html/CollectionType.h \ 1057 WebCore/html/CSSPreloadScanner.cpp \ 1058 WebCore/html/CSSPreloadScanner.h \ 1057 1059 WebCore/html/DataGridColumn.cpp \ 1058 1060 WebCore/html/DataGridColumn.h \ -
trunk/WebCore/WebCore.gypi
r61255 r61366 1440 1440 'html/CollectionCache.h', 1441 1441 'html/CollectionType.h', 1442 'html/CSSPreloadScanner.cpp', 1443 'html/CSSPreloadScanner.h', 1442 1444 'html/DataGridColumn.cpp', 1443 1445 'html/DataGridColumn.h', -
trunk/WebCore/WebCore.pro
r61319 r61366 599 599 html/canvas/CanvasStyle.cpp \ 600 600 html/CollectionCache.cpp \ 601 html/CSSPreloadScanner.cpp \ 601 602 html/DataGridColumn.cpp \ 602 603 html/DataGridColumnList.cpp \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r61255 r61366 33209 33209 > 33210 33210 </File> 33211 <File 33212 RelativePath="..\html\CSSPreloadScanner.cpp" 33213 > 33214 </File> 33215 <File 33216 RelativePath="..\html\CSSPreloadScanner.h" 33217 > 33218 </File> 33211 33219 <File 33212 33220 RelativePath="..\html\DataGridColumn.cpp" -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r61269 r61366 2541 2541 973E325610883B7C005BC493 /* ResourceLoadNotifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 973E325410883B7C005BC493 /* ResourceLoadNotifier.cpp */; }; 2542 2542 973E325710883B7C005BC493 /* ResourceLoadNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 973E325510883B7C005BC493 /* ResourceLoadNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2543 976E2BA711CAE4DE006C56A0 /* CSSPreloadScanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 976E2BA511CAE4DE006C56A0 /* CSSPreloadScanner.cpp */; }; 2544 976E2BA811CAE4DE006C56A0 /* CSSPreloadScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 976E2BA611CAE4DE006C56A0 /* CSSPreloadScanner.h */; }; 2543 2545 976E896011C0CA3A00EA9CA9 /* HTML5EntityParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 976E895E11C0CA3A00EA9CA9 /* HTML5EntityParser.cpp */; }; 2544 2546 976E896111C0CA3A00EA9CA9 /* HTML5EntityParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 976E895F11C0CA3A00EA9CA9 /* HTML5EntityParser.h */; }; … … 8121 8123 973E325410883B7C005BC493 /* ResourceLoadNotifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceLoadNotifier.cpp; sourceTree = "<group>"; }; 8122 8124 973E325510883B7C005BC493 /* ResourceLoadNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadNotifier.h; sourceTree = "<group>"; }; 8125 976E2BA511CAE4DE006C56A0 /* CSSPreloadScanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSPreloadScanner.cpp; sourceTree = "<group>"; }; 8126 976E2BA611CAE4DE006C56A0 /* CSSPreloadScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSPreloadScanner.h; sourceTree = "<group>"; }; 8123 8127 976E895E11C0CA3A00EA9CA9 /* HTML5EntityParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTML5EntityParser.cpp; sourceTree = "<group>"; }; 8124 8128 976E895F11C0CA3A00EA9CA9 /* HTML5EntityParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTML5EntityParser.h; sourceTree = "<group>"; }; … … 13400 13404 2ED609BB1145B07100C8684E /* DOMFormData.h */, 13401 13405 2E0888C3114883A900AF4265 /* DOMFormData.idl */, 13406 976E2BA511CAE4DE006C56A0 /* CSSPreloadScanner.cpp */, 13407 976E2BA611CAE4DE006C56A0 /* CSSPreloadScanner.h */, 13402 13408 BCDBB8CC0E08958400C60FF6 /* File.cpp */, 13403 13409 BCDBB8CB0E08958400C60FF6 /* File.h */, … … 19426 19432 0853D73411C9109000B2FD42 /* SVGTextQuery.h in Headers */, 19427 19433 49FFBF3F11C93EE3006A7118 /* WebGLLayer.h in Headers */, 19434 976E2BA811CAE4DE006C56A0 /* CSSPreloadScanner.h in Headers */, 19428 19435 ); 19429 19436 runOnlyForDeploymentPostprocessing = 0; … … 21733 21740 0853D73311C9109000B2FD42 /* SVGTextQuery.cpp in Sources */, 21734 21741 49FFBF4011C93EE3006A7118 /* WebGLLayer.mm in Sources */, 21742 976E2BA711CAE4DE006C56A0 /* CSSPreloadScanner.cpp in Sources */, 21735 21743 ); 21736 21744 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/html/HTML5PreloadScanner.cpp
r61163 r61366 120 120 HTML5PreloadScanner::HTML5PreloadScanner(Document* document) 121 121 : m_document(document) 122 , m_cssScanner(document) 122 123 , m_bodySeen(false) 124 , m_inStyle(false) 123 125 { 124 126 } … … 141 143 void HTML5PreloadScanner::processToken() 142 144 { 145 if (m_inStyle) { 146 if (m_token.type() == HTML5Token::Character) 147 m_cssScanner.scan(m_token, scanningBody()); 148 else if (m_token.type() == HTML5Token::EndTag) { 149 m_inStyle = false; 150 m_cssScanner.reset(); 151 } 152 } 153 143 154 if (m_token.type() != HTML5Token::StartTag) 144 155 return; … … 150 161 m_bodySeen = true; 151 162 152 task.preload(m_document, m_document->body() || m_bodySeen); 163 if (task.tagName() == styleTag) 164 m_inStyle = true; 165 166 task.preload(m_document, scanningBody()); 167 } 168 169 bool HTML5PreloadScanner::scanningBody() const 170 { 171 return m_document->body() || m_bodySeen; 153 172 } 154 173 -
trunk/WebCore/html/HTML5PreloadScanner.h
r61163 r61366 28 28 #define HTML5PreloadScanner_h 29 29 30 #include "CSSPreloadScanner.h" 30 31 #include "HTML5Lexer.h" 31 32 #include "HTML5Token.h" … … 48 49 private: 49 50 void processToken(); 51 bool scanningBody() const; 50 52 51 53 Document* m_document; … … 53 55 HTML5Lexer m_lexer; 54 56 HTML5Token m_token; 57 CSSPreloadScanner m_cssScanner; 55 58 bool m_bodySeen; 59 bool m_inStyle; 56 60 }; 57 61
Note:
See TracChangeset
for help on using the changeset viewer.