Index: Source/web/InspectorFrontendClientImpl.cpp |
diff --git a/Source/web/InspectorFrontendClientImpl.cpp b/Source/web/InspectorFrontendClientImpl.cpp |
index c5ebdab8cd9228fbc98b564c8ff0f7f484c8d0a6..21076b4e13587d8e7598e6a9e7a1a25c15eeeb72 100644 |
--- a/Source/web/InspectorFrontendClientImpl.cpp |
+++ b/Source/web/InspectorFrontendClientImpl.cpp |
@@ -74,6 +74,27 @@ void InspectorFrontendClientImpl::windowObjectCleared() |
v8::Handle<v8::Object> global = frameContext->Global(); |
global->Set(v8::String::New("InspectorFrontendHost"), frontendHostObj); |
+ |
+ ScriptController* scriptController = m_frontendPage->mainFrame() ? m_frontendPage->mainFrame()->script() : 0; |
+ if (scriptController) { |
+ String installLegacyOverrides = |
+ "(function(host) {" |
+ " function dispatch(oldImpl, methodName) {" |
+ " var argsArray = Array.prototype.slice.call(arguments, 2);" |
+ " var message = {'method': methodName};" |
+ " if (argsArray.length)" |
+ " message.params = argsArray;" |
+ " this.sendMessageToFrontendHost(JSON.stringify(message));" |
+ " oldImpl.apply(this, argsArray);" |
pfeldman
2013/08/23 11:20:27
if (oldImpl)
Vladislav Kaznacheev
2013/08/23 13:05:04
Done.
|
+ " };" |
+ " var legacyMethods = ['requestSetDockSide', 'closeWindow', 'bringToFront', 'setAttachedWindowHeight', 'moveWindowBy', 'openInNewTab'," |
pfeldman
2013/08/23 11:20:27
Lets generate this list as JSONArray of method nam
|
+ " 'save', 'append', 'requestFileSystems', 'addFileSystem', 'removeFileSystem', 'indexPath', 'stopIndexing', 'searchInPath' ];" |
+ " legacyMethods.forEach(function(methodName) {" |
+ " host[methodName] = dispatch.bind(host, host[method], methodName);" |
pfeldman
2013/08/23 11:20:27
methodName
Vladislav Kaznacheev
2013/08/23 13:05:04
Done.
|
+ " });" |
+ "})(InspectorFrontendHost);"; |
+ scriptController->executeScriptInMainWorld(ScriptSourceCode(installLegacyOverrides)); |
+ } |
} |
void InspectorFrontendClientImpl::moveWindowBy(float x, float y) |
@@ -132,6 +153,11 @@ void InspectorFrontendClientImpl::sendMessageToBackend(const String& message) |
m_client->sendMessageToBackend(message); |
} |
+void InspectorFrontendClientImpl::sendMessageToFrontendHost(const String& message) |
+{ |
+ m_client->sendMessageToFrontendHost(message); |
+} |
+ |
void InspectorFrontendClientImpl::requestFileSystems() |
{ |
m_client->requestFileSystems(); |