summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/SharedWorkerRepository.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/SharedWorkerRepository.cpp')
-rw-r--r--WebKit/chromium/src/SharedWorkerRepository.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/WebKit/chromium/src/SharedWorkerRepository.cpp b/WebKit/chromium/src/SharedWorkerRepository.cpp
index c803aac..88d3ec5 100644
--- a/WebKit/chromium/src/SharedWorkerRepository.cpp
+++ b/WebKit/chromium/src/SharedWorkerRepository.cpp
@@ -36,6 +36,7 @@
#include "Event.h"
#include "EventNames.h"
+#include "InspectorController.h"
#include "MessagePortChannel.h"
#include "PlatformMessagePortChannel.h"
#include "ScriptExecutionContext.h"
@@ -69,7 +70,9 @@ public:
, m_name(name)
, m_webWorker(webWorker)
, m_port(port)
+ , m_scriptLoader(ResourceRequestBase::TargetIsSharedWorker)
, m_loading(false)
+ , m_responseAppCacheID(0)
{
}
@@ -79,6 +82,7 @@ public:
private:
// WorkerScriptLoaderClient callback
+ virtual void didReceiveResponse(const ResourceResponse&);
virtual void notifyFinished();
virtual void connected();
@@ -94,6 +98,7 @@ private:
OwnPtr<MessagePortChannel> m_port;
WorkerScriptLoader m_scriptLoader;
bool m_loading;
+ long long m_responseAppCacheID;
};
static Vector<SharedWorkerScriptLoader*>& pendingLoaders()
@@ -146,14 +151,23 @@ static WebMessagePortChannel* getWebPort(PassOwnPtr<MessagePortChannel> port)
return webPort;
}
+void SharedWorkerScriptLoader::didReceiveResponse(const ResourceResponse& response)
+{
+ m_responseAppCacheID = response.appCacheID();
+}
+
void SharedWorkerScriptLoader::notifyFinished()
{
if (m_scriptLoader.failed()) {
m_worker->dispatchEvent(Event::create(eventNames().errorEvent, false, true));
delete this;
} else {
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspector = m_worker->scriptExecutionContext()->inspectorController())
+ inspector->scriptImported(m_scriptLoader.identifier(), m_scriptLoader.script());
+#endif
// Pass the script off to the worker, then send a connect event.
- m_webWorker->startWorkerContext(m_url, m_name, m_worker->scriptExecutionContext()->userAgent(m_url), m_scriptLoader.script());
+ m_webWorker->startWorkerContext(m_url, m_name, m_worker->scriptExecutionContext()->userAgent(m_url), m_scriptLoader.script(), m_responseAppCacheID);
sendConnect();
}
}
@@ -206,7 +220,7 @@ void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr
// The loader object manages its own lifecycle (and the lifecycles of the two worker objects).
// It will free itself once loading is completed.
- SharedWorkerScriptLoader* loader = new SharedWorkerScriptLoader(worker, url, name, port.release(), webWorker.release());
+ SharedWorkerScriptLoader* loader = new SharedWorkerScriptLoader(worker, url, name, port, webWorker.release());
loader->load();
}