Commit ffb351e8 authored by yurys@chromium.org's avatar yurys@chromium.org

2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r76770.
        http://trac.webkit.org/changeset/76770
        https://bugs.webkit.org/show_bug.cgi?id=53229

        Some inspector tests fail (Requested by yurys on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.am:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
        * bindings/js/ScriptDebugServer.h:
        * bindings/js/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
        * bindings/js/ScriptProfiler.h:
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
        * bindings/v8/ScriptDebugServer.h:
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
        * bindings/v8/ScriptProfiler.h:
        * inspector/Inspector.idl:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::InspectorAgent::disconnectFrontend):
        (WebCore::InspectorAgent::restoreDebugger):
        (WebCore::InspectorAgent::restoreProfiler):
        (WebCore::InspectorAgent::ensureSettingsLoaded):
        (WebCore::InspectorAgent::enableProfiler):
        (WebCore::InspectorAgent::disableProfiler):
        (WebCore::InspectorAgent::showAndEnableDebugger):
        (WebCore::InspectorAgent::enableDebugger):
        (WebCore::InspectorAgent::disableDebugger):
        * inspector/InspectorAgent.h:
        (WebCore::InspectorAgent::settings):
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
        (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
        * inspector/InspectorSettings.cpp: Added.
        (WebCore::InspectorSettings::InspectorSettings):
        (WebCore::InspectorSettings::getBoolean):
        (WebCore::InspectorSettings::setBoolean):
        (WebCore::InspectorSettings::getLong):
        (WebCore::InspectorSettings::setLong):
        (WebCore::InspectorSettings::registerBoolean):
        (WebCore::InspectorSettings::registerLong):
        * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
        * inspector/InspectorState.cpp:
        (WebCore::InspectorState::InspectorState):
        * inspector/InspectorState.h:
        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
        (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
        (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._toggleProfiling):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._toggleDebugging):
        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        * inspector/front-end/inspector.js:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 813b208e
......@@ -1173,6 +1173,7 @@ SET(WebCore_SOURCES
inspector/InspectorProfilerAgent.cpp
inspector/InspectorResourceAgent.cpp
inspector/InspectorRuntimeAgent.cpp
inspector/InspectorSettings.cpp
inspector/InspectorState.cpp
inspector/InspectorStyleSheet.cpp
inspector/InspectorTimelineAgent.cpp
......
2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r76770.
http://trac.webkit.org/changeset/76770
https://bugs.webkit.org/show_bug.cgi?id=53229
Some inspector tests fail (Requested by yurys on #webkit).
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
* bindings/v8/ScriptDebugServer.h:
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.idl:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::disconnectFrontend):
(WebCore::InspectorAgent::restoreDebugger):
(WebCore::InspectorAgent::restoreProfiler):
(WebCore::InspectorAgent::ensureSettingsLoaded):
(WebCore::InspectorAgent::enableProfiler):
(WebCore::InspectorAgent::disableProfiler):
(WebCore::InspectorAgent::showAndEnableDebugger):
(WebCore::InspectorAgent::enableDebugger):
(WebCore::InspectorAgent::disableDebugger):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::settings):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
(WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
* inspector/InspectorSettings.cpp: Added.
(WebCore::InspectorSettings::InspectorSettings):
(WebCore::InspectorSettings::getBoolean):
(WebCore::InspectorSettings::setBoolean):
(WebCore::InspectorSettings::getLong):
(WebCore::InspectorSettings::setLong):
(WebCore::InspectorSettings::registerBoolean):
(WebCore::InspectorSettings::registerLong):
* inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
* inspector/InspectorState.cpp:
(WebCore::InspectorState::InspectorState):
* inspector/InspectorState.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
(WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
(WebInspector.ConsoleView.prototype._handleContextMenuEvent):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._toggleProfiling):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._toggleDebugging):
* inspector/front-end/Settings.js:
(WebInspector.Settings):
* inspector/front-end/inspector.js:
2011-01-26 Philippe Normand <pnormand@igalia.com>
Reviewed by Martin Robinson.
......@@ -1994,6 +1994,8 @@ webcore_sources += \
Source/WebCore/inspector/InspectorResourceAgent.h \
Source/WebCore/inspector/InspectorRuntimeAgent.cpp \
Source/WebCore/inspector/InspectorRuntimeAgent.h \
Source/WebCore/inspector/InspectorSettings.cpp \
Source/WebCore/inspector/InspectorSettings.h \
Source/WebCore/inspector/InspectorState.cpp \
Source/WebCore/inspector/InspectorState.h \
Source/WebCore/inspector/InspectorStyleSheet.cpp \
......
......@@ -1368,9 +1368,9 @@ __ZN7WebCore14InspectorAgent5closeEv
__ZN7WebCore14InspectorAgent9showPanelERKN3WTF6StringE
__ZN7WebCore14InspectorAgent12ConsolePanelE
__ZN7WebCore14InspectorAgent13ProfilesPanelE
__ZN7WebCore14InspectorAgent14enableProfilerEv
__ZN7WebCore14InspectorAgent15disableDebuggerEv
__ZN7WebCore14InspectorAgent15disableProfilerEv
__ZN7WebCore14InspectorAgent14enableProfilerEbb
__ZN7WebCore14InspectorAgent15disableDebuggerEb
__ZN7WebCore14InspectorAgent15disableProfilerEb
__ZN7WebCore14InspectorAgent18disconnectFrontendEv
__ZN7WebCore14InspectorAgent20stopTimelineProfilerEv
__ZN7WebCore14InspectorAgent21showAndEnableDebuggerEv
......
......@@ -2049,6 +2049,8 @@
'inspector/InspectorRuntimeAgent.cpp',
'inspector/InspectorRuntimeAgent.h',
'inspector/InspectorState.cpp',
'inspector/InspectorSettings.h',
'inspector/InspectorSettings.cpp',
'inspector/InspectorState.h',
'inspector/InspectorStyleSheet.cpp',
'inspector/InspectorStyleSheet.h',
......
......@@ -1062,6 +1062,7 @@ SOURCES += \
inspector/InspectorProfilerAgent.cpp \
inspector/InspectorResourceAgent.cpp \
inspector/InspectorRuntimeAgent.cpp \
inspector/InspectorSettings.cpp \
inspector/InspectorState.cpp \
inspector/InspectorStyleSheet.cpp \
inspector/InspectorTimelineAgent.cpp \
......@@ -1961,6 +1962,7 @@ HEADERS += \
inspector/InspectorProfilerAgent.h \
inspector/InspectorResourceAgent.h \
inspector/InspectorRuntimeAgent.h \
inspector/InspectorSettings.h \
inspector/InspectorState.h \
inspector/InspectorStyleSheet.h \
inspector/InspectorTimelineAgent.h \
......
......@@ -65253,6 +65253,14 @@
RelativePath="..\inspector\InspectorRuntimeAgent.h"
>
</File>
<File
RelativePath="..\inspector\InspectorSettings.cpp"
>
</File>
<File
RelativePath="..\inspector\InspectorSettings.h"
>
</File>
<File
RelativePath="..\inspector\InspectorState.cpp"
>
......@@ -1659,6 +1659,8 @@
7A1F2B52126C61B20006A7E6 /* InspectorClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */; };
7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */; };
7A24587C1021EAF4000A00AA /* InspectorDOMAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
7A5640BF12DF9E5E00F4536D /* InspectorSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */; };
7A5640C012DF9E5E00F4536D /* InspectorSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */; };
7A674BDB0F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */; };
7A674BDC0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */; };
7A74ECBA101839A600BF939E /* InspectorDOMStorageAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECB8101839A500BF939E /* InspectorDOMStorageAgent.cpp */; };
......@@ -8101,6 +8103,8 @@
7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDOMAgent.h; sourceTree = "<group>"; };
7A563E5412DE32B000F4536D /* InjectedScriptSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptSource.h; sourceTree = "<group>"; };
7A563F9512DF5C9100F4536D /* InjectedScriptSource.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = InjectedScriptSource.js; sourceTree = "<group>"; };
7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorSettings.cpp; sourceTree = "<group>"; };
7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorSettings.h; sourceTree = "<group>"; };
7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageGroupLoadDeferrer.cpp; sourceTree = "<group>"; };
7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageGroupLoadDeferrer.h; sourceTree = "<group>"; };
7A74ECB8101839A500BF939E /* InspectorDOMStorageAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDOMStorageAgent.cpp; sourceTree = "<group>"; };
......@@ -13022,6 +13026,8 @@
82AB1772125C826700C5069D /* InspectorResourceAgent.h */,
7AA365ED12E7265400DCA242 /* InspectorRuntimeAgent.cpp */,
7AF11A5912E727490061F23C /* InspectorRuntimeAgent.h */,
7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */,
7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */,
4FA3B908125CD12100300BAD /* InspectorState.cpp */,
4FA3B909125CD12200300BAD /* InspectorState.h */,
82AB176F125C826700C5069D /* InspectorStyleSheet.cpp */,
......@@ -20922,6 +20928,7 @@
9F0D6B2F121BFEBA006C0288 /* InspectorProfilerAgent.h in Headers */,
82AB1776125C826700C5069D /* InspectorResourceAgent.h in Headers */,
7AF11A5A12E727490061F23C /* InspectorRuntimeAgent.h in Headers */,
7A5640C012DF9E5E00F4536D /* InspectorSettings.h in Headers */,
4FA3B90B125CD12200300BAD /* InspectorState.h in Headers */,
82AB1774125C826700C5069D /* InspectorStyleSheet.h in Headers */,
754133A8102E00E800075D00 /* InspectorTimelineAgent.h in Headers */,
......@@ -23665,6 +23672,7 @@
9F0D6B2E121BFEBA006C0288 /* InspectorProfilerAgent.cpp in Sources */,
82AB1775125C826700C5069D /* InspectorResourceAgent.cpp in Sources */,
7AA365EE12E7265400DCA242 /* InspectorRuntimeAgent.cpp in Sources */,
7A5640BF12DF9E5E00F4536D /* InspectorSettings.cpp in Sources */,
4FA3B90A125CD12200300BAD /* InspectorState.cpp in Sources */,
82AB1773125C826700C5069D /* InspectorStyleSheet.cpp in Sources */,
754133AA102E00F400075D00 /* InspectorTimelineAgent.cpp in Sources */,
......@@ -117,6 +117,11 @@ void ScriptDebugServer::removeListener(ScriptDebugListener* listener, Page* page
didRemoveListener(page);
}
bool ScriptDebugServer::isDebuggerAlwaysEnabled()
{
return false;
}
bool ScriptDebugServer::hasListenersInterestedInPage(Page* page)
{
ASSERT_ARG(page, page);
......
......@@ -93,6 +93,8 @@ public:
JavaScriptCallFrame* currentCallFrame();
bool isDebuggerAlwaysEnabled();
private:
typedef HashSet<ScriptDebugListener*> ListenerSet;
typedef void (ScriptDebugServer::*JavaScriptExecutionCallback)(ScriptDebugListener*);
......
......@@ -46,6 +46,11 @@ PassRefPtr<ScriptProfile> ScriptProfiler::stop(ScriptState* state, const String&
return ScriptProfile::create(profile);
}
bool ScriptProfiler::isProfilerAlwaysEnabled()
{
return false;
}
} // namespace WebCore
#endif // ENABLE(JAVASCRIPT_DEBUGGER)
......@@ -50,6 +50,7 @@ public:
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static PassRefPtr<ScriptHeapSnapshot> takeHeapSnapshot(const String&, HeapSnapshotProgress*) { return 0; }
static bool isProfilerAlwaysEnabled();
};
} // namespace WebCore
......
......@@ -342,6 +342,11 @@ void ScriptDebugServer::setEnabled(bool value)
m_enabled = value;
}
bool ScriptDebugServer::isDebuggerAlwaysEnabled()
{
return m_enabled;
}
void ScriptDebugServer::interruptAndRun(PassOwnPtr<Task> task)
{
v8::Debug::DebugBreakForCommand(new ClientDataImpl(task));
......
......@@ -99,6 +99,7 @@ public:
PassRefPtr<JavaScriptCallFrame> currentCallFrame();
void setEnabled(bool);
bool isDebuggerAlwaysEnabled();
class Task {
public:
......
......@@ -90,4 +90,9 @@ PassRefPtr<ScriptHeapSnapshot> ScriptProfiler::takeHeapSnapshot(const String& ti
return snapshot ? ScriptHeapSnapshot::create(snapshot) : 0;
}
bool ScriptProfiler::isProfilerAlwaysEnabled()
{
return true;
}
} // namespace WebCore
......@@ -56,6 +56,7 @@ public:
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static PassRefPtr<ScriptHeapSnapshot> takeHeapSnapshot(const String& title, HeapSnapshotProgress*);
static bool isProfilerAlwaysEnabled();
};
} // namespace WebCore
......
......@@ -94,6 +94,7 @@ module core {
[domain=Console] void clearConsoleMessages();
[notify, domain=Console] void consoleMessagesCleared();
[domain=Console] void setMonitoringXHREnabled(in boolean enabled);
[notify, domain=Console] void monitoringXHRStateChanged(out boolean enabled);
///////////////////////////////////////////////////////////////////////
// Network API
......@@ -238,8 +239,8 @@ module core {
// Debugger API
///////////////////////////////////////////////////////////////////////
[domain=Inspector] void enableDebugger();
[domain=Inspector] void disableDebugger();
[domain=Inspector] void enableDebugger(in boolean always);
[domain=Inspector] void disableDebugger(in boolean always);
[notify, domain=Debugger] void debuggerWasEnabled();
[notify, domain=Debugger] void debuggerWasDisabled();
......@@ -289,8 +290,8 @@ module core {
// Profiler API
///////////////////////////////////////////////////////////////////////
[domain=Inspector] void enableProfiler();
[domain=Inspector] void disableProfiler();
[domain=Inspector] void enableProfiler(in boolean always);
[domain=Inspector] void disableProfiler(in boolean always);
[notify, domain=Profiler] void profilerWasEnabled();
[notify, domain=Profiler] void profilerWasDisabled();
......
......@@ -72,6 +72,7 @@
#include "InspectorProfilerAgent.h"
#include "InspectorResourceAgent.h"
#include "InspectorRuntimeAgent.h"
#include "InspectorSettings.h"
#include "InspectorState.h"
#include "InspectorTimelineAgent.h"
#include "InspectorValues.h"
......@@ -145,6 +146,7 @@ InspectorAgent::InspectorAgent(InspectorController* inspectorController, Page* p
, m_injectedScriptHost(InjectedScriptHost::create(this))
, m_consoleAgent(new InspectorConsoleAgent(this))
#if ENABLE(JAVASCRIPT_DEBUGGER)
, m_attachDebuggerWhenShown(false)
, m_profilerAgent(InspectorProfilerAgent::create(this))
#endif
{
......@@ -448,7 +450,9 @@ void InspectorAgent::disconnectFrontend()
// If the window is being closed with the debugger enabled,
// remember this state to re-enable debugger on the next window
// opening.
bool debuggerWasEnabled = debuggerEnabled();
disableDebugger();
m_attachDebuggerWhenShown = debuggerWasEnabled;
#endif
setSearchingForNode(false);
unbindAllResources();
......@@ -566,8 +570,10 @@ void InspectorAgent::restoreDebugger()
{
ASSERT(m_frontend);
#if ENABLE(JAVASCRIPT_DEBUGGER)
if (m_state->getBoolean(InspectorState::debuggerEnabled))
enableDebugger();
if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled() || m_attachDebuggerWhenShown || m_settings->getBoolean(InspectorSettings::DebuggerAlwaysEnabled)) {
enableDebugger(false);
m_attachDebuggerWhenShown = false;
}
#endif
}
......@@ -576,7 +582,7 @@ void InspectorAgent::restoreProfiler(ProfilerRestoreAction action)
ASSERT(m_frontend);
#if ENABLE(JAVASCRIPT_DEBUGGER)
m_profilerAgent->setFrontend(m_frontend.get());
if (m_state->getBoolean(InspectorState::profilerEnabled))
if (!ScriptProfiler::isProfilerAlwaysEnabled() && m_settings->getBoolean(InspectorSettings::ProfilerAlwaysEnabled))
enableProfiler();
if (action == ProfilerRestoreResetAgent)
m_profilerAgent->resetFrontendProfiles();
......@@ -699,6 +705,14 @@ void InspectorAgent::willSendRequest(ResourceRequest& request)
}
}
void InspectorAgent::ensureSettingsLoaded()
{
if (m_settings)
return;
m_settings = new InspectorSettings(m_client);
m_state->setBoolean(InspectorState::monitoringXHR, m_settings->getBoolean(InspectorSettings::MonitoringXHREnabled));
}
void InspectorAgent::startTimelineProfiler()
{
if (!enabled())
......@@ -978,17 +992,17 @@ bool InspectorAgent::profilerEnabled() const
return enabled() && m_profilerAgent->enabled();
}
void InspectorAgent::enableProfiler()
void InspectorAgent::enableProfiler(bool always, bool skipRecompile)
{
if (profilerEnabled())
return;
m_state->setBoolean(InspectorState::profilerEnabled, true);
m_profilerAgent->enable(false);
if (always)
m_settings->setBoolean(InspectorSettings::ProfilerAlwaysEnabled, true);
m_profilerAgent->enable(skipRecompile);
}
void InspectorAgent::disableProfiler()
void InspectorAgent::disableProfiler(bool always)
{
m_state->setBoolean(InspectorState::profilerEnabled, false);
if (always)
m_settings->setBoolean(InspectorSettings::ProfilerAlwaysEnabled, false);
m_profilerAgent->disable();
}
#endif
......@@ -1003,17 +1017,18 @@ void InspectorAgent::showAndEnableDebugger()
return;
if (!m_frontend) {
m_state->setBoolean(InspectorState::debuggerEnabled, true);
m_attachDebuggerWhenShown = true;
showPanel(ScriptsPanel);
} else
enableDebugger();
enableDebugger(false);
}
void InspectorAgent::enableDebugger()
void InspectorAgent::enableDebugger(bool always)
{
if (debuggerEnabled())
return;
m_state->setBoolean(InspectorState::debuggerEnabled, true);
ASSERT(!debuggerEnabled());
if (always)
m_settings->setBoolean(InspectorSettings::DebuggerAlwaysEnabled, true);
ASSERT(m_inspectedPage);
m_debuggerAgent = InspectorDebuggerAgent::create(this, m_frontend.get());
......@@ -1022,18 +1037,23 @@ void InspectorAgent::enableDebugger()
m_frontend->debuggerWasEnabled();
}
void InspectorAgent::disableDebugger()
void InspectorAgent::disableDebugger(bool always)
{
if (!enabled())
return;
if (always)
m_settings->setBoolean(InspectorSettings::DebuggerAlwaysEnabled, false);
ASSERT(m_inspectedPage);
m_debuggerAgent.clear();
m_browserDebuggerAgent.clear();
if (m_frontend) {
m_attachDebuggerWhenShown = false;
if (m_frontend)
m_frontend->debuggerWasDisabled();
m_state->setBoolean(InspectorState::debuggerEnabled, false);
}
}
void InspectorAgent::resume()
......
......@@ -74,6 +74,7 @@ class InspectorObject;
class InspectorProfilerAgent;
class InspectorResourceAgent;
class InspectorRuntimeAgent;
class InspectorSettings;
class InspectorState;
class InspectorStorageAgent;
class InspectorTimelineAgent;
......@@ -236,13 +237,13 @@ public:
void startUserInitiatedProfiling();
void stopProfiling() { stopUserInitiatedProfiling(); }
void stopUserInitiatedProfiling();
void enableProfiler();
void disableProfiler();
void enableProfiler(bool always = false, bool skipRecompile = false);
void disableProfiler(bool always = false);
bool profilerEnabled() const;
void showAndEnableDebugger();
void enableDebugger();
void disableDebugger();
void enableDebugger(bool always);
void disableDebugger(bool always = false);
bool debuggerEnabled() const { return m_debuggerAgent; }
void resume();
......@@ -257,6 +258,7 @@ public:
void setInspectorExtensionAPI(const String& source);
InspectorState* state() { return m_state.get(); }
InspectorSettings* settings() { return m_settings.get(); }
// InspectorAgent API
void getInspectorState(RefPtr<InspectorObject>* state);
......@@ -267,6 +269,7 @@ public:
void didEvaluateForTestInFrontend(long callId, const String& jsonResult);
// InspectorInstrumentation API
void ensureSettingsLoaded();
void willSendRequest(ResourceRequest&);
private:
......@@ -311,6 +314,7 @@ private:
OwnPtr<InspectorTimelineAgent> m_timelineAgent;
OwnPtr<InspectorState> m_state;
OwnPtr<InspectorSettings> m_settings;
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
OwnPtr<InspectorApplicationCacheAgent> m_applicationCacheAgent;
......@@ -343,6 +347,7 @@ private:
Vector<String> m_scriptsToEvaluateOnLoad;
String m_inspectorExtensionAPI;
#if ENABLE(JAVASCRIPT_DEBUGGER)
bool m_attachDebuggerWhenShown;
OwnPtr<InspectorDebuggerAgent> m_debuggerAgent;
OwnPtr<InspectorBrowserDebuggerAgent> m_browserDebuggerAgent;
OwnPtr<InspectorProfilerAgent> m_profilerAgent;
......
......@@ -33,6 +33,7 @@
#include "InspectorAgent.h"
#include "InspectorDOMAgent.h"
#include "InspectorFrontend.h"
#include "InspectorSettings.h"
#include "InspectorState.h"
#include "ResourceError.h"
#include "ResourceResponse.h"
......@@ -193,6 +194,9 @@ void InspectorConsoleAgent::didFailLoading(unsigned long identifier, const Resou
void InspectorConsoleAgent::setMonitoringXHREnabled(bool enabled)
{
m_inspectorAgent->state()->setBoolean(InspectorState::monitoringXHR, enabled);
m_inspectorAgent->settings()->setBoolean(InspectorSettings::MonitoringXHREnabled, enabled);
if (m_frontend)
m_frontend->monitoringXHRStateChanged(enabled);
}
void InspectorConsoleAgent::setConsoleMessagesEnabled(bool enabled)
......@@ -201,6 +205,7 @@ void InspectorConsoleAgent::setConsoleMessagesEnabled(bool enabled)
if (!enabled || !m_frontend)
return;
m_frontend->monitoringXHRStateChanged(m_inspectorAgent->state()->getBoolean(InspectorState::monitoringXHR));
if (m_expiredConsoleMessageCount)
m_frontend->updateConsoleMessageExpiredCount(m_expiredConsoleMessageCount);
unsigned messageCount = m_consoleMessages.size();
......
......@@ -66,6 +66,11 @@ InspectorDebuggerAgent::~InspectorDebuggerAgent()
m_pausedScriptState = 0;
}
bool InspectorDebuggerAgent::isDebuggerAlwaysEnabled()
{
return ScriptDebugServer::shared().isDebuggerAlwaysEnabled();
}
void InspectorDebuggerAgent::activateBreakpoints()
{
ScriptDebugServer::shared().activateBreakpoints();
......
......@@ -60,6 +60,8 @@ public:
static PassOwnPtr<InspectorDebuggerAgent> create(InspectorAgent*, InspectorFrontend*);
virtual ~InspectorDebuggerAgent();
static bool isDebuggerAlwaysEnabled();
void setAllJavaScriptBreakpoints(PassRefPtr<InspectorObject>);
void inspectedURLChanged(const String& url);
......
......@@ -376,6 +376,7 @@ void InspectorInstrumentation::identifierForInitialRequestImpl(InspectorAgent* i
{
if (!ic->enabled())
return;
ic->ensureSettingsLoaded();
if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
resourceAgent->identifierForInitialRequest(identifier, request.url(), loader);
......@@ -400,6 +401,7 @@ void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InspectorAgent
{
if (!ic->enabled())
return;
ic->ensureSettingsLoaded();
if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
}
......
......@@ -65,7 +65,7 @@ PassOwnPtr<InspectorProfilerAgent> InspectorProfilerAgent::create(InspectorAgent
InspectorProfilerAgent::InspectorProfilerAgent(InspectorAgent* inspectorAgent)
: m_inspectorAgent(inspectorAgent)
, m_frontend(0)
, m_enabled(false)
, m_enabled(ScriptProfiler::isProfilerAlwaysEnabled())
, m_recordingUserInitiatedProfile(false)
, m_currentUserInitiatedProfileNumber(-1)
, m_nextUserInitiatedProfileNumber(1)
......@@ -229,7 +229,7 @@ void InspectorProfilerAgent::startUserInitiatedProfiling()
if (m_recordingUserInitiatedProfile)
return;
if (!enabled()) {
enable(true);
enable(false);
ScriptDebugServer::shared().recompileAllJSFunctions();
}
m_recordingUserInitiatedProfile = true;
......
/*
* Copyright (C) 2011 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "InspectorSettings.h"
#if ENABLE(INSPECTOR)
#include "InspectorClient.h"
namespace WebCore {
const char* InspectorSettings::MonitoringXHREnabled = "xhrMonitor";
const char* InspectorSettings::ProfilerAlwaysEnabled = "profilerEnabled";
const char* InspectorSettings::DebuggerAlwaysEnabled = "debuggerEnabled";