Commit 600fe4d4 authored by Pavel Feldman's avatar Pavel Feldman Committed by Commit Bot

DevTools: refactor inter-module dependencies, make more things optional and lazy.

- removes legacy code from building release modules
- makes context submenus populatable via descriptors
- inlines network_priorities into perf_ui
- removes main -> network_log and main -> console_counters dependencies
- introduces late initialization extension point and uses it for showing releaes notes
- makes help module non-autostart, removes main -> help dependency
- brushes up BUILD.gn
- introduces ndb.json for non-browser targets

Change-Id: I7790bdff293afdaa80d0882df5efc565440019d1
Reviewed-on: https://chromium-review.googlesource.com/888330
Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532166}
parent 8462eeb0
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
// found in the LICENSE file. // found in the LICENSE file.
(async function() { (async function() {
TestRunner.addResult(`Unit test for release note\n`); await TestRunner.loadModule('help');
TestRunner.addResult(`Unit test for release note\n`);
Help.releaseNoteText = [ Help.releaseNoteText = [
{version: 3}, {version: 3},
...@@ -21,7 +22,7 @@ ...@@ -21,7 +22,7 @@
TestRunner.addSniffer(UI.viewManager, 'showView', onShowView); TestRunner.addSniffer(UI.viewManager, 'showView', onShowView);
var showedReleaseNote = false; var showedReleaseNote = false;
Help._showReleaseNoteIfNeeded(lastSeenVersion, Help.latestReleaseNote().version, showReleaseNote); Help._innerShowReleaseNoteIfNeeded(lastSeenVersion, Help.latestReleaseNote().version, showReleaseNote);
function onShowView() { function onShowView() {
showedReleaseNote = true; showedReleaseNote = true;
...@@ -51,7 +52,7 @@ ...@@ -51,7 +52,7 @@
function doNotShowReleaseNoteOnFreshProfile(next) { function doNotShowReleaseNoteOnFreshProfile(next) {
var lastSeenVersion = 0; var lastSeenVersion = 0;
testMaybeShowInDrawer(lastSeenVersion); testMaybeShowInDrawer(lastSeenVersion);
TestRunner.addResult(`Release note version in setting: ${Help.releaseNoteVersionSetting().get()}`); TestRunner.addResult(`Release note version in setting: ${Help._releaseNoteVersionSetting.get()}`);
next(); next();
}, },
function showReleaseNoteSetting(next) { function showReleaseNoteSetting(next) {
......
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
// found in the LICENSE file. // found in the LICENSE file.
(async function() { (async function() {
TestRunner.addResult(`Test release note\n`); await TestRunner.loadModule('help');
TestRunner.addResult(`Test release note\n`);
Help.releaseNoteText = [ Help.releaseNoteText = [
{ {
...@@ -29,9 +30,9 @@ ...@@ -29,9 +30,9 @@
TestRunner.addSniffer(UI.viewManager, 'showView', onShowView); TestRunner.addSniffer(UI.viewManager, 'showView', onShowView);
TestRunner.addResult('Last release note version seen:'); TestRunner.addResult('Last release note version seen:');
Help.releaseNoteVersionSetting().set(1); Help._releaseNoteVersionSetting.set(1);
TestRunner.addResult(Help.releaseNoteVersionSetting().get() + '\n'); TestRunner.addResult(Help._releaseNoteVersionSetting.get() + '\n');
Help.showReleaseNoteIfNeeded(); Help._showReleaseNoteIfNeeded();
function onShowView(viewId, isUserGesture, viewPromise) { function onShowView(viewId, isUserGesture, viewPromise) {
viewPromise.then(() => { viewPromise.then(() => {
...@@ -40,7 +41,7 @@ ...@@ -40,7 +41,7 @@
TestRunner.addResult('Dumping release note text:'); TestRunner.addResult('Dumping release note text:');
TestRunner.addResult(releaseNoteElement.innerText); TestRunner.addResult(releaseNoteElement.innerText);
TestRunner.addResult('Last version of release note seen should be updated:'); TestRunner.addResult('Last version of release note seen should be updated:');
TestRunner.addResult(Help.releaseNoteVersionSetting().get() + '\n'); TestRunner.addResult(Help._releaseNoteVersionSetting.get() + '\n');
TestRunner.addSniffer(UI.InspectorView.prototype, 'closeDrawerTab', onClose); TestRunner.addSniffer(UI.InspectorView.prototype, 'closeDrawerTab', onClose);
TestRunner.addResult('Click on hide button'); TestRunner.addResult('Click on hide button');
......
...@@ -9,7 +9,6 @@ Loaded modules: ...@@ -9,7 +9,6 @@ Loaded modules:
dom_extension dom_extension
emulation emulation
extensions extensions
help
host host
main main
mobile_throttling mobile_throttling
......
...@@ -8,7 +8,6 @@ Loaded modules: ...@@ -8,7 +8,6 @@ Loaded modules:
formatter formatter
har_importer har_importer
network network
network_priorities
object_ui object_ui
perf_ui perf_ui
source_frame source_frame
......
...@@ -361,6 +361,7 @@ all_devtools_files = [ ...@@ -361,6 +361,7 @@ all_devtools_files = [
"front_end/mobile_throttling/ThrottlingPresets.js", "front_end/mobile_throttling/ThrottlingPresets.js",
"front_end/mobile_throttling/throttlingSettingsTab.css", "front_end/mobile_throttling/throttlingSettingsTab.css",
"front_end/mobile_throttling/ThrottlingSettingsTab.js", "front_end/mobile_throttling/ThrottlingSettingsTab.js",
"front_end/ndb.json",
"front_end/network/blockedURLsPane.css", "front_end/network/blockedURLsPane.css",
"front_end/network/BlockedURLsPane.js", "front_end/network/BlockedURLsPane.js",
"front_end/network/eventSourceMessagesView.css", "front_end/network/eventSourceMessagesView.css",
...@@ -398,8 +399,6 @@ all_devtools_files = [ ...@@ -398,8 +399,6 @@ all_devtools_files = [
"front_end/network_log/HAREntry.js", "front_end/network_log/HAREntry.js",
"front_end/network_log/module.json", "front_end/network_log/module.json",
"front_end/network_log/NetworkLog.js", "front_end/network_log/NetworkLog.js",
"front_end/network_priorities/module.json",
"front_end/network_priorities/NetworkPriorities.js",
"front_end/network_test_runner/module.json", "front_end/network_test_runner/module.json",
"front_end/network_test_runner/NetworkTestRunner.js", "front_end/network_test_runner/NetworkTestRunner.js",
"front_end/network_test_runner/ProductRegistryTestRunner.js", "front_end/network_test_runner/ProductRegistryTestRunner.js",
...@@ -413,22 +412,23 @@ all_devtools_files = [ ...@@ -413,22 +412,23 @@ all_devtools_files = [
"front_end/object_ui/ObjectPropertiesSection.js", "front_end/object_ui/ObjectPropertiesSection.js",
"front_end/object_ui/objectValue.css", "front_end/object_ui/objectValue.css",
"front_end/object_ui/RemoteObjectPreviewFormatter.js", "front_end/object_ui/RemoteObjectPreviewFormatter.js",
"front_end/perf_ui/chartViewport.css",
"front_end/perf_ui/ChartViewport.js", "front_end/perf_ui/ChartViewport.js",
"front_end/perf_ui/filmStripView.css",
"front_end/perf_ui/FilmStripView.js", "front_end/perf_ui/FilmStripView.js",
"front_end/perf_ui/flameChart.css",
"front_end/perf_ui/FlameChart.js", "front_end/perf_ui/FlameChart.js",
"front_end/perf_ui/LineLevelProfile.js", "front_end/perf_ui/LineLevelProfile.js",
"front_end/perf_ui/NetworkPriorities.js",
"front_end/perf_ui/OverviewGrid.js",
"front_end/perf_ui/PieChart.js",
"front_end/perf_ui/TimelineGrid.js",
"front_end/perf_ui/TimelineOverviewPane.js",
"front_end/perf_ui/chartViewport.css",
"front_end/perf_ui/filmStripView.css",
"front_end/perf_ui/flameChart.css",
"front_end/perf_ui/module.json", "front_end/perf_ui/module.json",
"front_end/perf_ui/overviewGrid.css", "front_end/perf_ui/overviewGrid.css",
"front_end/perf_ui/OverviewGrid.js",
"front_end/perf_ui/pieChart.css", "front_end/perf_ui/pieChart.css",
"front_end/perf_ui/PieChart.js",
"front_end/perf_ui/timelineGrid.css", "front_end/perf_ui/timelineGrid.css",
"front_end/perf_ui/TimelineGrid.js",
"front_end/perf_ui/timelineOverviewInfo.css", "front_end/perf_ui/timelineOverviewInfo.css",
"front_end/perf_ui/TimelineOverviewPane.js",
"front_end/performance_test_runner/module.json", "front_end/performance_test_runner/module.json",
"front_end/performance_test_runner/TimelineDataTestRunner.js", "front_end/performance_test_runner/TimelineDataTestRunner.js",
"front_end/performance_test_runner/TimelineTestRunner.js", "front_end/performance_test_runner/TimelineTestRunner.js",
...@@ -957,11 +957,11 @@ generated_non_autostart_non_remote_modules = [ ...@@ -957,11 +957,11 @@ generated_non_autostart_non_remote_modules = [
"$resources_out_dir/formatter/formatter_module.js", "$resources_out_dir/formatter/formatter_module.js",
"$resources_out_dir/har_importer/har_importer_module.js", "$resources_out_dir/har_importer/har_importer_module.js",
"$resources_out_dir/heap_snapshot_model/heap_snapshot_model_module.js", "$resources_out_dir/heap_snapshot_model/heap_snapshot_model_module.js",
"$resources_out_dir/help/help_module.js",
"$resources_out_dir/inline_editor/inline_editor_module.js", "$resources_out_dir/inline_editor/inline_editor_module.js",
"$resources_out_dir/layer_viewer/layer_viewer_module.js", "$resources_out_dir/layer_viewer/layer_viewer_module.js",
"$resources_out_dir/layers/layers_module.js", "$resources_out_dir/layers/layers_module.js",
"$resources_out_dir/network/network_module.js", "$resources_out_dir/network/network_module.js",
"$resources_out_dir/network_priorities/network_priorities_module.js",
"$resources_out_dir/object_ui/object_ui_module.js", "$resources_out_dir/object_ui/object_ui_module.js",
"$resources_out_dir/perf_ui/perf_ui_module.js", "$resources_out_dir/perf_ui/perf_ui_module.js",
"$resources_out_dir/profiler/profiler_module.js", "$resources_out_dir/profiler/profiler_module.js",
...@@ -997,6 +997,7 @@ devtools_applications = [ ...@@ -997,6 +997,7 @@ devtools_applications = [
"formatter_worker", "formatter_worker",
"audits2_worker", "audits2_worker",
"heap_snapshot_worker", "heap_snapshot_worker",
"ndb",
] ]
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
...@@ -1049,16 +1050,10 @@ action("generate_devtools_grd") { ...@@ -1049,16 +1050,10 @@ action("generate_devtools_grd") {
deps = [ deps = [
":devtools_frontend_resources", ":devtools_frontend_resources",
] ]
inputs = devtools_image_files + all_devtools_files
inputs += devtools_embedder_scripts
generated_files =
generated_resources + [ "$resources_out_dir/devtools_extension_api.js" ]
images_path = "front_end/Images"
inputs += generated_files
grd_files = generated_resources + devtools_embedder_scripts +
[ "$resources_out_dir/devtools_extension_api.js" ]
inputs = grd_files + devtools_image_files
outfile = "$root_gen_dir/devtools/devtools_resources.grd" outfile = "$root_gen_dir/devtools/devtools_resources.grd"
outputs = [ outputs = [
outfile, outfile,
...@@ -1069,14 +1064,11 @@ action("generate_devtools_grd") { ...@@ -1069,14 +1064,11 @@ action("generate_devtools_grd") {
"front_end", "front_end",
] ]
args = rebase_path(generated_files, root_build_dir) + args = rebase_path(grd_files, root_build_dir) + [ "--relative_path_dirs" ] +
rebase_path(generated_files, root_build_dir) +
rebase_path(devtools_embedder_scripts, root_build_dir) +
[ "--relative_path_dirs" ] +
rebase_path(relative_path_dirs, root_build_dir) + rebase_path(relative_path_dirs, root_build_dir) +
[ [
"--images", "--images",
rebase_path(images_path, root_build_dir), rebase_path("front_end/Images", root_build_dir),
"--output", "--output",
rebase_path(outfile, root_build_dir), rebase_path(outfile, root_build_dir),
] ]
...@@ -1144,6 +1136,7 @@ action("build_release_devtools") { ...@@ -1144,6 +1136,7 @@ action("build_release_devtools") {
inputs = helper_scripts + all_devtools_files + generated_scripts + [ inputs = helper_scripts + all_devtools_files + generated_scripts + [
"front_end/inspector.html", "front_end/inspector.html",
"front_end/toolbox.html", "front_end/toolbox.html",
"front_end/ndb.html",
"front_end/integration_test_runner.html", "front_end/integration_test_runner.html",
] ]
...@@ -1170,12 +1163,14 @@ if (debug_devtools) { ...@@ -1170,12 +1163,14 @@ if (debug_devtools) {
inputs = all_devtools_files + [ inputs = all_devtools_files + [
"front_end/inspector.html", "front_end/inspector.html",
"front_end/toolbox.html", "front_end/toolbox.html",
"front_end/ndb.html",
"front_end/integration_test_runner.html", "front_end/integration_test_runner.html",
] ]
outputs = [ outputs = [
"$resources_out_debug_dir/inspector.html", "$resources_out_debug_dir/inspector.html",
"$resources_out_debug_dir/toolbox.html", "$resources_out_debug_dir/toolbox.html",
"$resources_out_debug_dir/ndb.html",
"$resources_out_debug_dir/integration_test_runner.html", "$resources_out_debug_dir/integration_test_runner.html",
] ]
......
...@@ -118,3 +118,12 @@ Common.QueryParamHandler.prototype = { ...@@ -118,3 +118,12 @@ Common.QueryParamHandler.prototype = {
*/ */
handleQueryParam(value) {} handleQueryParam(value) {}
}; };
/**
* @interface
*/
Common.Runnable = function() {};
Common.Runnable.prototype = {
run() {}
};
...@@ -13,20 +13,9 @@ Help.latestReleaseNote = function() { ...@@ -13,20 +13,9 @@ Help.latestReleaseNote = function() {
return Help._latestReleaseNote; return Help._latestReleaseNote;
}; };
/** Help._showReleaseNoteIfNeeded = function() {
* @return {!Common.Setting} Help._innerShowReleaseNoteIfNeeded(
*/ Help._releaseNoteVersionSetting.get(), Help.latestReleaseNote().version,
Help.releaseNoteVersionSetting = function() {
if (!Help._releaseNoteVersionSetting) {
/** @type {!Common.Setting} */
Help._releaseNoteVersionSetting = Common.settings.createSetting('releaseNoteVersionSeen', 0);
}
return Help._releaseNoteVersionSetting;
};
Help.showReleaseNoteIfNeeded = function() {
Help._showReleaseNoteIfNeeded(
Help.releaseNoteVersionSetting().get(), Help.latestReleaseNote().version,
Common.settings.moduleSetting('help.show-release-note').get()); Common.settings.moduleSetting('help.show-release-note').get());
}; };
...@@ -35,16 +24,16 @@ Help.showReleaseNoteIfNeeded = function() { ...@@ -35,16 +24,16 @@ Help.showReleaseNoteIfNeeded = function() {
* @param {number} latestVersion * @param {number} latestVersion
* @param {boolean} showReleaseNote * @param {boolean} showReleaseNote
*/ */
Help._showReleaseNoteIfNeeded = function(lastSeenVersion, latestVersion, showReleaseNote) { Help._innerShowReleaseNoteIfNeeded = function(lastSeenVersion, latestVersion, showReleaseNote) {
if (!lastSeenVersion) { if (!lastSeenVersion) {
Help.releaseNoteVersionSetting().set(latestVersion); Help._releaseNoteVersionSetting.set(latestVersion);
return; return;
} }
if (!showReleaseNote) if (!showReleaseNote)
return; return;
if (lastSeenVersion >= latestVersion) if (lastSeenVersion >= latestVersion)
return; return;
Help.releaseNoteVersionSetting().set(latestVersion); Help._releaseNoteVersionSetting.set(latestVersion);
UI.viewManager.showView(Help.releaseNoteViewId, true); UI.viewManager.showView(Help.releaseNoteViewId, true);
}; };
...@@ -62,3 +51,34 @@ Help.ReleaseNoteHighlight; ...@@ -62,3 +51,34 @@ Help.ReleaseNoteHighlight;
* link: string}} * link: string}}
*/ */
Help.ReleaseNote; Help.ReleaseNote;
/**
* @implements {Common.Runnable}
*/
Help.HelpLateInitialization = class {
/**
* @override
*/
run() {
Help._showReleaseNoteIfNeeded();
}
};
/**
* @implements {UI.ActionDelegate}
*/
Help.ReleaseNotesActionDelegate = class {
/**
* @override
* @param {!UI.Context} context
* @param {string} actionId
* @return {boolean}
*/
handleAction(context, actionId) {
InspectorFrontendHost.openInNewTab(Help.latestReleaseNote().link);
return true;
}
};
/** @type {!Common.Setting} */
Help._releaseNoteVersionSetting = Common.settings.createSetting('releaseNoteVersionSeen', 0);
...@@ -17,15 +17,32 @@ ...@@ -17,15 +17,32 @@
"settingType": "boolean", "settingType": "boolean",
"defaultValue": true, "defaultValue": true,
"options": [ "options": [
{ {
"value": true, "value": true,
"title": "Show What's New after each update" "title": "Show What's New after each update"
}, },
{ {
"value": false, "value": false,
"title": "Do not show What's New after each update" "title": "Do not show What's New after each update"
} }
] ]
},
{
"type": "action",
"category": "Help",
"actionId": "help.release-notes",
"title": "Release notes",
"className": "Help.ReleaseNotesActionDelegate"
},
{
"type": "context-menu-item",
"location": "mainMenuHelp/default",
"actionId": "help.release-notes",
"order": 10
},
{
"type": "late-initialization",
"className": "Help.HelpLateInitialization"
} }
], ],
"dependencies": [ "dependencies": [
......
...@@ -52,15 +52,14 @@ ...@@ -52,15 +52,14 @@
{ "name": "data_grid" }, { "name": "data_grid" },
{ "name": "heap_snapshot_model" }, { "name": "heap_snapshot_model" },
{ "name": "event_listeners" }, { "name": "event_listeners" },
{ "name": "object_ui"}, { "name": "object_ui" },
{ "name": "help", "type": "autostart"}, { "name": "help" },
{ "name": "workspace_diff" }, { "name": "workspace_diff" },
{ "name": "console_model", "type": "autostart"}, { "name": "console_model", "type": "autostart" },
{ "name": "network_log", "type": "autostart"}, { "name": "network_log", "type": "autostart" },
{ "name": "text_utils", "type": "autostart"}, { "name": "text_utils", "type": "autostart" },
{ "name": "changes"}, { "name": "changes" },
{ "name": "mobile_throttling", "type": "autostart"}, { "name": "mobile_throttling", "type": "autostart" },
{ "name": "network_priorities"},
{ "name": "formatter" }, { "name": "formatter" },
{ "name": "console_counters", "type": "autostart" } { "name": "console_counters", "type": "autostart" }
], ],
......
...@@ -19,13 +19,7 @@ ...@@ -19,13 +19,7 @@
{ "name": "sdk_test_runner" }, { "name": "sdk_test_runner" },
{ "name": "cpu_profiler_test_runner" }, { "name": "cpu_profiler_test_runner" },
{ "name": "heap_profiler_test_runner" }, { "name": "heap_profiler_test_runner" },
{ "name": "heap_snapshot_worker" }, { "name": "heap_snapshot_worker" },
{ "name": "platform", "type": "autostart" }, { "name": "platform", "type": "autostart" },
{ "name": "dom_extension", "type": "autostart" }, { "name": "dom_extension", "type": "autostart" },
{ "name": "main", "type": "autostart" }, { "name": "main", "type": "autostart" },
...@@ -78,15 +72,14 @@ ...@@ -78,15 +72,14 @@
{ "name": "data_grid" }, { "name": "data_grid" },
{ "name": "heap_snapshot_model" }, { "name": "heap_snapshot_model" },
{ "name": "event_listeners" }, { "name": "event_listeners" },
{ "name": "object_ui"}, { "name": "object_ui" },
{ "name": "help", "type": "autostart"}, { "name": "help" },
{ "name": "workspace_diff" }, { "name": "workspace_diff" },
{ "name": "console_model", "type": "autostart"}, { "name": "console_model", "type": "autostart" },
{ "name": "network_log", "type": "autostart"}, { "name": "network_log", "type": "autostart" },
{ "name": "text_utils", "type": "autostart"}, { "name": "text_utils", "type": "autostart" },
{ "name": "changes"}, { "name": "changes" },
{ "name": "mobile_throttling", "type": "autostart"}, { "name": "mobile_throttling", "type": "autostart" },
{ "name": "network_priorities"},
{ "name": "formatter" }, { "name": "formatter" },
{ "name": "console_counters", "type": "autostart" } { "name": "console_counters", "type": "autostart" }
], ],
......
...@@ -185,7 +185,6 @@ Main.Main = class { ...@@ -185,7 +185,6 @@ Main.Main = class {
Components.dockController = new Components.DockController(canDock); Components.dockController = new Components.DockController(canDock);
ConsoleModel.consoleModel = new ConsoleModel.ConsoleModel(); ConsoleModel.consoleModel = new ConsoleModel.ConsoleModel();
SDK.multitargetNetworkManager = new SDK.MultitargetNetworkManager(); SDK.multitargetNetworkManager = new SDK.MultitargetNetworkManager();
NetworkLog.networkLog = new NetworkLog.NetworkLog();
SDK.domDebuggerManager = new SDK.DOMDebuggerManager(); SDK.domDebuggerManager = new SDK.DOMDebuggerManager();
SDK.targetManager.addEventListener( SDK.targetManager.addEventListener(
SDK.TargetManager.Events.SuspendStateChanged, this._onSuspendStateChanged.bind(this)); SDK.TargetManager.Events.SuspendStateChanged, this._onSuspendStateChanged.bind(this));
...@@ -301,8 +300,10 @@ Main.Main = class { ...@@ -301,8 +300,10 @@ Main.Main = class {
console.timeStamp('Main._lateInitialization'); console.timeStamp('Main._lateInitialization');
this._registerShortcuts(); this._registerShortcuts();
Extensions.extensionServer.initializeExtensions(); Extensions.extensionServer.initializeExtensions();
if (!Host.isUnderTest()) if (Host.isUnderTest())
Help.showReleaseNoteIfNeeded(); return;
for (var extension of self.runtime.extensions('late-initialization'))
extension.instance().then(instance => (/** @type {!Common.Runnable} */ (instance)).run());
} }
_registerForwardedShortcuts() { _registerForwardedShortcuts() {
...@@ -682,9 +683,7 @@ Main.Main.MainMenuItem = class { ...@@ -682,9 +683,7 @@ Main.Main.MainMenuItem = class {
} }
var helpSubMenu = contextMenu.footerSection().appendSubMenuItem(Common.UIString('Help')); var helpSubMenu = contextMenu.footerSection().appendSubMenuItem(Common.UIString('Help'));
helpSubMenu.defaultSection().appendAction('settings.documentation'); helpSubMenu.appendItemsAtLocation('mainMenuHelp');
helpSubMenu.defaultSection().appendItem(
'Release Notes', () => InspectorFrontendHost.openInNewTab(Help.latestReleaseNote().link));
} }
}; };
......
...@@ -434,10 +434,7 @@ ...@@ -434,10 +434,7 @@
"platform", "platform",
"sdk", "sdk",
"persistence", "persistence",
"help", "console_model"
"console_model",
"network_log",
"console_counters"
], ],
"scripts": [ "scripts": [
"RenderingOptions.js", "RenderingOptions.js",
......
<!--
* Copyright 2018 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
-->
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Security-Policy" content="object-src 'none'; script-src 'self' 'unsafe-eval' https://chrome-devtools-frontend.appspot.com">
<meta name="referrer" content="no-referrer">
<script type="text/javascript" src="Runtime.js"></script>
<script type="text/javascript" src="ndb.js"></script>
</head>
<body class="undocked" id="-blink-dev-tools"></body>
</html>
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Runtime.startApplication('ndb');
{
"modules" : [
{ "name": "platform", "type": "autostart" },
{ "name": "dom_extension", "type": "autostart" },
{ "name": "main", "type": "autostart" },
{ "name": "components", "type": "autostart"},
{ "name": "ui", "type": "autostart" },
{ "name": "sdk", "type": "autostart" },
{ "name": "protocol", "type": "autostart" },
{ "name": "host", "type": "autostart" },
{ "name": "common", "type": "autostart" },
{ "name": "workspace", "type": "autostart" },
{ "name": "bindings", "type": "autostart" },
{ "name": "persistence", "type": "autostart" },
{ "name": "extensions", "type": "autostart" },
{ "name": "services", "type": "autostart" },
{ "name": "sources" },
{ "name": "product_registry", "type": "autostart" },
{ "name": "profiler" },
{ "name": "console" },
{ "name": "source_frame" },
{ "name": "text_editor" },
{ "name": "cm" },
{ "name": "cm_modes", "type": "remote" },
{ "name": "settings" },
{ "name": "snippets" },
{ "name": "diff" },
{ "name": "terminal", "type": "remote" },
{ "name": "coverage" },
{ "name": "perf_ui" },
{ "name": "quick_open" },
{ "name": "inline_editor" },
{ "name": "color_picker" },
{ "name": "data_grid" },
{ "name": "heap_snapshot_model" },
{ "name": "event_listeners" },
{ "name": "object_ui" },
{ "name": "workspace_diff" },
{ "name": "console_model", "type": "autostart" },
{ "name": "network_log", "type": "autostart" },
{ "name": "text_utils", "type": "autostart" },
{ "name": "changes" },
{ "name": "formatter" }
],
"has_html": true
}
...@@ -461,12 +461,11 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { ...@@ -461,12 +461,11 @@ Network.NetworkRequestNode = class extends Network.NetworkNode {
var bRequest = b.requestOrFirstKnownChildRequest(); var bRequest = b.requestOrFirstKnownChildRequest();
if (!aRequest || !bRequest) if (!aRequest || !bRequest)
return !aRequest ? -1 : 1; return !aRequest ? -1 : 1;
var priorityMap = NetworkPriorities.prioritySymbolToNumericMap();
var aPriority = aRequest.priority(); var aPriority = aRequest.priority();
var aScore = aPriority ? priorityMap.get(aPriority) : 0; var aScore = aPriority ? PerfUI.networkPriorityWeight(aPriority) : 0;
aScore = aScore || 0; aScore = aScore || 0;
var bPriority = bRequest.priority(); var bPriority = bRequest.priority();
var bScore = bPriority ? priorityMap.get(bPriority) : 0; var bScore = bPriority ? PerfUI.networkPriorityWeight(bPriority) : 0;
bScore = bScore || 0; bScore = bScore || 0;
return aScore - bScore || aRequest.indentityCompare(bRequest); return aScore - bScore || aRequest.indentityCompare(bRequest);
...@@ -732,7 +731,7 @@ Network.NetworkRequestNode = class extends Network.NetworkNode { ...@@ -732,7 +731,7 @@ Network.NetworkRequestNode = class extends Network.NetworkNode {
break; break;
case 'priority': case 'priority':
var priority = this._request.priority(); var priority = this._request.priority();
this._setTextAndTitle(cell, priority ? NetworkPriorities.uiLabelForPriority(priority) : ''); this._setTextAndTitle(cell, priority ? PerfUI.uiLabelForNetworkPriority(priority) : '');
break; break;
case 'connectionid': case 'connectionid':
this._setTextAndTitle(cell, this._request.connectionId); this._setTextAndTitle(cell, this._request.connectionId);
......
...@@ -169,11 +169,10 @@ Network.NetworkLogView = class extends UI.VBox { ...@@ -169,11 +169,10 @@ Network.NetworkLogView = class extends UI.VBox {
*/ */
static _sortSearchValues(key, values) { static _sortSearchValues(key, values) {
if (key === Network.NetworkLogView.FilterType.Priority) { if (key === Network.NetworkLogView.FilterType.Priority) {
var symbolToNumeric = NetworkPriorities.prioritySymbolToNumericMap();
values.sort((a, b) => { values.sort((a, b) => {
var aPriority = /** @type {!Protocol.Network.ResourcePriority} */ (NetworkPriorities.uiLabelToPriority(a)); var aPriority = /** @type {!Protocol.Network.ResourcePriority} */ (PerfUI.uiLabelToNetworkPriority(a));
var bPriority = /** @type {!Protocol.Network.ResourcePriority} */ (NetworkPriorities.uiLabelToPriority(b)); var bPriority = /** @type {!Protocol.Network.ResourcePriority} */ (PerfUI.uiLabelToNetworkPriority(b));
return symbolToNumeric.get(aPriority) - symbolToNumeric.get(bPriority); return PerfUI.networkPriorityWeight(aPriority) - PerfUI.networkPriorityWeight(bPriority);
}); });
} else { } else {
values.sort(); values.sort();
...@@ -1093,7 +1092,7 @@ Network.NetworkLogView = class extends UI.VBox { ...@@ -1093,7 +1092,7 @@ Network.NetworkLogView = class extends UI.VBox {
var priority = request.priority(); var priority = request.priority();
if (priority) { if (priority) {
this._suggestionBuilder.addItem( this._suggestionBuilder.addItem(
Network.NetworkLogView.FilterType.Priority, NetworkPriorities.uiLabelForPriority(priority)); Network.NetworkLogView.FilterType.Priority, PerfUI.uiLabelForNetworkPriority(priority));
} }
if (request.mixedContentType !== Protocol.Security.MixedContentType.None) { if (request.mixedContentType !== Protocol.Security.MixedContentType.None) {
...@@ -1541,7 +1540,7 @@ Network.NetworkLogView = class extends UI.VBox { ...@@ -1541,7 +1540,7 @@ Network.NetworkLogView = class extends UI.VBox {
return Network.NetworkLogView._requestSetCookieValueFilter.bind(null, value); return Network.NetworkLogView._requestSetCookieValueFilter.bind(null, value);
case Network.NetworkLogView.FilterType.Priority: case Network.NetworkLogView.FilterType.Priority:
return Network.NetworkLogView._requestPriorityFilter.bind(null, NetworkPriorities.uiLabelToPriority(value)); return Network.NetworkLogView._requestPriorityFilter.bind(null, PerfUI.uiLabelToNetworkPriority(value));
case Network.NetworkLogView.FilterType.StatusCode: case Network.NetworkLogView.FilterType.StatusCode:
return Network.NetworkLogView._statusCodeFilter.bind(null, value); return Network.NetworkLogView._statusCodeFilter.bind(null, value);
......
...@@ -123,7 +123,6 @@ ...@@ -123,7 +123,6 @@
"product_registry", "product_registry",
"mobile_throttling", "mobile_throttling",
"har_importer", "har_importer",
"network_priorities",
"persistence" "persistence"
], ],
"scripts": [ "scripts": [
......
...@@ -489,4 +489,4 @@ NetworkLog.NetworkLog._initiatorDataSymbol = Symbol('InitiatorData'); ...@@ -489,4 +489,4 @@ NetworkLog.NetworkLog._initiatorDataSymbol = Symbol('InitiatorData');
NetworkLog.NetworkLog._events = Symbol('NetworkLog.NetworkLog.events'); NetworkLog.NetworkLog._events = Symbol('NetworkLog.NetworkLog.events');
/** @type {!NetworkLog.NetworkLog} */ /** @type {!NetworkLog.NetworkLog} */
NetworkLog.networkLog; NetworkLog.networkLog = new NetworkLog.NetworkLog();
{
"dependencies": [
"common",
"protocol"
],
"scripts": [
"NetworkPriorities.js"
]
}
...@@ -6,66 +6,55 @@ ...@@ -6,66 +6,55 @@
* @param {!Protocol.Network.ResourcePriority} priority * @param {!Protocol.Network.ResourcePriority} priority
* @return {string} * @return {string}
*/ */
NetworkPriorities.uiLabelForPriority = function(priority) { PerfUI.uiLabelForNetworkPriority = function(priority) {
var map = NetworkPriorities.priorityUiLabelMap(); return PerfUI._priorityUILabelMap().get(priority) || '';
return map.get(priority) || '';
}; };
/** /**
* @param {string} priorityLabel * @param {string} priorityLabel
* @return {string} * @return {string}
*/ */
NetworkPriorities.uiLabelToPriority = function(priorityLabel) { PerfUI.uiLabelToNetworkPriority = function(priorityLabel) {
/** @type {!Map<string, !Protocol.Network.ResourcePriority>} */ if (!PerfUI._uiLabelToPriorityMapInstance) {
var labelToPriorityMap = NetworkPriorities.uiLabelToPriority._uiLabelToPriorityMap; /** @type {!Map<string, !Protocol.Network.ResourcePriority>} */
PerfUI._uiLabelToPriorityMapInstance = new Map();
if (labelToPriorityMap) PerfUI._priorityUILabelMap().forEach((value, key) => PerfUI._uiLabelToPriorityMapInstance.set(value, key));
return labelToPriorityMap.get(priorityLabel); }
return PerfUI._uiLabelToPriorityMapInstance.get(priorityLabel) || '';
labelToPriorityMap = new Map();
NetworkPriorities.priorityUiLabelMap().forEach((value, key) => labelToPriorityMap.set(value, key));
NetworkPriorities.uiLabelToPriority._uiLabelToPriorityMap = labelToPriorityMap;
return labelToPriorityMap.get(priorityLabel) || '';
}; };
/** /**
* @return {!Map<!Protocol.Network.ResourcePriority, string>} * @return {!Map<!Protocol.Network.ResourcePriority, string>}
*/ */
NetworkPriorities.priorityUiLabelMap = function() { PerfUI._priorityUILabelMap = function() {
/** @type {!Map<!Protocol.Network.ResourcePriority, string>} */ if (PerfUI._priorityUILabelMapInstance)
var map = NetworkPriorities.priorityUiLabelMap._priorityUiLabelMap; return PerfUI._priorityUILabelMapInstance;
if (map) /** @type {!Map<!Protocol.Network.ResourcePriority, string>} */
return map; var map = new Map();
map = new Map();
map.set(Protocol.Network.ResourcePriority.VeryLow, Common.UIString('Lowest')); map.set(Protocol.Network.ResourcePriority.VeryLow, Common.UIString('Lowest'));
map.set(Protocol.Network.ResourcePriority.Low, Common.UIString('Low')); map.set(Protocol.Network.ResourcePriority.Low, Common.UIString('Low'));
map.set(Protocol.Network.ResourcePriority.Medium, Common.UIString('Medium')); map.set(Protocol.Network.ResourcePriority.Medium, Common.UIString('Medium'));
map.set(Protocol.Network.ResourcePriority.High, Common.UIString('High')); map.set(Protocol.Network.ResourcePriority.High, Common.UIString('High'));
map.set(Protocol.Network.ResourcePriority.VeryHigh, Common.UIString('Highest')); map.set(Protocol.Network.ResourcePriority.VeryHigh, Common.UIString('Highest'));
NetworkPriorities.priorityUiLabelMap._priorityUiLabelMap = map; PerfUI._priorityUILabelMapInstance = map;
return map; return map;
}; };
/** /**
* @return {!Map<!Protocol.Network.ResourcePriority, number>} * @param {!Protocol.Network.ResourcePriority} priority
* @return {number}
*/ */
NetworkPriorities.prioritySymbolToNumericMap = function() { PerfUI.networkPriorityWeight = function(priority) {
/** @type {!Map<!Protocol.Network.ResourcePriority, number>} */ if (!PerfUI._networkPriorityWeights) {
var priorityMap = NetworkPriorities.prioritySymbolToNumericMap._symbolicToNumericPriorityMap; /** @type {!Map<!Protocol.Network.ResourcePriority, number>} */
var priorityMap = new Map();
if (priorityMap) priorityMap.set(Protocol.Network.ResourcePriority.VeryLow, 1);
return priorityMap; priorityMap.set(Protocol.Network.ResourcePriority.Low, 2);
priorityMap.set(Protocol.Network.ResourcePriority.Medium, 3);
priorityMap = new Map(); priorityMap.set(Protocol.Network.ResourcePriority.High, 4);
priorityMap.set(Protocol.Network.ResourcePriority.VeryLow, 1); priorityMap.set(Protocol.Network.ResourcePriority.VeryHigh, 5);
priorityMap.set(Protocol.Network.ResourcePriority.Low, 2); PerfUI._networkPriorityWeights = priorityMap;
priorityMap.set(Protocol.Network.ResourcePriority.Medium, 3); }
priorityMap.set(Protocol.Network.ResourcePriority.High, 4); return PerfUI._networkPriorityWeights.get(priority) || 0;
priorityMap.set(Protocol.Network.ResourcePriority.VeryHigh, 5);
NetworkPriorities.prioritySymbolToNumericMap._symbolicToNumericPriorityMap = priorityMap;
return priorityMap;
}; };
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
"FilmStripView.js", "FilmStripView.js",
"ChartViewport.js", "ChartViewport.js",
"FlameChart.js", "FlameChart.js",
"NetworkPriorities.js",
"OverviewGrid.js", "OverviewGrid.js",
"PieChart.js", "PieChart.js",
"TimelineGrid.js", "TimelineGrid.js",
......
...@@ -38,6 +38,11 @@ ...@@ -38,6 +38,11 @@
"location": "mainMenu/footer", "location": "mainMenu/footer",
"actionId": "settings.shortcuts" "actionId": "settings.shortcuts"
}, },
{
"type": "context-menu-item",
"location": "mainMenuHelp/default",
"actionId": "settings.documentation"
},
{ {
"type": "context-menu-item", "type": "context-menu-item",
"location": "mainMenu/footer", "location": "mainMenu/footer",
......
...@@ -310,7 +310,7 @@ Timeline.TimelineFlameChartNetworkDataProvider = class { ...@@ -310,7 +310,7 @@ Timeline.TimelineFlameChartNetworkDataProvider = class {
if (typeof request.priority === 'string') { if (typeof request.priority === 'string') {
var div = contents.createChild('span'); var div = contents.createChild('span');
div.textContent = div.textContent =
NetworkPriorities.uiLabelForPriority(/** @type {!Protocol.Network.ResourcePriority} */ (request.priority)); PerfUI.uiLabelForNetworkPriority(/** @type {!Protocol.Network.ResourcePriority} */ (request.priority));
div.style.color = this._colorForPriority(request.priority) || 'black'; div.style.color = this._colorForPriority(request.priority) || 'black';
} }
contents.createChild('span').textContent = request.url.trimMiddle(maxURLChars); contents.createChild('span').textContent = request.url.trimMiddle(maxURLChars);
......
...@@ -856,7 +856,7 @@ Timeline.TimelineUIUtils = class { ...@@ -856,7 +856,7 @@ Timeline.TimelineUIUtils = class {
if (eventData['mimeType']) if (eventData['mimeType'])
contentHelper.appendTextRow(Common.UIString('MIME Type'), eventData['mimeType']); contentHelper.appendTextRow(Common.UIString('MIME Type'), eventData['mimeType']);
if ('priority' in eventData) { if ('priority' in eventData) {
var priority = NetworkPriorities.uiLabelForPriority(eventData['priority']); var priority = PerfUI.uiLabelForNetworkPriority(eventData['priority']);
contentHelper.appendTextRow(Common.UIString('Priority'), priority); contentHelper.appendTextRow(Common.UIString('Priority'), priority);
} }
if (eventData['encodedDataLength']) { if (eventData['encodedDataLength']) {
...@@ -1199,7 +1199,7 @@ Timeline.TimelineUIUtils = class { ...@@ -1199,7 +1199,7 @@ Timeline.TimelineUIUtils = class {
contentHelper.appendTextRow(Common.UIString('Request Method'), request.requestMethod); contentHelper.appendTextRow(Common.UIString('Request Method'), request.requestMethod);
if (typeof request.priority === 'string') { if (typeof request.priority === 'string') {
const priority = const priority =
NetworkPriorities.uiLabelForPriority(/** @type {!Protocol.Network.ResourcePriority} */ (request.priority)); PerfUI.uiLabelForNetworkPriority(/** @type {!Protocol.Network.ResourcePriority} */ (request.priority));
contentHelper.appendTextRow(Common.UIString('Priority'), priority); contentHelper.appendTextRow(Common.UIString('Priority'), priority);
} }
if (request.mimeType) if (request.mimeType)
......
...@@ -192,8 +192,7 @@ ...@@ -192,8 +192,7 @@
"extensions", "extensions",
"data_grid", "data_grid",
"product_registry", "product_registry",
"mobile_throttling", "mobile_throttling"
"network_priorities"
], ],
"scripts": [ "scripts": [
"PerformanceMonitor.js", "PerformanceMonitor.js",
......
...@@ -311,6 +311,23 @@ UI.ContextSubMenu = class extends UI.ContextMenuItem { ...@@ -311,6 +311,23 @@ UI.ContextSubMenu = class extends UI.ContextMenuItem {
} }
return result; return result;
} }
/**
* @param {string} location
*/
appendItemsAtLocation(location) {
for (var extension of self.runtime.extensions('context-menu-item')) {
var itemLocation = extension.descriptor()['location'] || '';
if (!itemLocation.startsWith(location + '/'))
continue;
var section = itemLocation.substr(location.length + 1);
if (!section || section.includes('/'))
continue;
this.section(section).appendAction(extension.descriptor()['actionId']);
}
}
}; };
UI.ContextMenuItem._uniqueSectionName = 0; UI.ContextMenuItem._uniqueSectionName = 0;
...@@ -483,23 +500,6 @@ UI.ContextMenu = class extends UI.ContextSubMenu { ...@@ -483,23 +500,6 @@ UI.ContextMenu = class extends UI.ContextSubMenu {
this._pendingPromises.push(self.runtime.allInstances(UI.ContextMenu.Provider, target)); this._pendingPromises.push(self.runtime.allInstances(UI.ContextMenu.Provider, target));
this._pendingTargets.push(target); this._pendingTargets.push(target);
} }
/**
* @param {string} location
*/
appendItemsAtLocation(location) {
for (var extension of self.runtime.extensions('context-menu-item')) {
var itemLocation = extension.descriptor()['location'] || '';
if (!itemLocation.startsWith(location + '/'))
continue;
var section = itemLocation.substr(location.length + 1);
if (!section || section.includes('/'))
continue;
this.section(section).appendAction(extension.descriptor()['actionId']);
}
}
}; };
UI.ContextMenu._groupWeights = UI.ContextMenu._groupWeights =
......
...@@ -73,34 +73,13 @@ class ParsedArgs: ...@@ -73,34 +73,13 @@ class ParsedArgs:
def parse_args(argv): def parse_args(argv):
# The arguments are of the format: # The arguments are of the format:
# [ <source_files> ]* # [ <source_files> ]*
# [ (--static_files_list <file>) | (--static_files_args <file>) ]
# --relative_path_dirs [ <directory> ]* # --relative_path_dirs [ <directory> ]*
# --images [ <image_dirs> ]* # --images [ <image_dirs> ]*
# --output <output_file> # --output <output_file>
#
# --static_files_list means the file contains newline-separated filenames
# from GYP, and --static_files_args means the file looks like a shell
# string from GN.
relative_path_dirs_position = argv.index('--relative_path_dirs') relative_path_dirs_position = argv.index('--relative_path_dirs')
images_position = argv.index('--images') images_position = argv.index('--images')
output_position = argv.index('--output') output_position = argv.index('--output')
source_files = argv[:relative_path_dirs_position]
if '--static_files_list' in argv:
# This branch can be removed when GYP support is no longer necessary.
static_files_list_position = argv.index('--static_files_list')
static_files_list_path = argv[static_files_list_position + 1]
source_files = argv[:static_files_list_position]
with open(static_files_list_path, 'r') as static_list_file:
source_files.extend([line.rstrip('\n') for line in static_list_file.readlines()])
elif '--static_files_args' in argv:
static_files_args_position = argv.index('--static_files_args')
static_files_args_path = argv[static_files_args_position + 1]
source_files = argv[:static_files_args_position]
with open(static_files_args_path, 'r') as static_args_file:
source_files.extend(shlex.split(static_args_file))
else:
source_files = argv[:relative_path_dirs_position]
relative_path_dirs = argv[relative_path_dirs_position + 1:images_position] relative_path_dirs = argv[relative_path_dirs_position + 1:images_position]
image_dirs = argv[images_position + 1:output_position] image_dirs = argv[images_position + 1:output_position]
return ParsedArgs(source_files, relative_path_dirs, image_dirs, argv[output_position + 1]) return ParsedArgs(source_files, relative_path_dirs, image_dirs, argv[output_position + 1])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment