Changeset 61113 in webkit
- Timestamp:
- Jun 14, 2010 5:32:43 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r61112 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * inspector/InspectorClient.h: 13 * inspector/InspectorController.cpp: 14 (WebCore::InspectorController::connectFrontend): 15 (WebCore::InspectorController::disconnectFrontend): 16 * inspector/InspectorController.h: 17 * inspector/InspectorFrontend.cpp: 18 (WebCore::InspectorFrontend::InspectorFrontend): 19 * inspector/InspectorFrontend.h: 20 * inspector/InspectorFrontendClientLocal.cpp: 21 (WebCore::InspectorFrontendClientLocal::frontendLoaded): 22 * inspector/InspectorValues.cpp: 23 (WebCore::InspectorObject::writeJSON): 24 * inspector/front-end/inspector.js: 25 (WebInspector.dispatchMessageToFrontend): 26 * loader/EmptyClients.h: 27 (WebCore::EmptyInspectorClient::sendMessageToFrontend): 28 1 29 2010-06-14 Jeremy Orlow <jorlow@chromium.org> 2 30 -
trunk/WebCore/inspector/InspectorClient.h
r60895 r61113 49 49 virtual void populateSetting(const String& key, String* value) = 0; 50 50 virtual void storeSetting(const String& key, const String& value) = 0; 51 52 virtual bool sendMessageToFrontend(const String& message) = 0; 51 53 }; 52 54 -
trunk/WebCore/inspector/InspectorController.cpp
r61014 r61113 432 432 } 433 433 434 void InspectorController::setFrontend(PassOwnPtr<InspectorFrontend> frontend) 435 { 436 ASSERT(frontend); 434 void InspectorController::connectFrontend(const ScriptObject& webInspector) 435 { 437 436 m_openingFrontend = false; 438 m_frontend = frontend;437 m_frontend = new InspectorFrontend(webInspector, m_client); 439 438 releaseDOMAgent(); 440 439 m_domAgent = InspectorDOMAgent::create(m_cssStore.get(), m_frontend.get()); -
trunk/WebCore/inspector/InspectorController.h
r61014 r61113 137 137 void showPanel(SpecialPanels); 138 138 void close(); 139 140 // We are in transition from JS transport via webInspector to native 141 // transport via InspectorClient. After migration, webInspector parameter should 142 // be removed. 143 void connectFrontend(const ScriptObject& webInspector); 139 144 void disconnectFrontend(); 140 145 … … 154 159 155 160 bool windowVisible(); 156 void setFrontend(PassOwnPtr<InspectorFrontend>);157 161 158 162 void didCommitLoad(DocumentLoader*); -
trunk/WebCore/inspector/InspectorFrontend.cpp
r61014 r61113 37 37 #include "InjectedScript.h" 38 38 #include "InjectedScriptHost.h" 39 #include "InspectorClient.h" 39 40 #include "InspectorController.h" 40 41 #include "InspectorWorkerResource.h" … … 50 51 namespace WebCore { 51 52 52 InspectorFrontend::InspectorFrontend(ScriptObject webInspector )53 InspectorFrontend::InspectorFrontend(ScriptObject webInspector, InspectorClient* inspectorClient) 53 54 : m_webInspector(webInspector) 55 , m_inspectorClient(inspectorClient) 54 56 { 55 57 } -
trunk/WebCore/inspector/InspectorFrontend.h
r61014 r61113 31 31 #define InspectorFrontend_h 32 32 33 #include "InspectorValues.h" 33 34 #include "ScriptArray.h" 34 35 #include "ScriptObject.h" … … 40 41 class Database; 41 42 class Frame; 43 class InspectorClient; 42 44 class InspectorResource; 45 class InspectorWorkerResource; 43 46 class Node; 44 47 class ScriptString; 45 48 class SerializedScriptValue; 46 49 class Storage; 47 class InspectorWorkerResource;48 50 49 51 class InspectorFrontend : public Noncopyable { 50 52 public: 51 InspectorFrontend(ScriptObject webInspector); 53 // We are in transition from JS transport via webInspector to native 54 // transport via inspectorClient. After migration, webInspector parameter should 55 // be removed. 56 InspectorFrontend(ScriptObject webInspector, InspectorClient* inspectorClient); 52 57 ~InspectorFrontend(); 53 58 … … 174 179 void callSimpleFunction(const String& functionName); 175 180 ScriptObject m_webInspector; 181 InspectorClient* m_inspectorClient; 176 182 }; 177 183 -
trunk/WebCore/inspector/InspectorFrontendClientLocal.cpp
r60895 r61113 90 90 return; 91 91 } 92 m_inspectorController-> setFrontend(new InspectorFrontend(webInspectorObj));92 m_inspectorController->connectFrontend(webInspectorObj); 93 93 } 94 94 -
trunk/WebCore/inspector/InspectorValues.cpp
r60895 r61113 626 626 Dictionary::const_iterator it = m_data.find(m_order[i]); 627 627 ASSERT(it != m_data.end()); 628 if (i t != m_data.begin())628 if (i) 629 629 output->append(','); 630 630 doubleQuoteString(it->first, output); -
trunk/WebCore/inspector/front-end/inspector.js
r61014 r61113 573 573 setTimeout(delayDispatch, 0); 574 574 } 575 576 WebInspector.dispatchMessageFromBackend = function(arguments) 577 { 578 var methodName = arguments.shift(); 579 WebInspector[methodName].apply(this, arguments); 580 } 581 575 582 576 583 WebInspector.windowResize = function(event) -
trunk/WebCore/loader/EmptyClients.h
r60895 r61113 487 487 virtual void populateSetting(const String&, String*) { } 488 488 virtual void storeSetting(const String&, const String&) { } 489 virtual bool sendMessageToFrontend(const String&) { return false; } 489 490 }; 490 491 -
trunk/WebKit/ChangeLog
r60895 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * efl/WebCoreSupport/InspectorClientEfl.cpp: 13 (WebCore::InspectorClientEfl::sendMessageToFrontend): 14 * efl/WebCoreSupport/InspectorClientEfl.h: 15 1 16 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> 2 17 -
trunk/WebKit/cf/ChangeLog
r60895 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebCoreSupport/WebInspectorClientCF.cpp: 13 (WebInspectorClient::releaseFrontendPage): 14 (WebInspectorClient::sendMessageToFrontend): 15 1 16 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> 2 17 -
trunk/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
r60895 r61113 54 54 #include <CoreFoundation/CoreFoundation.h> 55 55 56 #include <WebCore/Frame.h> 57 #include <WebCore/Page.h> 56 58 #include <WebCore/PlatformString.h> 57 59 … … 93 95 CFPreferencesSetAppValue(preferencesKey.get(), objectToStore.get(), kCFPreferencesCurrentApplication); 94 96 } 97 98 void WebInspectorClient::releaseFrontendPage() 99 { 100 m_frontendPage = 0; 101 } 102 103 bool WebInspectorClient::sendMessageToFrontend(const String& message) 104 { 105 if (!m_frontendPage) 106 return false; 107 108 Frame* frame = m_frontendPage->mainFrame(); 109 if (!frame) 110 return false; 111 112 ScriptController* scriptController = frame->script(); 113 if (!scriptController) 114 return false; 115 116 String dispatchToFrontend("WebInspector.dispatchMessageFromBackend("); 117 dispatchToFrontend += message; 118 dispatchToFrontend += ");"; 119 scriptController->executeScript(dispatchToFrontend); 120 return true; 121 } -
trunk/WebKit/chromium/ChangeLog
r61097 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * src/InspectorClientImpl.cpp: 13 (WebKit::InspectorClientImpl::sendMessageToFrontend): 14 * src/InspectorClientImpl.h: 15 * src/WebDevToolsAgentImpl.cpp: 16 (WebKit::WebDevToolsAgentImpl::setInspectorFrontendProxyToInspectorController): 17 1 18 2010-06-13 Tony Chang <tony@chromium.org> 2 19 -
trunk/WebKit/chromium/src/InspectorClientImpl.cpp
r60895 r61113 36 36 #include "NotImplemented.h" 37 37 #include "Page.h" 38 #include "WebDevToolsAgentImpl.h" 39 #include "WebDevToolsMessageData.h" 38 40 #include "WebRect.h" 39 41 #include "WebURL.h" … … 103 105 } 104 106 107 bool InspectorClientImpl::sendMessageToFrontend(const WebCore::String& message) 108 { 109 WebDevToolsAgentImpl* devToolsAgent = static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent()); 110 if (!devToolsAgent) 111 return false; 112 113 WebVector<WebString> arguments(size_t(1)); 114 arguments[0] = message; 115 WebDevToolsMessageData data; 116 data.className = "ToolsAgentDelegate"; 117 data.methodName = "dispatchOnClient"; 118 data.arguments.swap(arguments); 119 devToolsAgent->sendRpcMessage(data); 120 return true; 121 } 122 105 123 } // namespace WebKit -
trunk/WebKit/chromium/src/InspectorClientImpl.h
r60895 r61113 37 37 38 38 namespace WebKit { 39 40 class WebDevToolsAgentClient; 39 41 class WebViewImpl; 40 42 … … 47 49 virtual void inspectorDestroyed(); 48 50 virtual void openInspectorFrontend(WebCore::InspectorController*); 51 49 52 virtual void highlight(WebCore::Node*); 50 53 virtual void hideHighlight(); 51 virtual void populateSetting(52 const WebCore::String& key,53 WebCore::String* value);54 virtual void storeSetting(55 const WebCore::String& key,56 const WebCore::String& value);57 54 55 virtual void populateSetting(const WebCore::String& key, WebCore::String* value); 56 virtual void storeSetting(const WebCore::String& key, const WebCore::String& value); 57 58 virtual bool sendMessageToFrontend(const WebCore::String&); 58 59 private: 59 60 -
trunk/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
r60895 r61113 476 476 v8::Local<v8::Context>::New(m_utilityContext)); 477 477 InspectorController* ic = inspectorController(); 478 ic->setFrontend(new InspectorFrontend( 479 ScriptObject(state, m_utilityContext->Global()))); 478 ic->connectFrontend(ScriptObject(state, m_utilityContext->Global())); 480 479 } 481 480 -
trunk/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp
r60895 r61113 59 59 } 60 60 61 bool InspectorClientEfl::sendMessageToFrontend(const String&) 62 { 63 notImpelemented(); 64 return false; 61 65 } 66 67 68 } -
trunk/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
r60895 r61113 51 51 virtual void populateSetting(const String& key, String* value); 52 52 virtual void storeSetting(const String& key, const String& value); 53 54 virtual bool sendMessageToFrontend(const String&); 53 55 }; 54 56 } -
trunk/WebKit/gtk/ChangeLog
r60947 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebCoreSupport/InspectorClientGtk.cpp: 13 (WebKit::InspectorClient::releaseFrontendPage): 14 (WebKit::InspectorClient::sendMessageToFrontend): 15 * WebCoreSupport/InspectorClientGtk.h: 16 1 17 2010-06-10 Eric Seidel <eric@webkit.org> 2 18 -
trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
r60895 r61113 20 20 #include "InspectorClientGtk.h" 21 21 22 #include "Frame.h" 22 23 #include "webkitwebview.h" 23 24 #include "webkitwebinspector.h" … … 39 40 InspectorClient::InspectorClient(WebKitWebView* webView) 40 41 : m_inspectedWebView(webView) 42 , m_frontendPage(0) 43 , m_frontendClient(0) 41 44 {} 45 46 InspectorClient::~InspectorClient() 47 { 48 if (m_frontendClient) { 49 m_frontendClient->disconnectInspectorClient(); 50 m_frontendClient = 0; 51 } 52 } 42 53 43 54 void InspectorClient::inspectorDestroyed() … … 81 92 gtk_widget_show(GTK_WIDGET(inspectorWebView)); 82 93 83 Page* inspectorPage = core(inspectorWebView); 84 inspectorPage->inspectorController()->setInspectorFrontendClient(new InspectorFrontendClient(m_inspectedWebView, inspectorWebView, webInspector, inspectorPage)); 94 m_frontendPage = core(inspectorWebView); 95 m_frontendClient = new InspectorFrontendClient(m_inspectedWebView, inspectorWebView, webInspector, m_frontendPage, this); 96 m_frontendPage->inspectorController()->setInspectorFrontendClient(m_frontendClient); 97 } 98 99 void InspectorClient::releaseFrontendPage() 100 { 101 m_frontendPage = 0; 85 102 } 86 103 … … 105 122 } 106 123 124 bool InspectorClient::sendMessageToFrontend(const String& message) 125 { 126 if (!m_frontendPage) 127 return false; 128 129 Frame* frame = m_frontendPage->mainFrame(); 130 if (!frame) 131 return false; 132 133 ScriptController* scriptController = frame->script(); 134 if (!scriptController) 135 return false; 136 137 String dispatchToFrontend("WebInspector.dispatchMessageToFrontend("); 138 dispatchToFrontend += message; 139 dispatchToFrontend += ");"; 140 scriptController->executeScript(dispatchToFrontend); 141 return true; 142 } 107 143 108 144 bool destroyed = TRUE; 109 145 110 InspectorFrontendClient::InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector* webInspector, Page* inspectorPage )146 InspectorFrontendClient::InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector* webInspector, Page* inspectorPage, InspectorClient* inspectorClient) 111 147 : InspectorFrontendClientLocal(core(inspectedWebView)->inspectorController(), inspectorPage) 112 148 , m_inspectorWebView(inspectorWebView) 113 149 , m_inspectedWebView(inspectedWebView) 114 150 , m_webInspector(webInspector) 151 , m_inspectorClient(inspectorClient) 115 152 { 116 153 g_signal_connect(m_inspectorWebView, "destroy", … … 120 157 InspectorFrontendClient::~InspectorFrontendClient() 121 158 { 159 if (m_inspectorClient) { 160 m_inspectorClient->disconnectFrontendClient(); 161 m_inspectorClient = 0; 162 } 122 163 ASSERT(!m_webInspector); 123 164 } … … 138 179 g_signal_emit_by_name(webInspector, "close-window", &handled); 139 180 ASSERT(handled); 181 182 if (m_inspectorClient) 183 m_inspectorClient->releaseFrontendPage(); 140 184 141 185 /* we should now dispose our own reference */ -
trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
r60895 r61113 43 43 namespace WebKit { 44 44 45 class InspectorFrontendClient; 46 45 47 class InspectorClient : public WebCore::InspectorClient { 46 48 public: 47 49 InspectorClient(WebKitWebView* webView); 50 ~InspectorClient(); 51 52 void disconnectFrontendClient() { m_frontendClient = 0; } 48 53 49 54 virtual void inspectorDestroyed(); … … 57 62 virtual void storeSetting(const WebCore::String& key, const WebCore::String& value); 58 63 64 virtual bool sendMessageToFrontend(const WebCore::String&); 65 66 void releaseFrontendPage(); 67 59 68 private: 60 69 WebKitWebView* m_inspectedWebView; 70 WebCore::Page* m_frontendPage; 71 InspectorFrontendClient* m_frontendClient; 61 72 }; 62 73 63 74 class InspectorFrontendClient : public WebCore::InspectorFrontendClientLocal { 64 75 public: 65 InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector* webInspector, WebCore::Page* inspectorPage); 76 InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector* webInspector, WebCore::Page* inspectorPage, InspectorClient* inspectorClient); 77 78 void disconnectInspectorClient() { m_inspectorClient = 0; } 66 79 67 80 void destroyInspectorWindow(); … … 87 100 WebKitWebView* m_inspectedWebView; 88 101 WebKitWebInspector* m_webInspector; 102 InspectorClient* m_inspectorClient; 89 103 }; 90 104 } -
trunk/WebKit/haiku/ChangeLog
r60895 r61113 1 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r60889. 4 http://trac.webkit.org/changeset/60889 5 https://bugs.webkit.org/show_bug.cgi?id=40365 6 7 gtk bot has some kind of memory corruption (Requested by 8 loislo on #webkit). 9 10 * WebCoreSupport/InspectorClientHaiku.cpp: 11 * WebCoreSupport/InspectorClientHaiku.h: 12 13 2010-06-07 Ilya Tikhonovsky <loislo@chromium.org> 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 14 2 15 3 Reviewed by Pavel Feldman. … … 26 14 * WebCoreSupport/InspectorClientHaiku.h: 27 15 16 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> 17 18 Unreviewed, rolling out r60889. 19 http://trac.webkit.org/changeset/60889 20 https://bugs.webkit.org/show_bug.cgi?id=40365 21 22 gtk bot has some kind of memory corruption (Requested by 23 loislo on #webkit). 24 25 * WebCoreSupport/InspectorClientHaiku.cpp: 26 * WebCoreSupport/InspectorClientHaiku.h: 27 28 2010-06-07 Ilya Tikhonovsky <loislo@chromium.org> 29 30 Reviewed by Pavel Feldman. 31 32 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 33 data from inspected page to WebInspector as JSON string via http. The native 34 serialization to JSON string is supported by InspectorValue's classes. This patch 35 has the implementation of sendMessageToFrontend function. WebKit version of it still 36 uses ScriptFunctionCall and will be switched to another transport a little bit later. 37 https://bugs.webkit.org/show_bug.cgi?id=40134 38 39 * WebCoreSupport/InspectorClientHaiku.cpp: 40 (WebCore::InspectorClientHaiku::sendMessageToFrontend): 41 * WebCoreSupport/InspectorClientHaiku.h: 42 28 43 2010-05-31 Lyon Chen <liachen@rim.com> 29 44 -
trunk/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.cpp
r60895 r61113 68 68 } 69 69 70 bool InspectorClientHaiku::sendMessageToFrontend(const String&) 71 { 72 notImplemented(); 73 return false; 74 } 75 70 76 } // namespace WebCore 71 77 -
trunk/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
r60895 r61113 50 50 virtual void populateSetting(const WebCore::String& key, WebCore::String* value); 51 51 virtual void storeSetting(const WebCore::String& key, const WebCore::String& value); 52 53 virtual bool sendMessageToFrontend(const WebCore::String&); 52 54 }; 53 55 } // namespace WebCore -
trunk/WebKit/mac/ChangeLog
r60974 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebCoreSupport/WebInspectorClient.h: 13 * WebCoreSupport/WebInspectorClient.mm: 14 (WebInspectorClient::WebInspectorClient): 15 (WebInspectorClient::openInspectorFrontend): 16 1 17 2010-06-10 David Hyatt <hyatt@apple.com> 2 18 -
trunk/WebKit/mac/WebCoreSupport/WebInspectorClient.h
r60895 r61113 43 43 #endif 44 44 45 namespace WebCore { 46 47 class Page; 48 49 } 50 45 51 class WebInspectorClient : public WebCore::InspectorClient { 46 52 public: … … 57 63 virtual void storeSetting(const WebCore::String& key, const WebCore::String& value); 58 64 65 virtual bool sendMessageToFrontend(const WebCore::String&); 66 67 void releaseFrontendPage(); 68 59 69 private: 60 70 WebView *m_webView; 61 71 RetainPtr<WebNodeHighlighter> m_highlighter; 72 WebCore::Page* m_frontendPage; 62 73 }; 74 63 75 64 76 class WebInspectorFrontendClient : public WebCore::InspectorFrontendClientLocal { … … 67 79 68 80 virtual void frontendLoaded(); 69 81 70 82 virtual WebCore::String localizedStringsURL(); 71 83 virtual WebCore::String hiddenPanels(); 72 84 73 85 virtual void bringToFront(); 74 86 virtual void closeWindow(); 75 87 76 88 virtual void attachWindow(); 77 89 virtual void detachWindow(); 78 90 79 91 virtual void setAttachedWindowHeight(unsigned height); 80 92 virtual void inspectedURLChanged(const WebCore::String& newURL); -
trunk/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
r60895 r61113 51 51 WebView *_webView; 52 52 WebInspectorFrontendClient* _frontendClient; 53 WebInspectorClient* _inspectorClient; 53 54 BOOL _attachedToInspectedWebView; 54 55 BOOL _shouldAttach; … … 62 63 - (BOOL)attached; 63 64 - (void)setFrontendClient:(WebInspectorFrontendClient*)frontendClient; 65 - (void)setInspectorClient:(WebInspectorClient*)inspectorClient; 64 66 - (void)setAttachedWindowHeight:(unsigned)height; 65 67 - (void)destroyInspectorView; … … 84 86 : m_webView(webView) 85 87 , m_highlighter(AdoptNS, [[WebNodeHighlighter alloc] initWithInspectedWebView:webView]) 88 , m_frontendPage(0) 86 89 { 87 90 } … … 95 98 { 96 99 RetainPtr<WebInspectorWindowController> windowController(AdoptNS, [[WebInspectorWindowController alloc] initWithInspectedWebView:m_webView]); 97 Page* frontendPage = core([windowController.get() webView]);98 99 frontendPage->inspectorController()->setInspectorFrontendClient(new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController,frontendPage));100 [windowController.get() setInspectorClient:this]; 101 m_frontendPage = core([windowController.get() webView]); 102 m_frontendPage->inspectorController()->setInspectorFrontendClient(new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage)); 100 103 } 101 104 … … 408 411 } 409 412 413 - (void)setInspectorClient:(WebInspectorClient*)inspectorClient 414 { 415 _inspectorClient = inspectorClient; 416 } 417 410 418 - (void)setAttachedWindowHeight:(unsigned)height 411 419 { … … 439 447 if (Page* inspectedPage = [_inspectedWebView page]) 440 448 inspectedPage->inspectorController()->disconnectFrontend(); 449 450 _inspectorClient->releaseFrontendPage(); 441 451 442 452 [_webView close]; -
trunk/WebKit/qt/ChangeLog
r61110 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebCoreSupport/InspectorClientQt.cpp: 13 (WebCore::InspectorClientQt::InspectorClientQt): 14 (WebCore::InspectorClientQt::openInspectorFrontend): 15 (WebCore::InspectorClientQt::releaseFrontendPage): 16 (WebCore::InspectorClientQt::sendMessageToFrontend): 17 * WebCoreSupport/InspectorClientQt.h: 18 1 19 2010-06-13 Charles Wei <charles.wei@torchmobile.com.cn> 2 20 -
trunk/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
r60928 r61113 32 32 #include "InspectorClientQt.h" 33 33 34 #include "Frame.h" 34 35 #include "InspectorController.h" 35 36 #include "NotImplemented.h" 36 37 #include "Page.h" 37 38 #include "PlatformString.h" 39 #include "ScriptController.h" 38 40 #include "qwebinspector.h" 39 41 #include "qwebinspector_p.h" … … 73 75 InspectorClientQt::InspectorClientQt(QWebPage* page) 74 76 : m_inspectedWebPage(page) 77 , m_frontendWebPage(0) 75 78 {} 76 79 … … 102 105 inspector->d->setFrontend(inspectorView); 103 106 104 inspectorView->page()->d->page->inspectorController()->setInspectorFrontendClient(new InspectorFrontendClientQt(m_inspectedWebPage, inspectorView)); 107 inspectorView->page()->d->page->inspectorController()->setInspectorFrontendClient(new InspectorFrontendClientQt(m_inspectedWebPage, inspectorView, this)); 108 m_frontendWebPage = inspectorPage; 109 } 110 111 void InspectorClientQt::releaseFrontendPage() 112 { 113 m_frontendWebPage = 0; 105 114 } 106 115 … … 159 168 } 160 169 170 bool InspectorClientQt::sendMessageToFrontend(const String& message) 171 { 172 if (!m_frontendWebPage) 173 return false; 174 175 Page* frontendPage = QWebPagePrivate::core(m_frontendWebPage); 176 if (!frontendPage) 177 return false; 178 179 Frame* frame = frontendPage->mainFrame(); 180 if (!frame) 181 return false; 182 183 ScriptController* scriptController = frame->script(); 184 if (!scriptController) 185 return false; 186 187 String dispatchToFrontend("WebInspector.dispatchMessageToFrontend("); 188 dispatchToFrontend += message; 189 dispatchToFrontend += ");"; 190 scriptController->executeScript(dispatchToFrontend); 191 return true; 192 } 193 161 194 static String variantToSetting(const QVariant& qvariant) 162 195 { … … 182 215 } 183 216 184 InspectorFrontendClientQt::InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView )217 InspectorFrontendClientQt::InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView, InspectorClientQt* inspectorClient) 185 218 : InspectorFrontendClientLocal(inspectedWebPage->d->page->inspectorController(), inspectorView->page()->d->page) 186 219 , m_inspectedWebPage(inspectedWebPage) 187 220 , m_inspectorView(inspectorView) 188 221 , m_destroyingInspectorView(false) 222 , m_inspectorClient(inspectorClient) 189 223 { 190 224 } … … 224 258 m_inspectedWebPage->d->inspectorController()->disconnectFrontend(); 225 259 #endif 260 m_inspectorClient->releaseFrontendPage(); 261 226 262 // Clear pointer before deleting WebView to avoid recursive calls to its destructor. 227 263 delete m_inspectorView.release(); -
trunk/WebKit/qt/WebCoreSupport/InspectorClientQt.h
r60895 r61113 59 59 virtual void storeSetting(const String& key, const String& value); 60 60 61 virtual bool sendMessageToFrontend(const String&); 62 63 void releaseFrontendPage(); 64 61 65 private: 62 66 QWebPage* m_inspectedWebPage; 67 QWebPage* m_frontendWebPage; 63 68 }; 64 69 65 70 class InspectorFrontendClientQt : public InspectorFrontendClientLocal { 66 71 public: 67 InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView );72 InspectorFrontendClientQt(QWebPage* inspectedWebPage, PassOwnPtr<QWebView> inspectorView, InspectorClientQt* inspectorClient); 68 73 69 74 virtual void frontendLoaded(); … … 89 94 QString m_inspectedURL; 90 95 bool m_destroyingInspectorView; 96 InspectorClientQt* m_inspectorClient; 91 97 }; 92 98 } -
trunk/WebKit/win/ChangeLog
r60950 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebCoreSupport/WebInspectorClient.cpp: 13 (WebInspectorClient::WebInspectorClient): 14 (WebInspectorClient::~WebInspectorClient): 15 (WebInspectorClient::openInspectorFrontend): 16 * WebCoreSupport/WebInspectorClient.h: 17 1 18 2010-06-10 Eric Seidel <eric@webkit.org> 2 19 -
trunk/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
r60895 r61113 70 70 WebInspectorClient::WebInspectorClient(WebView* webView) 71 71 : m_inspectedWebView(webView) 72 , m_frontendPage(0) 72 73 { 73 74 ASSERT(m_inspectedWebView); … … 77 78 WebInspectorClient::~WebInspectorClient() 78 79 { 80 m_frontendPage = 0; 79 81 } 80 82 … … 173 175 return; 174 176 175 Page* page = core(frontendWebView.get()); 176 page->inspectorController()->setInspectorFrontendClient(new WebInspectorFrontendClient(m_inspectedWebView, m_inspectedWebViewHwnd, frontendHwnd, frontendWebView, frontendWebViewHwnd, this)); 177 m_frontendPage = core(frontendWebView.get()); 178 WebInspectorFrontendClient* frontendClient = new WebInspectorFrontendClient(m_inspectedWebView, m_inspectedWebViewHwnd, frontendHwnd, frontendWebView, frontendWebViewHwnd, this); 179 m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient); 177 180 m_frontendHwnd = frontendHwnd; 178 181 } -
trunk/WebKit/win/WebCoreSupport/WebInspectorClient.h
r60895 r61113 38 38 #include <windows.h> 39 39 40 namespace WebCore { 41 42 class Page; 43 44 } 45 40 46 class WebNodeHighlight; 41 47 class WebView; … … 56 62 virtual void storeSetting(const WebCore::String& key, const WebCore::String& value); 57 63 64 virtual bool sendMessageToFrontend(const WebCore::String&); 65 58 66 void updateHighlight(); 59 void frontendClosing() { m_frontendHwnd = 0; } 67 void frontendClosing() 68 { 69 m_frontendHwnd = 0; 70 releaseFrontendPage(); 71 } 60 72 73 void releaseFrontendPage(); 61 74 private: 62 75 ~WebInspectorClient(); 63 76 64 77 WebView* m_inspectedWebView; 78 WebCore::Page* m_frontendPage; 65 79 HWND m_inspectedWebViewHwnd; 66 80 HWND m_frontendHwnd; -
trunk/WebKit/wx/ChangeLog
r60895 r61113 1 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> 2 3 Reviewed by Pavel Feldman. 4 5 WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc 6 data from inspected page to WebInspector as JSON string via http. The native 7 serialization to JSON string is supported by InspectorValue's classes. This patch 8 has the implementation of sendMessageToFrontend function. WebKit version of it still 9 uses ScriptFunctionCall and will be switched to another transport a little bit later. 10 https://bugs.webkit.org/show_bug.cgi?id=40134 11 12 * WebKitSupport/InspectorClientWx.cpp: 13 (WebCore::InspectorClientWx::sendMessageToFrontend): 14 * WebKitSupport/InspectorClientWx.h: 15 1 16 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> 2 17 -
trunk/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
r60895 r61113 73 73 } 74 74 75 bool InspectorClientWx::sendMessageToFrontend(const String&) 76 { 77 notImplemented(); 78 return false; 79 } 80 75 81 }; -
trunk/WebKit/wx/WebKitSupport/InspectorClientWx.h
r60895 r61113 49 49 virtual void populateSetting(const String& key, String* value); 50 50 virtual void storeSetting(const String& key, const String& value); 51 52 virtual bool sendMessageToFrontend(const String&); 51 53 }; 52 54
Note: See TracChangeset
for help on using the changeset viewer.