[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
podivilov at chromium.org
podivilov at chromium.org
Wed Dec 22 15:22:48 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 020552bb99bb4bd86d88d715053b9a603e119828
Author: podivilov at chromium.org <podivilov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 2 14:32:44 2010 +0000
2010-11-02 Pavel Podivilov <podivilov at chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: make xhr breakpoints editable
https://bugs.webkit.org/show_bug.cgi?id=48830
* inspector/front-end/BreakpointManager.js:
(WebInspector.Breakpoint.prototype.set sourceText):
(WebInspector.Breakpoint.prototype.click):
(WebInspector.Breakpoint.prototype.populateLabelElement):
(WebInspector.XHRBreakpoint.prototype.populateEditElement):
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.BreakpointsSidebarPane.prototype.addBreakpointItem):
(WebInspector.BreakpointsSidebarPane.prototype._breakpointItemClicked):
(WebInspector.BreakpointsSidebarPane.prototype._contextMenuEventFired):
(WebInspector.BreakpointsSidebarPane.prototype._addListElement):
(WebInspector.BreakpointsSidebarPane.prototype._removeListElement):
(WebInspector.XHRBreakpointsSidebarPane.addButtonClicked):
(WebInspector.XHRBreakpointsSidebarPane):
(WebInspector.XHRBreakpointsSidebarPane.prototype._startEditingBreakpoint):
(WebInspector.XHRBreakpointsSidebarPane.prototype._hideEditBreakpointDialog):
(WebInspector.XHRBreakpointsSidebarPane.prototype._breakpointItemClicked):
(WebInspector.BreakpointItem):
(WebInspector.BreakpointItem.prototype.get element):
(WebInspector.BreakpointItem.prototype.click):
(WebInspector.BreakpointItem.prototype.populateEditElement):
(WebInspector.BreakpointItem.prototype.remove):
(WebInspector.BreakpointItem.prototype._hitStateChanged):
(WebInspector.BreakpointItem.prototype._labelChanged):
(WebInspector.BreakpointItem.prototype._createLabelElement):
* inspector/front-end/inspector.js:
(WebInspector.createJSBreakpointsSidebarPane.breakpointAdded):
(WebInspector.createJSBreakpointsSidebarPane):
(WebInspector.createDOMBreakpointsSidebarPane.breakpointAdded):
(WebInspector.createDOMBreakpointsSidebarPane):
(WebInspector.createXHRBreakpointsSidebarPane.breakpointAdded):
(WebInspector.createXHRBreakpointsSidebarPane):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71113 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index ad6cf00..d32ed0a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -2,6 +2,45 @@
Reviewed by Pavel Feldman.
+ Web Inspector: make xhr breakpoints editable
+ https://bugs.webkit.org/show_bug.cgi?id=48830
+
+ * inspector/front-end/BreakpointManager.js:
+ (WebInspector.Breakpoint.prototype.set sourceText):
+ (WebInspector.Breakpoint.prototype.click):
+ (WebInspector.Breakpoint.prototype.populateLabelElement):
+ (WebInspector.XHRBreakpoint.prototype.populateEditElement):
+ * inspector/front-end/BreakpointsSidebarPane.js:
+ (WebInspector.BreakpointsSidebarPane.prototype.addBreakpointItem):
+ (WebInspector.BreakpointsSidebarPane.prototype._breakpointItemClicked):
+ (WebInspector.BreakpointsSidebarPane.prototype._contextMenuEventFired):
+ (WebInspector.BreakpointsSidebarPane.prototype._addListElement):
+ (WebInspector.BreakpointsSidebarPane.prototype._removeListElement):
+ (WebInspector.XHRBreakpointsSidebarPane.addButtonClicked):
+ (WebInspector.XHRBreakpointsSidebarPane):
+ (WebInspector.XHRBreakpointsSidebarPane.prototype._startEditingBreakpoint):
+ (WebInspector.XHRBreakpointsSidebarPane.prototype._hideEditBreakpointDialog):
+ (WebInspector.XHRBreakpointsSidebarPane.prototype._breakpointItemClicked):
+ (WebInspector.BreakpointItem):
+ (WebInspector.BreakpointItem.prototype.get element):
+ (WebInspector.BreakpointItem.prototype.click):
+ (WebInspector.BreakpointItem.prototype.populateEditElement):
+ (WebInspector.BreakpointItem.prototype.remove):
+ (WebInspector.BreakpointItem.prototype._hitStateChanged):
+ (WebInspector.BreakpointItem.prototype._labelChanged):
+ (WebInspector.BreakpointItem.prototype._createLabelElement):
+ * inspector/front-end/inspector.js:
+ (WebInspector.createJSBreakpointsSidebarPane.breakpointAdded):
+ (WebInspector.createJSBreakpointsSidebarPane):
+ (WebInspector.createDOMBreakpointsSidebarPane.breakpointAdded):
+ (WebInspector.createDOMBreakpointsSidebarPane):
+ (WebInspector.createXHRBreakpointsSidebarPane.breakpointAdded):
+ (WebInspector.createXHRBreakpointsSidebarPane):
+
+2010-11-02 Pavel Podivilov <podivilov at chromium.org>
+
+ Reviewed by Pavel Feldman.
+
Web Inspector: fix for breakpoints not restored on live edit bug
https://bugs.webkit.org/show_bug.cgi?id=48833
diff --git a/WebCore/inspector/front-end/BreakpointManager.js b/WebCore/inspector/front-end/BreakpointManager.js
index d4df652..4be56a1 100644
--- a/WebCore/inspector/front-end/BreakpointManager.js
+++ b/WebCore/inspector/front-end/BreakpointManager.js
@@ -347,7 +347,7 @@ WebInspector.Breakpoint.prototype = {
set sourceText(text)
{
this._sourceText = text;
- this.dispatchEventToListeners("text-changed");
+ this.dispatchEventToListeners("label-changed");
},
get id()
@@ -372,6 +372,11 @@ WebInspector.Breakpoint.prototype = {
this.dispatchEventToListeners("condition-changed");
},
+ click: function(event)
+ {
+ WebInspector.panels.scripts.showSourceLine(this.url, this.line);
+ },
+
compareTo: function(other)
{
if (this.url != other.url)
@@ -381,6 +386,18 @@ WebInspector.Breakpoint.prototype = {
return 0;
},
+ populateLabelElement: function(element)
+ {
+ var displayName = this.url ? WebInspector.displayNameForURL(this.url) : WebInspector.UIString("(program)");
+ var labelElement = document.createTextNode(displayName + ":" + this.line);
+ element.appendChild(labelElement);
+
+ var sourceTextElement = document.createElement("div");
+ sourceTextElement.textContent = this.sourceText;
+ sourceTextElement.className = "source-text monospace";
+ element.appendChild(sourceTextElement);
+ },
+
remove: function()
{
InspectorBackend.removeBreakpoint(this.sourceID, this.line);
@@ -569,6 +586,11 @@ WebInspector.XHRBreakpoint.prototype = {
return this._compare(this._url, other._url);
},
+ populateEditElement: function(element)
+ {
+ element.textContent = this._url;
+ },
+
populateLabelElement: function(element)
{
var label;
diff --git a/WebCore/inspector/front-end/BreakpointsSidebarPane.js b/WebCore/inspector/front-end/BreakpointsSidebarPane.js
index 72542ea..cff88ab 100644
--- a/WebCore/inspector/front-end/BreakpointsSidebarPane.js
+++ b/WebCore/inspector/front-end/BreakpointsSidebarPane.js
@@ -47,52 +47,58 @@ WebInspector.BreakpointsSidebarPane.prototype = {
}
},
- addBreakpoint: function(breakpointItem)
+ addBreakpointItem: function(breakpointItem)
{
- breakpointItem.addEventListener("breakpoint-hit", this._breakpointHit, this);
- breakpointItem.addEventListener("removed", this._breakpointRemoved, this);
-
- var element = breakpointItem.element();
+ var element = breakpointItem.element;
element._breakpointItem = breakpointItem;
+ breakpointItem.addEventListener("breakpoint-hit", this.expand, this);
+ breakpointItem.addEventListener("removed", this._removeListElement.bind(this, element), this);
+
var currentElement = this.listElement.firstChild;
while (currentElement) {
- if (currentElement._breakpointItem.compareTo(element._breakpointItem) > 0) {
- this.listElement.insertBefore(element, currentElement);
+ if (currentElement._breakpointItem && currentElement._breakpointItem.compareTo(element._breakpointItem) > 0)
break;
- }
currentElement = currentElement.nextSibling;
}
- if (!currentElement)
- this.listElement.appendChild(element);
+ this._addListElement(element, currentElement);
+ element.addEventListener("click", this._breakpointItemClicked.bind(this, breakpointItem), false);
element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this, breakpointItem), true);
+ },
- if (this.emptyElement.parentElement) {
- this.bodyElement.removeChild(this.emptyElement);
- this.bodyElement.appendChild(this.listElement);
- }
+ _breakpointItemClicked: function(breakpointItem, event)
+ {
+ breakpointItem.click(event);
},
- _breakpointHit: function(event)
+ _contextMenuEventFired: function(breakpointItem, event)
{
- this.expanded = true;
+ var contextMenu = new WebInspector.ContextMenu();
+ contextMenu.appendItem(WebInspector.UIString("Remove Breakpoint"), breakpointItem.remove.bind(breakpointItem));
+ contextMenu.show(event);
},
- _breakpointRemoved: function(event)
+ _addListElement: function(element, beforeElement)
{
- this.listElement.removeChild(event.target.element());
- if (!this.listElement.firstChild) {
- this.bodyElement.removeChild(this.listElement);
- this.bodyElement.appendChild(this.emptyElement);
+ if (beforeElement)
+ this.listElement.insertBefore(element, beforeElement);
+ else {
+ if (!this.listElement.firstChild) {
+ this.bodyElement.removeChild(this.emptyElement);
+ this.bodyElement.appendChild(this.listElement);
+ }
+ this.listElement.appendChild(element);
}
},
- _contextMenuEventFired: function(breakpointItem, event)
+ _removeListElement: function(element)
{
- var contextMenu = new WebInspector.ContextMenu();
- contextMenu.appendItem(WebInspector.UIString("Remove Breakpoint"), breakpointItem.remove.bind(breakpointItem));
- contextMenu.show(event);
+ this.listElement.removeChild(element);
+ if (!this.listElement.firstChild) {
+ this.bodyElement.removeChild(this.listElement);
+ this.bodyElement.appendChild(this.emptyElement);
+ }
}
}
@@ -102,36 +108,57 @@ WebInspector.XHRBreakpointsSidebarPane = function()
{
WebInspector.BreakpointsSidebarPane.call(this, WebInspector.UIString("XHR Breakpoints"));
+ function addButtonClicked(event)
+ {
+ event.stopPropagation();
+ this._startEditingBreakpoint(null);
+ }
+
var addButton = document.createElement("button");
addButton.className = "add";
- addButton.addEventListener("click", this._showEditBreakpointDialog.bind(this), false);
+ addButton.addEventListener("click", addButtonClicked.bind(this), false);
this.titleElement.appendChild(addButton);
-
- this.urlInputElement = document.createElement("span");
- this.urlInputElement.className = "breakpoint-condition editing";
}
WebInspector.XHRBreakpointsSidebarPane.prototype = {
- _showEditBreakpointDialog: function(event)
+ _startEditingBreakpoint: function(breakpointItem)
{
- event.stopPropagation();
-
- if (this.urlInputElement.parentElement)
+ if (this._editingBreakpoint)
return;
+ this._editingBreakpoint = true;
if (!this.expanded)
this.expanded = true;
- this.urlInputElement.textContent = "";
- this.bodyElement.insertBefore(this.urlInputElement, this.bodyElement.firstChild);
- WebInspector.startEditing(this.urlInputElement, this._hideEditBreakpointDialog.bind(this, false), this._hideEditBreakpointDialog.bind(this, true));
+ var inputElement = document.createElement("span");
+ inputElement.className = "breakpoint-condition editing";
+ if (breakpointItem) {
+ breakpointItem.populateEditElement(inputElement);
+ this.listElement.insertBefore(inputElement, breakpointItem.element);
+ breakpointItem.element.addStyleClass("hidden");
+ } else
+ this._addListElement(inputElement, this.listElement.firstChild);
+
+ var commitHandler = this._hideEditBreakpointDialog.bind(this, inputElement, true, breakpointItem);
+ var cancelHandler = this._hideEditBreakpointDialog.bind(this, inputElement, false, breakpointItem);
+ WebInspector.startEditing(inputElement, commitHandler, cancelHandler);
+ },
+
+ _hideEditBreakpointDialog: function(inputElement, accept, breakpointItem)
+ {
+ this._removeListElement(inputElement);
+ this._editingBreakpoint = false;
+ if (accept) {
+ if (breakpointItem)
+ breakpointItem.remove();
+ WebInspector.breakpointManager.createXHRBreakpoint(inputElement.textContent.toLowerCase());
+ } else if (breakpointItem)
+ breakpointItem.element.removeStyleClass("hidden");
},
- _hideEditBreakpointDialog: function(discard)
+ _breakpointItemClicked: function(breakpointItem, event)
{
- if (!discard)
- WebInspector.breakpointManager.createXHRBreakpoint(this.urlInputElement.textContent.toLowerCase());
- this.bodyElement.removeChild(this.urlInputElement);
+ this._startEditingBreakpoint(breakpointItem);
}
}
@@ -142,7 +169,6 @@ WebInspector.BreakpointItem = function(breakpoint)
this._breakpoint = breakpoint;
this._element = document.createElement("li");
- this._element.addEventListener("click", this._breakpointClicked.bind(this), false);
var checkboxElement = document.createElement("input");
checkboxElement.className = "checkbox-elem";
@@ -151,16 +177,16 @@ WebInspector.BreakpointItem = function(breakpoint)
checkboxElement.addEventListener("click", this._checkboxClicked.bind(this), false);
this._element.appendChild(checkboxElement);
- if ("populateLabelElement" in this._breakpoint)
- this._breakpoint.populateLabelElement(this._element);
+ this._createLabelElement();
this._breakpoint.addEventListener("enable-changed", this._enableChanged, this);
this._breakpoint.addEventListener("hit-state-changed", this._hitStateChanged, this);
+ this._breakpoint.addEventListener("label-changed", this._labelChanged, this);
this._breakpoint.addEventListener("removed", this.dispatchEventToListeners.bind(this, "removed"));
}
WebInspector.BreakpointItem.prototype = {
- element: function()
+ get element()
{
return this._element;
},
@@ -170,15 +196,19 @@ WebInspector.BreakpointItem.prototype = {
return this._breakpoint.compareTo(other._breakpoint);
},
- remove: function()
+ click: function(event)
{
- this._breakpoint.remove();
+ this._breakpoint.click(event);
},
- _breakpointClicked: function(event)
+ populateEditElement: function(element)
{
- if ("click" in this._breakpoint)
- this._breakpoint.click();
+ this._breakpoint.populateEditElement(element);
+ },
+
+ remove: function()
+ {
+ this._breakpoint.remove();
},
_checkboxClicked: function(event)
@@ -202,41 +232,23 @@ WebInspector.BreakpointItem.prototype = {
this.dispatchEventToListeners("breakpoint-hit");
} else
this._element.removeStyleClass("breakpoint-hit");
- }
-}
-
-WebInspector.BreakpointItem.prototype.__proto__ = WebInspector.Object.prototype;
-
-WebInspector.JSBreakpointItem = function(breakpoint)
-{
- WebInspector.BreakpointItem.call(this, breakpoint);
-
- var displayName = this._breakpoint.url ? WebInspector.displayNameForURL(this._breakpoint.url) : WebInspector.UIString("(program)");
- var labelElement = document.createTextNode(displayName + ":" + this._breakpoint.line);
- this._element.appendChild(labelElement);
-
- var sourceTextElement = document.createElement("div");
- sourceTextElement.textContent = this._breakpoint.sourceText;
- sourceTextElement.className = "source-text monospace";
- this._element.appendChild(sourceTextElement);
-
- this._breakpoint.addEventListener("text-changed", this._textChanged, this);
-}
+ },
-WebInspector.JSBreakpointItem.prototype = {
- _breakpointClicked: function()
+ _labelChanged: function(event)
{
- WebInspector.panels.scripts.showSourceLine(this._breakpoint.url, this._breakpoint.line);
+ this._element.removeChild(this._labelElement);
+ this._createLabelElement();
},
- _textChanged: function()
+ _createLabelElement: function()
{
- var sourceTextElement = this._element.firstChild.nextSibling.nextSibling;
- sourceTextElement.textContent = this._breakpoint.sourceText;
+ this._labelElement = document.createElement("span");
+ this._breakpoint.populateLabelElement(this._labelElement);
+ this._element.appendChild(this._labelElement);
}
}
-WebInspector.JSBreakpointItem.prototype.__proto__ = WebInspector.BreakpointItem.prototype;
+WebInspector.BreakpointItem.prototype.__proto__ = WebInspector.Object.prototype;
WebInspector.EventListenerBreakpointsSidebarPane = function()
{
diff --git a/WebCore/inspector/front-end/inspector.js b/WebCore/inspector/front-end/inspector.js
index 85de9cd..bf7ec39 100644
--- a/WebCore/inspector/front-end/inspector.js
+++ b/WebCore/inspector/front-end/inspector.js
@@ -190,7 +190,7 @@ var WebInspector = {
var pane = new WebInspector.BreakpointsSidebarPane(WebInspector.UIString("Breakpoints"));
function breakpointAdded(event)
{
- pane.addBreakpoint(new WebInspector.JSBreakpointItem(event.data));
+ pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));
}
WebInspector.breakpointManager.addEventListener("breakpoint-added", breakpointAdded);
return pane;
@@ -201,7 +201,7 @@ var WebInspector = {
var pane = new WebInspector.BreakpointsSidebarPane(WebInspector.UIString("DOM Breakpoints"));
function breakpointAdded(event)
{
- pane.addBreakpoint(new WebInspector.BreakpointItem(event.data));
+ pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));
}
WebInspector.breakpointManager.addEventListener("dom-breakpoint-added", breakpointAdded);
return pane;
@@ -212,7 +212,7 @@ var WebInspector = {
var pane = new WebInspector.XHRBreakpointsSidebarPane();
function breakpointAdded(event)
{
- pane.addBreakpoint(new WebInspector.BreakpointItem(event.data));
+ pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));
}
WebInspector.breakpointManager.addEventListener("xhr-breakpoint-added", breakpointAdded);
return pane;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list