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

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

Issue 1858613002: bindings: Makes the window object be the inner global object. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Synced. 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/core/v8/V8PerIsolateData.cpp
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp
index 69683686c9f09e1dff962ddd34532b6c2f53579a..ba7f6884c1bacf44155274e5c5c4980a0d6b8854 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.cpp
@@ -52,8 +52,53 @@ static void microtasksCompletedCallback(v8::Isolate* isolate)
V8PerIsolateData::from(isolate)->runEndOfScopeTasks();
}
-static void useCounterCallback(v8::Isolate* isolate, v8::Isolate::UseCounterFeature feature)
+V8PerIsolateData::V8PerIsolateData()
+ : m_isolateHolder(adoptPtr(new gin::IsolateHolder()))
+ , m_stringCache(adoptPtr(new StringCache(isolate())))
+ , m_hiddenValue(V8HiddenValue::create())
+ , m_constructorMode(ConstructorMode::CreateNewObject)
+ , m_useCounterDisabled(false)
+ , m_isHandlingRecursionLevelError(false)
+ , m_isReportingException(false)
+{
+ // FIXME: Remove once all v8::Isolate::GetCurrent() calls are gone.
+ isolate()->Enter();
+ isolate()->AddBeforeCallEnteredCallback(&beforeCallEnteredCallback);
+ isolate()->AddMicrotasksCompletedCallback(&microtasksCompletedCallback);
+ if (isMainThread())
+ mainThreadPerIsolateData = this;
+ isolate()->SetUseCounterCallback(&useCounterCallback);
+}
+
+V8PerIsolateData::~V8PerIsolateData()
+{
+}
+
+v8::Isolate* V8PerIsolateData::mainThreadIsolate()
{
+ ASSERT(isMainThread());
+ ASSERT(mainThreadPerIsolateData);
+ return mainThreadPerIsolateData->isolate();
+}
+
+v8::Isolate* V8PerIsolateData::initialize()
+{
+ V8PerIsolateData* data = new V8PerIsolateData();
+ v8::Isolate* isolate = data->isolate();
+ isolate->SetData(gin::kEmbedderBlink, data);
+ return isolate;
+}
+
+void V8PerIsolateData::enableIdleTasks(v8::Isolate* isolate, PassOwnPtr<gin::V8IdleTaskRunner> taskRunner)
+{
+ from(isolate)->m_isolateHolder->EnableIdleTasks(std::unique_ptr<gin::V8IdleTaskRunner>(taskRunner.leakPtr()));
+}
+
+void V8PerIsolateData::useCounterCallback(v8::Isolate* isolate, v8::Isolate::UseCounterFeature feature)
+{
+ if (V8PerIsolateData::from(isolate)->m_useCounterDisabled)
+ return;
+
UseCounter::Feature blinkFeature;
bool deprecated = false;
switch (feature) {
@@ -129,47 +174,6 @@ static void useCounterCallback(v8::Isolate* isolate, v8::Isolate::UseCounterFeat
UseCounter::count(currentExecutionContext(isolate), blinkFeature);
}
-V8PerIsolateData::V8PerIsolateData()
- : m_isolateHolder(adoptPtr(new gin::IsolateHolder()))
- , m_stringCache(adoptPtr(new StringCache(isolate())))
- , m_hiddenValue(V8HiddenValue::create())
- , m_constructorMode(ConstructorMode::CreateNewObject)
- , m_isHandlingRecursionLevelError(false)
- , m_isReportingException(false)
-{
- // FIXME: Remove once all v8::Isolate::GetCurrent() calls are gone.
- isolate()->Enter();
- isolate()->AddBeforeCallEnteredCallback(&beforeCallEnteredCallback);
- isolate()->AddMicrotasksCompletedCallback(&microtasksCompletedCallback);
- if (isMainThread())
- mainThreadPerIsolateData = this;
- isolate()->SetUseCounterCallback(&useCounterCallback);
-}
-
-V8PerIsolateData::~V8PerIsolateData()
-{
-}
-
-v8::Isolate* V8PerIsolateData::mainThreadIsolate()
-{
- ASSERT(isMainThread());
- ASSERT(mainThreadPerIsolateData);
- return mainThreadPerIsolateData->isolate();
-}
-
-v8::Isolate* V8PerIsolateData::initialize()
-{
- V8PerIsolateData* data = new V8PerIsolateData();
- v8::Isolate* isolate = data->isolate();
- isolate->SetData(gin::kEmbedderBlink, data);
- return isolate;
-}
-
-void V8PerIsolateData::enableIdleTasks(v8::Isolate* isolate, PassOwnPtr<gin::V8IdleTaskRunner> taskRunner)
-{
- from(isolate)->m_isolateHolder->EnableIdleTasks(std::unique_ptr<gin::V8IdleTaskRunner>(taskRunner.leakPtr()));
-}
-
v8::Persistent<v8::Value>& V8PerIsolateData::ensureLiveRoot()
{
if (m_liveRoot.isEmpty())

Powered by Google App Engine
This is Rietveld 408576698