From fdfd5d17ab08e528799125a242893f6f5dcbea43 Mon Sep 17 00:00:00 2001 From: dgozman Date: Thu, 10 Mar 2016 23:50:47 -0800 Subject: Use v8::MicrotasksScope internally in V8RecursionScope. If this sticks we can just remove V8RecursionScope and WebScopedMicrotaskSuppression, along with other cleanups. Attempt #3. First one broke GinJavaBridgeValueConverterTest.TypedArrays. Second one broke FileManagerBrowserTest family on ChromeOS. BUG=585949 Review URL: https://codereview.chromium.org/1743763004 Cr-Commit-Position: refs/heads/master@{#380570} --- extensions/renderer/activity_log_converter_strategy_unittest.cc | 2 ++ extensions/renderer/api_test_base.cc | 2 +- extensions/renderer/module_system_test.cc | 2 +- extensions/renderer/safe_builtins.cc | 2 ++ extensions/renderer/v8_helpers.h | 2 ++ 5 files changed, 8 insertions(+), 2 deletions(-) (limited to 'extensions/renderer') diff --git a/extensions/renderer/activity_log_converter_strategy_unittest.cc b/extensions/renderer/activity_log_converter_strategy_unittest.cc index 9237cad..aa80447 100644 --- a/extensions/renderer/activity_log_converter_strategy_unittest.cc +++ b/extensions/renderer/activity_log_converter_strategy_unittest.cc @@ -6,6 +6,7 @@ #include "base/values.h" #include "extensions/renderer/activity_log_converter_strategy.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" #include "v8/include/v8.h" using content::V8ValueConverter; @@ -122,6 +123,7 @@ TEST_F(ActivityLogConverterStrategyTest, ConversionTest) { "};" "})();"; + blink::WebScopedMicrotaskSuppression microtasks_scope; v8::Local script( v8::Script::Compile(v8::String::NewFromUtf8(isolate_, source))); v8::Local v8_object = script->Run().As(); diff --git a/extensions/renderer/api_test_base.cc b/extensions/renderer/api_test_base.cc index abf868b..79f95e2 100644 --- a/extensions/renderer/api_test_base.cc +++ b/extensions/renderer/api_test_base.cc @@ -214,7 +214,7 @@ void ApiTestEnvironment::RunTestInner(const std::string& test_name, } void ApiTestEnvironment::RunPromisesAgain() { - env()->isolate()->RunMicrotasks(); + v8::MicrotasksScope::PerformCheckpoint(env()->isolate()); base::MessageLoop::current()->PostTask( FROM_HERE, base::Bind(&ApiTestEnvironment::RunPromisesAgain, base::Unretained(this))); diff --git a/extensions/renderer/module_system_test.cc b/extensions/renderer/module_system_test.cc index 68c4bd1..06a4d55 100644 --- a/extensions/renderer/module_system_test.cc +++ b/extensions/renderer/module_system_test.cc @@ -253,7 +253,7 @@ void ModuleSystemTest::ExpectNoAssertionsMade() { } void ModuleSystemTest::RunResolvedPromises() { - isolate_->RunMicrotasks(); + v8::MicrotasksScope::PerformCheckpoint(isolate_); } } // namespace extensions diff --git a/extensions/renderer/safe_builtins.cc b/extensions/renderer/safe_builtins.cc index 3bfa01a..3a66eaf 100644 --- a/extensions/renderer/safe_builtins.cc +++ b/extensions/renderer/safe_builtins.cc @@ -9,6 +9,7 @@ #include "base/strings/stringprintf.h" #include "extensions/renderer/script_context.h" #include "extensions/renderer/v8_helpers.h" +#include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" namespace extensions { @@ -200,6 +201,7 @@ class ExtensionImpl : public v8::Extension { return; } + blink::WebScopedMicrotaskSuppression microtasks_scope; v8::Local return_value; if (function->Call(context, recv, argc, argv.get()).ToLocal(&return_value)) info.GetReturnValue().Set(return_value); diff --git a/extensions/renderer/v8_helpers.h b/extensions/renderer/v8_helpers.h index 3017772..560beee 100644 --- a/extensions/renderer/v8_helpers.h +++ b/extensions/renderer/v8_helpers.h @@ -9,6 +9,7 @@ #include #include "base/strings/string_number_conversions.h" +#include "third_party/WebKit/public/web/WebScopedMicrotaskSuppression.h" #include "v8/include/v8.h" namespace extensions { @@ -172,6 +173,7 @@ inline bool CallFunction(v8::Local context, int argc, v8::Local argv[], v8::Local* out) { + blink::WebScopedMicrotaskSuppression microtasks_scope; return function->Call(context, recv, argc, argv).ToLocal(out); } -- cgit v1.1