X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fdevtools%2Ffront_end%2Fmain%2FMain.js;h=040c995cc7b2fb34afa8f95b46c2ba88513dcb38;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=db71adc337881bf2ef3ae597f661fa7e39da23e5;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/devtools/front_end/main/Main.js b/src/third_party/WebKit/Source/devtools/front_end/main/Main.js index db71adc..040c995 100644 --- a/src/third_party/WebKit/Source/devtools/front_end/main/Main.js +++ b/src/third_party/WebKit/Source/devtools/front_end/main/Main.js @@ -48,28 +48,13 @@ WebInspector.Main = function() } WebInspector.Main.prototype = { - _registerModules: function() - { - var configuration; - if (!Capabilities.isMainFrontend) { - configuration = ["main", "sources", "timeline", "profiler", "console", "source_frame", "search"]; - } else { - configuration = ["main", "elements", "network", "sources", "timeline", "profiler", "resources", "audits", "console", "source_frame", "extensions", "settings", "search"]; - if (WebInspector.experimentsSettings.layersPanel.isEnabled()) - configuration.push("layers"); - if (WebInspector.experimentsSettings.devicesPanel.isEnabled()) - configuration.push("devices"); - } - WebInspector.moduleManager.registerModules(configuration); - }, - _createGlobalStatusBarItems: function() { - var extensions = WebInspector.moduleManager.extensions(WebInspector.StatusBarButton.Provider); + var extensions = self.runtime.extensions(WebInspector.StatusBarItem.Provider); /** - * @param {!WebInspector.ModuleManager.Extension} left - * @param {!WebInspector.ModuleManager.Extension} right + * @param {!Runtime.Extension} left + * @param {!Runtime.Extension} right */ function orderComparator(left, right) { @@ -77,31 +62,31 @@ WebInspector.Main.prototype = { } extensions.sort(orderComparator); extensions.forEach(function(extension) { - var button; + var item; switch (extension.descriptor()["location"]) { case "toolbar-left": - button = createButton(extension); - if (button) - WebInspector.inspectorView.appendToLeftToolbar(button.element); + item = createItem(extension); + if (item) + WebInspector.inspectorView.appendToLeftToolbar(item); break; case "toolbar-right": - button = createButton(extension); - if (button) - WebInspector.inspectorView.appendToRightToolbar(button.element); + item = createItem(extension); + if (item) + WebInspector.inspectorView.appendToRightToolbar(item); break; } - if (button && extension.descriptor()["actionId"]) { - button.addEventListener("click", function() { + if (item && extension.descriptor()["actionId"]) { + item.addEventListener("click", function() { WebInspector.actionRegistry.execute(extension.descriptor()["actionId"]); }); } }); - function createButton(extension) + function createItem(extension) { var descriptor = extension.descriptor(); if (descriptor.className) - return extension.instance().button(); + return extension.instance().item(); return new WebInspector.StatusBarButton(WebInspector.UIString(descriptor["title"]), descriptor["elementClass"]); } }, @@ -124,7 +109,7 @@ WebInspector.Main.prototype = { console.error(error); return; } - InspectorFrontendHost.inspectedURLChanged(result.value); + InspectorFrontendHost.inspectedURLChanged(String(result.value)); } }, @@ -146,7 +131,7 @@ WebInspector.Main.prototype = { { if (result) { pauseAndResume.call(this); - } else if (!Capabilities.isMainFrontend) { + } else if (WebInspector.isWorkerFrontend()) { calculateTitle.call(this); } } @@ -169,82 +154,123 @@ WebInspector.Main.prototype = { } }, - _resetErrorAndWarningCounts: function() - { - WebInspector.inspectorView.setErrorAndWarningCounts(0, 0); - }, - - _updateErrorAndWarningCounts: function() - { - var errors = WebInspector.console.errors; - var warnings = WebInspector.console.warnings; - WebInspector.inspectorView.setErrorAndWarningCounts(errors, warnings); - }, - - _debuggerPaused: function() - { - WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this); - WebInspector.inspectorView.showPanel("sources"); - }, - _loaded: function() { + console.timeStamp("Main._loaded"); + + // FIXME: Make toolbox a real app. if (WebInspector.queryParam("toolbox")) { new WebInspector.Toolbox(); return; } + this._createSettings(); + this._createModuleManager(); + this._createAppUI(); + }, + + _createSettings: function() + { WebInspector.settings = new WebInspector.Settings(); WebInspector.experimentsSettings = new WebInspector.ExperimentsSettings(WebInspector.queryParam("experiments") !== null); // This setting is needed for backwards compatibility with Devtools CodeSchool extension. DO NOT REMOVE WebInspector.settings.pauseOnExceptionStateString = new WebInspector.PauseOnExceptionStateSetting(); + new WebInspector.VersionController().updateVersion(); + }, - if (!InspectorFrontendHost.sendMessageToEmbedder) { - var helpScreen = new WebInspector.HelpScreen(WebInspector.UIString("Incompatible Chrome version")); - var p = helpScreen.contentElement.createChild("p", "help-section"); - p.textContent = WebInspector.UIString("Please upgrade to a newer Chrome version (you might need a Dev or Canary build)."); - helpScreen.showModal(); - return; + _createModuleManager: function() + { + console.timeStamp("Main._createModuleManager"); + self.runtime = new Runtime(allDescriptors); + + // FIXME: define html-per-app, make configuration a part of the app. + var configuration = ["main", "elements", "network", "sources", "timeline", "profiler", "resources", "audits", "console", "source_frame", "extensions", "settings"]; + if (WebInspector.experimentsSettings.layersPanel.isEnabled()) + configuration.push("layers"); + if (WebInspector.experimentsSettings.devicesPanel.isEnabled() && !!WebInspector.queryParam("can_dock")) + configuration.push("devices"); + if (WebInspector.experimentsSettings.documentation.isEnabled()) + configuration.push("documentation"); + if (WebInspector.isWorkerFrontend()) + configuration = ["main", "sources", "timeline", "profiler", "console", "source_frame", "extensions"]; + self.runtime.registerModules(configuration); + }, + + _createAppUI: function() + { + console.timeStamp("Main._createApp"); + + WebInspector.installPortStyles(); + if (WebInspector.queryParam("toolbarColor") && WebInspector.queryParam("textColor")) + WebInspector.setToolbarColors(WebInspector.queryParam("toolbarColor"), WebInspector.queryParam("textColor")); + InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.SetToolbarColors, updateToolbarColors); + /** + * @param {!WebInspector.Event} event + */ + function updateToolbarColors(event) + { + WebInspector.setToolbarColors(/** @type {string} */ (event.data["backgroundColor"]), /** @type {string} */ (event.data["color"])); } - InspectorBackend.loadFromJSONIfNeeded("../protocol.json"); + var canDock = !!WebInspector.queryParam("can_dock"); + WebInspector.zoomManager = new WebInspector.ZoomManager(InspectorFrontendHost); + WebInspector.inspectorView = new WebInspector.InspectorView(); + WebInspector.ContextMenu.initialize(); + WebInspector.dockController = new WebInspector.DockController(canDock); + WebInspector.overridesSupport = new WebInspector.OverridesSupport(canDock); + WebInspector.multitargetConsoleModel = new WebInspector.MultitargetConsoleModel(); - var onConnectionReady = this._doLoadedDone.bind(this); + WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen(); + // set order of some sections explicitly + WebInspector.shortcutsScreen.section(WebInspector.UIString("Console")); + WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel")); + + if (canDock) + WebInspector.app = new WebInspector.AdvancedApp(); + else if (WebInspector.queryParam("remoteFrontend")) + WebInspector.app = new WebInspector.ScreencastApp(); + else + WebInspector.app = new WebInspector.SimpleApp(); + + // It is important to kick controller lifetime after apps are instantiated. + WebInspector.dockController.initialize(); + WebInspector.app.createRootView(); + + // Give UI cycles to repaint, then proceed with creating connection. + setTimeout(this._createConnection.bind(this), 0); + }, + + _createConnection: function() + { + console.timeStamp("Main._createConnection"); + InspectorBackend.loadFromJSONIfNeeded("../protocol.json"); var workerId = WebInspector.queryParam("dedicatedWorkerId"); if (workerId) { - new WebInspector.ExternalWorkerConnection(workerId, onConnectionReady); + this._connectionEstablished(new WebInspector.ExternalWorkerConnection(workerId)); return; } - var ws; if (WebInspector.queryParam("ws")) { - ws = "ws://" + WebInspector.queryParam("ws"); - } else if (WebInspector.queryParam("page")) { - var page = WebInspector.queryParam("page"); - var host = WebInspector.queryParam("host") || window.location.host; - ws = "ws://" + host + "/devtools/page/" + page; - } - - if (ws) { - document.body.classList.add("remote"); - new InspectorBackendClass.WebSocketConnection(ws, onConnectionReady); + var ws = "ws://" + WebInspector.queryParam("ws"); + InspectorBackendClass.WebSocketConnection.Create(ws, this._connectionEstablished.bind(this)); return; } - if (!InspectorFrontendHost.isStub) { - new InspectorBackendClass.MainConnection(onConnectionReady); + if (!InspectorFrontendHost.isHostedMode()) { + this._connectionEstablished(new InspectorBackendClass.MainConnection()); return; } - new InspectorBackendClass.StubConnection(onConnectionReady); + this._connectionEstablished(new InspectorBackendClass.StubConnection()); }, /** * @param {!InspectorBackendClass.Connection} connection */ - _doLoadedDone: function(connection) + _connectionEstablished: function(connection) { + console.timeStamp("Main._connectionEstablished"); connection.addEventListener(InspectorBackendClass.Connection.Events.Disconnected, onDisconnected); /** @@ -264,61 +290,48 @@ WebInspector.Main.prototype = { if (WebInspector.queryParam("toolbarColor") && WebInspector.queryParam("textColor")) WebInspector.setToolbarColors(WebInspector.queryParam("toolbarColor"), WebInspector.queryParam("textColor")); - - WebInspector.targetManager = new WebInspector.TargetManager(); - WebInspector.targetManager.createTarget(WebInspector.UIString("Main"), connection, this._doLoadedDoneWithCapabilities.bind(this)); + InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.SetToolbarColors, updateToolbarColors); + /** + * @param {!WebInspector.Event} event + */ + function updateToolbarColors(event) + { + WebInspector.setToolbarColors(/** @type {string} */ (event.data["backgroundColor"]), /** @type {string} */ (event.data["color"])); + } + WebInspector.ContextMenu.initialize(); + WebInspector.targetManager.createTarget(WebInspector.UIString("Main"), connection, this._mainTargetCreated.bind(this)); WebInspector.isolatedFileSystemManager = new WebInspector.IsolatedFileSystemManager(); - WebInspector.isolatedFileSystemDispatcher = new WebInspector.IsolatedFileSystemDispatcher(WebInspector.isolatedFileSystemManager); WebInspector.workspace = new WebInspector.Workspace(WebInspector.isolatedFileSystemManager.mapping()); WebInspector.networkWorkspaceBinding = new WebInspector.NetworkWorkspaceBinding(WebInspector.workspace); new WebInspector.NetworkUISourceCodeProvider(WebInspector.networkWorkspaceBinding, WebInspector.workspace); new WebInspector.PresentationConsoleMessageHelper(WebInspector.workspace); + WebInspector.cssWorkspaceBinding = new WebInspector.CSSWorkspaceBinding(); + WebInspector.debuggerWorkspaceBinding = new WebInspector.DebuggerWorkspaceBinding(WebInspector.targetManager, WebInspector.workspace, WebInspector.networkWorkspaceBinding); WebInspector.fileSystemWorkspaceBinding = new WebInspector.FileSystemWorkspaceBinding(WebInspector.isolatedFileSystemManager, WebInspector.workspace); - WebInspector.breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, WebInspector.workspace, WebInspector.targetManager); + WebInspector.breakpointManager = new WebInspector.BreakpointManager(WebInspector.settings.breakpoints, WebInspector.workspace, WebInspector.targetManager, WebInspector.debuggerWorkspaceBinding); WebInspector.scriptSnippetModel = new WebInspector.ScriptSnippetModel(WebInspector.workspace); this._executionContextSelector = new WebInspector.ExecutionContextSelector(); + + if (!WebInspector.isWorkerFrontend()) + WebInspector.inspectElementModeController = new WebInspector.InspectElementModeController(); + this._createGlobalStatusBarItems(); }, - _doLoadedDoneWithCapabilities: function(mainTarget) + /** + * @param {!WebInspector.Target} mainTarget + */ + _mainTargetCreated: function(mainTarget) { - WebInspector.dockController = new WebInspector.DockController(!!WebInspector.queryParam("can_dock")); - WebInspector.overridesSupport = new WebInspector.OverridesSupport(WebInspector.experimentsSettings.responsiveDesign.isEnabled() && WebInspector.dockController.canDock()); - - if (mainTarget.canScreencast) - WebInspector.app = new WebInspector.ScreencastApp(); - else if (WebInspector.dockController.canDock()) - WebInspector.app = new WebInspector.AdvancedApp(); - else - WebInspector.app = new WebInspector.SimpleApp(); - - WebInspector.dockController.initialize(); + console.timeStamp("Main._mainTargetCreated"); - new WebInspector.VersionController().updateVersion(); - WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen(); this._registerShortcuts(); - // set order of some sections explicitly - WebInspector.shortcutsScreen.section(WebInspector.UIString("Console")); - WebInspector.shortcutsScreen.section(WebInspector.UIString("Elements Panel")); - WebInspector.ShortcutsScreen.registerShortcuts(); - - if (WebInspector.experimentsSettings.workersInMainWindow.isEnabled()) - new WebInspector.WorkerTargetManager(mainTarget, WebInspector.targetManager); + WebInspector.workerTargetManager = new WebInspector.WorkerTargetManager(mainTarget, WebInspector.targetManager); - WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared, this._resetErrorAndWarningCounts, this); - WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded, this._updateErrorAndWarningCounts, this); - - WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this); - - WebInspector.inspectorFrontendEventSink = new WebInspector.InspectorFrontendEventSink(); InspectorBackend.registerInspectorDispatcher(this); - if (Capabilities.isMainFrontend) { - WebInspector.inspectElementModeController = new WebInspector.InspectElementModeController(); - WebInspector.workerFrontendManager = new WebInspector.WorkerFrontendManager(); - } else { + if (WebInspector.isWorkerFrontend()) mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerDisconnected, onWorkerDisconnected); - } function onWorkerDisconnected() { @@ -339,55 +352,38 @@ WebInspector.Main.prototype = { } WebInspector.domBreakpointsSidebarPane = new WebInspector.DOMBreakpointsSidebarPane(); - var autoselectPanel = WebInspector.UIString("a panel chosen automatically"); 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.WorkspaceController(WebInspector.workspace); - - WebInspector.liveEditSupport = new WebInspector.LiveEditSupport(WebInspector.workspace); - new WebInspector.CSSStyleSheetMapping(WebInspector.cssModel, WebInspector.workspace, WebInspector.networkWorkspaceBinding); - - // Create settings before loading modules. - WebInspector.settings.initializeBackendSettings(); - - this._registerModules(); - WebInspector.actionRegistry = new WebInspector.ActionRegistry(); - WebInspector.shortcutRegistry = new WebInspector.ShortcutRegistry(WebInspector.actionRegistry); - this._registerForwardedShortcuts(); - this._registerMessageSinkListener(); - - WebInspector.zoomManager = new WebInspector.ZoomManager(); - WebInspector.inspectorView = new WebInspector.InspectorView(); - WebInspector.app.createRootView(); - this._createGlobalStatusBarItems(); + new WebInspector.RenderingOptions(); + new WebInspector.Main.PauseListener(); + new WebInspector.Main.InspectedNodeRevealer(); this._addMainEventListeners(document); - var errorWarningCount = document.getElementById("error-warning-count"); - - function showConsole() - { - WebInspector.console.show(); - } - errorWarningCount.addEventListener("click", showConsole, false); - this._updateErrorAndWarningCounts(); - WebInspector.extensionServerProxy.setFrontendReady(); InspectorAgent.enable(inspectorAgentEnableCallback); function inspectorAgentEnableCallback() { - WebInspector.app.presentUI(); + console.timeStamp("Main.inspectorAgentEnableCallback"); + WebInspector.app.presentUI(mainTarget); + console.timeStamp("Main.inspectorAgentEnableCallbackPresentUI"); + WebInspector.notifications.dispatchEventToListeners(WebInspector.NotificationService.Events.InspectorUILoadedForTests); } + WebInspector.actionRegistry = new WebInspector.ActionRegistry(); + WebInspector.shortcutRegistry = new WebInspector.ShortcutRegistry(WebInspector.actionRegistry); + WebInspector.ShortcutsScreen.registerShortcuts(); + this._registerForwardedShortcuts(); + this._registerMessageSinkListener(); + this._loadCompletedForWorkers(); InspectorFrontendAPI.loadCompleted(); - WebInspector.notifications.dispatchEventToListeners(WebInspector.NotificationService.Events.InspectorLoaded); }, _registerForwardedShortcuts: function() @@ -401,16 +397,16 @@ WebInspector.Main.prototype = { _registerMessageSinkListener: function() { - WebInspector.messageSink.addEventListener(WebInspector.MessageSink.Events.MessageAdded, messageAdded); + WebInspector.console.addEventListener(WebInspector.Console.Events.MessageAdded, messageAdded); /** * @param {!WebInspector.Event} event */ function messageAdded(event) { - var message = /** @type {!WebInspector.MessageSink.Message} */ (event.data); + var message = /** @type {!WebInspector.Console.Message} */ (event.data); if (message.show) - WebInspector.actionRegistry.execute("console.show"); + WebInspector.console.show(); } }, @@ -488,6 +484,8 @@ WebInspector.Main.prototype = { 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.overridesSupport.responsiveDesignAvailable()) + section.addKey(shortcut.makeDescriptor("M", shortcut.Modifiers.CtrlOrMeta | shortcut.Modifiers.Shift), WebInspector.UIString("Toggle device mode")); section.addKey(shortcut.makeDescriptor("f", shortcut.Modifiers.CtrlOrMeta), WebInspector.UIString("Search")); var advancedSearchShortcutModifier = WebInspector.isMac() @@ -529,14 +527,30 @@ WebInspector.Main.prototype = { _documentCanCopy: function(event) { - if (WebInspector.inspectorView.currentPanel() && WebInspector.inspectorView.currentPanel()["handleCopyEvent"]) + var panel = WebInspector.inspectorView.currentPanel(); + if (panel && panel["handleCopyEvent"]) event.preventDefault(); }, _documentCopy: function(event) { - if (WebInspector.inspectorView.currentPanel() && WebInspector.inspectorView.currentPanel()["handleCopyEvent"]) - WebInspector.inspectorView.currentPanel()["handleCopyEvent"](event); + var panel = WebInspector.inspectorView.currentPanel(); + if (panel && panel["handleCopyEvent"]) + panel["handleCopyEvent"](event); + }, + + _documentCut: function(event) + { + var panel = WebInspector.inspectorView.currentPanel(); + if (panel && panel["handleCutEvent"]) + panel["handleCutEvent"](event); + }, + + _documentPaste: function(event) + { + var panel = WebInspector.inspectorView.currentPanel(); + if (panel && panel["handlePasteEvent"]) + panel["handlePasteEvent"](event); }, _contextMenuEventFired: function(event) @@ -550,6 +564,8 @@ WebInspector.Main.prototype = { doc.addEventListener("keydown", this._postDocumentKeyDown.bind(this), false); doc.addEventListener("beforecopy", this._documentCanCopy.bind(this), true); doc.addEventListener("copy", this._documentCopy.bind(this), false); + doc.addEventListener("cut", this._documentCut.bind(this), false); + doc.addEventListener("paste", this._documentPaste.bind(this), false); doc.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true); doc.addEventListener("click", this._documentClick.bind(this), false); }, @@ -563,46 +579,28 @@ WebInspector.Main.prototype = { { var object = WebInspector.runtimeModel.createRemoteObject(payload); if (object.isNode()) { - object.pushNodeToFrontend(callback); - var elementsPanel = /** @type {!WebInspector.ElementsPanel} */ (WebInspector.inspectorView.panel("elements")); - elementsPanel.omitDefaultSelection(); - WebInspector.inspectorView.setCurrentPanel(elementsPanel); + var nodeObjectInspector = runtime.instance(WebInspector.NodeRemoteObjectInspector, object); + if (nodeObjectInspector) + nodeObjectInspector.inspectNodeObject(object); return; } - /** - * @param {!WebInspector.DOMNode} node - */ - function callback(node) - { - elementsPanel.stopOmittingDefaultSelection(); - node.reveal(); - if (!WebInspector.inspectorView.drawerVisible() && !WebInspector._notFirstInspectElement) - InspectorFrontendHost.inspectElementCompleted(); - WebInspector._notFirstInspectElement = true; - object.release(); - } - if (object.type === "function") { - /** - * @param {?Protocol.Error} error - * @param {!DebuggerAgent.FunctionDetails} response - */ object.functionDetails(didGetDetails); return; } /** - * @param {?DebuggerAgent.FunctionDetails} response + * @param {?WebInspector.DebuggerModel.FunctionDetails} response */ function didGetDetails(response) { object.release(); - if (!response) + if (!response || !response.location) return; - WebInspector.Revealer.reveal(WebInspector.DebuggerModel.Location.fromPayload(object.target(), response.location).toUILocation()); + WebInspector.Revealer.reveal(WebInspector.debuggerWorkspaceBinding.rawLocationToUILocation(response.location)); } if (hints.copyToClipboard) @@ -720,7 +718,7 @@ WebInspector.Main.ZoomInActionDelegate.prototype = { */ handleAction: function() { - if (InspectorFrontendHost.isStub) + if (InspectorFrontendHost.isHostedMode()) return false; InspectorFrontendHost.zoomIn(); @@ -742,7 +740,7 @@ WebInspector.Main.ZoomOutActionDelegate.prototype = { */ handleAction: function() { - if (InspectorFrontendHost.isStub) + if (InspectorFrontendHost.isHostedMode()) return false; InspectorFrontendHost.zoomOut(); @@ -764,7 +762,7 @@ WebInspector.Main.ZoomResetActionDelegate.prototype = { */ handleAction: function() { - if (InspectorFrontendHost.isStub) + if (InspectorFrontendHost.isHostedMode()) return false; InspectorFrontendHost.resetZoom(); @@ -828,3 +826,84 @@ WebInspector.panel = function(name) { return WebInspector.inspectorView.panel(name); } + +/** + * @constructor + * @implements {WebInspector.StatusBarItem.Provider} + */ +WebInspector.Main.WarningErrorCounter = function() +{ + this._counter = new WebInspector.StatusBarCounter(["error-icon-small", "warning-icon-small"]); + this._counter.addEventListener("click", showConsole); + + function showConsole() + { + WebInspector.console.show(); + } + + WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared, this._updateErrorAndWarningCounts, this); + WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded, this._updateErrorAndWarningCounts, this); +} + +WebInspector.Main.WarningErrorCounter.prototype = { + _updateErrorAndWarningCounts: function() + { + var errors = 0; + var warnings = 0; + var targets = WebInspector.targetManager.targets(); + for (var i = 0; i < targets.length; ++i) { + errors = errors + targets[i].consoleModel.errors; + warnings = warnings + targets[i].consoleModel.warnings; + } + this._counter.setCounter("error-icon-small", errors, WebInspector.UIString(errors > 1 ? "%d errors" : "%d error", errors)); + this._counter.setCounter("warning-icon-small", warnings, WebInspector.UIString(warnings > 1 ? "%d warnings" : "%d warning", warnings)); + WebInspector.inspectorView.toolbarItemResized(); + }, + + /** + * @return {?WebInspector.StatusBarItem} + */ + item: function() + { + return this._counter; + } +} + +/** + * @constructor + */ +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 debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target); + WebInspector.context.setFlavor(WebInspector.Target, debuggerModel.target()); + WebInspector.inspectorView.showPanel("sources"); + } +} + +/** + * @constructor + */ +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) + { + WebInspector.Revealer.reveal(/** @type {!WebInspector.DOMNode} */ (event.data)); + } +}