[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.21-584-g1e41756
apavlov at chromium.org
apavlov at chromium.org
Fri Feb 26 22:27:01 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 0155f4702ea3cc009ae2e42e6d518d0a3f06537b
Author: apavlov at chromium.org <apavlov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Feb 22 12:14:41 2010 +0000
2010-02-22 Alexander Pavlov <apavlov at chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: there should be a way to "deactivate" or "skip" all breakpoints while debugging.
https://bugs.webkit.org/show_bug.cgi?id=33217
WebCore:
* English.lproj/localizedStrings.js:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::hasBreakpoint):
(WebCore::ScriptDebugServer::setBreakpointsActivated):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::setBreakpointsActivated):
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::activateBreakpoints):
(WebCore::InspectorBackend::deactivateBreakpoints):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png: Added.
* inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png: Added.
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.activateBreakpoints):
(.WebInspector.InspectorBackendStub.prototype.deactivateBreakpoints):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.get breakpointsActivated):
(WebInspector.ScriptsPanel.prototype.addBreakpoint):
(WebInspector.ScriptsPanel.prototype._stepOutClicked):
(WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
* inspector/front-end/inspector.css:
* inspector/front-end/textViewer.css:
WebKit/chromium:
* src/js/DebuggerAgent.js:
(devtools.DebuggerAgent):
(devtools.DebuggerAgent.prototype.setBreakpointsActivated):
(devtools.DebuggerAgent.prototype.handleBreakEvent_):
(devtools.DebuggerAgent.prototype.handleExceptionEvent_):
* src/js/InspectorControllerImpl.js:
(devtools.InspectorBackendImpl.prototype.activateBreakpoints):
(devtools.InspectorBackendImpl.prototype.deactivateBreakpoints):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3649446..e2dcd55 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,37 @@
+2010-02-22 Alexander Pavlov <apavlov at chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: there should be a way to "deactivate" or "skip" all breakpoints while debugging.
+ https://bugs.webkit.org/show_bug.cgi?id=33217
+
+ * English.lproj/localizedStrings.js:
+ * bindings/js/ScriptDebugServer.cpp:
+ (WebCore::ScriptDebugServer::ScriptDebugServer):
+ (WebCore::ScriptDebugServer::hasBreakpoint):
+ (WebCore::ScriptDebugServer::setBreakpointsActivated):
+ * bindings/js/ScriptDebugServer.h:
+ * bindings/v8/ScriptDebugServer.h:
+ (WebCore::ScriptDebugServer::setBreakpointsActivated):
+ * inspector/InspectorBackend.cpp:
+ (WebCore::InspectorBackend::activateBreakpoints):
+ (WebCore::InspectorBackend::deactivateBreakpoints):
+ * inspector/InspectorBackend.h:
+ * inspector/InspectorBackend.idl:
+ * inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png: Added.
+ * inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png: Added.
+ * inspector/front-end/InspectorBackendStub.js:
+ (.WebInspector.InspectorBackendStub.prototype.activateBreakpoints):
+ (.WebInspector.InspectorBackendStub.prototype.deactivateBreakpoints):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel):
+ (WebInspector.ScriptsPanel.prototype.get breakpointsActivated):
+ (WebInspector.ScriptsPanel.prototype.addBreakpoint):
+ (WebInspector.ScriptsPanel.prototype._stepOutClicked):
+ (WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
+ * inspector/front-end/inspector.css:
+ * inspector/front-end/textViewer.css:
+
2010-02-22 Mark Rowe <mrowe at apple.com>
Rubber-stamped by Sam Weinig and Maciej Stachowiak.
diff --git a/WebCore/English.lproj/localizedStrings.js b/WebCore/English.lproj/localizedStrings.js
index 65d9528..12666f8 100644
Binary files a/WebCore/English.lproj/localizedStrings.js and b/WebCore/English.lproj/localizedStrings.js differ
diff --git a/WebCore/bindings/js/ScriptDebugServer.cpp b/WebCore/bindings/js/ScriptDebugServer.cpp
index f1185ac..dd48229 100644
--- a/WebCore/bindings/js/ScriptDebugServer.cpp
+++ b/WebCore/bindings/js/ScriptDebugServer.cpp
@@ -72,6 +72,7 @@ ScriptDebugServer::ScriptDebugServer()
, m_doneProcessingDebuggerEvents(true)
, m_pauseOnCallFrame(0)
, m_recompileTimer(this, &ScriptDebugServer::recompileAllJSFunctions)
+ , m_breakpointsActivated(true)
{
}
@@ -154,6 +155,9 @@ void ScriptDebugServer::removeBreakpoint(const String& sourceID, unsigned lineNu
bool ScriptDebugServer::hasBreakpoint(intptr_t sourceID, unsigned lineNumber) const
{
+ if (!m_breakpointsActivated)
+ return false;
+
BreakpointsMap::const_iterator it = m_breakpoints.find(sourceID);
if (it == m_breakpoints.end())
return false;
@@ -179,6 +183,11 @@ void ScriptDebugServer::clearBreakpoints()
m_breakpoints.clear();
}
+void ScriptDebugServer::setBreakpointsActivated(bool activated)
+{
+ m_breakpointsActivated = activated;
+}
+
void ScriptDebugServer::setPauseOnExceptionsState(PauseOnExceptionsState pause)
{
m_pauseOnExceptionsState = pause;
diff --git a/WebCore/bindings/js/ScriptDebugServer.h b/WebCore/bindings/js/ScriptDebugServer.h
index 4bcdb50..4740585 100644
--- a/WebCore/bindings/js/ScriptDebugServer.h
+++ b/WebCore/bindings/js/ScriptDebugServer.h
@@ -66,6 +66,7 @@ public:
void setBreakpoint(const String& sourceID, unsigned lineNumber, ScriptBreakpoint breakpoint);
void removeBreakpoint(const String& sourceID, unsigned lineNumber);
void clearBreakpoints();
+ void setBreakpointsActivated(bool activated);
enum PauseOnExceptionsState {
DontPauseOnExceptions,
@@ -138,6 +139,7 @@ private:
bool m_pauseOnNextStatement;
bool m_paused;
bool m_doneProcessingDebuggerEvents;
+ bool m_breakpointsActivated;
JavaScriptCallFrame* m_pauseOnCallFrame;
RefPtr<JavaScriptCallFrame> m_currentCallFrame;
BreakpointsMap m_breakpoints;
diff --git a/WebCore/bindings/v8/ScriptDebugServer.h b/WebCore/bindings/v8/ScriptDebugServer.h
index 1606824..f3c0e57 100644
--- a/WebCore/bindings/v8/ScriptDebugServer.h
+++ b/WebCore/bindings/v8/ScriptDebugServer.h
@@ -54,6 +54,7 @@ public:
void setBreakpoint(const String& sourceID, unsigned lineNumber, ScriptBreakpoint breakpoint) { }
void removeBreakpoint(const String& sourceID, unsigned lineNumber) { }
void clearBreakpoints() { }
+ void setBreakpointsActivated(bool activated) { }
enum PauseOnExceptionsState {
DontPauseOnExceptions,
diff --git a/WebCore/inspector/InspectorBackend.cpp b/WebCore/inspector/InspectorBackend.cpp
index 14743c0..774e569 100644
--- a/WebCore/inspector/InspectorBackend.cpp
+++ b/WebCore/inspector/InspectorBackend.cpp
@@ -179,6 +179,16 @@ void InspectorBackend::removeBreakpoint(const String& sourceID, unsigned lineNum
m_inspectorController->removeBreakpoint(sourceID, lineNumber);
}
+void InspectorBackend::activateBreakpoints()
+{
+ ScriptDebugServer::shared().setBreakpointsActivated(true);
+}
+
+void InspectorBackend::deactivateBreakpoints()
+{
+ ScriptDebugServer::shared().setBreakpointsActivated(false);
+}
+
void InspectorBackend::pauseInDebugger()
{
ScriptDebugServer::shared().pauseProgram();
diff --git a/WebCore/inspector/InspectorBackend.h b/WebCore/inspector/InspectorBackend.h
index d31a181..8a8c203 100644
--- a/WebCore/inspector/InspectorBackend.h
+++ b/WebCore/inspector/InspectorBackend.h
@@ -79,6 +79,8 @@ public:
void setBreakpoint(const String& sourceID, unsigned lineNumber, bool enabled, const String& condition);
void removeBreakpoint(const String& sourceID, unsigned lineNumber);
+ void activateBreakpoints();
+ void deactivateBreakpoints();
void pauseInDebugger();
void resumeDebugger();
diff --git a/WebCore/inspector/InspectorBackend.idl b/WebCore/inspector/InspectorBackend.idl
index 1cd4bf2..e65f94a 100644
--- a/WebCore/inspector/InspectorBackend.idl
+++ b/WebCore/inspector/InspectorBackend.idl
@@ -54,6 +54,8 @@ module core {
void setBreakpoint(in DOMString sourceID, in unsigned long lineNumber, in boolean enabled, in DOMString condition);
void removeBreakpoint(in DOMString sourceID, in unsigned long lineNumber);
+ void activateBreakpoints();
+ void deactivateBreakpoints();
void pauseInDebugger();
void resumeDebugger();
diff --git a/WebCore/inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png b/WebCore/inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png
new file mode 100644
index 0000000..edcf225
Binary files /dev/null and b/WebCore/inspector/front-end/Images/deactivateBreakpointsButtonGlyph.png differ
diff --git a/WebCore/inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png b/WebCore/inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png
new file mode 100644
index 0000000..58ccf68
Binary files /dev/null and b/WebCore/inspector/front-end/Images/deactivateBreakpointsDisabledButtonGlyph.png differ
diff --git a/WebCore/inspector/front-end/InspectorBackendStub.js b/WebCore/inspector/front-end/InspectorBackendStub.js
index 410ad97..f5ee475 100644
--- a/WebCore/inspector/front-end/InspectorBackendStub.js
+++ b/WebCore/inspector/front-end/InspectorBackendStub.js
@@ -166,6 +166,16 @@ WebInspector.InspectorBackendStub.prototype = {
{
},
+ activateBreakpoints: function()
+ {
+ this._breakpointsActivated = true;
+ },
+
+ deactivateBreakpoints: function()
+ {
+ this._breakpointsActivated = false;
+ },
+
pauseInDebugger: function()
{
},
diff --git a/WebCore/inspector/front-end/ScriptsPanel.js b/WebCore/inspector/front-end/ScriptsPanel.js
index 8b17533..7e9cb9b 100644
--- a/WebCore/inspector/front-end/ScriptsPanel.js
+++ b/WebCore/inspector/front-end/ScriptsPanel.js
@@ -105,6 +105,12 @@ WebInspector.ScriptsPanel = function()
this.stepOutButton.appendChild(document.createElement("img"));
this.sidebarButtonsElement.appendChild(this.stepOutButton);
+ this.toggleBreakpointsButton = new WebInspector.StatusBarButton("", "toggle-breakpoints");
+ this.toggleBreakpointsButton.addEventListener("click", this._toggleBreakpointsClicked.bind(this), false);
+ this.sidebarButtonsElement.appendChild(this.toggleBreakpointsButton.element);
+ // Breakpoints should be activated by default, so emulate a click to toggle on.
+ this._toggleBreakpointsClicked();
+
this.debuggerStatusElement = document.createElement("div");
this.debuggerStatusElement.id = "scripts-debugger-status";
this.sidebarButtonsElement.appendChild(this.debuggerStatusElement);
@@ -274,6 +280,11 @@ WebInspector.ScriptsPanel.prototype = {
return views;
},
+ get breakpointsActivated()
+ {
+ return this.toggleBreakpointsButton.toggled;
+ },
+
addScript: function(sourceID, sourceURL, source, startingLine, errorLine, errorMessage)
{
var script = new WebInspector.Script(sourceID, sourceURL, source, startingLine, errorLine, errorMessage);
@@ -302,6 +313,9 @@ WebInspector.ScriptsPanel.prototype = {
addBreakpoint: function(breakpoint)
{
+ if (!this.breakpointsActivated)
+ this._toggleBreakpointsClicked();
+
this.sidebarPanes.breakpoints.addBreakpoint(breakpoint);
var sourceFrame;
@@ -936,6 +950,20 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
InspectorBackend.stepOutOfFunctionInDebugger();
+ },
+
+ _toggleBreakpointsClicked: function()
+ {
+ this.toggleBreakpointsButton.toggled = !this.toggleBreakpointsButton.toggled;
+ if (this.toggleBreakpointsButton.toggled) {
+ InspectorBackend.activateBreakpoints();
+ this.toggleBreakpointsButton.title = WebInspector.UIString("Deactivate all breakpoints.");
+ document.getElementById("main-panels").removeStyleClass("breakpoints-deactivated");
+ } else {
+ InspectorBackend.deactivateBreakpoints();
+ this.toggleBreakpointsButton.title = WebInspector.UIString("Activate all breakpoints.");
+ document.getElementById("main-panels").addStyleClass("breakpoints-deactivated");
+ }
}
}
diff --git a/WebCore/inspector/front-end/inspector.css b/WebCore/inspector/front-end/inspector.css
index 396fccc..ec6078f 100644
--- a/WebCore/inspector/front-end/inspector.css
+++ b/WebCore/inspector/front-end/inspector.css
@@ -2410,6 +2410,16 @@ button.enable-toggle-status-bar-item.toggled-on .glyph {
content: url(Images/debuggerStepOut.png);
}
+.toggle-breakpoints .glyph {
+ -webkit-mask-image: url(Images/deactivateBreakpointsDisabledButtonGlyph.png);
+ background-color: rgb(96, 96, 96);
+}
+
+.toggle-breakpoints.toggled-on .glyph {
+ -webkit-mask-image: url(Images/deactivateBreakpointsButtonGlyph.png);
+ background-color: rgb(1, 142, 217);
+}
+
#scripts-debugger-status {
position: absolute;
line-height: 24px;
diff --git a/WebCore/inspector/front-end/textViewer.css b/WebCore/inspector/front-end/textViewer.css
index 1447dfd..18e712b 100644
--- a/WebCore/inspector/front-end/textViewer.css
+++ b/WebCore/inspector/front-end/textViewer.css
@@ -123,6 +123,14 @@
background-image: -webkit-canvas(breakpoint-disabled-conditional-program-counter);
}
+.breakpoints-deactivated .webkit-breakpoint .webkit-line-number {
+ opacity: 0.5;
+}
+
+.breakpoints-deactivated .webkit-breakpoint-disabled .webkit-line-number {
+ opacity: 0.5;
+}
+
.webkit-execution-line .webkit-line-content {
background-color: rgb(171, 191, 254);
outline: 1px solid rgb(64, 115, 244);
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index b10af7b..58095b8 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,19 @@
+2010-02-22 Alexander Pavlov <apavlov at chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: there should be a way to "deactivate" or "skip" all breakpoints while debugging.
+ https://bugs.webkit.org/show_bug.cgi?id=33217
+
+ * src/js/DebuggerAgent.js:
+ (devtools.DebuggerAgent):
+ (devtools.DebuggerAgent.prototype.setBreakpointsActivated):
+ (devtools.DebuggerAgent.prototype.handleBreakEvent_):
+ (devtools.DebuggerAgent.prototype.handleExceptionEvent_):
+ * src/js/InspectorControllerImpl.js:
+ (devtools.InspectorBackendImpl.prototype.activateBreakpoints):
+ (devtools.InspectorBackendImpl.prototype.deactivateBreakpoints):
+
2010-02-21 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
diff --git a/WebKit/chromium/src/js/DebuggerAgent.js b/WebKit/chromium/src/js/DebuggerAgent.js
index e9ca035..873cffb 100644
--- a/WebKit/chromium/src/js/DebuggerAgent.js
+++ b/WebKit/chromium/src/js/DebuggerAgent.js
@@ -117,12 +117,17 @@ devtools.DebuggerAgent = function()
*/
this.urlToBreakpoints_ = {};
-
/**
* Exception message that is shown to user while on exception break.
* @type {WebInspector.ConsoleMessage}
*/
this.currentExceptionMessage_ = null;
+
+ /**
+ * Whether breakpoints should suspend execution.
+ * @type {boolean}
+ */
+ this.breakpointsActivated_ = true;
};
@@ -336,6 +341,15 @@ devtools.DebuggerAgent.prototype.removeBreakpoint = function(sourceId, line)
/**
+ * @param {boolean} activated Whether breakpoints should be activated.
+ */
+devtools.DebuggerAgent.prototype.setBreakpointsActivated = function(activated)
+{
+ this.breakpointsActivated_ = activated;
+};
+
+
+/**
* Tells the v8 debugger to step into the next statement.
*/
devtools.DebuggerAgent.prototype.stepIntoStatement = function()
@@ -770,7 +784,12 @@ devtools.DebuggerAgent.prototype.handleDebuggerOutput_ = function(output)
*/
devtools.DebuggerAgent.prototype.handleBreakEvent_ = function(msg)
{
- // Force scrips panel to be shown first.
+ if (!this.breakpointsActivated_) {
+ this.resumeExecution();
+ return;
+ }
+
+ // Force scripts panel to be shown first.
WebInspector.currentPanel = WebInspector.panels.scripts;
var body = msg.getBody();
@@ -785,7 +804,7 @@ devtools.DebuggerAgent.prototype.handleBreakEvent_ = function(msg)
*/
devtools.DebuggerAgent.prototype.handleExceptionEvent_ = function(msg)
{
- // Force scrips panel to be shown first.
+ // Force scripts panel to be shown first.
WebInspector.currentPanel = WebInspector.panels.scripts;
var body = msg.getBody();
diff --git a/WebKit/chromium/src/js/InspectorControllerImpl.js b/WebKit/chromium/src/js/InspectorControllerImpl.js
index b51ced7..e91beac 100644
--- a/WebKit/chromium/src/js/InspectorControllerImpl.js
+++ b/WebKit/chromium/src/js/InspectorControllerImpl.js
@@ -116,6 +116,18 @@ devtools.InspectorBackendImpl.prototype.removeBreakpoint = function(sourceID, li
};
+devtools.InspectorBackendImpl.prototype.activateBreakpoints = function()
+{
+ devtools.tools.getDebuggerAgent().setBreakpointsActivated(true);
+};
+
+
+devtools.InspectorBackendImpl.prototype.deactivateBreakpoints = function()
+{
+ devtools.tools.getDebuggerAgent().setBreakpointsActivated(false);
+};
+
+
devtools.InspectorBackendImpl.prototype.pauseInDebugger = function()
{
devtools.tools.getDebuggerAgent().pauseExecution();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list