Changeset 139950 in webkit
- Timestamp:
- Jan 16, 2013 6:55:35 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r139945 r139950 1527 1527 html/canvas/WebGLVertexArrayObjectOES.cpp 1528 1528 1529 html/parser/BackgroundHTMLParser.cpp 1529 1530 html/parser/CSSPreloadScanner.cpp 1530 1531 html/parser/CompactHTMLToken.cpp -
trunk/Source/WebCore/ChangeLog
r139946 r139950 1 2013-01-16 Adam Barth <abarth@webkit.org> 2 3 Introduce BackgroundHTMLParser for parsing HTML on a background thread 4 https://bugs.webkit.org/show_bug.cgi?id=107083 5 6 Reviewed by Eric Seidel. 7 8 This patch contains a basic version of an HTML parser that runs on a 9 background thread. The parser passes the majority of the tests in 10 fast/parser and a large number of the subtests in html5lib. 11 12 Notably absent from this early version of the parser is speculation 13 (which will eventually replace preload scanning) and atomization (which 14 we suspect will be important for performance). Our plan is to introduce 15 those elements in subsequent patches. 16 17 * CMakeLists.txt: 18 * GNUmakefile.list.am: 19 * Target.pri: 20 * WebCore.gypi: 21 * WebCore.vcproj/WebCore.vcproj: 22 * WebCore.xcodeproj/project.pbxproj: 23 * html/parser/BackgroundHTMLParser.cpp: Added. 24 (WebCore): 25 (WebCore::checkThatTokensAreSafeToSendToAnotherThread): 26 (WebCore::parserMap): 27 (WebCore::ParserMap::backgroundParsers): 28 (WebCore::ParserMap::mainThreadParsers): 29 (WebCore::BackgroundHTMLParser::BackgroundHTMLParser): 30 (WebCore::BackgroundHTMLParser::append): 31 (WebCore::BackgroundHTMLParser::continueParsing): 32 (WebCore::BackgroundHTMLParser::finish): 33 (WebCore::BackgroundHTMLParser::pumpTokenizer): 34 (TokenDelivery): 35 (WebCore::TokenDelivery::execute): 36 (WebCore::BackgroundHTMLParser::sendTokensToMainThread): 37 (WebCore::BackgroundHTMLParser::createPartial): 38 (WebCore::BackgroundHTMLParser::stopPartial): 39 (WebCore::BackgroundHTMLParser::appendPartial): 40 (WebCore::BackgroundHTMLParser::continuePartial): 41 (WebCore::BackgroundHTMLParser::finishPartial): 42 * html/parser/BackgroundHTMLParser.h: Added. 43 (WebCore): 44 (BackgroundHTMLParser): 45 (WebCore::BackgroundHTMLParser::create): 46 (ParserMap): 47 (WebCore::ParserMap::identifierForParser): 48 * html/parser/HTMLDocumentParser.cpp: 49 (WebCore): 50 (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser): 51 * html/parser/HTMLDocumentParser.h: 52 (WebCore): 53 (HTMLDocumentParser): 54 1 55 2013-01-16 Donghyun Kim <dhkim715@hotmail.com> 2 56 -
trunk/Source/WebCore/GNUmakefile.list.am
r139945 r139950 3531 3531 Source/WebCore/html/NumberInputType.cpp \ 3532 3532 Source/WebCore/html/NumberInputType.h \ 3533 Source/WebCore/html/parser/BackgroundHTMLParser.cpp \ 3534 Source/WebCore/html/parser/BackgroundHTMLParser.h \ 3533 3535 Source/WebCore/html/parser/CSSPreloadScanner.cpp \ 3534 3536 Source/WebCore/html/parser/CSSPreloadScanner.h \ -
trunk/Source/WebCore/Target.pri
r139945 r139950 708 708 html/canvas/CanvasStyle.cpp \ 709 709 html/canvas/DataView.cpp \ 710 html/parser/BackgroundHTMLParser.cpp \ 710 711 html/parser/CSSPreloadScanner.cpp \ 711 712 html/parser/CompactHTMLToken.cpp \ -
trunk/Source/WebCore/WebCore.gypi
r139945 r139950 3334 3334 'html/canvas/WebGLVertexArrayObjectOES.cpp', 3335 3335 'html/canvas/WebGLVertexArrayObjectOES.h', 3336 'html/parser/BackgroundHTMLParser.cpp', 3337 'html/parser/BackgroundHTMLParser.h', 3336 3338 'html/parser/CSSPreloadScanner.cpp', 3337 3339 'html/parser/CSSPreloadScanner.h', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r139945 r139950 64538 64538 > 64539 64539 <File 64540 RelativePath="..\html\parser\BackgroundHTMLParser.cpp" 64541 > 64542 </File> 64543 <File 64544 RelativePath="..\html\parser\BackgroundHTMLParser.h" 64545 > 64546 </File> 64547 <File 64540 64548 RelativePath="..\html\parser\CSSPreloadScanner.cpp" 64541 64549 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r139945 r139950 3625 3625 977B3862122883E900B81FF8 /* CSSPreloadScanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 977B3849122883E900B81FF8 /* CSSPreloadScanner.cpp */; }; 3626 3626 977B3863122883E900B81FF8 /* CSSPreloadScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 977B384A122883E900B81FF8 /* CSSPreloadScanner.h */; }; 3627 977B3862122883E900B81FF9 /* CompactHTMLToken.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 977B3849122883E900B81FF9 /* CompactHTMLToken.cpp */; };3628 977B3863122883E900B81FF9 /* CompactHTMLToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 977B384A122883E900B81FF9 /* CompactHTMLToken.h */; };3629 3627 977B3864122883E900B81FF8 /* HTMLConstructionSite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 977B384B122883E900B81FF8 /* HTMLConstructionSite.cpp */; }; 3630 3628 977B3865122883E900B81FF8 /* HTMLConstructionSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 977B384C122883E900B81FF8 /* HTMLConstructionSite.h */; }; … … 3662 3660 978D07CC145A102E0096908D /* XPathException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 978D07CB145A102E0096908D /* XPathException.cpp */; }; 3663 3661 978D07CE145A10370096908D /* XMLHttpRequestException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 978D07CD145A10370096908D /* XMLHttpRequestException.cpp */; }; 3662 979DC03616A7992A00807794 /* CompactHTMLToken.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 979DC03316A7992100807794 /* CompactHTMLToken.cpp */; }; 3663 979DC03716A7992E00807794 /* CompactHTMLToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 979DC03416A7992100807794 /* CompactHTMLToken.h */; }; 3664 979DC03816A7993300807794 /* BackgroundHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 979DC03216A7992100807794 /* BackgroundHTMLParser.h */; }; 3665 979DC03916A7993900807794 /* BackgroundHTMLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 979DC03116A7992100807794 /* BackgroundHTMLParser.cpp */; }; 3664 3666 979F43D31075E44A0000F83B /* NavigationScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 979F43D11075E44A0000F83B /* NavigationScheduler.cpp */; }; 3665 3667 979F43D41075E44A0000F83B /* NavigationScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 979F43D21075E44A0000F83B /* NavigationScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 11003 11005 977B3849122883E900B81FF8 /* CSSPreloadScanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CSSPreloadScanner.cpp; path = parser/CSSPreloadScanner.cpp; sourceTree = "<group>"; }; 11004 11006 977B384A122883E900B81FF8 /* CSSPreloadScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSSPreloadScanner.h; path = parser/CSSPreloadScanner.h; sourceTree = "<group>"; }; 11005 977B3849122883E900B81FF9 /* CompactHTMLToken.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CompactHTMLToken.cpp; path = parser/CompactHTMLToken.cpp; sourceTree = "<group>"; };11006 977B384A122883E900B81FF9 /* CompactHTMLToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CompactHTMLToken.h; path = parser/CompactHTMLToken.h; sourceTree = "<group>"; };11007 11007 977B384B122883E900B81FF8 /* HTMLConstructionSite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HTMLConstructionSite.cpp; path = parser/HTMLConstructionSite.cpp; sourceTree = "<group>"; }; 11008 11008 977B384C122883E900B81FF8 /* HTMLConstructionSite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTMLConstructionSite.h; path = parser/HTMLConstructionSite.h; sourceTree = "<group>"; }; … … 11042 11042 978D07CB145A102E0096908D /* XPathException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XPathException.cpp; sourceTree = "<group>"; }; 11043 11043 978D07CD145A10370096908D /* XMLHttpRequestException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLHttpRequestException.cpp; sourceTree = "<group>"; }; 11044 979DC03116A7992100807794 /* BackgroundHTMLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BackgroundHTMLParser.cpp; path = parser/BackgroundHTMLParser.cpp; sourceTree = "<group>"; }; 11045 979DC03216A7992100807794 /* BackgroundHTMLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BackgroundHTMLParser.h; path = parser/BackgroundHTMLParser.h; sourceTree = "<group>"; }; 11046 979DC03316A7992100807794 /* CompactHTMLToken.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CompactHTMLToken.cpp; path = parser/CompactHTMLToken.cpp; sourceTree = "<group>"; }; 11047 979DC03416A7992100807794 /* CompactHTMLToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CompactHTMLToken.h; path = parser/CompactHTMLToken.h; sourceTree = "<group>"; }; 11044 11048 979F43D11075E44A0000F83B /* NavigationScheduler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigationScheduler.cpp; sourceTree = "<group>"; }; 11045 11049 979F43D21075E44A0000F83B /* NavigationScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationScheduler.h; sourceTree = "<group>"; }; … … 18534 18538 isa = PBXGroup; 18535 18539 children = ( 18540 979DC03116A7992100807794 /* BackgroundHTMLParser.cpp */, 18541 979DC03216A7992100807794 /* BackgroundHTMLParser.h */, 18542 979DC03316A7992100807794 /* CompactHTMLToken.cpp */, 18543 979DC03416A7992100807794 /* CompactHTMLToken.h */, 18536 18544 977B3849122883E900B81FF8 /* CSSPreloadScanner.cpp */, 18537 18545 977B384A122883E900B81FF8 /* CSSPreloadScanner.h */, … … 22979 22987 51741D0F0B07259A00ED442C /* BackForwardList.h in Headers */, 22980 22988 BCA8CA6011E4E6D100812FB7 /* BackForwardListImpl.h in Headers */, 22989 979DC03816A7993300807794 /* BackgroundHTMLParser.h in Headers */, 22981 22990 BC124EE80C2641CD009E2349 /* BarInfo.h in Headers */, 22982 22991 379E61CA126CA5C400B63E8D /* BaseButtonInputType.h in Headers */, … … 23095 23104 BCDD454E1236C95C009A7985 /* ColumnInfo.h in Headers */, 23096 23105 6550B6A2099DF0270090D781 /* Comment.h in Headers */, 23106 979DC03716A7992E00807794 /* CompactHTMLToken.h in Headers */, 23097 23107 37C236111097EE7700EF9F72 /* ComplexTextController.h in Headers */, 23098 23108 4A6A0C5C15232F2400B09C6E /* ComposedShadowTreeWalker.h in Headers */, … … 26656 26666 BCA8C81F11E3D36900812FB7 /* BackForwardController.cpp in Sources */, 26657 26667 BCA8CA5F11E4E6D100812FB7 /* BackForwardListImpl.cpp in Sources */, 26668 979DC03916A7993900807794 /* BackgroundHTMLParser.cpp in Sources */, 26658 26669 BC124EE70C2641CD009E2349 /* BarInfo.cpp in Sources */, 26659 26670 379E61C9126CA5C300B63E8D /* BaseButtonInputType.cpp in Sources */, … … 26748 26759 B27535770B053814002CE64F /* ColorMac.mm in Sources */, 26749 26760 6550B6A1099DF0270090D781 /* Comment.cpp in Sources */, 26761 979DC03616A7992A00807794 /* CompactHTMLToken.cpp in Sources */, 26750 26762 37C236101097EE7700EF9F72 /* ComplexTextController.cpp in Sources */, 26751 26763 37C238221098C84200EF9F72 /* ComplexTextControllerCoreText.mm in Sources */, -
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
r139523 r139950 27 27 #include "HTMLDocumentParser.h" 28 28 29 #include "CompactHTMLToken.h" 29 30 #include "ContentSecurityPolicy.h" 30 31 #include "DocumentFragment.h" … … 243 244 } 244 245 246 #if ENABLE(THREADED_HTML_PARSER) 247 248 void HTMLDocumentParser::didReceiveTokensFromBackgroundParser(const Vector<CompactHTMLToken>& tokens) 249 { 250 // FIXME: Actually consume the tokens. 251 } 252 253 #endif // ENABLE(THREADED_HTML_PARSER) 254 245 255 void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode) 246 256 { -
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
r139523 r139950 42 42 namespace WebCore { 43 43 44 class CompactHTMLToken; 44 45 class Document; 45 46 class DocumentFragment; … … 77 78 virtual void suspendScheduledTasks(); 78 79 virtual void resumeScheduledTasks(); 80 81 #if ENABLE(THREADED_HTML_PARSER) 82 void didReceiveTokensFromBackgroundParser(const Vector<CompactHTMLToken>&); 83 #endif 79 84 80 85 protected:
Note: See TracChangeset
for help on using the changeset viewer.