summaryrefslogtreecommitdiffstats
path: root/WebCore/inspector/InspectorController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/inspector/InspectorController.cpp')
-rw-r--r--WebCore/inspector/InspectorController.cpp85
1 files changed, 27 insertions, 58 deletions
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index 3035d4e..c3351e5 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -61,9 +61,7 @@
#include "ResourceRequest.h"
#include "ResourceResponse.h"
#include "ScriptCallStack.h"
-#include "ScriptFunctionCall.h"
#include "ScriptObject.h"
-#include "ScriptObjectQuarantine.h"
#include "ScriptString.h"
#include "SecurityOrigin.h"
#include "Settings.h"
@@ -127,7 +125,6 @@ InspectorController::InspectorController(Page* page, InspectorClient* client)
, m_resourceTrackingEnabled(false)
, m_resourceTrackingSettingsLoaded(false)
, m_inspectorBackend(InspectorBackend::create(this, client))
- , m_lastBoundObjectId(1)
#if ENABLE(JAVASCRIPT_DEBUGGER)
, m_debuggerEnabled(false)
, m_attachDebuggerWhenShown(false)
@@ -273,8 +270,7 @@ void InspectorController::focusNode()
ASSERT(m_frontend);
ASSERT(m_nodeToFocus);
- long id = m_domAgent->pushNodePathToFrontend(m_nodeToFocus.get());
- m_frontend->updateFocusedNode(id);
+ m_frontend->updateFocusedNode(m_nodeToFocus.get());
m_nodeToFocus = 0;
}
@@ -382,15 +378,12 @@ void InspectorController::addConsoleMessage(ScriptState* scriptState, ConsoleMes
m_previousMessage->addToConsole(m_frontend.get());
}
-void InspectorController::clearConsoleMessages(bool clearUI)
+void InspectorController::clearConsoleMessages()
{
deleteAllValues(m_consoleMessages);
m_consoleMessages.clear();
m_previousMessage = 0;
m_groupLevel = 0;
- m_idToConsoleObject.clear();
- if (clearUI && m_frontend)
- m_frontend->clearConsoleMessages();
}
void InspectorController::startGroup(MessageSource source, ScriptCallStack* callStack)
@@ -499,6 +492,14 @@ void InspectorController::handleMousePressOnNode(Node* node)
inspect(node);
}
+void InspectorController::inspectedWindowScriptObjectCleared(Frame* frame)
+{
+ if (!enabled() || !m_frontend)
+ return;
+
+ m_frontend->inspectedWindowScriptObjectCleared(frame);
+}
+
void InspectorController::windowScriptObjectAvailable()
{
if (!m_page || !enabled())
@@ -510,7 +511,7 @@ void InspectorController::windowScriptObjectAvailable()
ScriptGlobalObject::set(m_scriptState, "InspectorController", m_inspectorBackend.get());
}
-void InspectorController::scriptObjectReady()
+void InspectorController::scriptObjectReady(bool enableDOMAgent)
{
ASSERT(m_scriptState);
if (!m_scriptState)
@@ -519,10 +520,9 @@ void InspectorController::scriptObjectReady()
ScriptObject webInspectorObj;
if (!ScriptGlobalObject::get(m_scriptState, "WebInspector", webInspectorObj))
return;
- ScriptObject injectedScriptObj;
- if (!ScriptGlobalObject::get(m_scriptState, "InjectedScript", injectedScriptObj))
- return;
- setFrontendProxyObject(m_scriptState, webInspectorObj, injectedScriptObj);
+ setFrontendProxyObject(m_scriptState, webInspectorObj);
+ if (enableDOMAgent)
+ m_domAgent = new InspectorDOMAgent(m_frontend.get());
#if ENABLE(JAVASCRIPT_DEBUGGER)
Setting debuggerEnabled = setting(debuggerEnabledSettingName);
@@ -539,12 +539,9 @@ void InspectorController::scriptObjectReady()
m_client->inspectorWindowObjectCleared();
}
-void InspectorController::setFrontendProxyObject(ScriptState* scriptState, ScriptObject webInspectorObj, ScriptObject injectedScriptObj)
+void InspectorController::setFrontendProxyObject(ScriptState* scriptState, ScriptObject webInspectorObj)
{
- m_scriptState = scriptState;
- m_injectedScriptObj = injectedScriptObj;
- m_frontend.set(new InspectorFrontend(this, scriptState, webInspectorObj));
- m_domAgent = new InspectorDOMAgent(m_frontend.get());
+ m_frontend.set(new InspectorFrontend(scriptState, webInspectorObj));
}
void InspectorController::show()
@@ -598,8 +595,10 @@ void InspectorController::close()
closeWindow();
m_frontend.set(0);
- m_injectedScriptObj = ScriptObject();
- m_domAgent = 0;
+ if (m_domAgent) {
+ m_domAgent->setDocument(0);
+ m_domAgent = 0;
+ }
m_scriptState = 0;
}
@@ -650,8 +649,8 @@ void InspectorController::populateScriptObjects()
(*it)->bind(m_frontend.get());
#endif
- if (m_domAgent->setDocument(m_inspectedPage->mainFrame()->document()))
- resetInjectedScript();
+ if (m_domAgent)
+ m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
m_frontend->populateInterface();
}
@@ -707,7 +706,7 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
if (loader->frame() == m_inspectedPage->mainFrame()) {
m_client->inspectedURLChanged(loader->url().string());
- clearConsoleMessages(false);
+ clearConsoleMessages();
m_times.clear();
m_counts.clear();
@@ -726,7 +725,7 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
if (windowVisible()) {
resetScriptObjects();
- if (!loader->frameLoader()->isLoadingFromCachedPage()) {
+ if (!loader->isLoadingFromCachedPage()) {
ASSERT(m_mainResource && m_mainResource->isSameLoader(loader));
// We don't add the main resource until its load is committed. This is
// needed to keep the load for a user-entered URL from showing up in the
@@ -741,8 +740,8 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
}
}
- if (m_domAgent && m_domAgent->setDocument(m_inspectedPage->mainFrame()->document()))
- resetInjectedScript();
+ if (m_domAgent)
+ m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
}
for (Frame* frame = loader->frame(); frame; frame = frame->tree()->traverseNext(loader->frame()))
@@ -860,7 +859,7 @@ void InspectorController::identifierForInitialRequest(unsigned long identifier,
addResource(resource.get());
- if (windowVisible() && loader->frameLoader()->isLoadingFromCachedPage() && resource == m_mainResource)
+ if (windowVisible() && loader->isLoadingFromCachedPage() && resource == m_mainResource)
resource->createScriptObject(m_frontend.get());
}
@@ -1479,34 +1478,4 @@ InspectorController::SpecialPanels InspectorController::specialPanelForJSName(co
return ElementsPanel;
}
-ScriptValue InspectorController::wrapObject(const ScriptValue& quarantinedObject)
-{
- if (quarantinedObject.isObject()) {
- long id = m_lastBoundObjectId++;
- String objectId = String::format("object#%ld", id);
- m_idToConsoleObject.set(objectId, quarantinedObject);
-
- ScriptFunctionCall function(m_scriptState, m_injectedScriptObj, "createProxyObject");
- function.appendArgument(quarantinedObject);
- function.appendArgument(objectId);
- ScriptValue wrapper = function.call();
- return wrapper;
- }
- return quarantinedObject;
-}
-
-ScriptValue InspectorController::unwrapObject(const String& objectId)
-{
- HashMap<String, ScriptValue>::iterator it = m_idToConsoleObject.find(objectId);
- if (it != m_idToConsoleObject.end())
- return it->second;
- return ScriptValue();
-}
-
-void InspectorController::resetInjectedScript()
-{
- ScriptFunctionCall function(m_scriptState, m_injectedScriptObj, "reset");
- function.call();
-}
-
} // namespace WebCore