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

Unified Diff: third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp

Issue 1940253002: Disallow certain blocking DOM calls during microtask execution. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/tests/results/core/V8TestObject.cpp
diff --git a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
index 77d03b01d6b5d95ba7f39619f07a2ff1c6a1a350..f432cb4c822ed41ab5b697b255cb462e7cc63da5 100644
--- a/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
+++ b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
@@ -8869,6 +8869,69 @@ static void overloadedPerWorldBindingsMethodMethodCallbackForMainWorld(const v8:
TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodForMainWorld(info);
}
+static void notDuringMicrotasksMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ TestObject* impl = V8TestObject::toImpl(info.Holder());
+ impl->notDuringMicrotasks();
+}
+
+static void notDuringMicrotasksMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ if (v8::MicrotasksScope::IsRunningMicrotasks(info.GetIsolate()))
+ return;
+ TestObjectV8Internal::notDuringMicrotasksMethod(info);
+}
+
+static void notDuringMicrotasksOverloaded1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ TestObject* impl = V8TestObject::toImpl(info.Holder());
+ impl->notDuringMicrotasksOverloaded();
+}
+
+static void notDuringMicrotasksOverloaded2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "notDuringMicrotasksOverloaded", "TestObject", info.Holder(), info.GetIsolate());
+ TestObject* impl = V8TestObject::toImpl(info.Holder());
+ int arg;
+ {
+ arg = toInt32(info.GetIsolate(), info[0], NormalConversion, exceptionState);
+ if (exceptionState.throwIfNeeded())
+ return;
+ }
+ impl->notDuringMicrotasksOverloaded(arg);
+}
+
+static void notDuringMicrotasksOverloadedMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ ExceptionState exceptionState(ExceptionState::ExecutionContext, "notDuringMicrotasksOverloaded", "TestObject", info.Holder(), info.GetIsolate());
+ switch (std::min(1, info.Length())) {
+ case 0:
+ if (true) {
+ if (v8::MicrotasksScope::IsRunningMicrotasks(info.GetIsolate()))
+ return;
+ notDuringMicrotasksOverloaded1Method(info);
+ return;
+ }
+ break;
+ case 1:
+ if (true) {
+ notDuringMicrotasksOverloaded2Method(info);
+ return;
+ }
+ break;
+ default:
+ break;
+ }
+ exceptionState.throwTypeError("No function was found that matched the signature provided.");
+ exceptionState.throwIfNeeded();
+ return;
+}
+
+static void notDuringMicrotasksOverloadedMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ TestObjectV8Internal::notDuringMicrotasksOverloadedMethod(info);
+}
+
static void overloadedStaticMethod1Method(const v8::FunctionCallbackInfo<v8::Value>& info)
{
ExceptionState exceptionState(ExceptionState::ExecutionContext, "overloadedStaticMethod", "TestObject", info.Holder(), info.GetIsolate());
@@ -11788,6 +11851,8 @@ const V8DOMConfiguration::MethodConfiguration V8TestObjectMethods[] = {
{"overloadedMethodL", TestObjectV8Internal::overloadedMethodLMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
{"promiseOverloadMethod", TestObjectV8Internal::promiseOverloadMethodMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
{"overloadedPerWorldBindingsMethod", TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallback, TestObjectV8Internal::overloadedPerWorldBindingsMethodMethodCallbackForMainWorld, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
+ {"notDuringMicrotasks", TestObjectV8Internal::notDuringMicrotasksMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
+ {"notDuringMicrotasksOverloaded", TestObjectV8Internal::notDuringMicrotasksOverloadedMethodCallback, 0, 0, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
{"overloadedStaticMethod", TestObjectV8Internal::overloadedStaticMethodMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInterface},
{"item", TestObjectV8Internal::itemMethodCallback, 0, 1, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},
{"setItem", TestObjectV8Internal::setItemMethodCallback, 0, 2, v8::None, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnPrototype},

Powered by Google App Engine
This is Rietveld 408576698