Log Message
Web Inspector: Network: remove unnecessary media event tracking https://bugs.webkit.org/show_bug.cgi?id=191174
Reviewed by Joseph Pecoraro. Source/WebCore: No new tests, as this simply removes some event listeners for the WebInspector frontend. * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::addEventListenersToNode): Source/WebInspectorUI: Renames "Group by Node" to "Group Media Requests" for clarity. * UserInterface/Views/NetworkTableContentView.js: (WI.NetworkTableContentView): (WI.NetworkTableContentView.prototype.reset): (WI.NetworkTableContentView.prototype.showRepresentedObject): (WI.NetworkTableContentView.prototype.networkDetailViewClose): (WI.NetworkTableContentView.prototype._populateNameCell): (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): (WI.NetworkTableContentView.prototype._populateWaterfallGraph): (WI.NetworkTableContentView.prototype.layout): (WI.NetworkTableContentView.prototype._entryForDOMNode): (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): (WI.NetworkTableContentView.prototype._restoreSelectedRow): (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): * UserInterface/Views/NetworkTableContentView.css: (.network-table .data-container .cell.name .range): Added. (.network-table .data-container .cell.name .range::before): Added. (.network-table:focus .data-container li.selected .cell.name .range): Added. (@media (prefers-dark-interface) .network-table .data-container .cell.name .range): Added. Always display the "Byte Range" title as a "subtitle", regardless of the media requests setting being toggled. Drive-by: update the position of the waterfall popover whenever the time range changes. Drive-by: close the details view if a node is selected and the media requests setting is turned off. * UserInterface/Views/Popover.js: (WI.Popover.prototype.resize): Added. (WI.Popover.prototype.handleEvent): * Localizations/en.lproj/localizedStrings.js:
Modified Paths
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
- trunk/Source/WebInspectorUI/ChangeLog
- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css
- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js
- trunk/Source/WebInspectorUI/UserInterface/Views/Popover.js
Diff
Modified: trunk/Source/WebCore/ChangeLog (237707 => 237708)
--- trunk/Source/WebCore/ChangeLog 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebCore/ChangeLog 2018-11-02 00:27:19 UTC (rev 237708)
@@ -1,3 +1,15 @@
+2018-11-01 Devin Rousso <drou...@apple.com>
+
+ Web Inspector: Network: remove unnecessary media event tracking
+ https://bugs.webkit.org/show_bug.cgi?id=191174
+
+ Reviewed by Joseph Pecoraro.
+
+ No new tests, as this simply removes some event listeners for the WebInspector frontend.
+
+ * inspector/agents/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::addEventListenersToNode):
+
2018-11-01 Chris Dumez <cdu...@apple.com>
Location object sans browsing context
Modified: trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp (237707 => 237708)
--- trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp 2018-11-02 00:27:19 UTC (rev 237708)
@@ -2168,10 +2168,8 @@
createEventListener(eventNames().abortEvent);
createEventListener(eventNames().canplayEvent);
createEventListener(eventNames().canplaythroughEvent);
- createEventListener(eventNames().durationchangeEvent);
createEventListener(eventNames().emptiedEvent);
createEventListener(eventNames().endedEvent);
- createEventListener(eventNames().errorEvent);
createEventListener(eventNames().loadeddataEvent);
createEventListener(eventNames().loadedmetadataEvent);
createEventListener(eventNames().loadstartEvent);
@@ -2178,13 +2176,10 @@
createEventListener(eventNames().pauseEvent);
createEventListener(eventNames().playEvent);
createEventListener(eventNames().playingEvent);
- createEventListener(eventNames().ratechangeEvent);
createEventListener(eventNames().seekedEvent);
createEventListener(eventNames().seekingEvent);
createEventListener(eventNames().stalledEvent);
createEventListener(eventNames().suspendEvent);
- createEventListener(eventNames().timeupdateEvent);
- createEventListener(eventNames().volumechangeEvent);
createEventListener(eventNames().waitingEvent);
if (!m_mediaMetricsTimer.isActive())
Modified: trunk/Source/WebInspectorUI/ChangeLog (237707 => 237708)
--- trunk/Source/WebInspectorUI/ChangeLog 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebInspectorUI/ChangeLog 2018-11-02 00:27:19 UTC (rev 237708)
@@ -1,5 +1,46 @@
2018-11-01 Devin Rousso <drou...@apple.com>
+ Web Inspector: Network: remove unnecessary media event tracking
+ https://bugs.webkit.org/show_bug.cgi?id=191174
+
+ Reviewed by Joseph Pecoraro.
+
+ Renames "Group by Node" to "Group Media Requests" for clarity.
+
+ * UserInterface/Views/NetworkTableContentView.js:
+ (WI.NetworkTableContentView):
+ (WI.NetworkTableContentView.prototype.reset):
+ (WI.NetworkTableContentView.prototype.showRepresentedObject):
+ (WI.NetworkTableContentView.prototype.networkDetailViewClose):
+ (WI.NetworkTableContentView.prototype._populateNameCell):
+ (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine):
+ (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
+ (WI.NetworkTableContentView.prototype.layout):
+ (WI.NetworkTableContentView.prototype._entryForDOMNode):
+ (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
+ (WI.NetworkTableContentView.prototype._restoreSelectedRow):
+ (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall):
+ (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall):
+ (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
+ * UserInterface/Views/NetworkTableContentView.css:
+ (.network-table .data-container .cell.name .range): Added.
+ (.network-table .data-container .cell.name .range::before): Added.
+ (.network-table:focus .data-container li.selected .cell.name .range): Added.
+ (@media (prefers-dark-interface) .network-table .data-container .cell.name .range): Added.
+ Always display the "Byte Range" title as a "subtitle", regardless of the media requests
+ setting being toggled.
+ Drive-by: update the position of the waterfall popover whenever the time range changes.
+ Drive-by: close the details view if a node is selected and the media requests setting is
+ turned off.
+
+ * UserInterface/Views/Popover.js:
+ (WI.Popover.prototype.resize): Added.
+ (WI.Popover.prototype.handleEvent):
+
+ * Localizations/en.lproj/localizedStrings.js:
+
+2018-11-01 Devin Rousso <drou...@apple.com>
+
Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener')
https://bugs.webkit.org/show_bug.cgi?id=191020
Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (237707 => 237708)
--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js 2018-11-02 00:27:19 UTC (rev 237708)
@@ -434,6 +434,7 @@
localizedStrings["Global Variables"] = "Global Variables";
localizedStrings["Grammar"] = "Grammar";
localizedStrings["Group"] = "Group";
+localizedStrings["Group Media Requests"] = "Group Media Requests";
localizedStrings["Group by Event"] = "Group by Event";
localizedStrings["Group by Node"] = "Group by Node";
localizedStrings["Grouping Method"] = "Grouping Method";
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css (237707 => 237708)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css 2018-11-02 00:27:19 UTC (rev 237708)
@@ -86,6 +86,18 @@
-webkit-padding-start: calc(var(--item-padding-start) + var(--item-disclosure-width));
}
+.network-table .data-container .cell.name .range {
+ color: hsla(0, 0%, 0%, 0.7);
+}
+
+.network-table .data-container .cell.name .range::before {
+ content: " — ";
+}
+
+.network-table:focus .data-container li.selected .cell.name .range {
+ color: hsla(0, 0%, 100%, 0.9);
+}
+
.network-table li:not(.selected) .cell:matches(.cache-type, .multiple) {
color: var(--text-color-gray-medium);
}
@@ -296,4 +308,8 @@
.network-table .cell.domain > .lock {
filter: var(--filter-invert);
}
+
+ .network-table .data-container .cell.name .range {
+ color: var(--text-color-secondary);
+ }
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (237707 => 237708)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js 2018-11-02 00:27:19 UTC (rev 237708)
@@ -84,7 +84,7 @@
this._typeFilterScopeBar = new WI.ScopeBar("network-type-filter-scope-bar", typeFilterScopeBarItems, typeFilterScopeBarItems[0]);
this._typeFilterScopeBar.addEventListener(WI.ScopeBar.Event.SelectionChanged, this._typeFilterScopeBarSelectionChanged, this);
- this._groupByDOMNodeNavigationItem = new WI.CheckboxNavigationItem("group-by-node", WI.UIString("Group by Node"), WI.settings.groupByDOMNode.value);
+ this._groupByDOMNodeNavigationItem = new WI.CheckboxNavigationItem("group-by-node", WI.UIString("Group Media Requests"), WI.settings.groupByDOMNode.value);
this._groupByDOMNodeNavigationItem.addEventListener(WI.CheckboxNavigationItem.Event.CheckedDidChange, this._handleGroupByDOMNodeCheckedDidChange, this);
this._urlFilterSearchText = null;
@@ -278,7 +278,7 @@
this._updateExportButton();
if (this._table) {
- this._selectedResource = null;
+ this._selectedObject = null;
this._table.reloadData();
this._hidePopover();
this._hideDetailView();
@@ -291,7 +291,7 @@
let rowIndex = this._rowIndexForRepresentedObject(representedObject);
if (rowIndex === -1) {
- this._selectedResource = null;
+ this._selectedObject = null;
this._table.deselectAll();
this._hideDetailView();
return;
@@ -306,7 +306,7 @@
networkDetailViewClose(networkDetailView)
{
- this._selectedResource = null;
+ this._selectedObject = null;
this._table.deselectAll();
this._hideDetailView();
}
@@ -511,22 +511,22 @@
cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
- let nameElement = cell.appendChild(document.createElement("span"));
-
if (WI.settings.groupByDOMNode.value && resource.initiatorNode) {
let nodeEntry = this._domNodeEntries.get(resource.initiatorNode);
- if (nodeEntry.initiatedResourceEntries.length > 1 || nodeEntry.domNode.domEvents.length) {
+ if (nodeEntry.initiatedResourceEntries.length > 1 || nodeEntry.domNode.domEvents.length)
cell.classList.add("child");
+ }
- let range = resource.requestedByteRange;
- if (range)
- nameElement.textContent = WI.UIString("Byte Range %s\u2013%s").format(range.start, range.end);
- }
+ let nameElement = cell.appendChild(document.createElement("span"));
+ nameElement.textContent = entry.name;
+
+ let range = resource.requestedByteRange;
+ if (range) {
+ let rangeElement = nameElement.appendChild(document.createElement("span"));
+ rangeElement.classList.add("range");
+ rangeElement.textContent = WI.UIString("Byte Range %s\u2013%s").format(range.start, range.end);
}
- if (!nameElement.textContent)
- nameElement.textContent = entry.name;
-
cell.title = resource.url;
cell.classList.add(WI.Resource.classNameForResource(resource));
}
@@ -712,7 +712,7 @@
for (let i = domEvents.length - 1; i >= 0; --i) {
let domEvent = domEvents[i];
- if (domEvent.eventName === "play" || domEvent.eventName === "playing" || domEvent.eventName === "timeupdate") {
+ if (domEvent.eventName === "play" || domEvent.eventName === "playing") {
playing = true;
break;
}
@@ -746,8 +746,11 @@
eventElement.addEventListener("mousedown", (event) => {
if (event.button !== 0 || event.ctrlKey)
return;
- this._handleNodeEntryMousedownWaterfall(eventElement, entry, domEvents);
+ this._handleNodeEntryMousedownWaterfall(entry, domEvents);
});
+
+ for (let domEvent of domEvents)
+ entry.domEventElements.set(domEvent, eventElement);
}
return;
@@ -798,7 +801,7 @@
mouseBlock.addEventListener("mousedown", (event) => {
if (event.button !== 0 || event.ctrlKey)
return;
- this._handleResourceEntryMousedownWaterfall(mouseBlock, entry);
+ this._handleResourceEntryMousedownWaterfall(entry);
});
// Super small visualization.
@@ -1091,6 +1094,12 @@
this._positionDetailView();
this._positionEmptyFilterMessage();
this._updateExportButton();
+
+ // FIXME: https://webkit.org/b/191176
+ setTimeout(() => {
+ if (this._waterfallPopover)
+ this._waterfallPopover.resize();
+ });
}
handleClearShortcut(event)
@@ -1550,6 +1559,7 @@
return {
domNode,
initiatedResourceEntries: [],
+ domEventElements: new Map,
expanded: true,
};
}
@@ -1775,9 +1785,15 @@
{
WI.settings.groupByDOMNode.value = this._groupByDOMNodeNavigationItem.checked;
- if (!WI.settings.groupByDOMNode.value)
+ if (!WI.settings.groupByDOMNode.value) {
this._table.element.classList.remove("grouped");
+ if (this._selectedObject && this._selectedObject instanceof WI.DOMNode) {
+ this._selectedObject = null;
+ this._hideDetailView();
+ }
+ }
+
this._updateSort();
this._updateFilteredEntries();
this._reloadTable();
@@ -1824,7 +1840,7 @@
let rowIndex = this._rowIndexForRepresentedObject(this._selectedObject);
if (rowIndex === -1) {
- this._selectedResource = null;
+ this._selectedObject = null;
this._table.deselectAll();
return;
}
@@ -1897,19 +1913,34 @@
return contentElement;
}
- _handleResourceEntryMousedownWaterfall(targetElement, resourceEntry)
+ _handleResourceEntryMousedownWaterfall(resourceEntry)
{
let popoverContentElement = this._waterfallPopoverContentForResourceEntry(resourceEntry);
- this._handleMousedownWaterfall(resourceEntry, targetElement, popoverContentElement);
+ this._handleMousedownWaterfall(resourceEntry, popoverContentElement, (cell) => {
+ return cell.querySelector(".block.mouse-tracking");
+ });
}
- _handleNodeEntryMousedownWaterfall(targetElement, nodeEntry, domEvents)
+ _handleNodeEntryMousedownWaterfall(nodeEntry, domEvents)
{
let popoverContentElement = this._waterfallPopoverContentForNodeEntry(nodeEntry, domEvents);
- this._handleMousedownWaterfall(nodeEntry, targetElement, popoverContentElement);
+ this._handleMousedownWaterfall(nodeEntry, popoverContentElement, (cell) => {
+ let domEventElement = nodeEntry.domEventElements.get(domEvents[0]);
+
+ // Show any additional DOM events that have been merged into the range.
+ if (domEventElement && this._waterfallPopover.visible) {
+ let newDOMEvents = Array.from(nodeEntry.domEventElements)
+ .filter(([domEvent, element]) => element === domEventElement)
+ .map(([domEvent, element]) => domEvent);
+
+ this._waterfallPopover.content = this._waterfallPopoverContentForNodeEntry(nodeEntry, newDOMEvents);
+ }
+
+ return domEventElement;
+ });
}
- _handleMousedownWaterfall(entry, targetElement, popoverContentElement)
+ _handleMousedownWaterfall(entry, popoverContentElement, updateTargetAndContentFunction)
{
if (!this._waterfallPopover) {
this._waterfallPopover = new WI.Popover;
@@ -1920,23 +1951,16 @@
return;
let calculateTargetFrame = () => {
- if (!entry.resource)
- return WI.Rect.rectFromClientRect(targetElement.getBoundingClientRect());
-
- let rowIndex = this._rowIndexForRepresentedObject(entry.resource);
+ let rowIndex = this._rowIndexForRepresentedObject(entry.resource || entry.domNode);
let cell = this._table.cellForRowAndColumn(rowIndex, this._waterfallColumn);
- if (!cell) {
- this._waterfallPopover.dismiss();
- return null;
+ if (cell) {
+ let targetElement = updateTargetAndContentFunction(cell);
+ if (targetElement)
+ return WI.Rect.rectFromClientRect(targetElement.getBoundingClientRect());
}
- let mouseBlock = cell.querySelector(".block.mouse-tracking");
- if (!mouseBlock) {
- this._waterfallPopover.dismiss();
- return null;
- }
-
- return WI.Rect.rectFromClientRect(mouseBlock.getBoundingClientRect());
+ this._waterfallPopover.dismiss();
+ return null;
};
let targetFrame = calculateTargetFrame();
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Popover.js (237707 => 237708)
--- trunk/Source/WebInspectorUI/UserInterface/Views/Popover.js 2018-11-02 00:02:40 UTC (rev 237707)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Popover.js 2018-11-02 00:27:19 UTC (rev 237708)
@@ -94,6 +94,12 @@
this._resizeHandler = resizeHandler;
}
+ resize()
+ {
+ if (this.visible && this._resizeHandler)
+ this._resizeHandler();
+ }
+
update(shouldAnimate = true)
{
if (!this.visible)
@@ -169,8 +175,7 @@
}
break;
case "resize":
- if (this._resizeHandler)
- this._resizeHandler();
+ this.resize();
break;
case "keypress":
if (event.keyCode === WI.KeyboardShortcut.Key.Escape.keyCode)
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes