Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2201)

Unified Diff: Source/web/tests/TouchActionTest.cpp

Issue 280123002: Oilpan: move LiveNodeList collections to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Pre-emptively GC a long runnning test Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/web/tests/TouchActionTest.cpp
diff --git a/Source/web/tests/TouchActionTest.cpp b/Source/web/tests/TouchActionTest.cpp
index 52d22af0fbe9091cfb3b496de42c79b6cb9fd7a2..9f3f2eacd256b1dc9e08e9d23d5973e5dcaa7b7c 100644
--- a/Source/web/tests/TouchActionTest.cpp
+++ b/Source/web/tests/TouchActionTest.cpp
@@ -147,7 +147,7 @@ void TouchActionTest::runShadowDOMTest(std::string file)
WebCore::TrackExceptionState es;
RefPtrWillBeRawPtr<WebCore::Document> document = static_cast<PassRefPtrWillBeRawPtr<WebCore::Document> >(webView->mainFrame()->document());
- RefPtr<WebCore::NodeList> hostNodes = document->querySelectorAll("[shadow-host]", es);
+ RefPtrWillBeRawPtr<WebCore::NodeList> hostNodes = document->querySelectorAll("[shadow-host]", es);
ASSERT_FALSE(es.hadException());
ASSERT_GE(hostNodes->length(), 1u);
@@ -183,10 +183,14 @@ void TouchActionTest::runTestOnTree(WebCore::ContainerNode* root, WebView* webVi
{
// Find all elements to test the touch-action of in the document.
WebCore::TrackExceptionState es;
- RefPtr<WebCore::NodeList> nodes = root->querySelectorAll("[expected-action]", es);
+ RefPtrWillBeRawPtr<WebCore::NodeList> nodes = root->querySelectorAll("[expected-action]", es);
ASSERT_FALSE(es.hadException());
for (unsigned index = 0; index < nodes->length(); index++) {
+ // FIXME: Oilpan: long-running test that allocates; if the PendingGCRunner task
+ // is run, it GCs assuming no pointers on the stack. But there is.
+ WebCore::Heap::collectGarbage(WebCore::ThreadState::HeapPointersOnStack);
haraken 2014/05/12 12:04:13 Would you elaborate on this? - Why can PendingGCR
sof 2014/05/12 12:24:36 The parser thread creates a pending GC runner. I d
haraken 2014/05/12 12:36:55 hmm, your current solution looks a bit fragile. Ev
sof 2014/05/12 12:52:46 Indeed so; I'm not proposing this as the final sol
sof 2014/05/15 09:23:24 Tried to make the FIXME comment clearer; i.e., tes
Mads Ager (chromium) 2014/05/15 10:54:24 The PendingGCRunner should only run when we are ba
sof 2014/05/15 11:39:41 A nested message loop, it seems. The PendingGCRunn
+
WebCore::Element* element = toElement(nodes->item(index));
element->scrollIntoViewIfNeeded();
ASSERT_TRUE(nodes->item(index)->isElementNode());

Powered by Google App Engine
This is Rietveld 408576698