Changeset 63305 in webkit


Ignore:
Timestamp:
Jul 14, 2010 3:17:54 AM (14 years ago)
Author:
yurys@chromium.org
Message:

2010-07-14 Pavel Podivilov <podivilov@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@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@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: ():
Location:
trunk
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r63304 r63305  
     12010-07-14  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: do not activate all breakpoints on page reload
     6        https://bugs.webkit.org/show_bug.cgi?id=41461
     7
     8        * http/tests/inspector/debugger-test.js:
     9        (frontend_scriptsAreParsed):
     10        (frontend_waitUntilScriptsAreParsed.waitForAllScripts):
     11        (frontend_waitUntilScriptsAreParsed):
     12        (frontend_ensureSourceFrameLoaded):
     13        (frontend_showScriptSource):
     14        * inspector/debugger-breakpoints-not-activated-on-reload-expected.txt: Added.
     15        * inspector/debugger-breakpoints-not-activated-on-reload.html: Added.
     16
    1172010-07-14  Pavel Podivilov  <podivilov@chromium.org>
    218
  • trunk/LayoutTests/http/tests/inspector/debugger-test.js

    r62769 r63305  
    3434    });
    3535}
     36
     37function frontend_scriptsAreParsed(scripts)
     38{
     39    var scriptSelect = document.getElementById("scripts-files");
     40    var options = scriptSelect.options;
     41
     42    // Check that all the expected scripts are present.
     43    for (var i = 0; i < scripts.length; i++) {
     44        var found = false;
     45        for (var j = 0; j < options.length; j++) {
     46            if (options[j].text.search(scripts[i]) !== -1) {
     47                found = true;
     48                break;
     49            }
     50        }
     51        if (!found)
     52            return false;
     53    }
     54    return true;
     55};
     56
     57function frontend_waitUntilScriptsAreParsed(scripts, callback)
     58{
     59    function waitForAllScripts()
     60    {
     61        if (frontend_scriptsAreParsed(scripts))
     62            callback();
     63        else
     64            frontend_addSniffer(WebInspector, "parsedScriptSource", waitForAllScripts);
     65    }
     66    waitForAllScripts();
     67};
     68
     69function frontend_ensureSourceFrameLoaded(sourceFrame, callback)
     70{
     71    if (!sourceFrame._loaded)
     72        frontend_addSniffer(sourceFrame, "setContent", callback);
     73    else
     74        callback();
     75}
     76
     77function frontend_showScriptSource(scriptName, callback)
     78{
     79    var scriptSelect = document.getElementById("scripts-files");
     80    var options = scriptSelect.options;
     81    var scriptsPanel = WebInspector.panels.scripts;
     82
     83    // Select page's script if it's not current option.
     84    var scriptResource;
     85    if (options[scriptSelect.selectedIndex].text === scriptName)
     86        scriptResource = options[scriptSelect.selectedIndex].representedObject;
     87    else {
     88        var pageScriptIndex = -1;
     89        for (var i = 0; i < options.length; i++) {
     90            if (options[i].text === scriptName) {
     91                pageScriptIndex = i;
     92                break;
     93            }
     94        }
     95        scriptResource = options[pageScriptIndex].representedObject;
     96        scriptsPanel._showScriptOrResource(scriptResource);
     97    }
     98
     99    var view = scriptsPanel.visibleView;
     100    frontend_ensureSourceFrameLoaded(view.sourceFrame, callback.bind(null, view));
     101};
  • trunk/WebCore/ChangeLog

    r63303 r63305  
     12010-07-14  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: do not activate all breakpoints on page reload
     6        https://bugs.webkit.org/show_bug.cgi?id=41461
     7
     8        Test: inspector/debugger-breakpoints-not-activated-on-reload.html
     9
     10        * inspector/front-end/ScriptView.js:
     11        (WebInspector.ScriptView.prototype._addBreakpoint):
     12        * inspector/front-end/ScriptsPanel.js:
     13        (WebInspector.ScriptsPanel):
     14        (WebInspector.ScriptsPanel.prototype._breakpointAdded):
     15        (WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
     16        * inspector/front-end/SourceView.js:
     17        (WebInspector.SourceView.prototype._addBreakpoint):
     18
    1192010-07-14  Yury Semikhatsky  <yurys@chromium.org>
    220
  • trunk/WebCore/inspector/front-end/ScriptView.js

    r62651 r63305  
    9898    {
    9999        WebInspector.breakpointManager.setBreakpoint(this.script.sourceID, this.script.sourceURL, line, true, "");
     100        if (!WebInspector.panels.scripts.breakpointsActivated)
     101            WebInspector.panels.scripts.toggleBreakpointsClicked();
    100102    },
    101103
  • trunk/WebCore/inspector/front-end/ScriptsPanel.js

    r62651 r63305  
    105105
    106106    this.toggleBreakpointsButton = new WebInspector.StatusBarButton("", "toggle-breakpoints");
    107     this.toggleBreakpointsButton.addEventListener("click", this._toggleBreakpointsClicked.bind(this), false);
     107    this.toggleBreakpointsButton.addEventListener("click", this.toggleBreakpointsClicked.bind(this), false);
    108108    this.sidebarButtonsElement.appendChild(this.toggleBreakpointsButton.element);
    109109    // Breakpoints should be activated by default, so emulate a click to toggle on.
    110     this._toggleBreakpointsClicked();
     110    this.toggleBreakpointsClicked();
    111111
    112112    this.debuggerStatusElement = document.createElement("div");
     
    163163    this._pauseOnExceptionButton.addEventListener("click", this._togglePauseOnExceptions.bind(this), false);
    164164    this._pauseOnExceptionButton.state = WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions;
    165     this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions."); 
     165    this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions.");
    166166
    167167    this._registerShortcuts();
     
    218218        }
    219219    },
    220    
     220
    221221    hide: function()
    222222    {
     
    277277            // Remove script from the files list.
    278278            script.filesSelectOption.parentElement.removeChild(script.filesSelectOption);
    279            
     279
    280280            // Move breakpoints to the resource's frame.
    281281            if (script._scriptView) {
     
    294294    {
    295295        var breakpoint = event.data;
    296 
    297         if (!this.breakpointsActivated)
    298             this._toggleBreakpointsClicked();
    299296
    300297        var sourceFrame;
     
    539536    },
    540537
    541     _scriptOrResourceForURLAndLine: function(url, line) 
     538    _scriptOrResourceForURLAndLine: function(url, line)
    542539    {
    543540        var scriptWithMatchingUrl = null;
     
    611608    {
    612609        // options = {line:, shouldHighlightLine:, fromBackForwardAction:, initialLoad:}
    613         if (!options)
    614             options = {};
     610        options = options || {};
    615611
    616612        if (!scriptOrResource)
     
    694690            this._resourceForURLInFilesSelect[script.resource.url] = script.resource;
    695691        }
    696  
     692
    697693        var displayName = script.sourceURL ? WebInspector.displayNameForURL(script.sourceURL) : WebInspector.UIString("(program)");
    698694
     
    813809        this.resize();
    814810    },
    815    
     811
    816812    updatePauseOnExceptionsState: function(pauseOnExceptionsState)
    817813    {
     
    972968    },
    973969
    974     _toggleBreakpointsClicked: function()
     970    toggleBreakpointsClicked: function()
    975971    {
    976972        this.toggleBreakpointsButton.toggled = !this.toggleBreakpointsButton.toggled;
  • trunk/WebCore/inspector/front-end/SourceView.js

    r62651 r63305  
    129129        var sourceID = this._sourceIDForLine(line);
    130130        WebInspector.breakpointManager.setBreakpoint(sourceID, this.resource.url, line, true, "");
     131        if (!WebInspector.panels.scripts.breakpointsActivated)
     132            WebInspector.panels.scripts.toggleBreakpointsClicked();
    131133    },
    132134
  • trunk/WebKit/chromium/ChangeLog

    r63301 r63305  
     12010-07-14  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: if breakpoints were deactivated, add new breakpoints as disabled.
     6        https://bugs.webkit.org/show_bug.cgi?id=41461
     7
     8        * src/js/DebuggerScript.js:
     9        ():
     10
    1112010-07-14  Kent Tamura  <tkent@chromium.org>
    212
  • trunk/WebKit/chromium/src/js/DebuggerScript.js

    r62754 r63305  
    3333var DebuggerScript = {};
    3434DebuggerScript._breakpoints = {};
     35DebuggerScript._breakpointsActivated = true;
    3536
    3637DebuggerScript.PauseOnExceptionsState = {
     
    9596    args.lineNumber = DebuggerScript._webkitToV8LineNumber(args.lineNumber);
    9697    var breakId = Debug.setScriptBreakPointById(args.scriptId, args.lineNumber, 0 /* column */, args.condition);
    97     if (!args.enabled)
     98    if (!args.enabled || !DebuggerScript._breakpointsActivated)
    9899        Debug.disableScriptBreakPoint(breakId);
    99100
     
    204205            Debug.disableScriptBreakPoint(breakId);
    205206    }
     207    DebuggerScript._breakpointsActivated = args.enabled;
    206208}
    207209
Note: See TracChangeset for help on using the changeset viewer.