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

Unified Diff: third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp

Issue 2020153002: Move ScriptResourceClient to Oilpan heap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onheap-font-resource-client
Patch Set: Created 4 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: third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
index 9a51bf9df9e4d7357e1e436885a160672955fac7..79c27cbafa3b696bb9fac7dea9c6901c9133d95c 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
@@ -98,7 +98,8 @@ protected:
Persistent<PendingScript> m_pendingScript;
};
-class TestScriptResourceClient : public ScriptResourceClient {
+class TestScriptResourceClient : public GarbageCollectedFinalized<TestScriptResourceClient>, public ScriptResourceClient {
+ USING_GARBAGE_COLLECTED_MIXIN(TestScriptResourceClient);
public:
TestScriptResourceClient()
: m_finished(false) { }
@@ -122,21 +123,21 @@ TEST_F(ScriptStreamingTest, MAYBE_CompilingStreamedScript)
{
// Test that we can successfully compile a streamed script.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
appendData("function foo() {");
appendPadding();
appendData("return 5; }");
appendPadding();
appendData("foo();");
- EXPECT_FALSE(client.finished());
+ EXPECT_FALSE(client->finished());
finish();
// Process tasks on the main thread until the streaming background thread
// has completed its tasks.
processTasksUntilStreamingComplete();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
EXPECT_FALSE(errorOccurred);
@@ -153,22 +154,22 @@ TEST_F(ScriptStreamingTest, CompilingStreamedScriptWithParseError)
// the V8 side typically finished before loading finishes: make sure we
// handle it gracefully.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
appendData("function foo() {");
appendData("this is the part which will be a parse error");
// V8 won't realize the parse error until it actually starts parsing the
// script, and this happens only when its buffer is filled.
appendPadding();
- EXPECT_FALSE(client.finished());
+ EXPECT_FALSE(client->finished());
// Force the V8 side to finish before the loading.
processTasksUntilStreamingComplete();
- EXPECT_FALSE(client.finished());
+ EXPECT_FALSE(client->finished());
finish();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
@@ -185,8 +186,8 @@ TEST_F(ScriptStreamingTest, CancellingStreaming)
// Test that the upper layers (PendingScript and up) can be ramped down
// while streaming is ongoing, and ScriptStreamer handles it gracefully.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
appendData("function foo() {");
// In general, we cannot control what the background thread is doing
@@ -195,7 +196,7 @@ TEST_F(ScriptStreamingTest, CancellingStreaming)
// Simulate cancelling the network load (e.g., because the user navigated
// away).
- EXPECT_FALSE(client.finished());
+ EXPECT_FALSE(client->finished());
getPendingScript()->stopWatchingForLoad();
getPendingScript()->releaseElementAndClear();
m_pendingScript = nullptr; // This will destroy m_resource.
@@ -204,7 +205,7 @@ TEST_F(ScriptStreamingTest, CancellingStreaming)
// The V8 side will complete too. This should not crash. We don't receive
// any results from the streaming and the client doesn't get notified.
processTasksUntilStreamingComplete();
- EXPECT_FALSE(client.finished());
+ EXPECT_FALSE(client->finished());
}
TEST_F(ScriptStreamingTest, SuppressingStreaming)
@@ -214,8 +215,8 @@ TEST_F(ScriptStreamingTest, SuppressingStreaming)
// upper layer (ScriptResourceClient) should get a notification when the
// script is loaded.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
appendData("function foo() {");
appendPadding();
@@ -226,7 +227,7 @@ TEST_F(ScriptStreamingTest, SuppressingStreaming)
appendPadding();
finish();
processTasksUntilStreamingComplete();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
@@ -243,14 +244,14 @@ TEST_F(ScriptStreamingTest, EmptyScripts)
// (ScriptResourceClient) should be notified when an empty script has been
// loaded.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
// Finish the script without sending any data.
finish();
// The finished notification should arrive immediately and not be cycled
// through a background thread.
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
@@ -264,8 +265,8 @@ TEST_F(ScriptStreamingTest, SmallScripts)
ScriptStreamer::setSmallScriptThresholdForTesting(100);
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
appendData("function foo() { }");
@@ -273,7 +274,7 @@ TEST_F(ScriptStreamingTest, SmallScripts)
// The finished notification should arrive immediately and not be cycled
// through a background thread.
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
@@ -294,8 +295,8 @@ TEST_F(ScriptStreamingTest, MAYBE_ScriptsWithSmallFirstChunk)
ScriptStreamer::setSmallScriptThresholdForTesting(100);
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
// This is the first data chunk which is small.
appendData("function foo() { }");
@@ -306,7 +307,7 @@ TEST_F(ScriptStreamingTest, MAYBE_ScriptsWithSmallFirstChunk)
finish();
processTasksUntilStreamingComplete();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
EXPECT_FALSE(errorOccurred);
@@ -330,8 +331,8 @@ TEST_F(ScriptStreamingTest, MAYBE_EncodingChanges)
m_resource->setEncoding("windows-1252");
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
m_resource->setEncoding("UTF-8");
// \xec\x92\x81 are the raw bytes for \uc481.
@@ -340,7 +341,7 @@ TEST_F(ScriptStreamingTest, MAYBE_EncodingChanges)
finish();
processTasksUntilStreamingComplete();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
EXPECT_FALSE(errorOccurred);
@@ -365,8 +366,8 @@ TEST_F(ScriptStreamingTest, MAYBE_EncodingFromBOM)
m_resource->setEncoding("windows-1252"); // This encoding is wrong on purpose.
ScriptStreamer::startStreaming(getPendingScript(), ScriptStreamer::ParsingBlocking, m_settings.get(), m_scope.getScriptState(), m_loadingTaskRunner);
- TestScriptResourceClient client;
- getPendingScript()->watchForLoad(&client);
+ TestScriptResourceClient* client = new TestScriptResourceClient;
+ getPendingScript()->watchForLoad(client);
// \xef\xbb\xbf is the UTF-8 byte order mark. \xec\x92\x81 are the raw bytes
// for \uc481.
@@ -374,7 +375,7 @@ TEST_F(ScriptStreamingTest, MAYBE_EncodingFromBOM)
finish();
processTasksUntilStreamingComplete();
- EXPECT_TRUE(client.finished());
+ EXPECT_TRUE(client->finished());
bool errorOccurred = false;
ScriptSourceCode sourceCode = getPendingScript()->getSource(KURL(), errorOccurred);
EXPECT_FALSE(errorOccurred);
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/dom/PendingScript.h » ('j') | third_party/WebKit/Source/core/dom/PendingScript.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698