summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h')
-rw-r--r--chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h b/chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
index 656083c7377..ae44c6d23d8 100644
--- a/chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
+++ b/chromium/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
@@ -7,6 +7,7 @@
#include "base/auto_reset.h"
#include "base/macros.h"
+#include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/allocator.h"
#include "third_party/blink/renderer/platform/wtf/stack_util.h"
@@ -41,7 +42,11 @@ class PLATFORM_EXPORT ScriptForbiddenScope final {
return GetMutableCounter() > 0;
}
- // DO NOT USE THESE FUNCTIONS FROM OUTSIDE OF THIS CLASS.
+ static void ThrowScriptForbiddenException(v8::Isolate* isolate) {
+ V8ThrowException::ThrowError(isolate, "Script execution is forbidden.");
+ }
+
+ private:
static void Enter() {
if (LIKELY(!WTF::MayNotBeMainThread())) {
++g_main_thread_counter_;
@@ -58,9 +63,11 @@ class PLATFORM_EXPORT ScriptForbiddenScope final {
}
}
- private:
static unsigned& GetMutableCounter();
static unsigned g_main_thread_counter_;
+
+ // V8GCController is exceptionally allowed to call Enter/Exit.
+ friend class V8GCController;
};
} // namespace blink