summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/inspector/InjectedScriptHost.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/inspector/InjectedScriptHost.cpp')
-rw-r--r--Source/WebCore/inspector/InjectedScriptHost.cpp128
1 files changed, 47 insertions, 81 deletions
diff --git a/Source/WebCore/inspector/InjectedScriptHost.cpp b/Source/WebCore/inspector/InjectedScriptHost.cpp
index ad4df45..a0bafdf 100644
--- a/Source/WebCore/inspector/InjectedScriptHost.cpp
+++ b/Source/WebCore/inspector/InjectedScriptHost.cpp
@@ -38,7 +38,6 @@
#include "FrameLoader.h"
#include "HTMLFrameOwnerElement.h"
#include "InjectedScript.h"
-#include "InjectedScriptSource.h"
#include "InspectorAgent.h"
#include "InspectorClient.h"
#include "InspectorConsoleAgent.h"
@@ -69,29 +68,40 @@ using namespace std;
namespace WebCore {
-InjectedScriptHost::InjectedScriptHost(InspectorAgent* inspectorAgent)
- : m_inspectorAgent(inspectorAgent)
- , m_nextInjectedScriptId(1)
- , m_lastWorkerId(1 << 31) // Distinguish ids of fake workers from real ones, to minimize the chances they overlap.
+PassRefPtr<InjectedScriptHost> InjectedScriptHost::create()
{
+ return adoptRef(new InjectedScriptHost());
}
-InjectedScriptHost::~InjectedScriptHost()
+InjectedScriptHost::InjectedScriptHost()
+ : m_inspectorAgent(0)
+ , m_consoleAgent(0)
+#if ENABLE(DATABASE)
+ , m_databaseAgent(0)
+#endif
+#if ENABLE(DOM_STORAGE)
+ , m_domStorageAgent(0)
+#endif
+ , m_frontend(0)
+ , m_lastWorkerId(1 << 31) // Distinguish ids of fake workers from real ones, to minimize the chances they overlap.
{
}
-void InjectedScriptHost::inspectImpl(PassRefPtr<InspectorValue> objectId, PassRefPtr<InspectorValue> hints)
+InjectedScriptHost::~InjectedScriptHost()
{
- if (InspectorFrontend* fe = frontend())
- fe->inspector()->inspect(objectId->asObject(), hints->asObject());
}
-void InjectedScriptHost::clearConsoleMessages()
+void InjectedScriptHost::disconnect()
{
- if (m_inspectorAgent) {
- ErrorString error;
- m_inspectorAgent->consoleAgent()->clearConsoleMessages(&error);
- }
+ m_inspectorAgent = 0;
+ m_consoleAgent = 0;
+#if ENABLE(DATABASE)
+ m_databaseAgent = 0;
+#endif
+#if ENABLE(DOM_STORAGE)
+ m_domStorageAgent = 0;
+#endif
+ m_frontend = 0;
}
void InjectedScriptHost::addInspectedNode(Node* node)
@@ -106,12 +116,26 @@ void InjectedScriptHost::clearInspectedNodes()
m_inspectedNodes.clear();
}
+void InjectedScriptHost::inspectImpl(PassRefPtr<InspectorValue> object, PassRefPtr<InspectorValue> hints)
+{
+ if (m_frontend)
+ m_frontend->inspector()->inspect(object->asObject(), hints->asObject());
+}
+
+void InjectedScriptHost::clearConsoleMessages()
+{
+ if (m_consoleAgent) {
+ ErrorString error;
+ m_consoleAgent->clearConsoleMessages(&error);
+ }
+}
+
void InjectedScriptHost::copyText(const String& text)
{
Pasteboard::generalPasteboard()->writePlainText(text);
}
-Node* InjectedScriptHost::inspectedNode(unsigned long num)
+Node* InjectedScriptHost::inspectedNode(unsigned int num)
{
if (num < m_inspectedNodes.size())
return m_inspectedNodes[num].get();
@@ -119,81 +143,23 @@ Node* InjectedScriptHost::inspectedNode(unsigned long num)
}
#if ENABLE(DATABASE)
-long InjectedScriptHost::databaseIdImpl(Database* database)
+int InjectedScriptHost::databaseIdImpl(Database* database)
{
- if (m_inspectorAgent && m_inspectorAgent->databaseAgent())
- return m_inspectorAgent->databaseAgent()->databaseId(database);
+ if (m_databaseAgent)
+ return m_databaseAgent->databaseId(database);
return 0;
}
#endif
#if ENABLE(DOM_STORAGE)
-long InjectedScriptHost::storageIdImpl(Storage* storage)
+int InjectedScriptHost::storageIdImpl(Storage* storage)
{
- if (m_inspectorAgent && m_inspectorAgent->domStorageAgent())
- return m_inspectorAgent->domStorageAgent()->storageId(storage);
+ if (m_domStorageAgent)
+ return m_domStorageAgent->storageId(storage);
return 0;
}
#endif
-InjectedScript InjectedScriptHost::injectedScriptForId(long id)
-{
- return m_idToInjectedScript.get(id);
-}
-
-InjectedScript InjectedScriptHost::injectedScriptForObjectId(InspectorObject* objectId)
-{
- long injectedScriptId = 0;
- bool success = objectId->getNumber("injectedScriptId", &injectedScriptId);
- if (success)
- return injectedScriptForId(injectedScriptId);
- return InjectedScript();
-}
-
-InjectedScript InjectedScriptHost::injectedScriptForMainFrame()
-{
- return injectedScriptFor(mainWorldScriptState(m_inspectorAgent->inspectedPage()->mainFrame()));
-}
-
-void InjectedScriptHost::discardInjectedScripts()
-{
- IdToInjectedScriptMap::iterator end = m_idToInjectedScript.end();
- for (IdToInjectedScriptMap::iterator it = m_idToInjectedScript.begin(); it != end; ++it)
- discardInjectedScript(it->second.scriptState());
- m_idToInjectedScript.clear();
-}
-
-void InjectedScriptHost::releaseObjectGroup(long injectedScriptId, const String& objectGroup)
-{
- if (injectedScriptId) {
- InjectedScript injectedScript = m_idToInjectedScript.get(injectedScriptId);
- if (!injectedScript.hasNoValue())
- injectedScript.releaseObjectGroup(objectGroup);
- } else {
- // Iterate over all injected scripts if injectedScriptId is not specified.
- for (IdToInjectedScriptMap::iterator it = m_idToInjectedScript.begin(); it != m_idToInjectedScript.end(); ++it)
- it->second.releaseObjectGroup(objectGroup);
- }
-}
-
-InspectorFrontend* InjectedScriptHost::frontend()
-{
- if (!m_inspectorAgent)
- return 0;
- return m_inspectorAgent->frontend();
-}
-
-String InjectedScriptHost::injectedScriptSource()
-{
- return String(reinterpret_cast<char*>(InjectedScriptSource_js), sizeof(InjectedScriptSource_js));
-}
-
-pair<long, ScriptObject> InjectedScriptHost::injectScript(const String& source, ScriptState* scriptState)
-{
- long id = m_nextInjectedScriptId++;
- return std::make_pair(id, createInjectedScript(source, scriptState, id));
-}
-
#if ENABLE(WORKERS)
long InjectedScriptHost::nextWorkerId()
{
@@ -203,13 +169,13 @@ long InjectedScriptHost::nextWorkerId()
void InjectedScriptHost::didCreateWorker(long id, const String& url, bool isSharedWorker)
{
if (m_inspectorAgent)
- m_inspectorAgent->didCreateWorker(id, url, isSharedWorker);
+ m_inspectorAgent->didCreateWorker(static_cast<int>(id), url, isSharedWorker);
}
void InjectedScriptHost::didDestroyWorker(long id)
{
if (m_inspectorAgent)
- m_inspectorAgent->didDestroyWorker(id);
+ m_inspectorAgent->didDestroyWorker(static_cast<int>(id));
}
#endif // ENABLE(WORKERS)