[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

yurys at chromium.org yurys at chromium.org
Wed Dec 22 11:10:23 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 3cda6c2b8e42f0a1f0f0c9b3f17dbfeb14be62ef
Author: yurys at chromium.org <yurys at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 14 10:17:54 2010 +0000

    2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            Web Inspector: do not activate all breakpoints on page reload
            https://bugs.webkit.org/show_bug.cgi?id=41461
    
            * http/tests/inspector/debugger-test.js:
            (frontend_scriptsAreParsed):
            (frontend_waitUntilScriptsAreParsed.waitForAllScripts):
            (frontend_waitUntilScriptsAreParsed):
            (frontend_ensureSourceFrameLoaded):
            (frontend_showScriptSource):
            * inspector/debugger-breakpoints-not-activated-on-reload-expected.txt: Added.
            * inspector/debugger-breakpoints-not-activated-on-reload.html: Added.
    2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            Web Inspector: do not activate all breakpoints on page reload
            https://bugs.webkit.org/show_bug.cgi?id=41461
    
            Test: inspector/debugger-breakpoints-not-activated-on-reload.html
    
            * inspector/front-end/ScriptView.js:
            (WebInspector.ScriptView.prototype._addBreakpoint):
            * inspector/front-end/ScriptsPanel.js:
            (WebInspector.ScriptsPanel):
            (WebInspector.ScriptsPanel.prototype._breakpointAdded):
            (WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
            * inspector/front-end/SourceView.js:
            (WebInspector.SourceView.prototype._addBreakpoint):
    2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            Web Inspector: if breakpoints were deactivated, add new breakpoints as disabled.
            https://bugs.webkit.org/show_bug.cgi?id=41461
    
            * src/js/DebuggerScript.js:
            ():
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63305 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 90435c9..647474a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -2,6 +2,22 @@
 
         Reviewed by Yury Semikhatsky.
 
+        Web Inspector: do not activate all breakpoints on page reload
+        https://bugs.webkit.org/show_bug.cgi?id=41461
+
+        * http/tests/inspector/debugger-test.js:
+        (frontend_scriptsAreParsed):
+        (frontend_waitUntilScriptsAreParsed.waitForAllScripts):
+        (frontend_waitUntilScriptsAreParsed):
+        (frontend_ensureSourceFrameLoaded):
+        (frontend_showScriptSource):
+        * inspector/debugger-breakpoints-not-activated-on-reload-expected.txt: Added.
+        * inspector/debugger-breakpoints-not-activated-on-reload.html: Added.
+
+2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
         [Chromium] Add svg/custom/text-rotated-gradient.svg to test_expectations
         https://bugs.webkit.org/show_bug.cgi?id=42241
 
diff --git a/LayoutTests/http/tests/inspector/debugger-test.js b/LayoutTests/http/tests/inspector/debugger-test.js
index 650d2b9..2743916 100644
--- a/LayoutTests/http/tests/inspector/debugger-test.js
+++ b/LayoutTests/http/tests/inspector/debugger-test.js
@@ -33,3 +33,69 @@ function frontend_completeDebuggerTest(testController)
         testController.notifyDone();
     });
 }
+
+function frontend_scriptsAreParsed(scripts)
+{
+    var scriptSelect = document.getElementById("scripts-files");
+    var options = scriptSelect.options;
+
+    // Check that all the expected scripts are present.
+    for (var i = 0; i < scripts.length; i++) {
+        var found = false;
+        for (var j = 0; j < options.length; j++) {
+            if (options[j].text.search(scripts[i]) !== -1) {
+                found = true;
+                break;
+            }
+        }
+        if (!found)
+            return false;
+    }
+    return true;
+};
+
+function frontend_waitUntilScriptsAreParsed(scripts, callback)
+{
+    function waitForAllScripts()
+    {
+        if (frontend_scriptsAreParsed(scripts))
+            callback();
+        else
+            frontend_addSniffer(WebInspector, "parsedScriptSource", waitForAllScripts);
+    }
+    waitForAllScripts();
+};
+
+function frontend_ensureSourceFrameLoaded(sourceFrame, callback)
+{
+    if (!sourceFrame._loaded)
+        frontend_addSniffer(sourceFrame, "setContent", callback);
+    else
+        callback();
+}
+
+function frontend_showScriptSource(scriptName, callback)
+{
+    var scriptSelect = document.getElementById("scripts-files");
+    var options = scriptSelect.options;
+    var scriptsPanel = WebInspector.panels.scripts;
+
+    // Select page's script if it's not current option.
+    var scriptResource;
+    if (options[scriptSelect.selectedIndex].text === scriptName)
+        scriptResource = options[scriptSelect.selectedIndex].representedObject;
+    else {
+        var pageScriptIndex = -1;
+        for (var i = 0; i < options.length; i++) {
+            if (options[i].text === scriptName) {
+                pageScriptIndex = i;
+                break;
+            }
+        }
+        scriptResource = options[pageScriptIndex].representedObject;
+        scriptsPanel._showScriptOrResource(scriptResource);
+    }
+
+    var view = scriptsPanel.visibleView;
+    frontend_ensureSourceFrameLoaded(view.sourceFrame, callback.bind(null, view));
+};
diff --git a/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload-expected.txt b/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload-expected.txt
new file mode 100644
index 0000000..9afbb90
--- /dev/null
+++ b/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload-expected.txt
@@ -0,0 +1,7 @@
+Tests that breakpoints are not activated on page reload.Bug 41461
+
+Debugger was enabled.
+Scripts were parsed.
+Breakpoints deactivated.
+Disabled debugger.
+
diff --git a/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html b/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html
new file mode 100644
index 0000000..c193c7b
--- /dev/null
+++ b/LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<script src="../http/tests/inspector/inspector-test.js"></script>
+<script src="../http/tests/inspector/debugger-test.js"></script>
+<script>
+
+function testFunction()
+{
+    return 0;
+}
+
+function doit()
+{
+    evaluateInWebInspector("frontend_testBreakpointsNotActivatedOnReload", completeTest);
+}
+
+function frontend_testBreakpointsNotActivatedOnReload(testController)
+{
+    var testName = WebInspector.mainResource.url;
+    testName = testName.substring(testName.lastIndexOf('/') + 1);
+
+    testController.waitUntilDone();
+
+    WebInspector.showScriptsPanel();
+    frontend_ensureDebuggerEnabled(debuggerWasEnabledCallback);
+
+    function debuggerWasEnabledCallback()
+    {
+        testController.results.push("Debugger was enabled.");
+        frontend_waitUntilScriptsAreParsed([testName], waitUntilScriptsAreParsedCallback);
+    }
+
+    function waitUntilScriptsAreParsedCallback()
+    {
+        testController.results.push("Scripts were parsed.");
+        frontend_showScriptSource(testName, showScriptSourceCallback);
+    }
+
+    function showScriptSourceCallback(view)
+    {
+        if (!WebInspector.flag) {
+            view._addBreakpoint(8);
+            WebInspector.panels.scripts.toggleBreakpointsButton.element.click();
+            InspectorBackend.reloadPage();
+            WebInspector.flag = true;
+        } else {
+            if (!WebInspector.panels.scripts.breakpointsActivated)
+                testController.results.push("Breakpoints deactivated.");
+            else
+                testController.results.push("Error: breakpoints activated.");
+            frontend_completeDebuggerTest(testController);
+        }
+    }
+}
+
+</script>
+</head>
+
+<body onload="onload()">
+<p>
+Tests that breakpoints are not activated on page reload.<a href="https://bugs.webkit.org/show_bug.cgi?id=41461">Bug 41461</a>
+</p>
+
+</body>
+</html>
+
+
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index caead01..7c74a9f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        Web Inspector: do not activate all breakpoints on page reload
+        https://bugs.webkit.org/show_bug.cgi?id=41461
+
+        Test: inspector/debugger-breakpoints-not-activated-on-reload.html
+
+        * inspector/front-end/ScriptView.js:
+        (WebInspector.ScriptView.prototype._addBreakpoint):
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel):
+        (WebInspector.ScriptsPanel.prototype._breakpointAdded):
+        (WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
+        * inspector/front-end/SourceView.js:
+        (WebInspector.SourceView.prototype._addBreakpoint):
+
 2010-07-14  Yury Semikhatsky  <yurys at chromium.org>
 
         Reviewed by Pavel Feldman.
diff --git a/WebCore/inspector/front-end/ScriptView.js b/WebCore/inspector/front-end/ScriptView.js
index c576510..597fd28 100644
--- a/WebCore/inspector/front-end/ScriptView.js
+++ b/WebCore/inspector/front-end/ScriptView.js
@@ -97,6 +97,8 @@ WebInspector.ScriptView.prototype = {
     _addBreakpoint: function(line)
     {
         WebInspector.breakpointManager.setBreakpoint(this.script.sourceID, this.script.sourceURL, line, true, "");
+        if (!WebInspector.panels.scripts.breakpointsActivated)
+            WebInspector.panels.scripts.toggleBreakpointsClicked();
     },
 
     _editLineComplete: function(newBody)
diff --git a/WebCore/inspector/front-end/ScriptsPanel.js b/WebCore/inspector/front-end/ScriptsPanel.js
index 3c4a0be..8fbc913 100644
--- a/WebCore/inspector/front-end/ScriptsPanel.js
+++ b/WebCore/inspector/front-end/ScriptsPanel.js
@@ -104,10 +104,10 @@ WebInspector.ScriptsPanel = function()
     this.sidebarButtonsElement.appendChild(this.stepOutButton);
 
     this.toggleBreakpointsButton = new WebInspector.StatusBarButton("", "toggle-breakpoints");
-    this.toggleBreakpointsButton.addEventListener("click", this._toggleBreakpointsClicked.bind(this), false);
+    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.toggleBreakpointsClicked();
 
     this.debuggerStatusElement = document.createElement("div");
     this.debuggerStatusElement.id = "scripts-debugger-status";
@@ -162,7 +162,7 @@ WebInspector.ScriptsPanel = function()
     this._pauseOnExceptionButton = new WebInspector.StatusBarButton("", "scripts-pause-on-exceptions-status-bar-item", 3);
     this._pauseOnExceptionButton.addEventListener("click", this._togglePauseOnExceptions.bind(this), false);
     this._pauseOnExceptionButton.state = WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions;
-    this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions."); 
+    this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions.");
 
     this._registerShortcuts();
 
@@ -217,7 +217,7 @@ WebInspector.ScriptsPanel.prototype = {
             delete this._attachDebuggerWhenShown;
         }
     },
-    
+
     hide: function()
     {
         if (this.visibleView)
@@ -276,7 +276,7 @@ WebInspector.ScriptsPanel.prototype = {
 
             // Remove script from the files list.
             script.filesSelectOption.parentElement.removeChild(script.filesSelectOption);
-            
+
             // Move breakpoints to the resource's frame.
             if (script._scriptView) {
                 var sourceFrame = script._scriptView.sourceFrame;
@@ -294,9 +294,6 @@ WebInspector.ScriptsPanel.prototype = {
     {
         var breakpoint = event.data;
 
-        if (!this.breakpointsActivated)
-            this._toggleBreakpointsClicked();
-
         var sourceFrame;
         if (breakpoint.url) {
             var resource = WebInspector.resourceURLMap[breakpoint.url];
@@ -538,7 +535,7 @@ WebInspector.ScriptsPanel.prototype = {
         this._showScriptOrResource(scriptOrResource, {line: line, shouldHighlightLine: true});
     },
 
-    _scriptOrResourceForURLAndLine: function(url, line) 
+    _scriptOrResourceForURLAndLine: function(url, line)
     {
         var scriptWithMatchingUrl = null;
         for (var sourceID in this._sourceIDMap) {
@@ -610,8 +607,7 @@ WebInspector.ScriptsPanel.prototype = {
     _showScriptOrResource: function(scriptOrResource, options)
     {
         // options = {line:, shouldHighlightLine:, fromBackForwardAction:, initialLoad:}
-        if (!options) 
-            options = {};
+        options = options || {};
 
         if (!scriptOrResource)
             return;
@@ -693,7 +689,7 @@ WebInspector.ScriptsPanel.prototype = {
                 return;
             this._resourceForURLInFilesSelect[script.resource.url] = script.resource;
         }
- 
+
         var displayName = script.sourceURL ? WebInspector.displayNameForURL(script.sourceURL) : WebInspector.UIString("(program)");
 
         var select = this.filesSelectElement;
@@ -812,7 +808,7 @@ WebInspector.ScriptsPanel.prototype = {
 
         this.resize();
     },
-    
+
     updatePauseOnExceptionsState: function(pauseOnExceptionsState)
     {
         if (pauseOnExceptionsState == WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions)
@@ -971,7 +967,7 @@ WebInspector.ScriptsPanel.prototype = {
         InspectorBackend.stepOutOfFunctionInDebugger();
     },
 
-    _toggleBreakpointsClicked: function()
+    toggleBreakpointsClicked: function()
     {
         this.toggleBreakpointsButton.toggled = !this.toggleBreakpointsButton.toggled;
         if (this.toggleBreakpointsButton.toggled) {
diff --git a/WebCore/inspector/front-end/SourceView.js b/WebCore/inspector/front-end/SourceView.js
index 1bf8194..4d03ecd 100644
--- a/WebCore/inspector/front-end/SourceView.js
+++ b/WebCore/inspector/front-end/SourceView.js
@@ -128,6 +128,8 @@ WebInspector.SourceView.prototype = {
     {
         var sourceID = this._sourceIDForLine(line);
         WebInspector.breakpointManager.setBreakpoint(sourceID, this.resource.url, line, true, "");
+        if (!WebInspector.panels.scripts.breakpointsActivated)
+            WebInspector.panels.scripts.toggleBreakpointsClicked();
     },
 
     _removeBreakpoint: function(breakpoint)
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index d30db13..850df04 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,13 @@
+2010-07-14  Pavel Podivilov  <podivilov at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        Web Inspector: if breakpoints were deactivated, add new breakpoints as disabled.
+        https://bugs.webkit.org/show_bug.cgi?id=41461
+
+        * src/js/DebuggerScript.js:
+        ():
+
 2010-07-14  Kent Tamura  <tkent at chromium.org>
 
         Unreviewed, 2nd attempt to fix build on 'Webkit.org Reliability Builder'.
diff --git a/WebKit/chromium/src/js/DebuggerScript.js b/WebKit/chromium/src/js/DebuggerScript.js
index 70c2fbe..7c7f9d9 100644
--- a/WebKit/chromium/src/js/DebuggerScript.js
+++ b/WebKit/chromium/src/js/DebuggerScript.js
@@ -32,6 +32,7 @@
 
 var DebuggerScript = {};
 DebuggerScript._breakpoints = {};
+DebuggerScript._breakpointsActivated = true;
 
 DebuggerScript.PauseOnExceptionsState = {
     DontPauseOnExceptions : 0,
@@ -94,7 +95,7 @@ DebuggerScript.setBreakpoint = function(execState, args)
 {
     args.lineNumber = DebuggerScript._webkitToV8LineNumber(args.lineNumber);
     var breakId = Debug.setScriptBreakPointById(args.scriptId, args.lineNumber, 0 /* column */, args.condition);
-    if (!args.enabled)
+    if (!args.enabled || !DebuggerScript._breakpointsActivated)
         Debug.disableScriptBreakPoint(breakId);
 
     var actualLineNumber = args.lineNumber; // TODO: replace with real stuff after v8 roll.
@@ -203,6 +204,7 @@ DebuggerScript.setBreakpointsActivated = function(execState, args)
         else
             Debug.disableScriptBreakPoint(breakId);
     }
+    DebuggerScript._breakpointsActivated = args.enabled;
 }
 
 DebuggerScript._frameMirrorToJSCallFrame = function(frameMirror, callerFrame)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list