Changeset 176509 in webkit
- Timestamp:
- Nov 23, 2014, 10:00:52 AM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 12 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/WebCore.exp.in (modified) (1 diff)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/Shared/API/c/WKRenderLayer.cpp (modified) (3 diffs)
-
WebKit2/Shared/API/c/WKRenderLayer.h (modified) (1 diff)
-
WebKit2/Shared/API/c/WKRenderObject.cpp (modified) (3 diffs)
-
WebKit2/Shared/API/c/WKRenderObject.h (modified) (1 diff)
-
WebKit2/Shared/UserMessageCoders.h (modified) (8 diffs)
-
WebKit2/Shared/WebRenderLayer.cpp (modified) (4 diffs)
-
WebKit2/Shared/WebRenderLayer.h (modified) (3 diffs)
-
WebKit2/Shared/WebRenderObject.cpp (modified) (4 diffs)
-
WebKit2/Shared/WebRenderObject.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r176507 r176509 1 2014-11-22 Simon Fraser <simon.fraser@apple.com> 2 3 Extend WKRenderObject and WKRenderLayer with some more useful data 4 https://bugs.webkit.org/show_bug.cgi?id=139006 5 6 Reviewed by Sam Weinig. 7 8 Export WebCore::RenderLayerBacking::backingStoreMemoryEstimate() const. 9 10 * WebCore.exp.in: 11 1 12 2014-11-22 Antti Koivisto <antti@apple.com> 2 13 -
trunk/Source/WebCore/WebCore.exp.in
r176501 r176509 1843 1843 __ZNK7WebCore18RenderLayerBacking12tiledBackingEv 1844 1844 __ZNK7WebCore18RenderLayerBacking20compositingLayerTypeEv 1845 __ZNK7WebCore18RenderLayerBacking26backingStoreMemoryEstimateEv 1845 1846 __ZNK7WebCore19AnimationController11isSuspendedEv 1846 1847 __ZNK7WebCore19AnimationController24numberOfActiveAnimationsEPNS_8DocumentE -
trunk/Source/WebKit2/ChangeLog
r176499 r176509 1 2014-11-22 Simon Fraser <simon.fraser@apple.com> 2 3 Extend WKRenderObject and WKRenderLayer with some more useful data 4 https://bugs.webkit.org/show_bug.cgi?id=139006 5 6 Reviewed by Sam Weinig. 7 8 Implement WKRenderLayerGetBackingStoreMemoryEstimate, 9 WKRenderObjectCopyTextSnippet and WKRenderObjectGetTextLength for improved 10 RenderLayer and RenderTree display in clients of the C SPI. 11 12 * Shared/API/c/WKRenderLayer.cpp: 13 (WKRenderLayerGetBackingStoreMemoryEstimate): 14 * Shared/API/c/WKRenderLayer.h: 15 * Shared/API/c/WKRenderObject.cpp: 16 (WKRenderObjectCopyTextSnippet): 17 (WKRenderObjectGetTextLength): 18 * Shared/API/c/WKRenderObject.h: 19 * Shared/UserMessageCoders.h: 20 (WebKit::UserMessageEncoder::baseEncode): 21 (WebKit::UserMessageDecoder::baseDecode): 22 * Shared/WebRenderLayer.cpp: 23 (WebKit::WebRenderLayer::create): 24 (WebKit::WebRenderLayer::WebRenderLayer): 25 * Shared/WebRenderLayer.h: 26 (WebKit::WebRenderLayer::backingStoreMemoryEstimate): 27 * Shared/WebRenderObject.cpp: 28 (WebKit::WebRenderObject::create): 29 (WebKit::WebRenderObject::WebRenderObject): 30 * Shared/WebRenderObject.h: 31 (WebKit::WebRenderObject::textSnippet): 32 (WebKit::WebRenderObject::textLength): 33 1 34 2014-11-21 Jer Noble <jer.noble@apple.com> 2 35 -
trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.cpp
r121584 r176509 54 54 return toCopiedAPI(renderLayer->renderer()->elementTagName()); 55 55 56 return 0;56 return nullptr; 57 57 } 58 58 … … 63 63 return toCopiedAPI(renderLayer->renderer()->elementID()); 64 64 65 return 0;65 return nullptr; 66 66 } 67 67 … … 111 111 } 112 112 113 WK_EXPORT double WKRenderLayerGetBackingStoreMemoryEstimate(WKRenderLayerRef renderLayerRef) 114 { 115 return toImpl(renderLayerRef)->backingStoreMemoryEstimate(); 116 } 117 113 118 WKArrayRef WKRenderLayerGetNegativeZOrderList(WKRenderLayerRef renderLayerRef) 114 119 { -
trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.h
r168541 r176509 63 63 64 64 WK_EXPORT WKCompositingLayerType WKRenderLayerGetCompositingLayerType(WKRenderLayerRef renderLayer); 65 WK_EXPORT double WKRenderLayerGetBackingStoreMemoryEstimate(WKRenderLayerRef renderLayer); 65 66 66 67 WK_EXPORT WKArrayRef WKRenderLayerGetNegativeZOrderList(WKRenderLayerRef renderLayer); -
trunk/Source/WebKit2/Shared/API/c/WKRenderObject.cpp
r159234 r176509 43 43 } 44 44 45 WKStringRef WKRenderObjectCopyTextSnippet(WKRenderObjectRef renderObjectRef) 46 { 47 WebRenderObject* renderObject = toImpl(renderObjectRef); 48 if (!renderObject->textSnippet().isNull()) 49 return toCopiedAPI(renderObject->textSnippet()); 50 51 return nullptr; 52 } 53 54 unsigned WKRenderObjectGetTextLength(WKRenderObjectRef renderObjectRef) 55 { 56 return toImpl(renderObjectRef)->textLength(); 57 } 58 45 59 WKStringRef WKRenderObjectCopyElementTagName(WKRenderObjectRef renderObjectRef) 46 60 { … … 49 63 return toCopiedAPI(renderObject->elementTagName()); 50 64 51 return 0;65 return nullptr; 52 66 } 53 67 … … 58 72 return toCopiedAPI(renderObject->elementID()); 59 73 60 return 0;74 return nullptr; 61 75 } 62 76 -
trunk/Source/WebKit2/Shared/API/c/WKRenderObject.h
r168541 r176509 37 37 38 38 WK_EXPORT WKStringRef WKRenderObjectCopyName(WKRenderObjectRef renderObject); 39 39 WK_EXPORT WKStringRef WKRenderObjectCopyTextSnippet(WKRenderObjectRef renderObject); 40 WK_EXPORT unsigned WKRenderObjectGetTextLength(WKRenderObjectRef renderObject); 40 41 WK_EXPORT WKStringRef WKRenderObjectCopyElementTagName(WKRenderObjectRef renderObject); 41 42 WK_EXPORT WKStringRef WKRenderObjectCopyElementID(WKRenderObjectRef renderObject); -
trunk/Source/WebKit2/Shared/UserMessageCoders.h
r170774 r176509 156 156 encoder << static_cast<uint32_t>(renderLayer->compositingLayerType()); 157 157 encoder << renderLayer->absoluteBoundingBox(); 158 encoder << renderLayer->backingStoreMemoryEstimate(); 158 159 encoder << Owner(coder, renderLayer->negativeZOrderList()); 159 160 encoder << Owner(coder, renderLayer->normalFlowList()); … … 169 170 encoder << renderObject->absolutePosition(); 170 171 encoder << renderObject->frameRect(); 172 encoder << renderObject->textSnippet(); 173 encoder << renderObject->textLength(); 171 174 encoder << Owner(coder, renderObject->children()); 172 175 return true; … … 391 394 uint32_t compositingLayerTypeAsUInt32; 392 395 WebCore::IntRect absoluteBoundingBox; 396 double backingStoreMemoryEstimate; 393 397 RefPtr<API::Object> negativeZOrderList; 394 398 RefPtr<API::Object> normalFlowList; … … 410 414 if (!decoder.decode(absoluteBoundingBox)) 411 415 return false; 416 if (!decoder.decode(backingStoreMemoryEstimate)) 417 return false; 412 418 Owner negativeZOrderListCoder(coder, negativeZOrderList); 413 419 if (!decoder.decode(negativeZOrderListCoder)) … … 420 426 return false; 421 427 coder.m_root = WebRenderLayer::create(static_pointer_cast<WebRenderObject>(renderer), isReflection, isClipping, isClipped, static_cast<WebRenderLayer::CompositingLayerType>(compositingLayerTypeAsUInt32), 422 absoluteBoundingBox, static_pointer_cast<API::Array>(negativeZOrderList), static_pointer_cast<API::Array>(normalFlowList),428 absoluteBoundingBox, backingStoreMemoryEstimate, static_pointer_cast<API::Array>(negativeZOrderList), static_pointer_cast<API::Array>(normalFlowList), 423 429 static_pointer_cast<API::Array>(positiveZOrderList)); 424 430 break; … … 426 432 case API::Object::Type::RenderObject: { 427 433 String name; 434 String textSnippet; 428 435 String elementTagName; 429 436 String elementID; 437 unsigned textLength; 430 438 RefPtr<API::Object> elementClassNames; 431 439 WebCore::IntPoint absolutePosition; … … 446 454 if (!decoder.decode(frameRect)) 447 455 return false; 456 if (!decoder.decode(textSnippet)) 457 return false; 458 if (!decoder.decode(textLength)) 459 return false; 448 460 Owner messageCoder(coder, children); 449 461 if (!decoder.decode(messageCoder)) … … 451 463 if (children && children->type() != API::Object::Type::Array) 452 464 return false; 453 coder.m_root = WebRenderObject::create(name, elementTagName, elementID, static_pointer_cast<API::Array>(elementClassNames), absolutePosition, frameRect, static_pointer_cast<API::Array>(children));465 coder.m_root = WebRenderObject::create(name, elementTagName, elementID, static_pointer_cast<API::Array>(elementClassNames), absolutePosition, frameRect, textSnippet, textLength, static_pointer_cast<API::Array>(children)); 454 466 break; 455 467 } -
trunk/Source/WebKit2/Shared/WebRenderLayer.cpp
r174231 r176509 63 63 } 64 64 65 PassRefPtr<WebRenderLayer> WebRenderLayer::create(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList)65 PassRefPtr<WebRenderLayer> WebRenderLayer::create(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox, double backingStoreMemoryEstimate, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList) 66 66 { 67 return adoptRef(new WebRenderLayer(renderer, isReflection, isClipping, isClipped, type, absoluteBoundingBox, negativeZOrderList, normalFlowList, positiveZOrderList));67 return adoptRef(new WebRenderLayer(renderer, isReflection, isClipping, isClipped, type, absoluteBoundingBox, backingStoreMemoryEstimate, negativeZOrderList, normalFlowList, positiveZOrderList)); 68 68 } 69 69 … … 105 105 break; 106 106 } 107 108 m_backingStoreMemoryEstimate = backing->backingStoreMemoryEstimate(); 107 109 } else { 108 110 m_isClipping = false; 109 111 m_isClipped = false; 110 112 m_compositingLayerType = None; 113 m_backingStoreMemoryEstimate = 0; 111 114 } 112 115 … … 118 121 } 119 122 120 WebRenderLayer::WebRenderLayer(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList)123 WebRenderLayer::WebRenderLayer(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox, double backingStoreMemoryEstimate, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList) 121 124 : m_renderer(renderer) 122 125 , m_isReflection(isReflection) … … 125 128 , m_compositingLayerType(type) 126 129 , m_absoluteBoundingBox(absoluteBoundingBox) 130 , m_backingStoreMemoryEstimate(backingStoreMemoryEstimate) 127 131 , m_negativeZOrderList(negativeZOrderList) 128 132 , m_normalFlowList(normalFlowList) -
trunk/Source/WebKit2/Shared/WebRenderLayer.h
r160384 r176509 42 42 43 43 static PassRefPtr<WebRenderLayer> create(WebPage*); 44 static PassRefPtr<WebRenderLayer> create(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType, WebCore::IntRect absoluteBoundingBox, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList);44 static PassRefPtr<WebRenderLayer> create(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType, WebCore::IntRect absoluteBoundingBox, double backingStoreMemoryEstimate, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList); 45 45 46 46 API::Array* negativeZOrderList() const { return m_negativeZOrderList.get(); } … … 54 54 CompositingLayerType compositingLayerType() const { return m_compositingLayerType; } 55 55 WebCore::IntRect absoluteBoundingBox() const { return m_absoluteBoundingBox; } 56 double backingStoreMemoryEstimate() const { return m_backingStoreMemoryEstimate; } 56 57 57 58 private: 58 59 explicit WebRenderLayer(WebCore::RenderLayer*); 59 WebRenderLayer(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType, WebCore::IntRect absoluteBoundingBox, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList);60 WebRenderLayer(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType, WebCore::IntRect absoluteBoundingBox, double backingStoreMemoryEstimate, PassRefPtr<API::Array> negativeZOrderList, PassRefPtr<API::Array> normalFlowList, PassRefPtr<API::Array> positiveZOrderList); 60 61 61 62 static PassRefPtr<API::Array> createArrayFromLayerList(Vector<WebCore::RenderLayer*>*); … … 67 68 CompositingLayerType m_compositingLayerType; 68 69 WebCore::IntRect m_absoluteBoundingBox; 70 double m_backingStoreMemoryEstimate; 69 71 70 72 RefPtr<API::Array> m_negativeZOrderList; -
trunk/Source/WebKit2/Shared/WebRenderObject.cpp
r174506 r176509 47 47 Frame* mainFrame = page->mainFrame(); 48 48 if (!mainFrame) 49 return 0;49 return nullptr; 50 50 51 51 if (!mainFrame->loader().client().hasHTMLView()) 52 return 0;52 return nullptr; 53 53 54 54 RenderView* contentRenderer = mainFrame->contentRenderer(); 55 55 if (!contentRenderer) 56 return 0;56 return nullptr; 57 57 58 58 return adoptRef(new WebRenderObject(contentRenderer, true)); 59 59 } 60 60 61 PassRefPtr<WebRenderObject> WebRenderObject::create(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<API::Array> children)61 PassRefPtr<WebRenderObject> WebRenderObject::create(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, const String& textSnippet, unsigned textLength, PassRefPtr<API::Array> children) 62 62 { 63 return adoptRef(new WebRenderObject(name, elementTagName, elementID, elementClassNames, absolutePosition, frameRect, children));63 return adoptRef(new WebRenderObject(name, elementTagName, elementID, elementClassNames, absolutePosition, frameRect, textSnippet, textLength, children)); 64 64 } 65 65 … … 67 67 { 68 68 m_name = renderer->renderName(); 69 m_textLength = 0; 69 70 70 71 if (Node* node = renderer->node()) { … … 83 84 m_elementClassNames = API::Array::create(WTF::move(classNames)); 84 85 } 86 } 87 88 if (node->isTextNode()) { 89 String value = node->nodeValue(); 90 m_textLength = value.length(); 91 92 const int maxSnippetLength = 40; 93 if (value.length() > maxSnippetLength) 94 m_textSnippet = value.substring(0, maxSnippetLength); 95 else 96 m_textSnippet = value; 85 97 } 86 98 } … … 123 135 } 124 136 125 WebRenderObject::WebRenderObject(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<API::Array> children)137 WebRenderObject::WebRenderObject(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, const String& textSnippet, unsigned textLength, PassRefPtr<API::Array> children) 126 138 : m_children(children) 127 139 , m_name(name) 128 140 , m_elementTagName(elementTagName) 129 141 , m_elementID(elementID) 142 , m_textSnippet(textSnippet) 130 143 , m_elementClassNames(elementClassNames) 131 144 , m_absolutePosition(absolutePosition) 132 145 , m_frameRect(frameRect) 146 , m_textLength(textLength) 133 147 { 134 148 } -
trunk/Source/WebKit2/Shared/WebRenderObject.h
r160384 r176509 52 52 } 53 53 54 static PassRefPtr<WebRenderObject> create(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<API::Array> children);54 static PassRefPtr<WebRenderObject> create(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, const String& textSnippet, unsigned textLength, PassRefPtr<API::Array> children); 55 55 56 56 virtual ~WebRenderObject(); … … 59 59 60 60 const String& name() const { return m_name; } 61 62 // Only non-empty for RenderText objects. 63 const String& textSnippet() const { return m_textSnippet; } 64 unsigned textLength() const { return m_textLength; } 65 61 66 const String& elementTagName() const { return m_elementTagName; } 62 67 const String& elementID() const { return m_elementID; } … … 67 72 private: 68 73 WebRenderObject(WebCore::RenderObject*, bool shouldIncludeDescendants); 69 WebRenderObject(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<API::Array> children);74 WebRenderObject(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<API::Array> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, const String& textSnippet, unsigned textLength, PassRefPtr<API::Array> children); 70 75 71 76 RefPtr<API::Array> m_children; … … 74 79 String m_elementTagName; 75 80 String m_elementID; 81 String m_textSnippet; 76 82 RefPtr<API::Array> m_elementClassNames; 77 83 WebCore::IntPoint m_absolutePosition; 78 84 WebCore::IntRect m_frameRect; 85 unsigned m_textLength; 79 86 }; 80 87
Note:
See TracChangeset
for help on using the changeset viewer.