Diff
Modified: trunk/Source/WebCore/ChangeLog (111675 => 111676)
--- trunk/Source/WebCore/ChangeLog 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/ChangeLog 2012-03-22 12:54:32 UTC (rev 111676)
@@ -1,5 +1,29 @@
2012-03-22 Pavel Feldman <pfeld...@chromium.org>
+ Web Inspector: allow on-hover popover while in edit mode.
+ https://bugs.webkit.org/show_bug.cgi?id=81898
+
+ Reviewed by Vsevolod Vlasov.
+
+ This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
+ concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
+
+ * inspector/front-end/DetailedHeapshotView.js:
+ * inspector/front-end/ElementsPanel.js:
+ * inspector/front-end/_javascript_SourceFrame.js:
+ (WebInspector._javascript_SourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
+ (WebInspector._javascript_SourceFrame.prototype._resolveObjectForPopover):
+ (WebInspector._javascript_SourceFrame.prototype._onKeyDown):
+ * inspector/front-end/NetworkPanel.js:
+ * inspector/front-end/ObjectPopoverHelper.js:
+ (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
+ (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
+ * inspector/front-end/Popover.js:
+ (WebInspector.PopoverHelper.prototype.isPopoverVisible):
+ * inspector/front-end/TimelinePanel.js:
+
+2012-03-22 Pavel Feldman <pfeld...@chromium.org>
+
Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
https://bugs.webkit.org/show_bug.cgi?id=81896
Modified: trunk/Source/WebCore/inspector/front-end/DetailedHeapshotView.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/DetailedHeapshotView.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/DetailedHeapshotView.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -527,7 +527,7 @@
this.helpButton = new WebInspector.StatusBarButton("", "heapshot-help-status-bar-item status-bar-item");
this.helpButton.addEventListener("click", this._helpClicked.bind(this), false);
- this._popoverHelper = new WebInspector.ObjectPopoverHelper(this.element, this._getHoverAnchor.bind(this), this._resolveObjectForPopover.bind(this), null, true);
+ this._popoverHelper = new WebInspector.ObjectPopoverHelper(this.element, this._getHoverAnchor.bind(this), this._resolveObjectForPopover.bind(this), undefined, true);
this._loadProfile(this._profileUid, profileCallback.bind(this));
Modified: trunk/Source/WebCore/inspector/front-end/ElementsPanel.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/ElementsPanel.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/ElementsPanel.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -391,6 +391,10 @@
}
},
+ /**
+ * @param {Element} anchor
+ * @param {WebInspector.Popover} popover
+ */
_showPopover: function(anchor, popover)
{
var listItem = anchor.enclosingNodeOrSelfWithNodeNameInArray(["li"]);
Modified: trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/_javascript_SourceFrame.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -303,10 +303,6 @@
_resolveObjectForPopover: function(element, showCallback, objectGroupName)
{
- if (!this.readOnly) {
- this._popoverHelper.hidePopover();
- return;
- }
this._highlightElement = this._highlightExpression(element);
function showObjectPopover(result, wasThrown)
@@ -315,7 +311,7 @@
this._popoverHelper.hidePopover();
return;
}
- showCallback(WebInspector.RemoteObject.fromPayload(result), wasThrown);
+ showCallback(WebInspector.RemoteObject.fromPayload(result), wasThrown, this._highlightElement);
// Popover may have been removed by showCallback().
if (this._highlightElement)
this._highlightElement.addStyleClass("source-frame-eval-_expression_");
@@ -419,6 +415,16 @@
event.preventDefault();
},
+ _onKeyDown: function(event)
+ {
+ if (event.keyIdentifier === "U+001B") { // Escape key
+ if (this._popoverHelper.isPopoverVisible()) {
+ this._popoverHelper.hidePopover();
+ event.consume();
+ }
+ }
+ },
+
_editBreakpointCondition: function(lineNumber, condition, callback)
{
this._conditionElement = this._createConditionElement(lineNumber);
Modified: trunk/Source/WebCore/inspector/front-end/NetworkPanel.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/NetworkPanel.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/NetworkPanel.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -917,6 +917,10 @@
return resource && resource.timing ? anchor : null;
},
+ /**
+ * @param {Element} anchor
+ * @param {WebInspector.Popover} popover
+ */
_showPopover: function(anchor, popover)
{
var resource = anchor.parentElement.resource;
Modified: trunk/Source/WebCore/inspector/front-end/ObjectPopoverHelper.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/ObjectPopoverHelper.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/ObjectPopoverHelper.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -31,6 +31,11 @@
/**
* @constructor
* @extends {WebInspector.PopoverHelper}
+ * @param {Element} panelElement
+ * @param {function(Element, Event):Element|undefined} getAnchor
+ * @param {function(Element, function(WebInspector.RemoteObject, boolean, Element=):undefined, string):undefined} queryObject
+ * @param {function()=} onHide
+ * @param {boolean=} disableOnClick
*/
WebInspector.ObjectPopoverHelper = function(panelElement, getAnchor, queryObject, onHide, disableOnClick)
{
@@ -42,9 +47,18 @@
};
WebInspector.ObjectPopoverHelper.prototype = {
+ /**
+ * @param {Element} element
+ * @param {WebInspector.Popover} popover
+ */
_showObjectPopover: function(element, popover)
{
- function showObjectPopover(result, wasThrown)
+ /**
+ * @param {WebInspector.RemoteObject} result
+ * @param {boolean} wasThrown
+ * @param {Element=} anchorOverride
+ */
+ function showObjectPopover(result, wasThrown, anchorOverride)
{
if (popover.disposed)
return;
@@ -52,6 +66,9 @@
this.hidePopover();
return;
}
+
+ var anchorElement = anchorOverride || element;
+
var popoverContentElement = null;
if (result.type !== "object") {
popoverContentElement = document.createElement("span");
@@ -79,14 +96,14 @@
container.appendChild(popoverContentElement);
- popover.show(container, element);
+ popover.show(container, anchorElement);
}
DebuggerAgent.getFunctionDetails(result.objectId, didGetDetails.bind(this));
return;
}
if (result.type === "string")
popoverContentElement.textContent = "\"" + popoverContentElement.textContent + "\"";
- popover.show(popoverContentElement, element);
+ popover.show(popoverContentElement, anchorElement);
} else {
popoverContentElement = document.createElement("div");
@@ -108,7 +125,7 @@
const popoverWidth = 300;
const popoverHeight = 250;
- popover.show(popoverContentElement, element, popoverWidth, popoverHeight);
+ popover.show(popoverContentElement, anchorElement, popoverWidth, popoverHeight);
}
}
this._queryObject(element, showObjectPopover.bind(this), this._popoverObjectGroup);
Modified: trunk/Source/WebCore/inspector/front-end/Popover.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/Popover.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/Popover.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -190,6 +190,9 @@
/**
* @constructor
+ * @param {Element} panelElement
+ * @param {function(Element, Event):Element|undefined} getAnchor
+ * @param {function(Element, WebInspector.Popover):undefined} showPopover
* @param {function()=} onHide
* @param {boolean=} disableOnClick
*/
@@ -261,6 +264,11 @@
}
},
+ isPopoverVisible: function()
+ {
+ return !!this._popover;
+ },
+
hidePopover: function()
{
this._resetHoverTimer();
Modified: trunk/Source/WebCore/inspector/front-end/TimelinePanel.js (111675 => 111676)
--- trunk/Source/WebCore/inspector/front-end/TimelinePanel.js 2012-03-22 12:52:35 UTC (rev 111675)
+++ trunk/Source/WebCore/inspector/front-end/TimelinePanel.js 2012-03-22 12:54:32 UTC (rev 111676)
@@ -731,6 +731,10 @@
}
},
+ /**
+ * @param {Element} anchor
+ * @param {WebInspector.Popover} popover
+ */
_showPopover: function(anchor, popover)
{
var record = anchor.row._record;