2011-03-14 Pavel Podivilov <podivilov@chromium.org>

        Reviewed by Pavel Feldman.

        Web Inspector: move breakpoints restoring to debugger presentation model.
        https://bugs.webkit.org/show_bug.cgi?id=56123

        * http/tests/inspector/debugger-test.js:
        (initialize_DebuggerTest.InspectorTest.completeDebuggerTest.disableDebugger):
2011-03-14  Pavel Podivilov  <podivilov@chromium.org>

        Reviewed by Pavel Feldman.

        Web Inspector: move breakpoints restoring to debugger presentation model.
        https://bugs.webkit.org/show_bug.cgi?id=56123

        DebuggerModel's "breakpoint-added" and "breakpoint-removed" events are gone since
        setBreakpoint/removeBreakpoint are now called from DPM only.

        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::disable):
        (WebCore::InspectorDebuggerAgent::enableDebuggerAfterShown):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype._debuggerWasEnabled):
        (WebInspector.DebuggerModel.prototype._debuggerWasDisabled):
        (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
        (WebInspector.DebuggerModel.prototype.setBreakpoint):
        (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
        (WebInspector.DebuggerModel.prototype.removeBreakpoint):
        (WebInspector.DebuggerModel.prototype._breakpointResolved):
        (WebInspector.DebuggerModel.prototype.reset):
        (WebInspector.DebuggerDispatcher.prototype.debuggerWasEnabled):
        (WebInspector.DebuggerDispatcher.prototype.debuggerWasDisabled):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel):
        (WebInspector.DebuggerPresentationModel.prototype._debuggerWasEnabled):
        (WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
        (WebInspector.DebuggerPresentationModel.prototype._failedToParseScriptSource):
        (WebInspector.DebuggerPresentationModel.prototype._scriptSourceChanged):
        (WebInspector.DebuggerPresentationModel.prototype.breakpointsForSourceFileId):
        (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
        (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
        (WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
        (WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
        (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
        (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
        (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
        (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
        (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
        (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
        (WebInspector.DebuggerPresentationModel.prototype.reset):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype._debuggerWasEnabled):
        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):

git-svn-id: svn://svn.chromium.org/blink/trunk@81025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c3d82ef1
2011-03-14 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: move breakpoints restoring to debugger presentation model.
https://bugs.webkit.org/show_bug.cgi?id=56123
* http/tests/inspector/debugger-test.js:
(initialize_DebuggerTest.InspectorTest.completeDebuggerTest.disableDebugger):
2011-03-14 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
......@@ -8,7 +8,7 @@ InspectorTest.startDebuggerTest = function(callback, quiet)
if (WebInspector.panels.scripts._debuggerEnabled)
startTest();
else {
InspectorTest.addSniffer(WebInspector.panels.scripts, "debuggerWasEnabled", startTest);
InspectorTest.addSniffer(WebInspector.debuggerModel, "_debuggerWasEnabled", startTest);
WebInspector.panels.scripts._toggleDebugging(false);
}
......@@ -35,7 +35,7 @@ InspectorTest.completeDebuggerTest = function()
if (!scriptsPanel._debuggerEnabled)
completeTest();
else {
InspectorTest.addSniffer(WebInspector.panels.scripts, "debuggerWasDisabled", completeTest);
InspectorTest.addSniffer(WebInspector.debuggerModel, "_debuggerWasDisabled", completeTest);
scriptsPanel._toggleDebugging(false);
}
}
......
2011-03-14 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: move breakpoints restoring to debugger presentation model.
https://bugs.webkit.org/show_bug.cgi?id=56123
DebuggerModel's "breakpoint-added" and "breakpoint-removed" events are gone since
setBreakpoint/removeBreakpoint are now called from DPM only.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::enableDebuggerAfterShown):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.enableDebugger):
(WebInspector.DebuggerModel.prototype._debuggerWasEnabled):
(WebInspector.DebuggerModel.prototype._debuggerWasDisabled):
(WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerModel.prototype.setBreakpoint):
(WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
(WebInspector.DebuggerModel.prototype.removeBreakpoint):
(WebInspector.DebuggerModel.prototype._breakpointResolved):
(WebInspector.DebuggerModel.prototype.reset):
(WebInspector.DebuggerDispatcher.prototype.debuggerWasEnabled):
(WebInspector.DebuggerDispatcher.prototype.debuggerWasDisabled):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel):
(WebInspector.DebuggerPresentationModel.prototype._debuggerWasEnabled):
(WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
(WebInspector.DebuggerPresentationModel.prototype._failedToParseScriptSource):
(WebInspector.DebuggerPresentationModel.prototype._scriptSourceChanged):
(WebInspector.DebuggerPresentationModel.prototype.breakpointsForSourceFileId):
(WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
(WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
(WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
(WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
(WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
(WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
(WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
(WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
(WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
(WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
(WebInspector.DebuggerPresentationModel.prototype.reset):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._debuggerWasEnabled):
(WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
2011-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r81015.
......
......@@ -102,6 +102,7 @@ void InspectorDebuggerAgent::disable()
if (!enabled())
return;
m_inspectorState->setBoolean(DebuggerAgentState::debuggerEnabled, false);
m_inspectorState->setObject(DebuggerAgentState::javaScriptBreakpoints, InspectorObject::create());
m_instrumentingAgents->setInspectorDebuggerAgent(0);
ScriptDebugServer::shared().removeListener(this, m_inspectedPage);
......@@ -131,9 +132,6 @@ void InspectorDebuggerAgent::setFrontend(InspectorFrontend* frontend)
void InspectorDebuggerAgent::enableDebuggerAfterShown()
{
// Erase sticky breakpoints. If we are restoring from a cookie setFrontend msut be called
// before the state is loaded from the cookie.
m_inspectorState->setObject(DebuggerAgentState::javaScriptBreakpoints, InspectorObject::create());
if (m_inspectorState->getBoolean(DebuggerAgentState::enableWhenShown)) {
m_inspectorState->setBoolean(DebuggerAgentState::enableWhenShown, false);
enable(false);
......
......@@ -38,13 +38,13 @@ WebInspector.DebuggerModel = function()
}
WebInspector.DebuggerModel.Events = {
DebuggerWasEnabled: "debugger-was-enabled",
DebuggerWasDisabled: "debugger-was-disabled",
DebuggerPaused: "debugger-paused",
DebuggerResumed: "debugger-resumed",
ParsedScriptSource: "parsed-script-source",
FailedToParseScriptSource: "failed-to-parse-script-source",
ScriptSourceChanged: "script-source-changed",
BreakpointAdded: "breakpoint-added",
BreakpointRemoved: "breakpoint-removed",
BreakpointResolved: "breakpoint-resolved"
}
......@@ -52,17 +52,6 @@ WebInspector.DebuggerModel.prototype = {
enableDebugger: function()
{
DebuggerAgent.enable();
if (this._breakpointsPushedToBackend)
return;
var breakpoints = WebInspector.settings.breakpoints;
for (var i = 0; i < breakpoints.length; ++i) {
var breakpoint = breakpoints[i];
if (typeof breakpoint.url !== "string" || typeof breakpoint.lineNumber !== "number" || typeof breakpoint.columnNumber !== "number" ||
typeof breakpoint.condition !== "string" || typeof breakpoint.enabled !== "boolean")
continue;
this.setBreakpoint(breakpoint.url, breakpoint.lineNumber, breakpoint.columnNumber, breakpoint.condition, breakpoint.enabled);
}
this._breakpointsPushedToBackend = true;
},
disableDebugger: function()
......@@ -70,12 +59,23 @@ WebInspector.DebuggerModel.prototype = {
DebuggerAgent.disable();
},
_debuggerWasEnabled: function()
{
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerWasEnabled);
},
_debuggerWasDisabled: function()
{
this._breakpoints = {};
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerWasDisabled);
},
continueToLocation: function(sourceID, lineNumber, columnNumber)
{
DebuggerAgent.continueToLocation(sourceID, lineNumber, columnNumber);
},
setBreakpoint: function(url, lineNumber, columnNumber, condition, enabled)
setBreakpoint: function(url, lineNumber, columnNumber, condition, enabled, callback)
{
// Adjust column if needed.
var minColumnNumber = 0;
......@@ -86,31 +86,32 @@ WebInspector.DebuggerModel.prototype = {
}
columnNumber = Math.max(columnNumber, minColumnNumber);
function didSetBreakpoint(breakpointsPushedToBackend, error, breakpointId, locations)
function didSetBreakpoint(error, breakpointId, locations)
{
if (error || !breakpointId)
return;
var breakpoint = new WebInspector.Breakpoint(breakpointId, url, "", lineNumber, columnNumber, condition, enabled);
breakpoint.locations = locations;
this._breakpoints[breakpointId] = breakpoint;
if (breakpointsPushedToBackend)
this._saveBreakpoints();
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointAdded, breakpoint);
var breakpoint;
if (!error && breakpointId) {
breakpoint = new WebInspector.Breakpoint(breakpointId, url, "", lineNumber, columnNumber, condition, enabled);
breakpoint.locations = locations;
this._breakpoints[breakpointId] = breakpoint;
}
if (callback)
callback(breakpoint);
}
DebuggerAgent.setJavaScriptBreakpoint(url, lineNumber, columnNumber, condition, enabled, didSetBreakpoint.bind(this, this._breakpointsPushedToBackend));
DebuggerAgent.setJavaScriptBreakpoint(url, lineNumber, columnNumber, condition, enabled, didSetBreakpoint.bind(this));
},
setBreakpointBySourceId: function(sourceID, lineNumber, columnNumber, condition, enabled)
setBreakpointBySourceId: function(sourceID, lineNumber, columnNumber, condition, enabled, callback)
{
function didSetBreakpoint(error, breakpointId, actualLineNumber, actualColumnNumber)
{
if (error || !breakpointId)
return;
var breakpoint = new WebInspector.Breakpoint(breakpointId, "", sourceID, lineNumber, columnNumber, condition, enabled);
breakpoint.addLocation(sourceID, actualLineNumber, actualColumnNumber);
this._breakpoints[breakpointId] = breakpoint;
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointAdded, breakpoint);
var breakpoint;
if (!error && breakpointId) {
breakpoint = new WebInspector.Breakpoint(breakpointId, "", sourceID, lineNumber, columnNumber, condition, enabled);
breakpoint.addLocation(sourceID, actualLineNumber, actualColumnNumber);
this._breakpoints[breakpointId] = breakpoint;
}
if (callback)
callback(breakpoint);
}
DebuggerAgent.setJavaScriptBreakpointBySourceId(sourceID, lineNumber, columnNumber, condition, enabled, didSetBreakpoint.bind(this));
},
......@@ -118,77 +119,28 @@ WebInspector.DebuggerModel.prototype = {
removeBreakpoint: function(breakpointId)
{
DebuggerAgent.removeJavaScriptBreakpoint(breakpointId);
var breakpoint = this._breakpoints[breakpointId];
delete this._breakpoints[breakpointId];
this._saveBreakpoints();
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointRemoved, breakpointId);
},
updateBreakpoint: function(breakpointId, condition, enabled)
{
var breakpoint = this._breakpoints[breakpointId];
this.removeBreakpoint(breakpointId);
if (breakpoint.url)
this.setBreakpoint(breakpoint.url, breakpoint.lineNumber, breakpoint.columnNumber, condition, enabled);
else
this.setBreakpointBySourceId(breakpoint.sourceID, breakpoint.lineNumber, breakpoint.columnNumber, condition, enabled);
},
_breakpointResolved: function(breakpointId, sourceID, lineNumber, columnNumber)
{
var breakpoint = this._breakpoints[breakpointId];
if (!breakpoint)
return;
breakpoint.addLocation(sourceID, lineNumber, columnNumber);
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved, breakpoint);
},
_saveBreakpoints: function()
{
var serializedBreakpoints = [];
for (var id in this._breakpoints) {
var breakpoint = this._breakpoints[id];
if (!breakpoint.url)
continue;
var serializedBreakpoint = {};
serializedBreakpoint.url = breakpoint.url;
serializedBreakpoint.lineNumber = breakpoint.lineNumber;
serializedBreakpoint.columnNumber = breakpoint.columnNumber;
serializedBreakpoint.condition = breakpoint.condition;
serializedBreakpoint.enabled = breakpoint.enabled;
serializedBreakpoints.push(serializedBreakpoint);
}
WebInspector.settings.breakpoints = serializedBreakpoints;
},
get breakpoints()
{
return this._breakpoints;
},
breakpointForId: function(breakpointId)
{
return this._breakpoints[breakpointId];
},
queryBreakpoints: function(filter)
{
var breakpoints = [];
for (var id in this._breakpoints) {
var breakpoint = this._breakpoints[id];
if (filter(breakpoint))
breakpoints.push(breakpoint);
}
return breakpoints;
},
reset: function()
{
this._debuggerPausedDetails = {};
for (var id in this._breakpoints) {
var breakpoint = this._breakpoints[id];
if (!breakpoint.url)
this.removeBreakpoint(id);
delete this._breakpoints[id];
else
breakpoint.locations = [];
}
......@@ -316,12 +268,12 @@ WebInspector.DebuggerDispatcher.prototype = {
debuggerWasEnabled: function()
{
WebInspector.panels.scripts.debuggerWasEnabled();
this._debuggerModel._debuggerWasEnabled();
},
debuggerWasDisabled: function()
{
WebInspector.panels.scripts.debuggerWasDisabled();
this._debuggerModel._debuggerWasDisabled();
},
parsedScriptSource: function(sourceID, sourceURL, lineOffset, columnOffset, length, scriptWorldType)
......
......@@ -185,6 +185,8 @@ WebInspector.ScriptsPanel = function()
this.reset();
WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerWasEnabled, this);
WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasDisabled, this._debuggerWasDisabled, this);
WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this);
WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._failedToParseScriptSource, this);
WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ScriptSourceChanged, this._scriptSourceChanged, this);
......@@ -450,7 +452,7 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
},
debuggerWasEnabled: function()
_debuggerWasEnabled: function()
{
this._setPauseOnExceptions(WebInspector.settings.pauseOnExceptionState);
......@@ -460,7 +462,7 @@ WebInspector.ScriptsPanel.prototype = {
this.reset(true);
},
debuggerWasDisabled: function()
_debuggerWasDisabled: function()
{
if (!this._debuggerEnabled)
return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment