Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (221942 => 221943)
--- trunk/Source/WebInspectorUI/ChangeLog 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/ChangeLog 2017-09-12 23:20:54 UTC (rev 221943)
@@ -1,3 +1,57 @@
+2017-09-12 Joseph Pecoraro <[email protected]>
+
+ Web Inspector: Add Experimental setting for new Network tab
+ https://bugs.webkit.org/show_bug.cgi?id=176750
+
+ Reviewed by Matt Baker.
+
+ * Localizations/en.lproj/localizedStrings.js:
+ * UserInterface/Main.html:
+ * UserInterface/Base/Main.js:
+ (WI.contentLoaded):
+ New files and strings.
+
+ * UserInterface/Base/Setting.js:
+ New experimental setting.
+
+ * UserInterface/Views/LegacyNetworkTabContentView.js:
+ (WI.LegacyNetworkTabContentView.isTabAllowed):
+ Legacy tab availability depends on the setting.
+
+ * UserInterface/Views/NetworkTabContentView.js:
+ (WI.NetworkTabContentView):
+ (WI.NetworkTabContentView.isTabAllowed):
+ (WI.NetworkTabContentView.prototype.get contentBrowser):
+ (WI.NetworkTabContentView.prototype.get type):
+ (WI.NetworkTabContentView.prototype.canShowRepresentedObject):
+ (WI.NetworkTabContentView.prototype.get supportsSplitContentBrowser):
+ Modern network tab. Only difference right now is it allows the split console.
+
+ * UserInterface/Views/NetworkTableContentView.js: Added.
+ (WI.NetworkTableContentView):
+ (WI.NetworkTableContentView.prototype.get selectionPathComponents):
+ (WI.NetworkTableContentView.prototype.get navigationItems):
+ (WI.NetworkTableContentView.prototype.shown):
+ (WI.NetworkTableContentView.prototype.hidden):
+ (WI.NetworkTableContentView.prototype.closed):
+ (WI.NetworkTableContentView.prototype.reset):
+ (WI.NetworkTableContentView.prototype.layout):
+ (WI.NetworkTableContentView.prototype.handleClearShortcut):
+ (WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):
+ (WI.NetworkTableContentView.prototype._toggleDisableResourceCache):
+ Add a stubbed out ContentView. This will be implemented next.
+
+ * UserInterface/Views/SettingsTabContentView.js:
+ (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
+ Add an experimental setting to toggle the new network tab. Only
+ show the experimental settings that relate to the debuggable target.
+ For JSContext targets, none of the settings are applicable, so don't
+ even show the experimental section.
+
+ * UserInterface/Views/TabBrowser.js:
+ (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
+ Treat all network tabs the same.
+
2017-09-11 Matt Baker <[email protected]>
Web Inspector: Canvas: improve recording controls and state management
Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -568,7 +568,9 @@
localizedStrings["Network"] = "Network";
localizedStrings["Network Issue"] = "Network Issue";
localizedStrings["Network Requests"] = "Network Requests";
+localizedStrings["Network Tab:"] = "Network Tab:";
localizedStrings["Network:"] = "Network:";
+localizedStrings["New Network Tab"] = "New Network Tab";
localizedStrings["New Tab"] = "New Tab";
localizedStrings["No"] = "No";
localizedStrings["No Accessibility Information"] = "No Accessibility Information";
Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -439,6 +439,7 @@
WI.ElementsTabContentView,
WI.LayersTabContentView,
WI.LegacyNetworkTabContentView,
+ WI.NetworkTabContentView,
WI.NewTabContentView,
WI.RecordingTabContentView,
WI.ResourcesTabContentView,
@@ -1002,9 +1003,17 @@
WI.showNetworkTab = function()
{
- var tabContentView = this.tabBrowser.bestTabContentViewForClass(WI.LegacyNetworkTabContentView);
- if (!tabContentView)
- tabContentView = new WI.LegacyNetworkTabContentView;
+ let tabContentView;
+ if (WI.settings.experimentalEnableNewNetworkTab.value) {
+ tabContentView = this.tabBrowser.bestTabContentViewForClass(WI.NetworkTabContentView);
+ if (!tabBrowser)
+ tabBrowser = new WI.NetworkTabContentView;
+ } else {
+ tabContentView = this.tabBrowser.bestTabContentViewForClass(WI.LegacyNetworkTabContentView);
+ if (!tabContentView)
+ tabContentView = new WI.LegacyNetworkTabContentView;
+ }
+
this.tabBrowser.showTabForContentView(tabContentView);
};
@@ -1892,7 +1901,7 @@
{
if (this.tabBrowser.element.isSelfOrAncestor(this.currentFocusElement) || document.activeElement === document.body) {
var tabContentView = this.tabBrowser.selectedTabContentView;
- if (tabContentView instanceof WI.ContentBrowserTabContentView)
+ if (tabContentView.contentBrowser)
return tabContentView.contentBrowser;
return null;
}
@@ -1908,7 +1917,7 @@
{
if (this.tabBrowser.element.isSelfOrAncestor(this.currentFocusElement) || document.activeElement === document.body) {
var tabContentView = this.tabBrowser.selectedTabContentView;
- if (tabContentView instanceof WI.ContentBrowserTabContentView)
+ if (tabContentView.contentBrowser)
return tabContentView.contentBrowser.currentContentView;
return tabContentView;
}
@@ -1927,7 +1936,7 @@
return focusedContentBrowser;
var tabContentView = this.tabBrowser.selectedTabContentView;
- if (tabContentView instanceof WI.ContentBrowserTabContentView)
+ if (tabContentView.contentBrowser)
return tabContentView.contentBrowser;
return null;
@@ -1940,7 +1949,7 @@
return focusedContentView;
var tabContentView = this.tabBrowser.selectedTabContentView;
- if (tabContentView instanceof WI.ContentBrowserTabContentView)
+ if (tabContentView.contentBrowser)
return tabContentView.contentBrowser.currentContentView;
return tabContentView;
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -128,4 +128,5 @@
experimentalShowCanvasContextsInResources: new WI.Setting("experimental-show-canvas-contexts-in-resources", false),
experimentalSpreadsheetStyleEditor: new WI.Setting("experimental-spreadsheet-style-editor", false),
experimentalEnableLayersTab: new WI.Setting("experimental-enable-layers-tab", false),
+ experimentalEnableNewNetworkTab: new WI.Setting("experimental-enable-new-network-tab", false),
};
Modified: trunk/Source/WebInspectorUI/UserInterface/Main.html (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Main.html 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Main.html 2017-09-12 23:20:54 UTC (rev 221943)
@@ -484,6 +484,7 @@
<script src=""
<script src=""
<script src=""
+ <script src=""
<script src=""
<script src=""
<script src=""
@@ -642,6 +643,7 @@
<script src=""
<script src=""
<script src=""
+ <script src=""
<script src=""
<script src=""
<script src=""
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LegacyNetworkTabContentView.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Views/LegacyNetworkTabContentView.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LegacyNetworkTabContentView.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -44,7 +44,7 @@
static isTabAllowed()
{
- return !!window.NetworkAgent && !!window.PageAgent;
+ return !!window.NetworkAgent && !!window.PageAgent && !WI.settings.experimentalEnableNewNetworkTab.value;
}
// Public
Copied: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js (from rev 221942, trunk/Source/WebInspectorUI/UserInterface/Views/LegacyNetworkTabContentView.js) (0 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js (rev 0)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WI.NetworkTabContentView = class NetworkTabContentView extends WI.TabContentView
+{
+ constructor(identifier)
+ {
+ let {image, title} = WI.NetworkTabContentView.tabInfo();
+ let tabBarItem = new WI.GeneralTabBarItem(image, title);
+
+ super(identifier || "network", "network", tabBarItem);
+
+ this._networkTableContentView = new WI.NetworkTableContentView;
+
+ const disableBackForward = true;
+ const disableFindBanner = true;
+ this._contentBrowser = new WI.ContentBrowser(null, this, disableBackForward, disableFindBanner);
+ this._contentBrowser.showContentView(this._networkTableContentView);
+
+ this.addSubview(this._contentBrowser);
+ }
+
+ // Static
+
+ static tabInfo()
+ {
+ return {
+ image: "Images/Network.svg",
+ title: WI.UIString("Network"),
+ };
+ }
+
+ static isTabAllowed()
+ {
+ return !!window.NetworkAgent && !!window.PageAgent && WI.settings.experimentalEnableNewNetworkTab.value;
+ }
+
+ // Public
+
+ get contentBrowser() { return this._contentBrowser; }
+
+ get type()
+ {
+ return WI.NetworkTabContentView.Type;
+ }
+
+ canShowRepresentedObject(representedObject)
+ {
+ return representedObject instanceof WI.Resource;
+ }
+
+ get supportsSplitContentBrowser()
+ {
+ return true;
+ }
+};
+
+// FIXME: When removing LegacyNetworkTabContentView this should move back to just "network".
+WI.NetworkTabContentView.Type = "new-network";
Added: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (0 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (rev 0)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WI.NetworkTableContentView = class NetworkTableContentView extends WI.ContentView
+{
+ constructor(representedObject, extraArguments)
+ {
+ super(representedObject);
+
+ // FIXME: Network Table.
+ // FIXME: Network Timeline.
+ // FIXME: Filter text field.
+ // FIXME: Filter scope bar.
+ // FIXME: Throttling.
+ // FIXME: HAR Export.
+
+ // COMPATIBILITY (iOS 10.3): Network.setDisableResourceCaching did not exist.
+ if (window.NetworkAgent && NetworkAgent.setResourceCachingDisabled) {
+ let toolTipForDisableResourceCache = WI.UIString("Ignore the resource cache when loading resources");
+ let activatedToolTipForDisableResourceCache = WI.UIString("Use the resource cache when loading resources");
+ this._disableResourceCacheNavigationItem = new WI.ActivateButtonNavigationItem("disable-resource-cache", toolTipForDisableResourceCache, activatedToolTipForDisableResourceCache, "Images/IgnoreCaches.svg", 16, 16);
+ this._disableResourceCacheNavigationItem.activated = WI.resourceCachingDisabledSetting.value;
+
+ this._disableResourceCacheNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._toggleDisableResourceCache, this);
+ WI.resourceCachingDisabledSetting.addEventListener(WI.Setting.Event.Changed, this._resourceCachingDisabledSettingChanged, this);
+ }
+
+ this._clearNetworkItemsNavigationItem = new WI.ButtonNavigationItem("clear-network-items", WI.UIString("Clear Network Items (%s)").format(WI.clearKeyboardShortcut.displayName), "Images/NavigationItemClear.svg", 16, 16);
+ this._clearNetworkItemsNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, () => this.reset());
+ }
+
+ // Public
+
+ get selectionPathComponents()
+ {
+ return null;
+ }
+
+ get navigationItems()
+ {
+ let items = [];
+
+ if (this._disableResourceCacheNavigationItem)
+ items.push(this._disableResourceCacheNavigationItem);
+ items.push(this._clearNetworkItemsNavigationItem);
+
+ return items;
+ }
+
+ shown()
+ {
+ super.shown();
+
+ // FIXME: Implement.
+ }
+
+ hidden()
+ {
+ // FIXME: Implment.
+
+ super.hidden();
+ }
+
+ closed()
+ {
+ // FIXME: Implement
+
+ super.closed();
+ }
+
+ reset()
+ {
+ // FIXME: Implement
+ }
+
+ // Protected
+
+ layout()
+ {
+ // FIXME: Implement
+ }
+
+ handleClearShortcut(event)
+ {
+ this.reset();
+ }
+
+ // Private
+
+ _resourceCachingDisabledSettingChanged()
+ {
+ this._disableResourceCacheNavigationItem.activated = WI.resourceCachingDisabledSetting.value;
+ }
+
+ _toggleDisableResourceCache()
+ {
+ WI.resourceCachingDisabledSetting.value = !WI.resourceCachingDisabledSetting.value;
+ }
+};
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -234,21 +234,28 @@
_createExperimentalSettingsView()
{
+ if (!(window.CanvasAgent || window.CSSAgent || window.NetworkAgent || window.LayerTreeAgent))
+ return;
+
let experimentalSettingsView = new WI.SettingsView("experimental", WI.UIString("Experimental"));
if (window.CanvasAgent) {
experimentalSettingsView.addSetting(WI.UIString("Canvas:"), WI.settings.experimentalShowCanvasContextsInResources, WI.UIString("Show Contexts in Resources Tab"));
+ experimentalSettingsView.addSeparator();
+ }
+ if (window.CSSAgent) {
+ experimentalSettingsView.addSetting(WI.UIString("Styles Panel:"), WI.settings.experimentalSpreadsheetStyleEditor, WI.UIString("Spreadsheet Style Editor"));
experimentalSettingsView.addSeparator();
}
- experimentalSettingsView.addSetting(WI.UIString("Styles Panel:"), WI.settings.experimentalSpreadsheetStyleEditor, WI.UIString("Spreadsheet Style Editor"));
+ if (window.NetworkAgent) {
+ experimentalSettingsView.addSetting(WI.UIString("Network Tab:"), WI.settings.experimentalEnableNewNetworkTab, WI.UIString("New Network Tab"));
+ experimentalSettingsView.addSeparator();
+ }
- experimentalSettingsView.addSeparator();
-
if (window.LayerTreeAgent) {
experimentalSettingsView.addSetting(WI.UIString("Layers:"), WI.settings.experimentalEnableLayersTab, WI.UIString("Enable Layers Tab"));
-
experimentalSettingsView.addSeparator();
}
@@ -266,14 +273,11 @@
});
}
- if (window.CanvasAgent)
- listenForChange(WI.settings.experimentalShowCanvasContextsInResources);
-
+ listenForChange(WI.settings.experimentalShowCanvasContextsInResources);
listenForChange(WI.settings.experimentalSpreadsheetStyleEditor);
+ listenForChange(WI.settings.experimentalEnableNewNetworkTab);
+ listenForChange(WI.settings.experimentalEnableLayersTab);
- if (window.LayerTreeAgent)
- listenForChange(WI.settings.experimentalEnableLayersTab);
-
this.addSettingsView(experimentalSettingsView);
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js (221942 => 221943)
--- trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js 2017-09-12 23:13:17 UTC (rev 221942)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TabBrowser.js 2017-09-12 23:20:54 UTC (rev 221943)
@@ -128,6 +128,8 @@
if (options.ignoreNetworkTab && tabContentView instanceof WI.LegacyNetworkTabContentView)
continue;
+ if (options.ignoreNetworkTab && tabContentView instanceof WI.NetworkTabContentView)
+ continue;
if (tabContentView.canShowRepresentedObject(representedObject))
return tabContentView;