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()); |