Index: third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp |
diff --git a/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp b/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp |
index 106f9d359a1550d98dddc8b8e51e0a908a22a18f..38ec443a8b96ecdaf21445cd1a133079d32e0aa1 100644 |
--- a/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp |
+++ b/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp |
@@ -257,6 +257,7 @@ void DOMWrapperWorld::WeakCallbackForDOMObjectHolder( |
holder_base->World()->UnregisterDOMObjectHolder(holder_base); |
} |
+// static |
int DOMWrapperWorld::GenerateWorldIdForType(WorldType world_type) { |
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, next_world_id, |
new ThreadSpecific<int>); |
@@ -283,6 +284,21 @@ int DOMWrapperWorld::GenerateWorldIdForType(WorldType world_type) { |
return kInvalidWorldId; |
} |
+// static |
+int DOMWrapperWorld::GetNextDevToolsIsolatedWorldId() { |
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, |
pfeldman
2017/05/05 15:40:24
DCHECK(isMainThread()) + simpler static local inst
alex clarke (OOO till 29th)
2017/05/05 19:29:44
Done.
|
+ next_devtools_isolated_world_id, |
+ new ThreadSpecific<int>); |
+ |
+ if (!next_devtools_isolated_world_id.IsSet()) |
+ *next_devtools_isolated_world_id = WorldId::kDevToolsFirstIsolatedWorldId; |
+ int world_id = *next_devtools_isolated_world_id; |
+ if (world_id > WorldId::kDevToolsLastIsolatedWorldId) |
+ return WorldId::kInvalidWorldId; |
+ *next_devtools_isolated_world_id = world_id + 1; |
+ return world_id; |
+} |
+ |
void DOMWrapperWorld::DissociateDOMWindowWrappersInAllWorlds( |
ScriptWrappable* script_wrappable) { |
DCHECK(script_wrappable); |