}
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)
{
}
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"]);
}
},
console.error(error);
return;
}
- InspectorFrontendHost.inspectedURLChanged(result.value);
+ InspectorFrontendHost.inspectedURLChanged(String(result.value));
}
},
{
if (result) {
pauseAndResume.call(this);
- } else if (!Capabilities.isMainFrontend) {
+ } else if (WebInspector.isWorkerFrontend()) {
calculateTitle.call(this);
}
}
}
},
- _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);
/**
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()
{
}
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()
_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();
}
},
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()
_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)
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);
},
{
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)
*/
handleAction: function()
{
- if (InspectorFrontendHost.isStub)
+ if (InspectorFrontendHost.isHostedMode())
return false;
InspectorFrontendHost.zoomIn();
*/
handleAction: function()
{
- if (InspectorFrontendHost.isStub)
+ if (InspectorFrontendHost.isHostedMode())
return false;
InspectorFrontendHost.zoomOut();
*/
handleAction: function()
{
- if (InspectorFrontendHost.isStub)
+ if (InspectorFrontendHost.isHostedMode())
return false;
InspectorFrontendHost.resetZoom();
{
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));
+ }
+}