[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