Changeset 110397 in webkit
- Timestamp:
- Mar 11, 2012 12:50:14 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/CMakeLists.txt
r110085 r110397 156 156 Shared/WebPreferencesStore.cpp 157 157 Shared/WebProcessCreationParameters.cpp 158 Shared/WebRenderLayer.cpp 158 159 Shared/WebRenderObject.cpp 159 160 Shared/WebTouchEvent.cpp … … 175 176 Shared/API/c/WKMutableDictionary.cpp 176 177 Shared/API/c/WKNumber.cpp 178 Shared/API/c/WKRenderLayer.cpp 177 179 Shared/API/c/WKRenderObject.cpp 178 180 Shared/API/c/WKSecurityOrigin.cpp -
trunk/Source/WebKit2/ChangeLog
r110390 r110397 1 2012-03-11 Dan Bernstein <mitz@apple.com> 2 3 WebKit2 lacks API for obtaining a representation of the RenderLayer tree of a page, like WebRenderLayer 4 <http://webkit.org/b/80791> 5 6 Reviewed by Anders Carlsson. 7 8 * CMakeLists.txt: 9 * GNUmakefile.am: 10 11 * Shared/API/c/WKBase.h: Added a type definition of WKRenderLayerRef. 12 13 * Shared/API/c/WKRenderLayer.cpp: Added. 14 (WKRenderLayerGetTypeID): Added. Returns the WKRenderLayer type ID. 15 (WKRenderLayerCopyRendererName): Added this getter wrapper. 16 (WKRenderLayerCopyElementTagName): Ditto. 17 (WKRenderLayerCopyElementID): Ditto. 18 (WKRenderLayerGetElementClassNames): Ditto. 19 (WKRenderLayerGetAbsoluteBounds): Ditto. 20 (WKRenderLayerIsClipping): Ditto. 21 (WKRenderLayerIsClipped): Ditto. 22 (WKRenderLayerIsReflection): Ditto. 23 (WKRenderLayerGetCompositingLayerType): Ditto. 24 (WKRenderLayerGetNegativeZOrderList): Ditto. 25 (WKRenderLayerGetNormalFlowList): Ditto. 26 (WKRenderLayerGetPositiveZOrderList): Ditto. 27 28 * Shared/API/c/WKRenderLayer.h: Added. 29 30 * Shared/APIObject.h: Added TypeRenderLayer to the APIObject::Type enum. 31 32 * Shared/UserMessageCoders.h: 33 (WebKit::UserMessageEncoder::baseEncode): Added WebRenderLayer encoding. 34 (WebKit::UserMessageDecoder::baseDecode): Added WebRenderLayer decoding. 35 36 * Shared/WebRenderLayer.cpp: Added. 37 (WebKit::WebRenderLayer::create): Added. Creates a WebRenderLayer for the page’s main 38 frame’s root layer. 39 (WebKit::WebRenderLayer::createArrayFromLayerList): Added this helper function. 40 (WebKit::WebRenderLayer::WebRenderLayer): Added. Constructs a WebRenderLayer with the 41 renderer name, element tag, ID and class names, metrics, child lists, and compositing 42 layer properties of the given RenderLayer. 43 44 * Shared/WebRenderLayer.h: Added. 45 (WebKit::WebRenderLayer::create): 46 (WebKit::WebRenderLayer::negativeZOrderList): 47 (WebKit::WebRenderLayer::normalFlowList): 48 (WebKit::WebRenderLayer::positiveZOrderList): 49 (WebKit::WebRenderLayer::renderObjectName): 50 (WebKit::WebRenderLayer::elementTagName): 51 (WebKit::WebRenderLayer::elementID): 52 (WebKit::WebRenderLayer::elementClassNames): 53 (WebKit::WebRenderLayer::isReflection): 54 (WebKit::WebRenderLayer::isClipping): 55 (WebKit::WebRenderLayer::isClipped): 56 (WebKit::WebRenderLayer::compositingLayerType): 57 (WebKit::WebRenderLayer::absoluteBoundingBox): 58 (WebKit::WebRenderLayer::WebRenderLayer): 59 60 * Target.pri 61 62 * UIProcess/API/C/WKAPICast.h: Added a mapping between WKRenderLayerRef and WebRenderLayer. 63 64 * WebKit2.xcodeproj/project.pbxproj: Added WebRenderLayer.{cpp,h} and WKRenderLayer.{cpp,h}. 65 66 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: 67 (WKBundlePageCopyRenderLayerTree): Added this bundle API for getting the layer tree. 68 69 * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: 70 71 * win/WebKit2.vcproj: 72 1 73 2012-03-11 Joseph Pecoraro <pecoraro@apple.com> 2 74 -
trunk/Source/WebKit2/GNUmakefile.am
r110214 r110397 20 20 $(WebKit2)/Shared/API/c/WKNumber.h \ 21 21 $(WebKit2)/Shared/API/c/WKPageLoadTypes.h \ 22 $(WebKit2)/Shared/API/c/WKRenderLayer.h \ 22 23 $(WebKit2)/Shared/API/c/WKRenderObject.h \ 23 24 $(WebKit2)/Shared/API/c/WKSecurityOrigin.h \ … … 290 291 Source/WebKit2/Shared/API/c/WKNumber.h \ 291 292 Source/WebKit2/Shared/API/c/WKPageLoadTypes.h \ 293 Source/WebKit2/Shared/API/c/WKRenderLayer.cpp \ 294 Source/WebKit2/Shared/API/c/WKRenderLayer.h \ 292 295 Source/WebKit2/Shared/API/c/WKRenderObject.cpp \ 293 296 Source/WebKit2/Shared/API/c/WKRenderObject.h \ … … 439 442 Source/WebKit2/Shared/WebProcessCreationParameters.cpp \ 440 443 Source/WebKit2/Shared/WebProcessCreationParameters.h \ 444 Source/WebKit2/Shared/WebRenderLayer.cpp \ 445 Source/WebKit2/Shared/WebRenderLayer.h \ 441 446 Source/WebKit2/Shared/WebRenderObject.cpp \ 442 447 Source/WebKit2/Shared/WebRenderObject.h \ -
trunk/Source/WebKit2/Shared/API/c/WKBase.h
r110085 r110397 60 60 typedef const struct OpaqueWKPointRef* WKPointRef; 61 61 typedef const struct OpaqueWKRectRef* WKRectRef; 62 typedef const struct OpaqueWKRenderLayer* WKRenderLayerRef; 62 63 typedef const struct OpaqueWKRenderObject* WKRenderObjectRef; 63 64 typedef const struct OpaqueWKSecurityOrigin* WKSecurityOriginRef; -
trunk/Source/WebKit2/Shared/APIObject.h
r110085 r110397 49 49 TypeImage, 50 50 TypeProtectionSpace, 51 TypeRenderLayer, 51 52 TypeRenderObject, 52 53 TypeSecurityOrigin, -
trunk/Source/WebKit2/Shared/UserMessageCoders.h
r110085 r110397 39 39 #include "WebImage.h" 40 40 #include "WebNumber.h" 41 #include "WebRenderLayer.h" 41 42 #include "WebRenderObject.h" 42 43 #include "WebSerializedScriptValue.h" … … 58 59 // - WebDouble -> WebDouble 59 60 // - WebImage -> WebImage 61 // - WebRenderLayer -> WebRenderLayer 60 62 // - WebRenderObject -> WebRenderObject 61 63 // - WebUInt64 -> WebUInt64 … … 140 142 encoder->encode(rectObject->rect().size.width); 141 143 encoder->encode(rectObject->rect().size.height); 144 return true; 145 } 146 case APIObject::TypeRenderLayer: { 147 WebRenderLayer* renderLayer = static_cast<WebRenderLayer*>(m_root); 148 encoder->encode(renderLayer->renderObjectName()); 149 encoder->encode(renderLayer->elementTagName()); 150 encoder->encode(renderLayer->elementID()); 151 encoder->encode(Owner(renderLayer->elementClassNames())); 152 encoder->encode(renderLayer->isReflection()); 153 encoder->encode(renderLayer->isClipping()); 154 encoder->encode(renderLayer->isClipped()); 155 encoder->encode(static_cast<uint32_t>(renderLayer->compositingLayerType())); 156 encoder->encode(renderLayer->absoluteBoundingBox()); 157 encoder->encode(Owner(renderLayer->negativeZOrderList())); 158 encoder->encode(Owner(renderLayer->normalFlowList())); 159 encoder->encode(Owner(renderLayer->positiveZOrderList())); 142 160 return true; 143 161 } … … 349 367 break; 350 368 } 369 case APIObject::TypeRenderLayer: { 370 String renderObjectName; 371 String elementTagName; 372 String elementID; 373 RefPtr<APIObject> elementClassNames; 374 bool isReflection; 375 bool isClipping; 376 bool isClipped; 377 uint32_t compositingLayerTypeAsUInt32; 378 WebCore::IntRect absoluteBoundingBox; 379 RefPtr<APIObject> negativeZOrderList; 380 RefPtr<APIObject> normalFlowList; 381 RefPtr<APIObject> positiveZOrderList; 382 383 if (!decoder->decode(renderObjectName)) 384 return false; 385 if (!decoder->decode(elementTagName)) 386 return false; 387 if (!decoder->decode(elementID)) 388 return false; 389 Owner classNamesCoder(coder, elementClassNames); 390 if (!decoder->decode(classNamesCoder)) 391 return false; 392 if (!decoder->decodeBool(isReflection)) 393 return false; 394 if (!decoder->decodeBool(isClipping)) 395 return false; 396 if (!decoder->decodeBool(isClipped)) 397 return false; 398 if (!decoder->decodeUInt32(compositingLayerTypeAsUInt32)) 399 return false; 400 if (!decoder->decode(absoluteBoundingBox)) 401 return false; 402 Owner negativeZOrderListCoder(coder, negativeZOrderList); 403 if (!decoder->decode(negativeZOrderListCoder)) 404 return false; 405 Owner normalFlowListCoder(coder, normalFlowList); 406 if (!decoder->decode(normalFlowListCoder)) 407 return false; 408 Owner positiveZOrderListCoder(coder, positiveZOrderList); 409 if (!decoder->decode(positiveZOrderListCoder)) 410 return false; 411 coder.m_root = WebRenderLayer::create(renderObjectName, elementTagName, elementID, static_pointer_cast<MutableArray>(elementClassNames), 412 isReflection, isClipping, isClipped, static_cast<WebRenderLayer::CompositingLayerType>(compositingLayerTypeAsUInt32), 413 absoluteBoundingBox, static_pointer_cast<MutableArray>(negativeZOrderList), static_pointer_cast<MutableArray>(normalFlowList), 414 static_pointer_cast<MutableArray>(positiveZOrderList)); 415 break; 416 } 351 417 case APIObject::TypeRenderObject: { 352 418 String name; -
trunk/Source/WebKit2/Target.pri
r110388 r110397 50 50 Shared/API/c/WKNumber.h \ 51 51 Shared/API/c/WKPageLoadTypes.h \ 52 Shared/API/c/WKRenderLayer.h \ 52 53 Shared/API/c/WKRenderObject.h \ 53 54 Shared/API/c/WKSecurityOrigin.h \ … … 114 115 Shared/WebPreferencesStore.h \ 115 116 Shared/WebProcessCreationParameters.h \ 117 Shared/WebRenderLayer.h \ 116 118 Shared/WebRenderObject.h \ 117 119 Shared/WebURLRequest.h \ … … 396 398 Shared/API/c/WKMutableDictionary.cpp \ 397 399 Shared/API/c/WKNumber.cpp \ 400 Shared/API/c/WKRenderLayer.cpp \ 398 401 Shared/API/c/WKRenderObject.cpp \ 399 402 Shared/API/c/WKSecurityOrigin.cpp \ … … 459 462 Shared/WebPreferencesStore.cpp \ 460 463 Shared/WebProcessCreationParameters.cpp \ 464 Shared/WebRenderLayer.cpp \ 461 465 Shared/WebRenderObject.cpp \ 462 466 Shared/WebTouchEvent.cpp \ -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r110085 r110397 84 84 class WebPreferences; 85 85 class WebProtectionSpace; 86 class WebRenderLayer; 86 87 class WebRenderObject; 87 88 class WebTextChecker; … … 121 122 WK_ADD_API_MAPPING(WKPreferencesRef, WebPreferences) 122 123 WK_ADD_API_MAPPING(WKProtectionSpaceRef, WebProtectionSpace) 124 WK_ADD_API_MAPPING(WKRenderLayerRef, WebRenderLayer) 123 125 WK_ADD_API_MAPPING(WKRenderObjectRef, WebRenderObject) 124 126 WK_ADD_API_MAPPING(WKTextCheckerRef, WebTextChecker) -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r110346 r110397 321 321 37608823150414F700FC82C7 /* WKRenderObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 37608821150414F700FC82C7 /* WKRenderObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; 322 322 3788A05C14743C90006319E5 /* WKBrowsingContextControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3788A05B14743C90006319E5 /* WKBrowsingContextControllerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 323 37948403150C350600E52CE9 /* WebRenderLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37948401150C350600E52CE9 /* WebRenderLayer.cpp */; }; 324 37948404150C350600E52CE9 /* WebRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 37948402150C350600E52CE9 /* WebRenderLayer.h */; }; 325 37948408150C4B9700E52CE9 /* WKRenderLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */; }; 326 37948409150C4B9700E52CE9 /* WKRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 37948407150C4B9600E52CE9 /* WKRenderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; 323 327 37C4E9F6131C6E7E0029BD5A /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = B396EA5512E0ED2D00F4FEB7 /* config.h */; }; 324 328 37F623B812A57B6200E3FDF6 /* WKFindOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F623B712A57B6200E3FDF6 /* WKFindOptions.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 1334 1338 37608821150414F700FC82C7 /* WKRenderObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRenderObject.h; sourceTree = "<group>"; }; 1335 1339 3788A05B14743C90006319E5 /* WKBrowsingContextControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextControllerPrivate.h; sourceTree = "<group>"; }; 1340 37948401150C350600E52CE9 /* WebRenderLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebRenderLayer.cpp; sourceTree = "<group>"; }; 1341 37948402150C350600E52CE9 /* WebRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebRenderLayer.h; sourceTree = "<group>"; }; 1342 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRenderLayer.cpp; sourceTree = "<group>"; }; 1343 37948407150C4B9600E52CE9 /* WKRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRenderLayer.h; sourceTree = "<group>"; }; 1336 1344 37F623B712A57B6200E3FDF6 /* WKFindOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFindOptions.h; sourceTree = "<group>"; }; 1337 1345 510031F61379CACB00C8DFE4 /* WebProcessShim.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = WebProcessShim.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; … … 1461 1469 65B86F1712F11D7B00B7DD8A /* WKBundleInspector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundleInspector.cpp; sourceTree = "<group>"; }; 1462 1470 65B86F1812F11D7B00B7DD8A /* WKBundleInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleInspector.h; sourceTree = "<group>"; }; 1463 6D8A91A511F0EFD100DD01FE /* com.apple.WebProcess.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; name = com.apple.WebProcess.sb.in; path = WebProcess/com.apple.WebProcess.sb.in; sourceTree = "<group>"; };1471 6D8A91A511F0EFD100DD01FE /* com.apple.WebProcess.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = com.apple.WebProcess.sb.in; path = WebProcess/com.apple.WebProcess.sb.in; sourceTree = "<group>"; }; 1464 1472 6EE849C61368D92D0038D481 /* WKInspectorPrivateMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKInspectorPrivateMac.h; path = mac/WKInspectorPrivateMac.h; sourceTree = "<group>"; }; 1465 1473 762B7481120BBA0100819339 /* FontSmoothingLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontSmoothingLevel.h; sourceTree = "<group>"; }; … … 1945 1953 E17BF99514D0A73E00A5A069 /* NetscapeSandboxFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetscapeSandboxFunctions.h; sourceTree = "<group>"; }; 1946 1954 E17BF99714D0AA8300A5A069 /* NetscapeSandboxFunctions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetscapeSandboxFunctions.mm; sourceTree = "<group>"; }; 1947 E17BF99914D0CBF100A5A069 /* com.apple.WebKit.PluginProcess.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; path = com.apple.WebKit.PluginProcess.sb.in; sourceTree = "<group>"; };1955 E17BF99914D0CBF100A5A069 /* com.apple.WebKit.PluginProcess.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.PluginProcess.sb.in; sourceTree = "<group>"; }; 1948 1956 E18C92F312DB9E7100CF2AEB /* PrintInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrintInfo.cpp; sourceTree = "<group>"; }; 1949 1957 E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.PluginProcess.sb; sourceTree = "<group>"; }; … … 2423 2431 BC306823125A6B9400E71278 /* WebProcessCreationParameters.cpp */, 2424 2432 BC306822125A6B9400E71278 /* WebProcessCreationParameters.h */, 2433 37948401150C350600E52CE9 /* WebRenderLayer.cpp */, 2434 37948402150C350600E52CE9 /* WebRenderLayer.h */, 2425 2435 3760881C150413E900FC82C7 /* WebRenderObject.cpp */, 2426 2436 3760881D150413E900FC82C7 /* WebRenderObject.h */, … … 3501 3511 BC4075E6124FF0270068F20A /* WKNumber.h */, 3502 3512 BC2D021812AC426C00E732A3 /* WKPageLoadTypes.h */, 3513 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */, 3514 37948407150C4B9600E52CE9 /* WKRenderLayer.h */, 3503 3515 37608820150414F700FC82C7 /* WKRenderObject.cpp */, 3504 3516 37608821150414F700FC82C7 /* WKRenderObject.h */, … … 4165 4177 3760881F150413E900FC82C7 /* WebRenderObject.h in Headers */, 4166 4178 37608823150414F700FC82C7 /* WKRenderObject.h in Headers */, 4179 37948404150C350600E52CE9 /* WebRenderLayer.h in Headers */, 4180 37948409150C4B9700E52CE9 /* WKRenderLayer.h in Headers */, 4167 4181 ); 4168 4182 runOnlyForDeploymentPostprocessing = 0; … … 4906 4920 3760881E150413E900FC82C7 /* WebRenderObject.cpp in Sources */, 4907 4921 37608822150414F700FC82C7 /* WKRenderObject.cpp in Sources */, 4922 37948403150C350600E52CE9 /* WebRenderLayer.cpp in Sources */, 4923 37948408150C4B9700E52CE9 /* WKRenderLayer.cpp in Sources */, 4908 4924 ); 4909 4925 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
r110085 r110397 35 35 #include "WebImage.h" 36 36 #include "WebPage.h" 37 #include "WebRenderLayer.h" 37 38 #include "WebRenderObject.h" 38 39 #include "WebURL.h" … … 335 336 } 336 337 338 WKRenderLayerRef WKBundlePageCopyRenderLayerTree(WKBundlePageRef pageRef) 339 { 340 return toAPI(WebRenderLayer::create(toImpl(pageRef)).leakRef()); 341 } 342 337 343 void WKBundlePageSetPaintedObjectsCounterThreshold(WKBundlePageRef page, uint64_t threshold) 338 344 { -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
r110085 r110397 57 57 58 58 WK_EXPORT WKRenderObjectRef WKBundlePageCopyRenderTree(WKBundlePageRef page); 59 WK_EXPORT WKRenderLayerRef WKBundlePageCopyRenderLayerTree(WKBundlePageRef page); 59 60 60 61 // FIXME: This is temporary. Ultimately WebKit should choose the threshold itself. -
trunk/Source/WebKit2/win/WebKit2.vcproj
r110214 r110397 788 788 </File> 789 789 <File 790 RelativePath="..\Shared\WebRenderLayer.cpp" 791 > 792 </File> 793 <File 794 RelativePath="..\Shared\WebRenderLayer.h" 795 > 796 </File> 797 <File 790 798 RelativePath="..\Shared\WebRenderObject.cpp" 791 799 > … … 976 984 <File 977 985 RelativePath="..\Shared\API\c\WKPageLoadTypes.h" 986 > 987 </File> 988 <File 989 RelativePath="..\Shared\API\c\WKRenderLayer.cpp" 990 > 991 </File> 992 <File 993 RelativePath="..\Shared\API\c\WKRenderLayer.h" 978 994 > 979 995 </File>
Note: See TracChangeset
for help on using the changeset viewer.