| Index: third_party/WebKit/Source/devtools/front_end/main/Main.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/main/Main.js b/third_party/WebKit/Source/devtools/front_end/main/Main.js
|
| index 835f30f7391c52d784028a2886cfe996b58fc78e..1b0f2efe8b1c8734494c88fb9af1f0afd6c573e3 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/main/Main.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/main/Main.js
|
| @@ -27,888 +27,874 @@
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
| * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
| -
|
| /**
|
| - * @constructor
|
| - * @suppressGlobalPropertiesCheck
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main = function()
|
| -{
|
| +WebInspector.Main = class {
|
| + /**
|
| + * @suppressGlobalPropertiesCheck
|
| + */
|
| + constructor() {
|
| WebInspector.Main._instanceForTest = this;
|
| runOnWindowLoad(this._loaded.bind(this));
|
| -};
|
| -
|
| -WebInspector.Main.prototype = {
|
| - _loaded: function()
|
| - {
|
| - console.timeStamp("Main._loaded");
|
| + }
|
|
|
| - if (InspectorFrontendHost.isUnderTest())
|
| - self.runtime.useTestBase();
|
| - Runtime.setPlatform(WebInspector.platform());
|
| - InspectorFrontendHost.getPreferences(this._gotPreferences.bind(this));
|
| - },
|
| + /**
|
| + * @param {boolean} hard
|
| + */
|
| + static _reloadPage(hard) {
|
| + var mainTarget = WebInspector.targetManager.mainTarget();
|
| + if (mainTarget && mainTarget.hasBrowserCapability())
|
| + WebInspector.targetManager.reloadPage(hard);
|
| + }
|
| +
|
| + _loaded() {
|
| + console.timeStamp('Main._loaded');
|
| +
|
| + if (InspectorFrontendHost.isUnderTest())
|
| + self.runtime.useTestBase();
|
| + Runtime.setPlatform(WebInspector.platform());
|
| + InspectorFrontendHost.getPreferences(this._gotPreferences.bind(this));
|
| + }
|
| +
|
| + /**
|
| + * @param {!Object<string, string>} prefs
|
| + */
|
| + _gotPreferences(prefs) {
|
| + console.timeStamp('Main._gotPreferences');
|
| + this._createSettings(prefs);
|
| + this._createAppUI();
|
| + }
|
| +
|
| + /**
|
| + * @param {!Object<string, string>} prefs
|
| + * Note: this function is called from testSettings in Tests.js.
|
| + */
|
| + _createSettings(prefs) {
|
| + this._initializeExperiments(prefs);
|
| + WebInspector.settings = new WebInspector.Settings(new WebInspector.SettingsStorage(
|
| + prefs, InspectorFrontendHost.setPreference, InspectorFrontendHost.removePreference,
|
| + InspectorFrontendHost.clearPreferences));
|
| +
|
| + if (!InspectorFrontendHost.isUnderTest())
|
| + new WebInspector.VersionController().updateVersion();
|
| + }
|
| +
|
| + /**
|
| + * @param {!Object<string, string>} prefs
|
| + */
|
| + _initializeExperiments(prefs) {
|
| + Runtime.experiments.register('accessibilityInspection', 'Accessibility Inspection');
|
| + Runtime.experiments.register('applyCustomStylesheet', 'Allow custom UI themes');
|
| + Runtime.experiments.register('audits2', 'Audits 2.0', true);
|
| + Runtime.experiments.register('autoAttachToCrossProcessSubframes', 'Auto-attach to cross-process subframes', true);
|
| + Runtime.experiments.register('blackboxJSFramesOnTimeline', 'Blackbox JavaScript frames on Timeline', true);
|
| + Runtime.experiments.register('canvasNetworkTimeline', 'Canvas based timeline in Network panel', true);
|
| + Runtime.experiments.register('colorContrastRatio', 'Contrast ratio line in color picker', true);
|
| + Runtime.experiments.register('continueToFirstInvocation', 'Continue to first invocation', true);
|
| + Runtime.experiments.register('emptySourceMapAutoStepping', 'Empty sourcemap auto-stepping');
|
| + Runtime.experiments.register('inputEventsOnTimelineOverview', 'Input events on Timeline overview', true);
|
| + Runtime.experiments.register('layersPanel', 'Layers panel');
|
| + Runtime.experiments.register('layoutEditor', 'Layout editor', true);
|
| + Runtime.experiments.register('inspectTooltip', 'Dark inspect element tooltip');
|
| + Runtime.experiments.register('liveSASS', 'Live SASS');
|
| + Runtime.experiments.register('nodeDebugging', 'Node debugging', true);
|
| + Runtime.experiments.register('persistence2', 'Persistence 2.0', true);
|
| + Runtime.experiments.register('privateScriptInspection', 'Private script inspection');
|
| + Runtime.experiments.register('requestBlocking', 'Request blocking', true);
|
| + Runtime.experiments.register('resolveVariableNames', 'Resolve variable names');
|
| + Runtime.experiments.register('timelineShowAllEvents', 'Show all events on Timeline', true);
|
| + Runtime.experiments.register('timelineShowAllProcesses', 'Show all processes on Timeline', true);
|
| + Runtime.experiments.register('securityPanel', 'Security panel');
|
| + Runtime.experiments.register('sourceDiff', 'Source diff');
|
| + Runtime.experiments.register('terminalInDrawer', 'Terminal in drawer', true);
|
| + Runtime.experiments.register('timelineFlowEvents', 'Timeline flow events', true);
|
| + Runtime.experiments.register('timelineInvalidationTracking', 'Timeline invalidation tracking', true);
|
| + Runtime.experiments.register('timelineRecordingPerspectives', 'Timeline recording perspectives UI');
|
| + Runtime.experiments.register('timelineTracingJSProfile', 'Timeline tracing based JS profiler', true);
|
| + Runtime.experiments.register('timelineV8RuntimeCallStats', 'V8 Runtime Call Stats on Timeline', true);
|
| +
|
| + Runtime.experiments.cleanUpStaleExperiments();
|
| +
|
| + if (InspectorFrontendHost.isUnderTest()) {
|
| + var testPath = JSON.parse(prefs['testPath'] || '""');
|
| + // Enable experiments for testing.
|
| + if (testPath.indexOf('layers/') !== -1)
|
| + Runtime.experiments.enableForTest('layersPanel');
|
| + if (testPath.indexOf('timeline/') !== -1 || testPath.indexOf('layers/') !== -1)
|
| + Runtime.experiments.enableForTest('layersPanel');
|
| + if (testPath.indexOf('security/') !== -1)
|
| + Runtime.experiments.enableForTest('securityPanel');
|
| + if (testPath.indexOf('accessibility/') !== -1)
|
| + Runtime.experiments.enableForTest('accessibilityInspection');
|
| + }
|
|
|
| - /**
|
| - * @param {!Object<string, string>} prefs
|
| - */
|
| - _gotPreferences: function(prefs)
|
| - {
|
| - console.timeStamp("Main._gotPreferences");
|
| - this._createSettings(prefs);
|
| - this._createAppUI();
|
| - },
|
| + Runtime.experiments.setDefaultExperiments(['inspectTooltip', 'securityPanel', 'resolveVariableNames']);
|
| + }
|
| +
|
| + /**
|
| + * @suppressGlobalPropertiesCheck
|
| + */
|
| + _createAppUI() {
|
| + console.time('Main._createAppUI');
|
| +
|
| + WebInspector.viewManager = new WebInspector.ViewManager();
|
| +
|
| + // Request filesystems early, we won't create connections until callback is fired. Things will happen in parallel.
|
| + WebInspector.isolatedFileSystemManager = new WebInspector.IsolatedFileSystemManager();
|
| +
|
| + var themeSetting = WebInspector.settings.createSetting('uiTheme', 'default');
|
| + WebInspector.initializeUIUtils(document, themeSetting);
|
| + themeSetting.addChangeListener(WebInspector.reload.bind(WebInspector));
|
| +
|
| + WebInspector.installComponentRootStyles(/** @type {!Element} */ (document.body));
|
| +
|
| + this._addMainEventListeners(document);
|
| +
|
| + var canDock = !!Runtime.queryParam('can_dock');
|
| + WebInspector.zoomManager = new WebInspector.ZoomManager(window, InspectorFrontendHost);
|
| + WebInspector.inspectorView = WebInspector.InspectorView.instance();
|
| + WebInspector.ContextMenu.initialize();
|
| + WebInspector.ContextMenu.installHandler(document);
|
| + WebInspector.Tooltip.installHandler(document);
|
| + WebInspector.dockController = new WebInspector.DockController(canDock);
|
| + WebInspector.multitargetConsoleModel = new WebInspector.MultitargetConsoleModel();
|
| + WebInspector.multitargetNetworkManager = new WebInspector.MultitargetNetworkManager();
|
| + WebInspector.targetManager.addEventListener(
|
| + WebInspector.TargetManager.Events.SuspendStateChanged, this._onSuspendStateChanged.bind(this));
|
| +
|
| + WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen();
|
| + // set order of some sections explicitly
|
| + WebInspector.shortcutsScreen.section(WebInspector.UIString('Elements Panel'));
|
| + WebInspector.shortcutsScreen.section(WebInspector.UIString('Styles Pane'));
|
| + WebInspector.shortcutsScreen.section(WebInspector.UIString('Debugger'));
|
| + WebInspector.shortcutsScreen.section(WebInspector.UIString('Console'));
|
| +
|
| + WebInspector.fileManager = new WebInspector.FileManager();
|
| + WebInspector.workspace = new WebInspector.Workspace();
|
| + WebInspector.formatterWorkerPool = new WebInspector.FormatterWorkerPool();
|
| + WebInspector.fileSystemMapping = new WebInspector.FileSystemMapping();
|
| +
|
| + var fileSystemWorkspaceBinding =
|
| + new WebInspector.FileSystemWorkspaceBinding(WebInspector.isolatedFileSystemManager, WebInspector.workspace);
|
| + WebInspector.networkMapping = new WebInspector.NetworkMapping(
|
| + WebInspector.targetManager, WebInspector.workspace, fileSystemWorkspaceBinding, WebInspector.fileSystemMapping);
|
| + WebInspector.networkProjectManager =
|
| + new WebInspector.NetworkProjectManager(WebInspector.targetManager, WebInspector.workspace);
|
| + WebInspector.presentationConsoleMessageHelper =
|
| + new WebInspector.PresentationConsoleMessageHelper(WebInspector.workspace);
|
| + WebInspector.cssWorkspaceBinding = new WebInspector.CSSWorkspaceBinding(
|
| + WebInspector.targetManager, WebInspector.workspace, WebInspector.networkMapping);
|
| + WebInspector.debuggerWorkspaceBinding = new WebInspector.DebuggerWorkspaceBinding(
|
| + WebInspector.targetManager, WebInspector.workspace, WebInspector.networkMapping);
|
| + WebInspector.breakpointManager = new WebInspector.BreakpointManager(
|
| + null, WebInspector.workspace, WebInspector.targetManager, WebInspector.debuggerWorkspaceBinding);
|
| + WebInspector.extensionServer = new WebInspector.ExtensionServer();
|
| +
|
| + WebInspector.persistence = new WebInspector.Persistence(
|
| + WebInspector.workspace, WebInspector.breakpointManager, WebInspector.fileSystemMapping);
|
| +
|
| + new WebInspector.OverlayController();
|
| + new WebInspector.ExecutionContextSelector(WebInspector.targetManager, WebInspector.context);
|
| + WebInspector.blackboxManager = new WebInspector.BlackboxManager(WebInspector.debuggerWorkspaceBinding);
|
| +
|
| + var autoselectPanel = WebInspector.UIString('auto');
|
| + var openAnchorLocationSetting = WebInspector.settings.createSetting('openLinkHandler', autoselectPanel);
|
| + WebInspector.openAnchorLocationRegistry = new WebInspector.HandlerRegistry(openAnchorLocationSetting);
|
| + WebInspector.openAnchorLocationRegistry.registerHandler(autoselectPanel, function() {
|
| + return false;
|
| + });
|
| + WebInspector.Linkifier.setLinkHandler(new WebInspector.HandlerRegistry.LinkHandler());
|
| +
|
| + new WebInspector.Main.PauseListener();
|
| + new WebInspector.Main.InspectedNodeRevealer();
|
| + new WebInspector.NetworkPanelIndicator();
|
| + new WebInspector.SourcesPanelIndicator();
|
| + new WebInspector.BackendSettingsSync();
|
| + WebInspector.domBreakpointsSidebarPane = new WebInspector.DOMBreakpointsSidebarPane();
|
| +
|
| + WebInspector.actionRegistry = new WebInspector.ActionRegistry();
|
| + WebInspector.shortcutRegistry = new WebInspector.ShortcutRegistry(WebInspector.actionRegistry, document);
|
| + WebInspector.ShortcutsScreen.registerShortcuts();
|
| + this._registerForwardedShortcuts();
|
| + this._registerMessageSinkListener();
|
| + new WebInspector.Main.InspectorDomainObserver();
|
| +
|
| + self.runtime.extension(WebInspector.AppProvider).instance().then(this._showAppUI.bind(this));
|
| + console.timeEnd('Main._createAppUI');
|
| + }
|
| +
|
| + /**
|
| + * @param {!Object} appProvider
|
| + * @suppressGlobalPropertiesCheck
|
| + */
|
| + _showAppUI(appProvider) {
|
| + console.time('Main._showAppUI');
|
| + var app = /** @type {!WebInspector.AppProvider} */ (appProvider).createApp();
|
| + // It is important to kick controller lifetime after apps are instantiated.
|
| + WebInspector.dockController.initialize();
|
| + app.presentUI(document);
|
| +
|
| + var toggleSearchNodeAction = WebInspector.actionRegistry.action('elements.toggle-element-search');
|
| + // TODO: we should not access actions from other modules.
|
| + if (toggleSearchNodeAction)
|
| + InspectorFrontendHost.events.addEventListener(
|
| + InspectorFrontendHostAPI.Events.EnterInspectElementMode,
|
| + toggleSearchNodeAction.execute.bind(toggleSearchNodeAction), this);
|
| + WebInspector.inspectorView.createToolbars();
|
| + InspectorFrontendHost.loadCompleted();
|
| +
|
| + InspectorFrontendHost.events.addEventListener(
|
| + InspectorFrontendHostAPI.Events.ReloadInspectedPage, this._reloadInspectedPage, this);
|
| +
|
| + var extensions = self.runtime.extensions(WebInspector.QueryParamHandler);
|
| + for (var extension of extensions) {
|
| + var value = Runtime.queryParam(extension.descriptor()['name']);
|
| + if (value !== null)
|
| + extension.instance().then(handleQueryParam.bind(null, value));
|
| + }
|
|
|
| /**
|
| - * @param {!Object<string, string>} prefs
|
| - * Note: this function is called from testSettings in Tests.js.
|
| + * @param {string} value
|
| + * @param {!WebInspector.QueryParamHandler} handler
|
| */
|
| - _createSettings: function(prefs)
|
| - {
|
| - this._initializeExperiments(prefs);
|
| - WebInspector.settings = new WebInspector.Settings(new WebInspector.SettingsStorage(prefs,
|
| - InspectorFrontendHost.setPreference, InspectorFrontendHost.removePreference, InspectorFrontendHost.clearPreferences));
|
| + function handleQueryParam(value, handler) {
|
| + handler.handleQueryParam(value);
|
| + }
|
|
|
| - if (!InspectorFrontendHost.isUnderTest())
|
| - new WebInspector.VersionController().updateVersion();
|
| - },
|
| + // Allow UI cycles to repaint prior to creating connection.
|
| + setTimeout(this._initializeTarget.bind(this), 0);
|
| + console.timeEnd('Main._showAppUI');
|
| + }
|
|
|
| - /**
|
| - * @param {!Object<string, string>} prefs
|
| - */
|
| - _initializeExperiments: function(prefs)
|
| - {
|
| - Runtime.experiments.register("accessibilityInspection", "Accessibility Inspection");
|
| - Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI themes");
|
| - Runtime.experiments.register("audits2", "Audits 2.0", true);
|
| - Runtime.experiments.register("autoAttachToCrossProcessSubframes", "Auto-attach to cross-process subframes", true);
|
| - Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox JavaScript frames on Timeline", true);
|
| - Runtime.experiments.register("canvasNetworkTimeline", "Canvas based timeline in Network panel", true);
|
| - Runtime.experiments.register("colorContrastRatio", "Contrast ratio line in color picker", true);
|
| - Runtime.experiments.register("continueToFirstInvocation", "Continue to first invocation", true);
|
| - Runtime.experiments.register("emptySourceMapAutoStepping", "Empty sourcemap auto-stepping");
|
| - Runtime.experiments.register("inputEventsOnTimelineOverview", "Input events on Timeline overview", true);
|
| - Runtime.experiments.register("layersPanel", "Layers panel");
|
| - Runtime.experiments.register("layoutEditor", "Layout editor", true);
|
| - Runtime.experiments.register("inspectTooltip", "Dark inspect element tooltip");
|
| - Runtime.experiments.register("liveSASS", "Live SASS");
|
| - Runtime.experiments.register("nodeDebugging", "Node debugging", true);
|
| - Runtime.experiments.register("persistence2", "Persistence 2.0", true);
|
| - Runtime.experiments.register("privateScriptInspection", "Private script inspection");
|
| - Runtime.experiments.register("requestBlocking", "Request blocking", true);
|
| - Runtime.experiments.register("resolveVariableNames", "Resolve variable names");
|
| - Runtime.experiments.register("timelineShowAllEvents", "Show all events on Timeline", true);
|
| - Runtime.experiments.register("timelineShowAllProcesses", "Show all processes on Timeline", true);
|
| - Runtime.experiments.register("securityPanel", "Security panel");
|
| - Runtime.experiments.register("sourceDiff", "Source diff");
|
| - Runtime.experiments.register("terminalInDrawer", "Terminal in drawer", true);
|
| - Runtime.experiments.register("timelineFlowEvents", "Timeline flow events", true);
|
| - Runtime.experiments.register("timelineInvalidationTracking", "Timeline invalidation tracking", true);
|
| - Runtime.experiments.register("timelineRecordingPerspectives", "Timeline recording perspectives UI");
|
| - Runtime.experiments.register("timelineTracingJSProfile", "Timeline tracing based JS profiler", true);
|
| - Runtime.experiments.register("timelineV8RuntimeCallStats", "V8 Runtime Call Stats on Timeline", true);
|
| -
|
| - Runtime.experiments.cleanUpStaleExperiments();
|
| -
|
| - if (InspectorFrontendHost.isUnderTest()) {
|
| - var testPath = JSON.parse(prefs["testPath"] || "\"\"");
|
| - // Enable experiments for testing.
|
| - if (testPath.indexOf("layers/") !== -1)
|
| - Runtime.experiments.enableForTest("layersPanel");
|
| - if (testPath.indexOf("timeline/") !== -1 || testPath.indexOf("layers/") !== -1)
|
| - Runtime.experiments.enableForTest("layersPanel");
|
| - if (testPath.indexOf("security/") !== -1)
|
| - Runtime.experiments.enableForTest("securityPanel");
|
| - if (testPath.indexOf("accessibility/") !== -1)
|
| - Runtime.experiments.enableForTest("accessibilityInspection");
|
| - }
|
| -
|
| - Runtime.experiments.setDefaultExperiments([
|
| - "inspectTooltip",
|
| - "securityPanel",
|
| - "resolveVariableNames"
|
| - ]);
|
| - },
|
| + _initializeTarget() {
|
| + console.time('Main._initializeTarget');
|
| + WebInspector.targetManager.connectToMainTarget(webSocketConnectionLost);
|
|
|
| - /**
|
| - * @suppressGlobalPropertiesCheck
|
| - */
|
| - _createAppUI: function()
|
| - {
|
| - console.time("Main._createAppUI");
|
| -
|
| - WebInspector.viewManager = new WebInspector.ViewManager();
|
| -
|
| - // Request filesystems early, we won't create connections until callback is fired. Things will happen in parallel.
|
| - WebInspector.isolatedFileSystemManager = new WebInspector.IsolatedFileSystemManager();
|
| -
|
| - var themeSetting = WebInspector.settings.createSetting("uiTheme", "default");
|
| - WebInspector.initializeUIUtils(document, themeSetting);
|
| - themeSetting.addChangeListener(WebInspector.reload.bind(WebInspector));
|
| -
|
| - WebInspector.installComponentRootStyles(/** @type {!Element} */ (document.body));
|
| -
|
| - this._addMainEventListeners(document);
|
| -
|
| - var canDock = !!Runtime.queryParam("can_dock");
|
| - WebInspector.zoomManager = new WebInspector.ZoomManager(window, InspectorFrontendHost);
|
| - WebInspector.inspectorView = WebInspector.InspectorView.instance();
|
| - WebInspector.ContextMenu.initialize();
|
| - WebInspector.ContextMenu.installHandler(document);
|
| - WebInspector.Tooltip.installHandler(document);
|
| - WebInspector.dockController = new WebInspector.DockController(canDock);
|
| - WebInspector.multitargetConsoleModel = new WebInspector.MultitargetConsoleModel();
|
| - WebInspector.multitargetNetworkManager = new WebInspector.MultitargetNetworkManager();
|
| - WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Events.SuspendStateChanged, this._onSuspendStateChanged.bind(this));
|
| -
|
| - WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen();
|
| - // set order of some sections explicitly
|
| - WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel"));
|
| - WebInspector.shortcutsScreen.section(WebInspector.UIString("Styles Pane"));
|
| - WebInspector.shortcutsScreen.section(WebInspector.UIString("Debugger"));
|
| - WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));
|
| -
|
| - WebInspector.fileManager = new WebInspector.FileManager();
|
| - WebInspector.workspace = new WebInspector.Workspace();
|
| - WebInspector.formatterWorkerPool = new WebInspector.FormatterWorkerPool();
|
| - WebInspector.fileSystemMapping = new WebInspector.FileSystemMapping();
|
| -
|
| - var fileSystemWorkspaceBinding = new WebInspector.FileSystemWorkspaceBinding(WebInspector.isolatedFileSystemManager, WebInspector.workspace);
|
| - WebInspector.networkMapping = new WebInspector.NetworkMapping(WebInspector.targetManager, WebInspector.workspace, fileSystemWorkspaceBinding, WebInspector.fileSystemMapping);
|
| - WebInspector.networkProjectManager = new WebInspector.NetworkProjectManager(WebInspector.targetManager, WebInspector.workspace);
|
| - WebInspector.presentationConsoleMessageHelper = new WebInspector.PresentationConsoleMessageHelper(WebInspector.workspace);
|
| - WebInspector.cssWorkspaceBinding = new WebInspector.CSSWorkspaceBinding(WebInspector.targetManager, WebInspector.workspace, WebInspector.networkMapping);
|
| - WebInspector.debuggerWorkspaceBinding = new WebInspector.DebuggerWorkspaceBinding(WebInspector.targetManager, WebInspector.workspace, WebInspector.networkMapping);
|
| - WebInspector.breakpointManager = new WebInspector.BreakpointManager(null, WebInspector.workspace, WebInspector.targetManager, WebInspector.debuggerWorkspaceBinding);
|
| - WebInspector.extensionServer = new WebInspector.ExtensionServer();
|
| -
|
| - WebInspector.persistence = new WebInspector.Persistence(WebInspector.workspace, WebInspector.breakpointManager, WebInspector.fileSystemMapping);
|
| -
|
| - new WebInspector.OverlayController();
|
| - new WebInspector.ExecutionContextSelector(WebInspector.targetManager, WebInspector.context);
|
| - WebInspector.blackboxManager = new WebInspector.BlackboxManager(WebInspector.debuggerWorkspaceBinding);
|
| -
|
| - var autoselectPanel = WebInspector.UIString("auto");
|
| - var openAnchorLocationSetting = WebInspector.settings.createSetting("openLinkHandler", autoselectPanel);
|
| - WebInspector.openAnchorLocationRegistry = new WebInspector.HandlerRegistry(openAnchorLocationSetting);
|
| - WebInspector.openAnchorLocationRegistry.registerHandler(autoselectPanel, function() { return false; });
|
| - WebInspector.Linkifier.setLinkHandler(new WebInspector.HandlerRegistry.LinkHandler());
|
| -
|
| - new WebInspector.Main.PauseListener();
|
| - new WebInspector.Main.InspectedNodeRevealer();
|
| - new WebInspector.NetworkPanelIndicator();
|
| - new WebInspector.SourcesPanelIndicator();
|
| - new WebInspector.BackendSettingsSync();
|
| - WebInspector.domBreakpointsSidebarPane = new WebInspector.DOMBreakpointsSidebarPane();
|
| -
|
| - WebInspector.actionRegistry = new WebInspector.ActionRegistry();
|
| - WebInspector.shortcutRegistry = new WebInspector.ShortcutRegistry(WebInspector.actionRegistry, document);
|
| - WebInspector.ShortcutsScreen.registerShortcuts();
|
| - this._registerForwardedShortcuts();
|
| - this._registerMessageSinkListener();
|
| - new WebInspector.Main.InspectorDomainObserver();
|
| -
|
| - self.runtime.extension(WebInspector.AppProvider).instance().then(this._showAppUI.bind(this));
|
| - console.timeEnd("Main._createAppUI");
|
| - },
|
| + InspectorFrontendHost.readyForTest();
|
| + // Asynchronously run the extensions.
|
| + setTimeout(this._lateInitialization.bind(this), 100);
|
| + console.timeEnd('Main._initializeTarget');
|
|
|
| - /**
|
| - * @param {!Object} appProvider
|
| - * @suppressGlobalPropertiesCheck
|
| - */
|
| - _showAppUI: function(appProvider)
|
| - {
|
| - console.time("Main._showAppUI");
|
| - var app = /** @type {!WebInspector.AppProvider} */ (appProvider).createApp();
|
| - // It is important to kick controller lifetime after apps are instantiated.
|
| - WebInspector.dockController.initialize();
|
| - app.presentUI(document);
|
| -
|
| - var toggleSearchNodeAction = WebInspector.actionRegistry.action("elements.toggle-element-search");
|
| - // TODO: we should not access actions from other modules.
|
| - if (toggleSearchNodeAction)
|
| - InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.EnterInspectElementMode, toggleSearchNodeAction.execute.bind(toggleSearchNodeAction), this);
|
| - WebInspector.inspectorView.createToolbars();
|
| - InspectorFrontendHost.loadCompleted();
|
| -
|
| - InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.ReloadInspectedPage, this._reloadInspectedPage, this);
|
| -
|
| - var extensions = self.runtime.extensions(WebInspector.QueryParamHandler);
|
| - for (var extension of extensions) {
|
| - var value = Runtime.queryParam(extension.descriptor()["name"]);
|
| - if (value !== null)
|
| - extension.instance().then(handleQueryParam.bind(null, value));
|
| - }
|
| -
|
| - /**
|
| - * @param {string} value
|
| - * @param {!WebInspector.QueryParamHandler} handler
|
| - */
|
| - function handleQueryParam(value, handler)
|
| - {
|
| - handler.handleQueryParam(value);
|
| - }
|
| -
|
| - // Allow UI cycles to repaint prior to creating connection.
|
| - setTimeout(this._initializeTarget.bind(this), 0);
|
| - console.timeEnd("Main._showAppUI");
|
| - },
|
| -
|
| - _initializeTarget: function()
|
| - {
|
| - console.time("Main._initializeTarget");
|
| - WebInspector.targetManager.connectToMainTarget(webSocketConnectionLost);
|
| -
|
| - InspectorFrontendHost.readyForTest();
|
| - // Asynchronously run the extensions.
|
| - setTimeout(this._lateInitialization.bind(this), 100);
|
| - console.timeEnd("Main._initializeTarget");
|
| -
|
| - function webSocketConnectionLost()
|
| - {
|
| - if (!WebInspector._disconnectedScreenWithReasonWasShown)
|
| - WebInspector.RemoteDebuggingTerminatedScreen.show("WebSocket disconnected");
|
| - }
|
| - },
|
| -
|
| - _lateInitialization: function()
|
| - {
|
| - console.timeStamp("Main._lateInitialization");
|
| - this._registerShortcuts();
|
| - WebInspector.extensionServer.initializeExtensions();
|
| - },
|
| -
|
| - _registerForwardedShortcuts: function()
|
| - {
|
| - /** @const */ var forwardedActions = ["main.toggle-dock", "debugger.toggle-breakpoints-active", "debugger.toggle-pause", "commandMenu.show"];
|
| - var actionKeys = WebInspector.shortcutRegistry.keysForActions(forwardedActions).map(WebInspector.KeyboardShortcut.keyCodeAndModifiersFromKey);
|
| - InspectorFrontendHost.setWhitelistedShortcuts(JSON.stringify(actionKeys));
|
| - },
|
| -
|
| - _registerMessageSinkListener: function()
|
| - {
|
| - WebInspector.console.addEventListener(WebInspector.Console.Events.MessageAdded, messageAdded);
|
| -
|
| - /**
|
| - * @param {!WebInspector.Event} event
|
| - */
|
| - function messageAdded(event)
|
| - {
|
| - var message = /** @type {!WebInspector.Console.Message} */ (event.data);
|
| - if (message.show)
|
| - WebInspector.console.show();
|
| - }
|
| - },
|
| -
|
| - _documentClick: function(event)
|
| - {
|
| - var target = event.target;
|
| - if (target.shadowRoot)
|
| - target = event.deepElementFromPoint();
|
| - if (!target)
|
| - return;
|
| -
|
| - var anchor = target.enclosingNodeOrSelfWithNodeName("a");
|
| - if (!anchor || !anchor.href)
|
| - return;
|
| -
|
| - // Prevent the link from navigating, since we don't do any navigation by following links normally.
|
| - event.consume(true);
|
| + function webSocketConnectionLost() {
|
| + if (!WebInspector._disconnectedScreenWithReasonWasShown)
|
| + WebInspector.RemoteDebuggingTerminatedScreen.show('WebSocket disconnected');
|
| + }
|
| + }
|
|
|
| - if (anchor.preventFollow)
|
| - return;
|
| -
|
| - function followLink()
|
| - {
|
| - if (WebInspector.isBeingEdited(target))
|
| - return;
|
| - if (WebInspector.openAnchorLocationRegistry.dispatch({ url: anchor.href, lineNumber: anchor.lineNumber}))
|
| - return;
|
| -
|
| - var uiSourceCode = WebInspector.networkMapping.uiSourceCodeForURLForAnyTarget(anchor.href);
|
| - if (uiSourceCode) {
|
| - WebInspector.Revealer.reveal(uiSourceCode.uiLocation(anchor.lineNumber || 0, anchor.columnNumber || 0));
|
| - return;
|
| - }
|
| -
|
| - var resource = WebInspector.resourceForURL(anchor.href);
|
| - if (resource) {
|
| - WebInspector.Revealer.reveal(resource);
|
| - return;
|
| - }
|
| -
|
| - var request = WebInspector.NetworkLog.requestForURL(anchor.href);
|
| - if (request) {
|
| - WebInspector.Revealer.reveal(request);
|
| - return;
|
| - }
|
| - InspectorFrontendHost.openInNewTab(anchor.href);
|
| - }
|
| -
|
| - if (WebInspector.followLinkTimeout)
|
| - clearTimeout(WebInspector.followLinkTimeout);
|
| -
|
| - if (anchor.preventFollowOnDoubleClick) {
|
| - // Start a timeout if this is the first click, if the timeout is canceled
|
| - // before it fires, then a double clicked happened or another link was clicked.
|
| - if (event.detail === 1)
|
| - WebInspector.followLinkTimeout = setTimeout(followLink, 333);
|
| - return;
|
| - }
|
| -
|
| - if (!anchor.classList.contains("webkit-html-external-link"))
|
| - followLink();
|
| - else
|
| - InspectorFrontendHost.openInNewTab(anchor.href);
|
| - },
|
| -
|
| - _registerShortcuts: function()
|
| - {
|
| - var shortcut = WebInspector.KeyboardShortcut;
|
| - var section = WebInspector.shortcutsScreen.section(WebInspector.UIString("All Panels"));
|
| - var keys = [
|
| - shortcut.makeDescriptor("[", shortcut.Modifiers.CtrlOrMeta),
|
| - shortcut.makeDescriptor("]", shortcut.Modifiers.CtrlOrMeta)
|
| - ];
|
| - section.addRelatedKeys(keys, WebInspector.UIString("Go to the panel to the left/right"));
|
| -
|
| - keys = [
|
| - shortcut.makeDescriptor("[", shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Alt),
|
| - shortcut.makeDescriptor("]", shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Alt)
|
| - ];
|
| - section.addRelatedKeys(keys, WebInspector.UIString("Go back/forward in panel history"));
|
| -
|
| - var toggleConsoleLabel = WebInspector.UIString("Show console");
|
| - section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tilde, shortcut.Modifiers.Ctrl), toggleConsoleLabel);
|
| - section.addKey(shortcut.makeDescriptor(shortcut.Keys.Esc), WebInspector.UIString("Toggle drawer"));
|
| - if (WebInspector.dockController.canDock()) {
|
| - section.addKey(shortcut.makeDescriptor("M", shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Shift), WebInspector.UIString("Toggle device mode"));
|
| - section.addKey(shortcut.makeDescriptor("D", shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Shift), WebInspector.UIString("Toggle dock side"));
|
| - }
|
| - section.addKey(shortcut.makeDescriptor("f", shortcut.Modifiers.CtrlOrMeta), WebInspector.UIString("Search"));
|
| -
|
| - var advancedSearchShortcutModifier = WebInspector.isMac()
|
| - ? WebInspector.KeyboardShortcut.Modifiers.Meta | WebInspector.KeyboardShortcut.Modifiers.Alt
|
| - : WebInspector.KeyboardShortcut.Modifiers.Ctrl | WebInspector.KeyboardShortcut.Modifiers.Shift;
|
| - var advancedSearchShortcut = shortcut.makeDescriptor("f", advancedSearchShortcutModifier);
|
| - section.addKey(advancedSearchShortcut, WebInspector.UIString("Search across all sources"));
|
| -
|
| - var inspectElementModeShortcuts = WebInspector.shortcutRegistry.shortcutDescriptorsForAction("elements.toggle-element-search");
|
| - if (inspectElementModeShortcuts.length)
|
| - section.addKey(inspectElementModeShortcuts[0], WebInspector.UIString("Select node to inspect"));
|
| -
|
| - var openResourceShortcut = WebInspector.KeyboardShortcut.makeDescriptor("p", WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);
|
| - section.addKey(openResourceShortcut, WebInspector.UIString("Go to source"));
|
| -
|
| - if (WebInspector.isMac()) {
|
| - keys = [
|
| - shortcut.makeDescriptor("g", shortcut.Modifiers.Meta),
|
| - shortcut.makeDescriptor("g", shortcut.Modifiers.Meta | shortcut.Modifiers.Shift)
|
| - ];
|
| - section.addRelatedKeys(keys, WebInspector.UIString("Find next/previous"));
|
| - }
|
| - },
|
| -
|
| - _postDocumentKeyDown: function(event)
|
| - {
|
| - if (event.handled)
|
| - return;
|
| -
|
| - var document = event.target && event.target.ownerDocument;
|
| - var target = document ? document.deepActiveElement() : null;
|
| - if (target) {
|
| - var anchor = target.enclosingNodeOrSelfWithNodeName("a");
|
| - if (anchor && anchor.preventFollow)
|
| - event.preventDefault();
|
| - }
|
| -
|
| - if (!WebInspector.Dialog.hasInstance() && WebInspector.inspectorView.currentPanelDeprecated()) {
|
| - WebInspector.inspectorView.currentPanelDeprecated().handleShortcut(event);
|
| - if (event.handled) {
|
| - event.consume(true);
|
| - return;
|
| - }
|
| - }
|
| -
|
| - WebInspector.shortcutRegistry.handleShortcut(event);
|
| - },
|
| + _lateInitialization() {
|
| + console.timeStamp('Main._lateInitialization');
|
| + this._registerShortcuts();
|
| + WebInspector.extensionServer.initializeExtensions();
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _redispatchClipboardEvent: function(event)
|
| - {
|
| - var eventCopy = new CustomEvent("clipboard-" + event.type);
|
| - eventCopy["original"] = event;
|
| - var document = event.target && event.target.ownerDocument;
|
| - var target = document ? document.deepActiveElement() : null;
|
| - if (target)
|
| - target.dispatchEvent(eventCopy);
|
| - if (eventCopy.handled)
|
| - event.preventDefault();
|
| - },
|
| -
|
| - _contextMenuEventFired: function(event)
|
| - {
|
| - if (event.handled || event.target.classList.contains("popup-glasspane"))
|
| - event.preventDefault();
|
| - },
|
| + _registerForwardedShortcuts() {
|
| + /** @const */ var forwardedActions =
|
| + ['main.toggle-dock', 'debugger.toggle-breakpoints-active', 'debugger.toggle-pause', 'commandMenu.show'];
|
| + var actionKeys = WebInspector.shortcutRegistry.keysForActions(forwardedActions)
|
| + .map(WebInspector.KeyboardShortcut.keyCodeAndModifiersFromKey);
|
| + InspectorFrontendHost.setWhitelistedShortcuts(JSON.stringify(actionKeys));
|
| + }
|
|
|
| - /**
|
| - * @param {!Document} document
|
| - */
|
| - _addMainEventListeners: function(document)
|
| - {
|
| - document.addEventListener("keydown", this._postDocumentKeyDown.bind(this), false);
|
| - document.addEventListener("beforecopy", this._redispatchClipboardEvent.bind(this), true);
|
| - document.addEventListener("copy", this._redispatchClipboardEvent.bind(this), false);
|
| - document.addEventListener("cut", this._redispatchClipboardEvent.bind(this), false);
|
| - document.addEventListener("paste", this._redispatchClipboardEvent.bind(this), false);
|
| - document.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true);
|
| - document.addEventListener("click", this._documentClick.bind(this), false);
|
| - },
|
| + _registerMessageSinkListener() {
|
| + WebInspector.console.addEventListener(WebInspector.Console.Events.MessageAdded, messageAdded);
|
|
|
| /**
|
| * @param {!WebInspector.Event} event
|
| */
|
| - _reloadInspectedPage: function(event)
|
| - {
|
| - var hard = /** @type {boolean} */ (event.data);
|
| - WebInspector.Main._reloadPage(hard);
|
| - },
|
| -
|
| - _onSuspendStateChanged: function()
|
| - {
|
| - var suspended = WebInspector.targetManager.allTargetsSuspended();
|
| - WebInspector.inspectorView.onSuspendStateChanged(suspended);
|
| + function messageAdded(event) {
|
| + var message = /** @type {!WebInspector.Console.Message} */ (event.data);
|
| + if (message.show)
|
| + WebInspector.console.show();
|
| }
|
| + }
|
| +
|
| + _documentClick(event) {
|
| + var target = event.target;
|
| + if (target.shadowRoot)
|
| + target = event.deepElementFromPoint();
|
| + if (!target)
|
| + return;
|
| +
|
| + var anchor = target.enclosingNodeOrSelfWithNodeName('a');
|
| + if (!anchor || !anchor.href)
|
| + return;
|
| +
|
| + // Prevent the link from navigating, since we don't do any navigation by following links normally.
|
| + event.consume(true);
|
| +
|
| + if (anchor.preventFollow)
|
| + return;
|
| +
|
| + function followLink() {
|
| + if (WebInspector.isBeingEdited(target))
|
| + return;
|
| + if (WebInspector.openAnchorLocationRegistry.dispatch({url: anchor.href, lineNumber: anchor.lineNumber}))
|
| + return;
|
| +
|
| + var uiSourceCode = WebInspector.networkMapping.uiSourceCodeForURLForAnyTarget(anchor.href);
|
| + if (uiSourceCode) {
|
| + WebInspector.Revealer.reveal(uiSourceCode.uiLocation(anchor.lineNumber || 0, anchor.columnNumber || 0));
|
| + return;
|
| + }
|
| +
|
| + var resource = WebInspector.resourceForURL(anchor.href);
|
| + if (resource) {
|
| + WebInspector.Revealer.reveal(resource);
|
| + return;
|
| + }
|
| +
|
| + var request = WebInspector.NetworkLog.requestForURL(anchor.href);
|
| + if (request) {
|
| + WebInspector.Revealer.reveal(request);
|
| + return;
|
| + }
|
| + InspectorFrontendHost.openInNewTab(anchor.href);
|
| + }
|
| +
|
| + if (WebInspector.followLinkTimeout)
|
| + clearTimeout(WebInspector.followLinkTimeout);
|
| +
|
| + if (anchor.preventFollowOnDoubleClick) {
|
| + // Start a timeout if this is the first click, if the timeout is canceled
|
| + // before it fires, then a double clicked happened or another link was clicked.
|
| + if (event.detail === 1)
|
| + WebInspector.followLinkTimeout = setTimeout(followLink, 333);
|
| + return;
|
| + }
|
| +
|
| + if (!anchor.classList.contains('webkit-html-external-link'))
|
| + followLink();
|
| + else
|
| + InspectorFrontendHost.openInNewTab(anchor.href);
|
| + }
|
| +
|
| + _registerShortcuts() {
|
| + var shortcut = WebInspector.KeyboardShortcut;
|
| + var section = WebInspector.shortcutsScreen.section(WebInspector.UIString('All Panels'));
|
| + var keys = [
|
| + shortcut.makeDescriptor('[', shortcut.Modifiers.CtrlOrMeta),
|
| + shortcut.makeDescriptor(']', shortcut.Modifiers.CtrlOrMeta)
|
| + ];
|
| + section.addRelatedKeys(keys, WebInspector.UIString('Go to the panel to the left/right'));
|
| +
|
| + keys = [
|
| + shortcut.makeDescriptor('[', shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Alt),
|
| + shortcut.makeDescriptor(']', shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Alt)
|
| + ];
|
| + section.addRelatedKeys(keys, WebInspector.UIString('Go back/forward in panel history'));
|
| +
|
| + var toggleConsoleLabel = WebInspector.UIString('Show console');
|
| + section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tilde, shortcut.Modifiers.Ctrl), toggleConsoleLabel);
|
| + section.addKey(shortcut.makeDescriptor(shortcut.Keys.Esc), WebInspector.UIString('Toggle drawer'));
|
| + if (WebInspector.dockController.canDock()) {
|
| + section.addKey(
|
| + shortcut.makeDescriptor('M', shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Shift),
|
| + WebInspector.UIString('Toggle device mode'));
|
| + section.addKey(
|
| + shortcut.makeDescriptor('D', shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Shift),
|
| + WebInspector.UIString('Toggle dock side'));
|
| + }
|
| + section.addKey(shortcut.makeDescriptor('f', shortcut.Modifiers.CtrlOrMeta), WebInspector.UIString('Search'));
|
| +
|
| + var advancedSearchShortcutModifier = WebInspector.isMac() ?
|
| + WebInspector.KeyboardShortcut.Modifiers.Meta | WebInspector.KeyboardShortcut.Modifiers.Alt :
|
| + WebInspector.KeyboardShortcut.Modifiers.Ctrl | WebInspector.KeyboardShortcut.Modifiers.Shift;
|
| + var advancedSearchShortcut = shortcut.makeDescriptor('f', advancedSearchShortcutModifier);
|
| + section.addKey(advancedSearchShortcut, WebInspector.UIString('Search across all sources'));
|
| +
|
| + var inspectElementModeShortcuts =
|
| + WebInspector.shortcutRegistry.shortcutDescriptorsForAction('elements.toggle-element-search');
|
| + if (inspectElementModeShortcuts.length)
|
| + section.addKey(inspectElementModeShortcuts[0], WebInspector.UIString('Select node to inspect'));
|
| +
|
| + var openResourceShortcut =
|
| + WebInspector.KeyboardShortcut.makeDescriptor('p', WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);
|
| + section.addKey(openResourceShortcut, WebInspector.UIString('Go to source'));
|
| +
|
| + if (WebInspector.isMac()) {
|
| + keys = [
|
| + shortcut.makeDescriptor('g', shortcut.Modifiers.Meta),
|
| + shortcut.makeDescriptor('g', shortcut.Modifiers.Meta | shortcut.Modifiers.Shift)
|
| + ];
|
| + section.addRelatedKeys(keys, WebInspector.UIString('Find next/previous'));
|
| + }
|
| + }
|
| +
|
| + _postDocumentKeyDown(event) {
|
| + if (event.handled)
|
| + return;
|
| +
|
| + var document = event.target && event.target.ownerDocument;
|
| + var target = document ? document.deepActiveElement() : null;
|
| + if (target) {
|
| + var anchor = target.enclosingNodeOrSelfWithNodeName('a');
|
| + if (anchor && anchor.preventFollow)
|
| + event.preventDefault();
|
| + }
|
| +
|
| + if (!WebInspector.Dialog.hasInstance() && WebInspector.inspectorView.currentPanelDeprecated()) {
|
| + WebInspector.inspectorView.currentPanelDeprecated().handleShortcut(event);
|
| + if (event.handled) {
|
| + event.consume(true);
|
| + return;
|
| + }
|
| + }
|
| +
|
| + WebInspector.shortcutRegistry.handleShortcut(event);
|
| + }
|
| +
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _redispatchClipboardEvent(event) {
|
| + var eventCopy = new CustomEvent('clipboard-' + event.type);
|
| + eventCopy['original'] = event;
|
| + var document = event.target && event.target.ownerDocument;
|
| + var target = document ? document.deepActiveElement() : null;
|
| + if (target)
|
| + target.dispatchEvent(eventCopy);
|
| + if (eventCopy.handled)
|
| + event.preventDefault();
|
| + }
|
| +
|
| + _contextMenuEventFired(event) {
|
| + if (event.handled || event.target.classList.contains('popup-glasspane'))
|
| + event.preventDefault();
|
| + }
|
| +
|
| + /**
|
| + * @param {!Document} document
|
| + */
|
| + _addMainEventListeners(document) {
|
| + document.addEventListener('keydown', this._postDocumentKeyDown.bind(this), false);
|
| + document.addEventListener('beforecopy', this._redispatchClipboardEvent.bind(this), true);
|
| + document.addEventListener('copy', this._redispatchClipboardEvent.bind(this), false);
|
| + document.addEventListener('cut', this._redispatchClipboardEvent.bind(this), false);
|
| + document.addEventListener('paste', this._redispatchClipboardEvent.bind(this), false);
|
| + document.addEventListener('contextmenu', this._contextMenuEventFired.bind(this), true);
|
| + document.addEventListener('click', this._documentClick.bind(this), false);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _reloadInspectedPage(event) {
|
| + var hard = /** @type {boolean} */ (event.data);
|
| + WebInspector.Main._reloadPage(hard);
|
| + }
|
| +
|
| + _onSuspendStateChanged() {
|
| + var suspended = WebInspector.targetManager.allTargetsSuspended();
|
| + WebInspector.inspectorView.onSuspendStateChanged(suspended);
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.TargetManager.Observer}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.InspectorDomainObserver = function()
|
| -{
|
| +WebInspector.Main.InspectorDomainObserver = class {
|
| + constructor() {
|
| WebInspector.targetManager.observeTargets(this, WebInspector.Target.Capability.Browser);
|
| -};
|
| -
|
| -WebInspector.Main.InspectorDomainObserver.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Target} target
|
| - */
|
| - targetAdded: function(target)
|
| - {
|
| - target.registerInspectorDispatcher(new WebInspector.Main.InspectorDomainDispatcher(target));
|
| - target.inspectorAgent().enable();
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Target} target
|
| - */
|
| - targetRemoved: function(target)
|
| - {
|
| - },
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Target} target
|
| + */
|
| + targetAdded(target) {
|
| + target.registerInspectorDispatcher(new WebInspector.Main.InspectorDomainDispatcher(target));
|
| + target.inspectorAgent().enable();
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Target} target
|
| + */
|
| + targetRemoved(target) {
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {InspectorAgent.Dispatcher}
|
| - * @param {!WebInspector.Target} target
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.InspectorDomainDispatcher = function(target)
|
| -{
|
| +WebInspector.Main.InspectorDomainDispatcher = class {
|
| + /**
|
| + * @param {!WebInspector.Target} target
|
| + */
|
| + constructor(target) {
|
| this._target = target;
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string} reason
|
| + */
|
| + detached(reason) {
|
| + WebInspector._disconnectedScreenWithReasonWasShown = true;
|
| + WebInspector.RemoteDebuggingTerminatedScreen.show(reason);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + */
|
| + targetCrashed() {
|
| + var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._target);
|
| + if (debuggerModel)
|
| + WebInspector.TargetCrashedScreen.show(debuggerModel);
|
| + }
|
| };
|
|
|
| -WebInspector.Main.InspectorDomainDispatcher.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {string} reason
|
| - */
|
| - detached: function(reason)
|
| - {
|
| - WebInspector._disconnectedScreenWithReasonWasShown = true;
|
| - WebInspector.RemoteDebuggingTerminatedScreen.show(reason);
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - */
|
| - targetCrashed: function()
|
| - {
|
| - var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._target);
|
| - if (debuggerModel)
|
| - WebInspector.TargetCrashedScreen.show(debuggerModel);
|
| - }
|
| -};
|
| -
|
| -
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ActionDelegate}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.ReloadActionDelegate = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.Main.ReloadActionDelegate.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Context} context
|
| - * @param {string} actionId
|
| - * @return {boolean}
|
| - */
|
| - handleAction: function(context, actionId)
|
| - {
|
| - switch (actionId) {
|
| - case "main.reload":
|
| - WebInspector.Main._reloadPage(false);
|
| - return true;
|
| - case "main.hard-reload":
|
| - WebInspector.Main._reloadPage(true);
|
| - return true;
|
| - case "main.debug-reload":
|
| - WebInspector.reload();
|
| - return true;
|
| - }
|
| - return false;
|
| +WebInspector.Main.ReloadActionDelegate = class {
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Context} context
|
| + * @param {string} actionId
|
| + * @return {boolean}
|
| + */
|
| + handleAction(context, actionId) {
|
| + switch (actionId) {
|
| + case 'main.reload':
|
| + WebInspector.Main._reloadPage(false);
|
| + return true;
|
| + case 'main.hard-reload':
|
| + WebInspector.Main._reloadPage(true);
|
| + return true;
|
| + case 'main.debug-reload':
|
| + WebInspector.reload();
|
| + return true;
|
| }
|
| + return false;
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ActionDelegate}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.ZoomActionDelegate = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.Main.ZoomActionDelegate.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Context} context
|
| - * @param {string} actionId
|
| - * @return {boolean}
|
| - */
|
| - handleAction: function(context, actionId)
|
| - {
|
| - if (InspectorFrontendHost.isHostedMode())
|
| - return false;
|
| -
|
| - switch (actionId) {
|
| - case "main.zoom-in":
|
| - InspectorFrontendHost.zoomIn();
|
| - return true;
|
| - case "main.zoom-out":
|
| - InspectorFrontendHost.zoomOut();
|
| - return true;
|
| - case "main.zoom-reset":
|
| - InspectorFrontendHost.resetZoom();
|
| - return true;
|
| - }
|
| - return false;
|
| +WebInspector.Main.ZoomActionDelegate = class {
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Context} context
|
| + * @param {string} actionId
|
| + * @return {boolean}
|
| + */
|
| + handleAction(context, actionId) {
|
| + if (InspectorFrontendHost.isHostedMode())
|
| + return false;
|
| +
|
| + switch (actionId) {
|
| + case 'main.zoom-in':
|
| + InspectorFrontendHost.zoomIn();
|
| + return true;
|
| + case 'main.zoom-out':
|
| + InspectorFrontendHost.zoomOut();
|
| + return true;
|
| + case 'main.zoom-reset':
|
| + InspectorFrontendHost.resetZoom();
|
| + return true;
|
| }
|
| + return false;
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ActionDelegate}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.SearchActionDelegate = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.Main.SearchActionDelegate.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {!WebInspector.Context} context
|
| - * @param {string} actionId
|
| - * @return {boolean}
|
| - * @suppressGlobalPropertiesCheck
|
| - */
|
| - handleAction: function(context, actionId)
|
| - {
|
| - var searchableView = WebInspector.SearchableView.fromElement(document.deepActiveElement()) || WebInspector.inspectorView.currentPanelDeprecated().searchableView();
|
| - if (!searchableView)
|
| - return false;
|
| - switch (actionId) {
|
| - case "main.search-in-panel.find":
|
| - return searchableView.handleFindShortcut();
|
| - case "main.search-in-panel.cancel":
|
| - return searchableView.handleCancelSearchShortcut();
|
| - case "main.search-in-panel.find-next":
|
| - return searchableView.handleFindNextShortcut();
|
| - case "main.search-in-panel.find-previous":
|
| - return searchableView.handleFindPreviousShortcut();
|
| - }
|
| - return false;
|
| +WebInspector.Main.SearchActionDelegate = class {
|
| + /**
|
| + * @override
|
| + * @param {!WebInspector.Context} context
|
| + * @param {string} actionId
|
| + * @return {boolean}
|
| + * @suppressGlobalPropertiesCheck
|
| + */
|
| + handleAction(context, actionId) {
|
| + var searchableView = WebInspector.SearchableView.fromElement(document.deepActiveElement()) ||
|
| + WebInspector.inspectorView.currentPanelDeprecated().searchableView();
|
| + if (!searchableView)
|
| + return false;
|
| + switch (actionId) {
|
| + case 'main.search-in-panel.find':
|
| + return searchableView.handleFindShortcut();
|
| + case 'main.search-in-panel.cancel':
|
| + return searchableView.handleCancelSearchShortcut();
|
| + case 'main.search-in-panel.find-next':
|
| + return searchableView.handleFindNextShortcut();
|
| + case 'main.search-in-panel.find-previous':
|
| + return searchableView.handleFindPreviousShortcut();
|
| }
|
| + return false;
|
| + }
|
| };
|
|
|
| -/**
|
| - * @param {boolean} hard
|
| - */
|
| -WebInspector.Main._reloadPage = function(hard)
|
| -{
|
| - var mainTarget = WebInspector.targetManager.mainTarget();
|
| - if (mainTarget && mainTarget.hasBrowserCapability())
|
| - WebInspector.targetManager.reloadPage(hard);
|
| -};
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ToolbarItem.Provider}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.WarningErrorCounter = function()
|
| -{
|
| +WebInspector.Main.WarningErrorCounter = class {
|
| + constructor() {
|
| WebInspector.Main.WarningErrorCounter._instanceForTest = this;
|
|
|
| - this._counter = createElement("div");
|
| - this._counter.addEventListener("click", WebInspector.console.show.bind(WebInspector.console), false);
|
| + this._counter = createElement('div');
|
| + this._counter.addEventListener('click', WebInspector.console.show.bind(WebInspector.console), false);
|
| this._toolbarItem = new WebInspector.ToolbarItem(this._counter);
|
| - var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._counter, "main/errorWarningCounter.css");
|
| + var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._counter, 'main/errorWarningCounter.css');
|
|
|
| - this._errors = this._createItem(shadowRoot, "error-icon");
|
| - this._revokedErrors = this._createItem(shadowRoot, "revokedError-icon");
|
| - this._warnings = this._createItem(shadowRoot, "warning-icon");
|
| + this._errors = this._createItem(shadowRoot, 'error-icon');
|
| + this._revokedErrors = this._createItem(shadowRoot, 'revokedError-icon');
|
| + this._warnings = this._createItem(shadowRoot, 'warning-icon');
|
| this._titles = [];
|
|
|
| - WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared, this._update, this);
|
| - WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded, this._update, this);
|
| - WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleModel.Events.MessageUpdated, this._update, this);
|
| + WebInspector.multitargetConsoleModel.addEventListener(
|
| + WebInspector.ConsoleModel.Events.ConsoleCleared, this._update, this);
|
| + WebInspector.multitargetConsoleModel.addEventListener(
|
| + WebInspector.ConsoleModel.Events.MessageAdded, this._update, this);
|
| + WebInspector.multitargetConsoleModel.addEventListener(
|
| + WebInspector.ConsoleModel.Events.MessageUpdated, this._update, this);
|
| this._update();
|
| -};
|
| -
|
| -WebInspector.Main.WarningErrorCounter.prototype = {
|
| - /**
|
| - * @param {!Node} shadowRoot
|
| - * @param {string} iconType
|
| - * @return {!{item: !Element, text: !Element}}
|
| - */
|
| - _createItem: function(shadowRoot, iconType)
|
| - {
|
| - var item = createElementWithClass("span", "counter-item");
|
| - var icon = item.createChild("label", "", "dt-icon-label");
|
| - icon.type = iconType;
|
| - var text = icon.createChild("span");
|
| - shadowRoot.appendChild(item);
|
| - return {item: item, text: text};
|
| - },
|
| -
|
| - /**
|
| - * @param {!{item: !Element, text: !Element}} item
|
| - * @param {number} count
|
| - * @param {boolean} first
|
| - * @param {string} title
|
| - */
|
| - _updateItem: function(item, count, first, title)
|
| - {
|
| - item.item.classList.toggle("hidden", !count);
|
| - item.item.classList.toggle("counter-item-first", first);
|
| - item.text.textContent = count;
|
| - if (count)
|
| - this._titles.push(title);
|
| - },
|
| -
|
| - _update: function()
|
| - {
|
| - var errors = 0;
|
| - var revokedErrors = 0;
|
| - var warnings = 0;
|
| - var targets = WebInspector.targetManager.targets();
|
| - for (var i = 0; i < targets.length; ++i) {
|
| - errors += targets[i].consoleModel.errors();
|
| - revokedErrors += targets[i].consoleModel.revokedErrors();
|
| - warnings += targets[i].consoleModel.warnings();
|
| - }
|
| -
|
| - this._titles = [];
|
| - this._toolbarItem.setVisible(!!(errors || revokedErrors || warnings));
|
| - this._updateItem(this._errors, errors, false, WebInspector.UIString(errors === 1 ? "%d error" : "%d errors", errors));
|
| - this._updateItem(this._revokedErrors, revokedErrors, !errors, WebInspector.UIString(revokedErrors === 1 ? "%d handled promise rejection" : "%d handled promise rejections", revokedErrors));
|
| - this._updateItem(this._warnings, warnings, !errors && !revokedErrors, WebInspector.UIString(warnings === 1 ? "%d warning" : "%d warnings", warnings));
|
| - this._counter.title = this._titles.join(", ");
|
| - WebInspector.inspectorView.toolbarItemResized();
|
| - },
|
| -
|
| - /**
|
| - * @override
|
| - * @return {?WebInspector.ToolbarItem}
|
| - */
|
| - item: function()
|
| - {
|
| - return this._toolbarItem;
|
| + }
|
| +
|
| + /**
|
| + * @param {!Node} shadowRoot
|
| + * @param {string} iconType
|
| + * @return {!{item: !Element, text: !Element}}
|
| + */
|
| + _createItem(shadowRoot, iconType) {
|
| + var item = createElementWithClass('span', 'counter-item');
|
| + var icon = item.createChild('label', '', 'dt-icon-label');
|
| + icon.type = iconType;
|
| + var text = icon.createChild('span');
|
| + shadowRoot.appendChild(item);
|
| + return {item: item, text: text};
|
| + }
|
| +
|
| + /**
|
| + * @param {!{item: !Element, text: !Element}} item
|
| + * @param {number} count
|
| + * @param {boolean} first
|
| + * @param {string} title
|
| + */
|
| + _updateItem(item, count, first, title) {
|
| + item.item.classList.toggle('hidden', !count);
|
| + item.item.classList.toggle('counter-item-first', first);
|
| + item.text.textContent = count;
|
| + if (count)
|
| + this._titles.push(title);
|
| + }
|
| +
|
| + _update() {
|
| + var errors = 0;
|
| + var revokedErrors = 0;
|
| + var warnings = 0;
|
| + var targets = WebInspector.targetManager.targets();
|
| + for (var i = 0; i < targets.length; ++i) {
|
| + errors += targets[i].consoleModel.errors();
|
| + revokedErrors += targets[i].consoleModel.revokedErrors();
|
| + warnings += targets[i].consoleModel.warnings();
|
| }
|
| +
|
| + this._titles = [];
|
| + this._toolbarItem.setVisible(!!(errors || revokedErrors || warnings));
|
| + this._updateItem(
|
| + this._errors, errors, false, WebInspector.UIString(errors === 1 ? '%d error' : '%d errors', errors));
|
| + this._updateItem(
|
| + this._revokedErrors, revokedErrors, !errors,
|
| + WebInspector.UIString(
|
| + revokedErrors === 1 ? '%d handled promise rejection' : '%d handled promise rejections', revokedErrors));
|
| + this._updateItem(
|
| + this._warnings, warnings, !errors && !revokedErrors,
|
| + WebInspector.UIString(warnings === 1 ? '%d warning' : '%d warnings', warnings));
|
| + this._counter.title = this._titles.join(', ');
|
| + WebInspector.inspectorView.toolbarItemResized();
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @return {?WebInspector.ToolbarItem}
|
| + */
|
| + item() {
|
| + return this._toolbarItem;
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.ToolbarItem.Provider}
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.MainMenuItem = function()
|
| -{
|
| - this._item = new WebInspector.ToolbarButton(WebInspector.UIString("Customize and control DevTools"), "menu-toolbar-item");
|
| - this._item.addEventListener("mousedown", this._mouseDown, this);
|
| -};
|
| +WebInspector.Main.MainMenuItem = class {
|
| + constructor() {
|
| + this._item =
|
| + new WebInspector.ToolbarButton(WebInspector.UIString('Customize and control DevTools'), 'menu-toolbar-item');
|
| + this._item.addEventListener('mousedown', this._mouseDown, this);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @return {?WebInspector.ToolbarItem}
|
| + */
|
| + item() {
|
| + return this._item;
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _mouseDown(event) {
|
| + var contextMenu = new WebInspector.ContextMenu(
|
| + /** @type {!Event} */ (event.data), true, this._item.element.totalOffsetLeft(),
|
| + this._item.element.totalOffsetTop() + this._item.element.offsetHeight);
|
| +
|
| + if (WebInspector.dockController.canDock()) {
|
| + var dockItemElement = createElementWithClass('div', 'flex-centered flex-auto');
|
| + var titleElement = dockItemElement.createChild('span', 'flex-auto');
|
| + titleElement.textContent = WebInspector.UIString('Dock side');
|
| + var toggleDockSideShorcuts = WebInspector.shortcutRegistry.shortcutDescriptorsForAction('main.toggle-dock');
|
| + titleElement.title = WebInspector.UIString(
|
| + 'Placement of DevTools relative to the page. (%s to restore last position)', toggleDockSideShorcuts[0].name);
|
| + dockItemElement.appendChild(titleElement);
|
| + var dockItemToolbar = new WebInspector.Toolbar('', dockItemElement);
|
| + dockItemToolbar.makeBlueOnHover();
|
| + var undock = new WebInspector.ToolbarToggle(
|
| + WebInspector.UIString('Undock into separate window'), 'dock-toolbar-item-undock');
|
| + var bottom = new WebInspector.ToolbarToggle(WebInspector.UIString('Dock to bottom'), 'dock-toolbar-item-bottom');
|
| + var right = new WebInspector.ToolbarToggle(WebInspector.UIString('Dock to right'), 'dock-toolbar-item-right');
|
| + undock.addEventListener('mouseup', setDockSide.bind(null, WebInspector.DockController.State.Undocked));
|
| + bottom.addEventListener('mouseup', setDockSide.bind(null, WebInspector.DockController.State.DockedToBottom));
|
| + right.addEventListener('mouseup', setDockSide.bind(null, WebInspector.DockController.State.DockedToRight));
|
| + undock.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked);
|
| + bottom.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToBottom);
|
| + right.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToRight);
|
| + dockItemToolbar.appendToolbarItem(undock);
|
| + dockItemToolbar.appendToolbarItem(bottom);
|
| + dockItemToolbar.appendToolbarItem(right);
|
| + contextMenu.appendCustomItem(dockItemElement);
|
| + contextMenu.appendSeparator();
|
| + }
|
|
|
| -WebInspector.Main.MainMenuItem.prototype = {
|
| /**
|
| - * @override
|
| - * @return {?WebInspector.ToolbarItem}
|
| + * @param {string} side
|
| */
|
| - item: function()
|
| - {
|
| - return this._item;
|
| - },
|
| + function setDockSide(side) {
|
| + WebInspector.dockController.setDockSide(side);
|
| + contextMenu.discard();
|
| + }
|
|
|
| - /**
|
| - * @param {!WebInspector.Event} event
|
| - */
|
| - _mouseDown: function(event)
|
| - {
|
| - var contextMenu = new WebInspector.ContextMenu(/** @type {!Event} */(event.data),
|
| - true,
|
| - this._item.element.totalOffsetLeft(),
|
| - this._item.element.totalOffsetTop() + this._item.element.offsetHeight);
|
| -
|
| - if (WebInspector.dockController.canDock()) {
|
| - var dockItemElement = createElementWithClass("div", "flex-centered flex-auto");
|
| - var titleElement = dockItemElement.createChild("span", "flex-auto");
|
| - titleElement.textContent = WebInspector.UIString("Dock side");
|
| - var toggleDockSideShorcuts = WebInspector.shortcutRegistry.shortcutDescriptorsForAction("main.toggle-dock");
|
| - titleElement.title = WebInspector.UIString("Placement of DevTools relative to the page. (%s to restore last position)", toggleDockSideShorcuts[0].name);
|
| - dockItemElement.appendChild(titleElement);
|
| - var dockItemToolbar = new WebInspector.Toolbar("", dockItemElement);
|
| - dockItemToolbar.makeBlueOnHover();
|
| - var undock = new WebInspector.ToolbarToggle(WebInspector.UIString("Undock into separate window"), "dock-toolbar-item-undock");
|
| - var bottom = new WebInspector.ToolbarToggle(WebInspector.UIString("Dock to bottom"), "dock-toolbar-item-bottom");
|
| - var right = new WebInspector.ToolbarToggle(WebInspector.UIString("Dock to right"), "dock-toolbar-item-right");
|
| - undock.addEventListener("mouseup", setDockSide.bind(null, WebInspector.DockController.State.Undocked));
|
| - bottom.addEventListener("mouseup", setDockSide.bind(null, WebInspector.DockController.State.DockedToBottom));
|
| - right.addEventListener("mouseup", setDockSide.bind(null, WebInspector.DockController.State.DockedToRight));
|
| - undock.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked);
|
| - bottom.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToBottom);
|
| - right.setToggled(WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToRight);
|
| - dockItemToolbar.appendToolbarItem(undock);
|
| - dockItemToolbar.appendToolbarItem(bottom);
|
| - dockItemToolbar.appendToolbarItem(right);
|
| - contextMenu.appendCustomItem(dockItemElement);
|
| - contextMenu.appendSeparator();
|
| - }
|
| -
|
| - /**
|
| - * @param {string} side
|
| - */
|
| - function setDockSide(side)
|
| - {
|
| - WebInspector.dockController.setDockSide(side);
|
| - contextMenu.discard();
|
| - }
|
| -
|
| - contextMenu.appendAction("main.toggle-drawer", WebInspector.inspectorView.drawerVisible() ? WebInspector.UIString("Hide console drawer") : WebInspector.UIString("Show console drawer"));
|
| - contextMenu.appendItemsAtLocation("mainMenu");
|
| - var moreTools = contextMenu.namedSubMenu("mainMenuMoreTools");
|
| - var extensions = self.runtime.extensions("view", undefined, true);
|
| - for (var extension of extensions) {
|
| - var descriptor = extension.descriptor();
|
| - if (descriptor["persistence"] !== "closeable")
|
| - continue;
|
| - if (descriptor["location"] !== "drawer-view" && descriptor["location"] !== "panel")
|
| - continue;
|
| - moreTools.appendItem(extension.title(), WebInspector.viewManager.showView.bind(WebInspector.viewManager, descriptor["id"]));
|
| - }
|
| -
|
| - contextMenu.show();
|
| + contextMenu.appendAction(
|
| + 'main.toggle-drawer', WebInspector.inspectorView.drawerVisible() ?
|
| + WebInspector.UIString('Hide console drawer') :
|
| + WebInspector.UIString('Show console drawer'));
|
| + contextMenu.appendItemsAtLocation('mainMenu');
|
| + var moreTools = contextMenu.namedSubMenu('mainMenuMoreTools');
|
| + var extensions = self.runtime.extensions('view', undefined, true);
|
| + for (var extension of extensions) {
|
| + var descriptor = extension.descriptor();
|
| + if (descriptor['persistence'] !== 'closeable')
|
| + continue;
|
| + if (descriptor['location'] !== 'drawer-view' && descriptor['location'] !== 'panel')
|
| + continue;
|
| + moreTools.appendItem(
|
| + extension.title(), WebInspector.viewManager.showView.bind(WebInspector.viewManager, descriptor['id']));
|
| }
|
| +
|
| + contextMenu.show();
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| + * @unrestricted
|
| */
|
| -WebInspector.NetworkPanelIndicator = function()
|
| -{
|
| +WebInspector.NetworkPanelIndicator = class {
|
| + constructor() {
|
| // TODO: we should not access network from other modules.
|
| - if (!WebInspector.inspectorView.hasPanel("network"))
|
| - return;
|
| + if (!WebInspector.inspectorView.hasPanel('network'))
|
| + return;
|
| var manager = WebInspector.multitargetNetworkManager;
|
| manager.addEventListener(WebInspector.MultitargetNetworkManager.Events.ConditionsChanged, updateVisibility);
|
| - var blockedURLsSetting = WebInspector.moduleSetting("blockedURLs");
|
| + var blockedURLsSetting = WebInspector.moduleSetting('blockedURLs');
|
| blockedURLsSetting.addChangeListener(updateVisibility);
|
| updateVisibility();
|
|
|
| - function updateVisibility()
|
| - {
|
| - if (manager.isThrottling()) {
|
| - WebInspector.inspectorView.setPanelIcon("network", "warning-icon", WebInspector.UIString("Network throttling is enabled"));
|
| - } else if (blockedURLsSetting.get().length) {
|
| - WebInspector.inspectorView.setPanelIcon("network", "warning-icon", WebInspector.UIString("Requests may be blocked"));
|
| - } else {
|
| - WebInspector.inspectorView.setPanelIcon("network", "", "");
|
| - }
|
| + function updateVisibility() {
|
| + if (manager.isThrottling()) {
|
| + WebInspector.inspectorView.setPanelIcon(
|
| + 'network', 'warning-icon', WebInspector.UIString('Network throttling is enabled'));
|
| + } else if (blockedURLsSetting.get().length) {
|
| + WebInspector.inspectorView.setPanelIcon(
|
| + 'network', 'warning-icon', WebInspector.UIString('Requests may be blocked'));
|
| + } else {
|
| + WebInspector.inspectorView.setPanelIcon('network', '', '');
|
| + }
|
| }
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| + * @unrestricted
|
| */
|
| -WebInspector.SourcesPanelIndicator = function()
|
| -{
|
| - WebInspector.moduleSetting("javaScriptDisabled").addChangeListener(javaScriptDisabledChanged);
|
| +WebInspector.SourcesPanelIndicator = class {
|
| + constructor() {
|
| + WebInspector.moduleSetting('javaScriptDisabled').addChangeListener(javaScriptDisabledChanged);
|
| javaScriptDisabledChanged();
|
|
|
| - function javaScriptDisabledChanged()
|
| - {
|
| - var javaScriptDisabled = WebInspector.moduleSetting("javaScriptDisabled").get();
|
| - if (javaScriptDisabled) {
|
| - WebInspector.inspectorView.setPanelIcon("sources", "warning-icon", WebInspector.UIString("JavaScript is disabled"));
|
| - } else {
|
| - WebInspector.inspectorView.setPanelIcon("sources", "", "");
|
| - }
|
| + function javaScriptDisabledChanged() {
|
| + var javaScriptDisabled = WebInspector.moduleSetting('javaScriptDisabled').get();
|
| + if (javaScriptDisabled) {
|
| + WebInspector.inspectorView.setPanelIcon(
|
| + 'sources', 'warning-icon', WebInspector.UIString('JavaScript is disabled'));
|
| + } else {
|
| + WebInspector.inspectorView.setPanelIcon('sources', '', '');
|
| + }
|
| }
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.PauseListener = function()
|
| -{
|
| - WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);
|
| -};
|
| -
|
| -WebInspector.Main.PauseListener.prototype = {
|
| - /**
|
| - * @param {!WebInspector.Event} event
|
| - */
|
| - _debuggerPaused: function(event)
|
| - {
|
| - WebInspector.targetManager.removeModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);
|
| - var debuggerPausedDetails = /** @type {!WebInspector.DebuggerPausedDetails} */ (event.data);
|
| - var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
|
| - WebInspector.context.setFlavor(WebInspector.Target, debuggerModel.target());
|
| - WebInspector.Revealer.reveal(debuggerPausedDetails);
|
| - }
|
| +WebInspector.Main.PauseListener = class {
|
| + constructor() {
|
| + WebInspector.targetManager.addModelListener(
|
| + WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _debuggerPaused(event) {
|
| + WebInspector.targetManager.removeModelListener(
|
| + WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);
|
| + var debuggerPausedDetails = /** @type {!WebInspector.DebuggerPausedDetails} */ (event.data);
|
| + var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
|
| + WebInspector.context.setFlavor(WebInspector.Target, debuggerModel.target());
|
| + WebInspector.Revealer.reveal(debuggerPausedDetails);
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| + * @unrestricted
|
| */
|
| -WebInspector.Main.InspectedNodeRevealer = function()
|
| -{
|
| - WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspector.DOMModel.Events.NodeInspected, this._inspectNode, this);
|
| -};
|
| -
|
| -WebInspector.Main.InspectedNodeRevealer.prototype = {
|
| - /**
|
| - * @param {!WebInspector.Event} event
|
| - */
|
| - _inspectNode: function(event)
|
| - {
|
| - var deferredNode = /** @type {!WebInspector.DeferredDOMNode} */ (event.data);
|
| - WebInspector.Revealer.reveal(deferredNode);
|
| - }
|
| +WebInspector.Main.InspectedNodeRevealer = class {
|
| + constructor() {
|
| + WebInspector.targetManager.addModelListener(
|
| + WebInspector.DOMModel, WebInspector.DOMModel.Events.NodeInspected, this._inspectNode, this);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _inspectNode(event) {
|
| + var deferredNode = /** @type {!WebInspector.DeferredDOMNode} */ (event.data);
|
| + WebInspector.Revealer.reveal(deferredNode);
|
| + }
|
| };
|
|
|
| /**
|
| @@ -916,70 +902,70 @@ WebInspector.Main.InspectedNodeRevealer.prototype = {
|
| * @param {?Object} params
|
| * @return {!Promise}
|
| */
|
| -WebInspector.sendOverProtocol = function(method, params)
|
| -{
|
| - return new Promise((resolve, reject) => {
|
| - InspectorBackendClass.sendRawMessageForTesting(method, params, (err, result) => {
|
| - if (err)
|
| - return reject(err);
|
| - return resolve(result);
|
| - });
|
| +WebInspector.sendOverProtocol = function(method, params) {
|
| + return new Promise((resolve, reject) => {
|
| + InspectorBackendClass.sendRawMessageForTesting(method, params, (err, result) => {
|
| + if (err)
|
| + return reject(err);
|
| + return resolve(result);
|
| });
|
| + });
|
| };
|
|
|
| /**
|
| - * @constructor
|
| - * @extends {WebInspector.VBox}
|
| - * @param {string} reason
|
| - */
|
| -WebInspector.RemoteDebuggingTerminatedScreen = function(reason)
|
| -{
|
| - WebInspector.VBox.call(this, true);
|
| - this.registerRequiredCSS("main/remoteDebuggingTerminatedScreen.css");
|
| - var message = this.contentElement.createChild("div", "message");
|
| - message.createChild("span").textContent = WebInspector.UIString("Debugging connection was closed. Reason: ");
|
| - message.createChild("span", "reason").textContent = reason;
|
| - this.contentElement.createChild("div", "message").textContent = WebInspector.UIString("Reconnect when ready by reopening DevTools.");
|
| - var button = createTextButton(WebInspector.UIString("Reconnect DevTools"), () => window.location.reload());
|
| - this.contentElement.createChild("div", "button").appendChild(button);
|
| -};
|
| -
|
| -/**
|
| - * @param {string} reason
|
| + * @unrestricted
|
| */
|
| -WebInspector.RemoteDebuggingTerminatedScreen.show = function(reason)
|
| -{
|
| +WebInspector.RemoteDebuggingTerminatedScreen = class extends WebInspector.VBox {
|
| + /**
|
| + * @param {string} reason
|
| + */
|
| + constructor(reason) {
|
| + super(true);
|
| + this.registerRequiredCSS('main/remoteDebuggingTerminatedScreen.css');
|
| + var message = this.contentElement.createChild('div', 'message');
|
| + message.createChild('span').textContent = WebInspector.UIString('Debugging connection was closed. Reason: ');
|
| + message.createChild('span', 'reason').textContent = reason;
|
| + this.contentElement.createChild('div', 'message').textContent =
|
| + WebInspector.UIString('Reconnect when ready by reopening DevTools.');
|
| + var button = createTextButton(WebInspector.UIString('Reconnect DevTools'), () => window.location.reload());
|
| + this.contentElement.createChild('div', 'button').appendChild(button);
|
| + }
|
| +
|
| + /**
|
| + * @param {string} reason
|
| + */
|
| + static show(reason) {
|
| var dialog = new WebInspector.Dialog();
|
| dialog.setWrapsContent(true);
|
| dialog.addCloseButton();
|
| dialog.setDimmed(true);
|
| new WebInspector.RemoteDebuggingTerminatedScreen(reason).show(dialog.element);
|
| dialog.show();
|
| + }
|
| };
|
|
|
| -WebInspector.RemoteDebuggingTerminatedScreen.prototype = {
|
| - __proto__: WebInspector.VBox.prototype
|
| -};
|
|
|
| /**
|
| - * @constructor
|
| - * @param {function()} hideCallback
|
| - * @extends {WebInspector.VBox}
|
| + * @unrestricted
|
| */
|
| -WebInspector.TargetCrashedScreen = function(hideCallback)
|
| -{
|
| - WebInspector.VBox.call(this, true);
|
| - this.registerRequiredCSS("main/targetCrashedScreen.css");
|
| - this.contentElement.createChild("div", "message").textContent = WebInspector.UIString("DevTools was disconnected from the page.");
|
| - this.contentElement.createChild("div", "message").textContent = WebInspector.UIString("Once page is reloaded, DevTools will automatically reconnect.");
|
| +WebInspector.TargetCrashedScreen = class extends WebInspector.VBox {
|
| + /**
|
| + * @param {function()} hideCallback
|
| + */
|
| + constructor(hideCallback) {
|
| + super(true);
|
| + this.registerRequiredCSS('main/targetCrashedScreen.css');
|
| + this.contentElement.createChild('div', 'message').textContent =
|
| + WebInspector.UIString('DevTools was disconnected from the page.');
|
| + this.contentElement.createChild('div', 'message').textContent =
|
| + WebInspector.UIString('Once page is reloaded, DevTools will automatically reconnect.');
|
| this._hideCallback = hideCallback;
|
| -};
|
| + }
|
|
|
| -/**
|
| - * @param {!WebInspector.DebuggerModel} debuggerModel
|
| - */
|
| -WebInspector.TargetCrashedScreen.show = function(debuggerModel)
|
| -{
|
| + /**
|
| + * @param {!WebInspector.DebuggerModel} debuggerModel
|
| + */
|
| + static show(debuggerModel) {
|
| var dialog = new WebInspector.Dialog();
|
| dialog.setWrapsContent(true);
|
| dialog.addCloseButton();
|
| @@ -990,92 +976,80 @@ WebInspector.TargetCrashedScreen.show = function(debuggerModel)
|
| new WebInspector.TargetCrashedScreen(onHide).show(dialog.element);
|
| dialog.show();
|
|
|
| - function onHide()
|
| - {
|
| - debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, hideBound);
|
| + function onHide() {
|
| + debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared, hideBound);
|
| }
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + */
|
| + willHide() {
|
| + this._hideCallback.call(null);
|
| + }
|
| };
|
|
|
| -WebInspector.TargetCrashedScreen.prototype = {
|
| - /**
|
| - * @override
|
| - */
|
| - willHide: function()
|
| - {
|
| - this._hideCallback.call(null);
|
| - },
|
| -
|
| - __proto__: WebInspector.VBox.prototype
|
| -};
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.TargetManager.Observer}
|
| + * @unrestricted
|
| */
|
| -WebInspector.BackendSettingsSync = function()
|
| -{
|
| - this._autoAttachSetting = WebInspector.settings.moduleSetting("autoAttachToCreatedPages");
|
| +WebInspector.BackendSettingsSync = class {
|
| + constructor() {
|
| + this._autoAttachSetting = WebInspector.settings.moduleSetting('autoAttachToCreatedPages');
|
| this._autoAttachSetting.addChangeListener(this._update, this);
|
| - this._disableJavascriptSetting = WebInspector.settings.moduleSetting("javaScriptDisabled");
|
| + this._disableJavascriptSetting = WebInspector.settings.moduleSetting('javaScriptDisabled');
|
| this._disableJavascriptSetting.addChangeListener(this._update, this);
|
| - this._blockedEventsWarningSetting = WebInspector.settings.moduleSetting("blockedEventsWarningEnabled");
|
| + this._blockedEventsWarningSetting = WebInspector.settings.moduleSetting('blockedEventsWarningEnabled');
|
| this._blockedEventsWarningSetting.addChangeListener(this._update, this);
|
| WebInspector.targetManager.observeTargets(this, WebInspector.Target.Capability.Browser);
|
| -};
|
| -
|
| -WebInspector.BackendSettingsSync.prototype = {
|
| - /**
|
| - * @param {!WebInspector.Target} target
|
| - */
|
| - _updateTarget: function(target)
|
| - {
|
| - var blockedEventsWarningThresholdSeconds = 0.1;
|
| - target.pageAgent().setBlockedEventsWarningThreshold(this._blockedEventsWarningSetting.get() ? blockedEventsWarningThresholdSeconds : 0);
|
| - target.pageAgent().setAutoAttachToCreatedPages(this._autoAttachSetting.get());
|
| - target.emulationAgent().setScriptExecutionDisabled(this._disableJavascriptSetting.get());
|
| - },
|
| -
|
| - _update: function()
|
| - {
|
| - WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser).forEach(this._updateTarget, this);
|
| - },
|
| -
|
| - /**
|
| - * @param {!WebInspector.Target} target
|
| - * @override
|
| - */
|
| - targetAdded: function(target)
|
| - {
|
| - this._updateTarget(target);
|
| - target.renderingAgent().setShowViewportSizeOnResize(true);
|
| - },
|
| -
|
| - /**
|
| - * @param {!WebInspector.Target} target
|
| - * @override
|
| - */
|
| - targetRemoved: function(target)
|
| - {
|
| - }
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Target} target
|
| + */
|
| + _updateTarget(target) {
|
| + var blockedEventsWarningThresholdSeconds = 0.1;
|
| + target.pageAgent().setBlockedEventsWarningThreshold(
|
| + this._blockedEventsWarningSetting.get() ? blockedEventsWarningThresholdSeconds : 0);
|
| + target.pageAgent().setAutoAttachToCreatedPages(this._autoAttachSetting.get());
|
| + target.emulationAgent().setScriptExecutionDisabled(this._disableJavascriptSetting.get());
|
| + }
|
| +
|
| + _update() {
|
| + WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser).forEach(this._updateTarget, this);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Target} target
|
| + * @override
|
| + */
|
| + targetAdded(target) {
|
| + this._updateTarget(target);
|
| + target.renderingAgent().setShowViewportSizeOnResize(true);
|
| + }
|
| +
|
| + /**
|
| + * @param {!WebInspector.Target} target
|
| + * @override
|
| + */
|
| + targetRemoved(target) {
|
| + }
|
| };
|
|
|
| /**
|
| - * @constructor
|
| * @implements {WebInspector.SettingUI}
|
| + * @unrestricted
|
| */
|
| -WebInspector.ShowMetricsRulersSettingUI = function()
|
| -{
|
| -};
|
| -
|
| -WebInspector.ShowMetricsRulersSettingUI.prototype = {
|
| - /**
|
| - * @override
|
| - * @return {?Element}
|
| - */
|
| - settingElement: function()
|
| - {
|
| - return WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Show rulers"), WebInspector.moduleSetting("showMetricsRulers"));
|
| - }
|
| +WebInspector.ShowMetricsRulersSettingUI = class {
|
| + /**
|
| + * @override
|
| + * @return {?Element}
|
| + */
|
| + settingElement() {
|
| + return WebInspector.SettingsUI.createSettingCheckbox(
|
| + WebInspector.UIString('Show rulers'), WebInspector.moduleSetting('showMetricsRulers'));
|
| + }
|
| };
|
|
|
| new WebInspector.Main();
|
|
|