Changeset 65810 in webkit


Ignore:
Timestamp:
Aug 23, 2010 7:40:57 AM (14 years ago)
Author:
commit-queue@webkit.org
Message:

2010-08-23 Pavel Podivilov <podivilov@chromium.org>

Reviewed by Pavel Feldman.

Web Inspector: remove javascript breakpoint specific code from BreakpointSidebarPane
https://bugs.webkit.org/show_bug.cgi?id=44327

  • inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype.setBreakpoint): (WebInspector.BreakpointManager.prototype.restoredBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpoint): (WebInspector.BreakpointManager.prototype._removeBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend): (WebInspector.Breakpoint):
  • inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.BreakpointsSidebarPane): (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint): (WebInspector.BreakpointsSidebarPane.prototype._breakpointRemoved): (WebInspector.JSBreakpointItem): (WebInspector.JSBreakpointItem.prototype.compareTo): (WebInspector.JSBreakpointItem.prototype.element): (WebInspector.JSBreakpointItem.prototype._breakpointClicked): (WebInspector.JSBreakpointItem.prototype._checkboxClicked): (WebInspector.JSBreakpointItem.prototype._enableChanged): (WebInspector.JSBreakpointItem.prototype._textChanged): (WebInspector.JSBreakpointItem.prototype._removed):
  • inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype._breakpointAdded): (WebInspector.ScriptsPanel.prototype._breakpointRemoved):
  • inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.addBreakpoint): (WebInspector.SourceFrame.prototype._addBreakpointToSource):
Location:
trunk/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r65809 r65810  
     12010-08-23  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Web Inspector: remove javascript breakpoint specific code from BreakpointSidebarPane
     6        https://bugs.webkit.org/show_bug.cgi?id=44327
     7
     8        * inspector/front-end/BreakpointManager.js:
     9        (WebInspector.BreakpointManager.prototype.setBreakpoint):
     10        (WebInspector.BreakpointManager.prototype.restoredBreakpoint):
     11        (WebInspector.BreakpointManager.prototype._setBreakpoint):
     12        (WebInspector.BreakpointManager.prototype._removeBreakpoint):
     13        (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend):
     14        (WebInspector.Breakpoint):
     15        * inspector/front-end/BreakpointsSidebarPane.js:
     16        (WebInspector.BreakpointsSidebarPane):
     17        (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
     18        (WebInspector.BreakpointsSidebarPane.prototype._breakpointRemoved):
     19        (WebInspector.JSBreakpointItem):
     20        (WebInspector.JSBreakpointItem.prototype.compareTo):
     21        (WebInspector.JSBreakpointItem.prototype.element):
     22        (WebInspector.JSBreakpointItem.prototype._breakpointClicked):
     23        (WebInspector.JSBreakpointItem.prototype._checkboxClicked):
     24        (WebInspector.JSBreakpointItem.prototype._enableChanged):
     25        (WebInspector.JSBreakpointItem.prototype._textChanged):
     26        (WebInspector.JSBreakpointItem.prototype._removed):
     27        * inspector/front-end/ScriptsPanel.js:
     28        (WebInspector.ScriptsPanel):
     29        (WebInspector.ScriptsPanel.prototype._breakpointAdded):
     30        (WebInspector.ScriptsPanel.prototype._breakpointRemoved):
     31        * inspector/front-end/SourceFrame.js:
     32        (WebInspector.SourceFrame.prototype.addBreakpoint):
     33        (WebInspector.SourceFrame.prototype._addBreakpointToSource):
     34
    1352010-08-23  Ilya Tikhonovsky  <loislo@chromium.org>
    236
  • trunk/WebCore/inspector/front-end/BreakpointManager.js

    r65052 r65810  
    5151    },
    5252
    53     setBreakpoint: function(sourceID, sourceURL, line, enabled, condition)
    54     {
    55         var breakpoint = this._setBreakpoint(sourceID, sourceURL, line, enabled, condition);
     53    setBreakpoint: function(sourceID, url, line, enabled, condition)
     54    {
     55        var breakpoint = this._setBreakpoint(sourceID, url, line, enabled, condition);
    5656        if (breakpoint)
    5757            this._setBreakpointOnBackend(breakpoint);
    5858    },
    5959
    60     restoredBreakpoint: function(sourceID, sourceURL, line, enabled, condition)
    61     {
    62         this._setBreakpoint(sourceID, sourceURL, line, enabled, condition);
     60    restoredBreakpoint: function(sourceID, url, line, enabled, condition)
     61    {
     62        this._setBreakpoint(sourceID, url, line, enabled, condition);
    6363    },
    6464
     
    9595    },
    9696
    97     _setBreakpoint: function(sourceID, sourceURL, line, enabled, condition)
    98     {
    99         var breakpoint = new WebInspector.Breakpoint(this, sourceID, sourceURL, line, enabled, condition);
     97    _setBreakpoint: function(sourceID, url, line, enabled, condition)
     98    {
     99        var breakpoint = new WebInspector.Breakpoint(this, sourceID, url, line, enabled, condition);
    100100        if (this._breakpoints[breakpoint.id])
    101101            return;
     
    111111        if (!(breakpoint.id in this._breakpoints))
    112112            return false;
     113        breakpoint.dispatchEventToListeners("removed");
    113114        breakpoint.removeAllListeners();
    114115        delete breakpoint._breakpointManager;
    115116        delete this._breakpoints[breakpoint.id];
    116         this.dispatchEventToListeners("breakpoint-removed", breakpoint);
    117117        return true;
    118118    },
     
    132132                this._removeBreakpoint(breakpoint);
    133133                if (success)
    134                     this._setBreakpoint(breakpoint.sourceID, breakpoint.sourceURL, line, breakpoint.enabled, breakpoint.condition);
     134                    this._setBreakpoint(breakpoint.sourceID, breakpoint.url, line, breakpoint.enabled, breakpoint.condition);
    135135            }
    136136        }
     
    142142WebInspector.BreakpointManager.prototype.__proto__ = WebInspector.Object.prototype;
    143143
    144 WebInspector.Breakpoint = function(breakpointManager, sourceID, sourceURL, line, enabled, condition)
     144WebInspector.Breakpoint = function(breakpointManager, sourceID, url, line, enabled, condition)
    145145{
    146     this.url = sourceURL;
     146    this.url = url;
    147147    this.line = line;
    148148    this.sourceID = sourceID;
     
    183183    },
    184184
    185     get label()
    186     {
    187         var displayName = (this.url ? WebInspector.displayNameForURL(this.url) : WebInspector.UIString("(program)"));
    188         return displayName + ":" + this.line;
    189     },
    190 
    191185    get id()
    192186    {
     
    213207
    214208WebInspector.Breakpoint.prototype.__proto__ = WebInspector.Object.prototype;
    215 
  • trunk/WebCore/inspector/front-end/BreakpointsSidebarPane.js

    r60450 r65810  
    3636
    3737    this.bodyElement.appendChild(this.emptyElement);
    38 
    39     WebInspector.breakpointManager.addEventListener("breakpoint-added", this._breakpointAdded, this);
    40     WebInspector.breakpointManager.addEventListener("breakpoint-removed", this._breakpointRemoved, this);   
    4138}
    4239
     
    5148    },
    5249
    53     _breakpointAdded: function(event)
     50    addBreakpoint: function(breakpoint)
    5451    {
    55         var breakpoint = event.data;
     52        breakpoint.addEventListener("removed", this._breakpointRemoved, this);
    5653
    57         breakpoint.addEventListener("enabled", this._breakpointEnableChanged, this);
    58         breakpoint.addEventListener("disabled", this._breakpointEnableChanged, this);
    59         breakpoint.addEventListener("text-changed", this._breakpointTextChanged, this);
     54        var breakpointElement = breakpoint.element();
     55        breakpointElement._breakpointObject = breakpoint;
    6056
    61         this._appendBreakpointElement(breakpoint);
     57        var currentElement = this.listElement.firstChild;
     58        while (currentElement) {
     59             if (currentElement._breakpointObject.compareTo(breakpointElement._breakpointObject) > 0) {
     60                this.listElement.insertBefore(breakpointElement, currentElement);
     61                break;
     62            }
     63            currentElement = currentElement.nextSibling;
     64        }
     65        if (!currentElement)
     66            this.listElement.appendChild(breakpointElement);
    6267
    6368        if (this.emptyElement.parentElement) {
     
    6772    },
    6873
    69     _appendBreakpointElement: function(breakpoint)
    70     {
    71         function checkboxClicked(event)
    72         {
    73             breakpoint.enabled = !breakpoint.enabled;
    74 
    75             // without this, we'd switch to the source of the clicked breakpoint
    76             event.stopPropagation();
    77         }
    78 
    79         function breakpointClicked()
    80         {
    81             WebInspector.panels.scripts.showSourceLine(breakpoint.url, breakpoint.line);
    82         }
    83 
    84         var breakpointElement = document.createElement("li");
    85         breakpoint._breakpointListElement = breakpointElement;
    86         breakpointElement._breakpointObject = breakpoint;
    87         breakpointElement.addEventListener("click", breakpointClicked, false);
    88 
    89         var checkboxElement = document.createElement("input");
    90         checkboxElement.className = "checkbox-elem";
    91         checkboxElement.type = "checkbox";
    92         checkboxElement.checked = breakpoint.enabled;
    93         checkboxElement.addEventListener("click", checkboxClicked, false);
    94         breakpointElement.appendChild(checkboxElement);
    95 
    96         var labelElement = document.createTextNode(breakpoint.label);
    97         breakpointElement.appendChild(labelElement);
    98 
    99         var sourceTextElement = document.createElement("div");
    100         sourceTextElement.textContent = breakpoint.sourceText;
    101         sourceTextElement.className = "source-text monospace";
    102         breakpointElement.appendChild(sourceTextElement);
    103 
    104         var currentElement = this.listElement.firstChild;
    105         while (currentElement) {
    106             var currentBreak = currentElement._breakpointObject;
    107             if (currentBreak.url > breakpoint.url) {
    108                 this.listElement.insertBefore(breakpointElement, currentElement);
    109                 return;
    110             } else if (currentBreak.url == breakpoint.url && currentBreak.line > breakpoint.line) {
    111                 this.listElement.insertBefore(breakpointElement, currentElement);
    112                 return;
    113             }
    114             currentElement = currentElement.nextSibling;
    115         }
    116         this.listElement.appendChild(breakpointElement);
    117     },
    118 
    11974    _breakpointRemoved: function(event)
    12075    {
    121         var breakpoint = event.data;
    122 
    123         breakpoint.removeEventListener("enabled", null, this);
    124         breakpoint.removeEventListener("disabled", null, this);
    125         breakpoint.removeEventListener("text-changed", null, this);
    126 
    127         var element = breakpoint._breakpointListElement;
    128         element.parentElement.removeChild(element);
    129 
     76        this.listElement.removeChild(event.target.element());
    13077        if (!this.listElement.firstChild) {
    13178            this.bodyElement.removeChild(this.listElement);
    13279            this.bodyElement.appendChild(this.emptyElement);
    13380        }
    134     },
    135 
    136     _breakpointEnableChanged: function(event)
    137     {
    138         var breakpoint = event.target;
    139 
    140         var checkbox = breakpoint._breakpointListElement.firstChild;
    141         checkbox.checked = breakpoint.enabled;
    142     },
    143 
    144     _breakpointTextChanged: function(event)
    145     {
    146         var breakpoint = event.target;
    147 
    148         var sourceTextElement = breakpoint._breakpointListElement.firstChild.nextSibling.nextSibling;
    149         sourceTextElement.textContent = breakpoint.sourceText;
    15081    }
    15182}
    15283
    15384WebInspector.BreakpointsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;
     85
     86WebInspector.JSBreakpointItem = function(breakpoint)
     87{
     88    this._breakpoint = breakpoint;
     89
     90    this._element = document.createElement("li");
     91    this._element.addEventListener("click", this._breakpointClicked.bind(this), false);
     92
     93    var checkboxElement = document.createElement("input");
     94    checkboxElement.className = "checkbox-elem";
     95    checkboxElement.type = "checkbox";
     96    checkboxElement.checked = this._breakpoint.enabled;
     97    checkboxElement.addEventListener("click", this._checkboxClicked.bind(this), false);
     98    this._element.appendChild(checkboxElement);
     99
     100    var displayName = this._breakpoint.url ? WebInspector.displayNameForURL(this._breakpoint.url) : WebInspector.UIString("(program)");
     101    var labelElement = document.createTextNode(displayName + ":" + this._breakpoint.line);
     102    this._element.appendChild(labelElement);
     103
     104    var sourceTextElement = document.createElement("div");
     105    sourceTextElement.textContent = this._breakpoint.sourceText;
     106    sourceTextElement.className = "source-text monospace";
     107    this._element.appendChild(sourceTextElement);
     108
     109    this._breakpoint.addEventListener("enabled", this._enableChanged, this);
     110    this._breakpoint.addEventListener("disabled", this._enableChanged, this);
     111    this._breakpoint.addEventListener("text-changed", this._textChanged, this);
     112    this._breakpoint.addEventListener("removed", this._removed, this);
     113}
     114
     115WebInspector.JSBreakpointItem.prototype = {
     116    compareTo: function(other)
     117    {
     118        if (this._breakpoint.url != other._breakpoint.url)
     119            return this._breakpoint.url < other._breakpoint.url ? -1 : 1;
     120        if (this._breakpoint.line != other._breakpoint.line)
     121            return this._breakpoint.line < other._breakpoint.line ? -1 : 1;
     122        return 0;
     123    },
     124
     125    element: function()
     126    {
     127        return this._element;
     128    },
     129
     130    _breakpointClicked: function()
     131    {
     132        WebInspector.panels.scripts.showSourceLine(this._breakpoint.url, this._breakpoint.line);
     133    },
     134
     135    _checkboxClicked: function(event)
     136    {
     137        this._breakpoint.enabled = !this._breakpoint.enabled;
     138
     139        // without this, we'd switch to the source of the clicked breakpoint
     140        event.stopPropagation();
     141    },
     142
     143    _enableChanged: function()
     144    {
     145        var checkbox = this._element.firstChild;
     146        checkbox.checked = this._breakpoint.enabled;
     147    },
     148
     149    _textChanged: function()
     150    {
     151        var sourceTextElement = this._element.firstChild.nextSibling.nextSibling;
     152        sourceTextElement.textContent = this._breakpoint.sourceText;
     153    },
     154
     155    _removed: function()
     156    {
     157        this.dispatchEventToListeners("removed");
     158    }
     159}
     160
     161WebInspector.JSBreakpointItem.prototype.__proto__ = WebInspector.Object.prototype;
  • trunk/WebCore/inspector/front-end/ScriptsPanel.js

    r65499 r65810  
    172172
    173173    WebInspector.breakpointManager.addEventListener("breakpoint-added", this._breakpointAdded, this);
    174     WebInspector.breakpointManager.addEventListener("breakpoint-removed", this._breakpointRemoved, this);
    175174
    176175    this.reset();
     
    297296        var breakpoint = event.data;
    298297
     298        breakpoint.addEventListener("removed", this._breakpointRemoved, this);
     299        this.sidebarPanes.breakpoints.addBreakpoint(new WebInspector.JSBreakpointItem(event.data));
     300
    299301        var sourceFrame;
    300302        if (breakpoint.url) {
     
    315317    _breakpointRemoved: function(event)
    316318    {
    317         var breakpoint = event.data;
     319        var breakpoint = event.target;
    318320
    319321        var sourceFrame;
  • trunk/WebCore/inspector/front-end/SourceFrame.js

    r65248 r65810  
    100100    {
    101101        this.breakpoints.push(breakpoint);
    102         breakpoint.addEventListener("enabled", this._breakpointChanged, this);
    103         breakpoint.addEventListener("disabled", this._breakpointChanged, this);
    104         breakpoint.addEventListener("condition-changed", this._breakpointChanged, this);
    105102        if (this._textViewer)
    106103            this._addBreakpointToSource(breakpoint);
     
    385382    _addBreakpointToSource: function(breakpoint)
    386383    {
     384        breakpoint.addEventListener("enabled", this._breakpointChanged, this);
     385        breakpoint.addEventListener("disabled", this._breakpointChanged, this);
     386        breakpoint.addEventListener("condition-changed", this._breakpointChanged, this);
     387
    387388        var lineNumber = breakpoint.line - 1;
    388389        if (lineNumber >= this._textModel.linesCount)
Note: See TracChangeset for help on using the changeset viewer.