Reviewed by Pavel Feldman.
Web Inspector: allow hiding Scripts panel from Chromium code. This
is needed to support v8 debugging protocol which has an implementation
that conflicts with debugger provided by the inspector.
https://bugs.webkit.org/show_bug.cgi?id=39952
* public/WebDevToolsAgentClient.h:
(WebKit::WebDevToolsAgentClient::exposeV8DebuggerProtocol):
* public/WebDevToolsFrontendClient.h:
(WebKit::WebDevToolsFrontendClient::WebDevToolsFrontendClient):
(WebKit::WebDevToolsFrontendClient::sendMessageToAgent):
(WebKit::WebDevToolsFrontendClient::sendDebuggerCommandToAgent):
(WebKit::WebDevToolsFrontendClient::sendDebuggerPauseScript):
(WebKit::WebDevToolsFrontendClient::activateWindow):
(WebKit::WebDevToolsFrontendClient::closeWindow):
(WebKit::WebDevToolsFrontendClient::requestDockWindow):
(WebKit::WebDevToolsFrontendClient::requestUndockWindow):
(WebKit::WebDevToolsFrontendClient::hideScriptsPanel):
* src/DebuggerAgentManager.cpp:
(WebKit::DebuggerAgentManager::debugAttach):
(WebKit::DebuggerAgentManager::debugDetach):
(WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol):
* src/DebuggerAgentManager.h:
* src/InspectorFrontendClientImpl.cpp:
(WebKit::InspectorFrontendClientImpl::hiddenPanels):
* src/WebDevToolsAgentImpl.cpp:
(WebKit::WebDevToolsAgentImpl::WebDevToolsAgentImpl):
(WebKit::WebDevToolsAgentImpl::attach):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@60436
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2010-05-31 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: allow hiding Scripts panel from Chromium code. This
+ is needed to support v8 debugging protocol which has an implementation
+ that conflicts with debugger provided by the inspector.
+ https://bugs.webkit.org/show_bug.cgi?id=39952
+
+ * public/WebDevToolsAgentClient.h:
+ (WebKit::WebDevToolsAgentClient::exposeV8DebuggerProtocol):
+ * public/WebDevToolsFrontendClient.h:
+ (WebKit::WebDevToolsFrontendClient::WebDevToolsFrontendClient):
+ (WebKit::WebDevToolsFrontendClient::sendMessageToAgent):
+ (WebKit::WebDevToolsFrontendClient::sendDebuggerCommandToAgent):
+ (WebKit::WebDevToolsFrontendClient::sendDebuggerPauseScript):
+ (WebKit::WebDevToolsFrontendClient::activateWindow):
+ (WebKit::WebDevToolsFrontendClient::closeWindow):
+ (WebKit::WebDevToolsFrontendClient::requestDockWindow):
+ (WebKit::WebDevToolsFrontendClient::requestUndockWindow):
+ (WebKit::WebDevToolsFrontendClient::hideScriptsPanel):
+ * src/DebuggerAgentManager.cpp:
+ (WebKit::DebuggerAgentManager::debugAttach):
+ (WebKit::DebuggerAgentManager::debugDetach):
+ (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol):
+ * src/DebuggerAgentManager.h:
+ * src/InspectorFrontendClientImpl.cpp:
+ (WebKit::InspectorFrontendClientImpl::hiddenPanels):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::WebDevToolsAgentImpl):
+ (WebKit::WebDevToolsAgentImpl::attach):
+
2010-05-30 Lyon Chen <liachen@rim.com>
Reviewed by Kent Tamura.
};
virtual WebKitClientMessageLoop* createClientMessageLoop() { return 0; }
+ virtual bool exposeV8DebuggerProtocol() { return false; }
+
protected:
~WebDevToolsAgentClient() { }
};
class WebDevToolsFrontendClient {
public:
- WebDevToolsFrontendClient() {}
+ WebDevToolsFrontendClient() { }
- virtual void sendMessageToAgent(const WebDevToolsMessageData&) {};
- virtual void sendDebuggerCommandToAgent(const WebString& command) {};
- virtual void sendDebuggerPauseScript() {}
+ virtual void sendMessageToAgent(const WebDevToolsMessageData&) { }
+ virtual void sendDebuggerCommandToAgent(const WebString& command) { }
+ virtual void sendDebuggerPauseScript() { }
- virtual void activateWindow() {};
- virtual void closeWindow() {};
- virtual void requestDockWindow() {};
- virtual void requestUndockWindow() {};
+ virtual void activateWindow() { }
+ virtual void closeWindow() { }
+ virtual void requestDockWindow() { }
+ virtual void requestUndockWindow() { }
+
+ virtual bool shouldHideScriptsPanel() { return false; }
protected:
virtual ~WebDevToolsFrontendClient() {}
bool DebuggerAgentManager::s_debugBreakDelayed = false;
+bool DebuggerAgentManager::s_exposeV8DebuggerProtocol = false;
+
namespace {
class CallerIdWrapper : public v8::Debug::ClientData, public Noncopyable {
void DebuggerAgentManager::debugAttach(DebuggerAgentImpl* debuggerAgent)
{
#if ENABLE(V8_SCRIPT_DEBUG_SERVER)
- return;
+ if (!s_exposeV8DebuggerProtocol)
+ return;
#endif
if (!s_attachedAgentsMap) {
s_attachedAgentsMap = new AttachedAgentsMap();
void DebuggerAgentManager::debugDetach(DebuggerAgentImpl* debuggerAgent)
{
#if ENABLE(V8_SCRIPT_DEBUG_SERVER)
- return;
+ if (!s_exposeV8DebuggerProtocol)
+ return;
#endif
if (!s_attachedAgentsMap) {
ASSERT_NOT_REACHED();
s_messageLoopDispatchHandler = handler;
}
+void DebuggerAgentManager::setExposeV8DebuggerProtocol(bool value)
+{
+ s_exposeV8DebuggerProtocol = value;
+}
+
+
void DebuggerAgentManager::setHostId(WebFrameImpl* webframe, int hostId)
{
ASSERT(hostId > 0);
static void pauseScript();
static void executeDebuggerCommand(const WebCore::String& command, int callerId);
static void setMessageLoopDispatchHandler(WebDevToolsAgent::MessageLoopDispatchHandler handler);
+ static void setExposeV8DebuggerProtocol(bool);
// Sets |hostId| as the frame context data. This id is used to filter scripts
// related to the inspected page.
static bool s_inUtilityContext;
static bool s_debugBreakDelayed;
+ static bool s_exposeV8DebuggerProtocol;
};
} // namespace WebKit
String InspectorFrontendClientImpl::hiddenPanels()
{
+ if (m_client->shouldHideScriptsPanel())
+ return "scripts";
return "";
}
, m_resourceTrackingWasEnabled(false)
, m_attached(false)
{
+ DebuggerAgentManager::setExposeV8DebuggerProtocol(
+ client->exposeV8DebuggerProtocol());
m_debuggerAgentDelegateStub.set(new DebuggerAgentDelegateStub(this));
m_toolsAgentDelegateStub.set(new ToolsAgentDelegateStub(this));
m_apuAgentDelegateStub.set(new ApuAgentDelegateStub(this));
return;
#if ENABLE(V8_SCRIPT_DEBUG_SERVER)
- ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
+ if (!m_client->exposeV8DebuggerProtocol())
+ ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
#endif
m_debuggerAgentImpl.set(