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

Unified Diff: Source/bindings/v8/ScriptController.cpp

Issue 13954010: Eliminate "temporary" and "uninitialized" isolated worlds (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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: Source/bindings/v8/ScriptController.cpp
diff --git a/Source/bindings/v8/ScriptController.cpp b/Source/bindings/v8/ScriptController.cpp
index ce0296f9a823bdfed28bd07a1d13eb5f7caf0a83..6b7638f718443018a8e432729b2ae55ce79c3463 100644
--- a/Source/bindings/v8/ScriptController.cpp
+++ b/Source/bindings/v8/ScriptController.cpp
@@ -326,13 +326,6 @@ bool ScriptController::initializeMainWorld()
return windowShell(mainThreadNormalWorld())->isContextInitialized();
}
-// FIXME: Remove this function. There is currently an issue with the inspector related to the call to dispatchDidClearWindowObjectInWorld in ScriptController::windowShell.
-static DOMWrapperWorld* existingWindowShellWorkaroundWorld()
-{
- DEFINE_STATIC_LOCAL(RefPtr<DOMWrapperWorld>, world, (DOMWrapperWorld::createUninitializedWorld()));
- return world.get();
-}
-
V8DOMWindowShell* ScriptController::existingWindowShell(DOMWrapperWorld* world)
{
ASSERT(world);
@@ -341,10 +334,8 @@ V8DOMWindowShell* ScriptController::existingWindowShell(DOMWrapperWorld* world)
return m_windowShell->isContextInitialized() ? m_windowShell.get() : 0;
// FIXME: Remove this block. See comment with existingWindowShellWorkaroundWorld().
- if (world->worldId() == DOMWrapperWorld::uninitializedWorldId) {
- ASSERT(world == existingWindowShellWorkaroundWorld());
+ if (world == existingWindowShellWorkaroundWorld())
return m_windowShell.get();
- }
IsolatedWorldMap::iterator iter = m_isolatedWorlds.find(world->worldId());
if (iter == m_isolatedWorlds.end())
@@ -381,10 +372,7 @@ V8DOMWindowShell* ScriptController::windowShell(DOMWrapperWorld* world)
void ScriptController::evaluateInIsolatedWorld(int worldID, const Vector<ScriptSourceCode>& sources, int extensionGroup, Vector<ScriptValue>* results)
{
- // Except in the test runner, worldID should be non 0 as it conflicts with the mainWorldId.
- // FIXME: Change the test runner to perform this swap and make this an ASSERT.
- if (UNLIKELY(!worldID))
- worldID = DOMWrapperWorld::uninitializedWorldId;
+ ASSERT(worldID > 0);
v8::HandleScope handleScope;
v8::Local<v8::Array> v8Results;
@@ -407,12 +395,6 @@ void ScriptController::evaluateInIsolatedWorld(int worldID, const Vector<ScriptS
resultArray->Set(i, evaluationResult);
}
- // Mark temporary shell for weak destruction.
- if (worldID == DOMWrapperWorld::uninitializedWorldId) {
- isolatedWorldShell->destroyIsolatedShell();
- m_isolatedWorlds.remove(world->worldId());
- }
-
v8Results = evaluateHandleScope.Close(resultArray);
}
@@ -463,10 +445,6 @@ v8::Local<v8::Context> ScriptController::currentWorldContext()
if (m_frame == frame)
return v8::Local<v8::Context>::New(context);
- // FIXME: Need to handle weak isolated worlds correctly.
- if (isolatedWorld->createdFromUnitializedWorld())
- return v8::Local<v8::Context>();
-
return contextForWorld(this, isolatedWorld);
}
« Source/bindings/v8/DOMWrapperWorld.cpp ('K') | « Source/bindings/v8/ScriptController.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698