Changeset 84749 in webkit
- Timestamp:
- Apr 23, 2011 6:31:23 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r84746 r84749 1 2011-04-23 Dominic Cooney <dominicc@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 [V8] Nodes in shadow DOM should not be GCed while their hosts are alive 6 https://bugs.webkit.org/show_bug.cgi?id=59284 7 8 * fast/dom/shadow/gc-shadow-expected.txt: Added. 9 * fast/dom/shadow/gc-shadow.html: Added. 10 1 11 2011-04-23 MORITA Hajime <morrita@google.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r84747 r84749 1 2011-04-23 Dominic Cooney <dominicc@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 [V8] Nodes in shadow DOM should not be GCed while their hosts are alive 6 https://bugs.webkit.org/show_bug.cgi?id=59284 7 8 Test: fast/dom/shadow/gc-shadow.html 9 10 * bindings/v8/V8GCController.cpp: 11 (WebCore::calculateGroupId): group shadow nodes with their hosts 12 1 13 2011-04-23 MORITA Hajime <morrita@google.com> 2 14 -
trunk/Source/WebCore/bindings/v8/V8GCController.cpp
r84741 r84749 280 280 return GroupId(); 281 281 } else { 282 while (Node* parent = root->parent Node())282 while (Node* parent = root->parentOrHostNode()) 283 283 root = parent; 284 284 } -
trunk/Tools/ChangeLog
r84743 r84749 1 2011-04-23 Dominic Cooney <dominicc@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 [V8] Nodes in shadow DOM should not be GCed while their hosts are alive 6 https://bugs.webkit.org/show_bug.cgi?id=59284 7 8 Chromium DRT over-refcounted the NPObject wrappers it used to 9 marshal shadowRoot nodes back to tests (WebBindings::makeNode 10 births NPObjects with referenceCount == 1). This masked the GC bug 11 59284 in tests by making shadowRoot nodes live forever. 12 13 * DumpRenderTree/chromium/LayoutTestController.cpp: 14 (LayoutTestController::shadowRoot): 15 (LayoutTestController::ensureShadowRoot): 16 1 17 2011-04-23 Kevin Ollivier <kevino@theolliviers.com> 2 18 -
trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp
r84472 r84749 666 666 } 667 667 668 WebNode shadowRoot = element.shadowRoot();669 if ( shadowRoot.isNull()) {668 NPObject* shadowRoot = WebBindings::makeNode(element.shadowRoot()); 669 if (!shadowRoot) { 670 670 result->setNull(); 671 671 return; 672 672 } 673 673 674 result->set(WebBindings::makeNode(shadowRoot)); 674 result->set(shadowRoot); 675 WebBindings::releaseObject(shadowRoot); 675 676 } 676 677 … … 688 689 } 689 690 690 result->set(WebBindings::makeNode(element.ensureShadowRoot())); 691 NPObject* shadowRoot = WebBindings::makeNode(element.ensureShadowRoot()); 692 if (!shadowRoot) { 693 result->setNull(); 694 return; 695 } 696 697 result->set(shadowRoot); 698 WebBindings::releaseObject(shadowRoot); 691 699 } 692 700
Note: See TracChangeset
for help on using the changeset viewer.