Diff
Modified: trunk/LayoutTests/ChangeLog (90829 => 90830)
--- trunk/LayoutTests/ChangeLog 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/LayoutTests/ChangeLog 2011-07-12 18:20:16 UTC (rev 90830)
@@ -1,3 +1,13 @@
+2011-07-12 Pavel Feldman <[email protected]>
+
+ Web Inspector: introduce UserMetrics for collecting stats in Chromium port.
+ https://bugs.webkit.org/show_bug.cgi?id=64350
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/user-metrics-expected.txt: Added.
+ * inspector/user-metrics.html: Added.
+
2011-07-12 Jeff Timanus <[email protected]>
Reviewed by Stephen White.
Added: trunk/LayoutTests/inspector/user-metrics-expected.txt (0 => 90830)
--- trunk/LayoutTests/inspector/user-metrics-expected.txt (rev 0)
+++ trunk/LayoutTests/inspector/user-metrics-expected.txt 2011-07-12 18:20:16 UTC (rev 90830)
@@ -0,0 +1,49 @@
+Tests list of user metrics codes and invocations.
+
+recordActionTaken:
+{
+ WindowDocked : 1
+ WindowUndocked : 2
+ ScriptsBreakpointSet : 3
+ TimelineStarted : 4
+ ProfilesCPUProfileTaken : 5
+ ProfilesHeapProfileTaken : 6
+ AuditsStarted : 7
+ ConsoleEvaluated : 8
+}
+Action taken: WindowDocked
+Action taken: WindowUndocked
+
+recordPanelShown:
+{
+ elements : 1
+ resources : 2
+ network : 3
+ scripts : 4
+ timeline : 5
+ profiles : 6
+ audits : 7
+ console : 8
+}
+Panel shown: profiles
+Panel shown: timeline
+Panel shown: audits
+
+recordSettingChanged:
+{
+ ElementsDOMWrapOn : 1
+ ElementsDOMWrapOff : 2
+ ConsoleMonitorXHROn : 3
+ ConsoleMonitorXHROff : 4
+ ConsolePreserveLogOn : 5
+ ConsolePreserveLogOff : 6
+ NetworkShowLargeRowsOn : 7
+ NetworkShowLargeRowsOff : 8
+}
+Setting changed: ConsoleMonitorXHROn
+Setting changed: ConsoleMonitorXHROff
+Setting changed: ConsolePreserveLogOn
+Setting changed: ConsolePreserveLogOff
+Setting changed: NetworkShowLargeRowsOff
+Setting changed: NetworkShowLargeRowsOn
+
Property changes on: trunk/LayoutTests/inspector/user-metrics-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/inspector/user-metrics.html (0 => 90830)
--- trunk/LayoutTests/inspector/user-metrics.html (rev 0)
+++ trunk/LayoutTests/inspector/user-metrics.html 2011-07-12 18:20:16 UTC (rev 90830)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<script src=""
+<script>
+
+function test()
+{
+ InspectorFrontendHost.recordActionTaken = function(actionCode)
+ {
+ InspectorTest.addResult("Action taken: " + nameOf(WebInspector.UserMetrics._ActionCodes, actionCode));
+ }
+
+ InspectorFrontendHost.recordPanelShown = function(panelCode)
+ {
+ InspectorTest.addResult("Panel shown: " + nameOf(WebInspector.UserMetrics._PanelCodes, panelCode));
+ }
+
+ InspectorFrontendHost.recordSettingChanged = function(settingCode)
+ {
+ InspectorTest.addResult("Setting changed: " + nameOf(WebInspector.UserMetrics._SettingCodes, settingCode));
+ }
+
+ function nameOf(object, code)
+ {
+ for (var name in object) {
+ if (object[name] === code)
+ return name;
+ }
+ return null;
+ }
+
+ InspectorTest.addResult("recordActionTaken:");
+ InspectorTest.dump(WebInspector.UserMetrics._ActionCodes);
+ WebInspector.userMetrics.WindowDocked.record();
+ WebInspector.userMetrics.WindowUndocked.record();
+
+ InspectorTest.addResult("\nrecordPanelShown:");
+ InspectorTest.dump(WebInspector.UserMetrics._PanelCodes);
+ WebInspector.showPanel("profiles");
+ WebInspector.showPanel("timeline");
+ WebInspector.showPanel("audits");
+
+ InspectorTest.addResult("\nrecordSettingChanged:");
+ InspectorTest.dump(WebInspector.UserMetrics._SettingCodes);
+ WebInspector.settings.monitoringXHREnabled.set(true);
+ WebInspector.settings.monitoringXHREnabled.set(false);
+ WebInspector.settings.preserveConsoleLog.set(true);
+ WebInspector.settings.preserveConsoleLog.set(false);
+ WebInspector.settings.resourcesLargeRows.set(false);
+ WebInspector.settings.resourcesLargeRows.set(true);
+
+ InspectorTest.completeTest();
+}
+
+</script>
+</head>
+
+<body _onload_="runTest()">
+<p>Tests list of user metrics codes and invocations.</p>
+
+</body>
+</html>
Property changes on: trunk/LayoutTests/inspector/user-metrics.html
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (90829 => 90830)
--- trunk/Source/WebCore/ChangeLog 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/ChangeLog 2011-07-12 18:20:16 UTC (rev 90830)
@@ -1,3 +1,51 @@
+2011-07-12 Pavel Feldman <[email protected]>
+
+ Web Inspector: introduce UserMetrics for collecting stats in Chromium port.
+ https://bugs.webkit.org/show_bug.cgi?id=64350
+
+ Reviewed by Yury Semikhatsky.
+
+ Test: inspector/user-metrics.html
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * bindings/js/JSInspectorFrontendHostCustom.cpp:
+ (WebCore::JSInspectorFrontendHost::recordActionTaken):
+ (WebCore::JSInspectorFrontendHost::recordPanelShown):
+ (WebCore::JSInspectorFrontendHost::recordSettingChanged):
+ * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
+ (WebCore::histogramEnumeration):
+ (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
+ (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
+ (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
+ * inspector/InspectorFrontendHost.idl:
+ * inspector/front-end/AuditsPanel.js:
+ (WebInspector.AuditsPanel.prototype.initiateAudit):
+ * inspector/front-end/ConsoleView.js:
+ * inspector/front-end/DebuggerModel.js:
+ (WebInspector.DebuggerModel.prototype.setBreakpoint):
+ (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
+ * inspector/front-end/InspectorFrontendHostStub.js:
+ (.WebInspector.InspectorFrontendHostStub.prototype.loadSessionSetting):
+ (.WebInspector.InspectorFrontendHostStub.prototype.recordActionTaken):
+ (.WebInspector.InspectorFrontendHostStub.prototype.recordPanelShown):
+ (.WebInspector.InspectorFrontendHostStub.prototype.recordSettingChanged):
+ * inspector/front-end/ProfilesPanel.js:
+ (WebInspector.ProfilesPanel.prototype._setRecordingProfile):
+ (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
+ * inspector/front-end/UserMetrics.js: Added.
+ (WebInspector.UserMetrics.settingChanged):
+ (WebInspector.UserMetrics):
+ (WebInspector.UserMetrics.prototype.panelShown):
+ (WebInspector.UserMetrics._Recorder):
+ (WebInspector.UserMetrics._Recorder.prototype.record):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector._toggleAttach):
+
2011-07-12 Pratik Solanki <[email protected]>
Reviewed by David Kilzer.
Modified: trunk/Source/WebCore/WebCore.gypi (90829 => 90830)
--- trunk/Source/WebCore/WebCore.gypi 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/WebCore.gypi 2011-07-12 18:20:16 UTC (rev 90830)
@@ -6366,6 +6366,7 @@
'inspector/front-end/Toolbar.js',
'inspector/front-end/TopDownProfileDataGridTree.js',
'inspector/front-end/treeoutline.js',
+ 'inspector/front-end/UserMetrics.js',
'inspector/front-end/utilities.js',
'inspector/front-end/View.js',
'inspector/front-end/WatchExpressionsSidebarPane.js',
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (90829 => 90830)
--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2011-07-12 18:20:16 UTC (rev 90830)
@@ -68429,6 +68429,10 @@
>
</File>
<File
+ RelativePath="..\inspector\front-end\UserMetrics.js"
+ >
+ </File>
+ <File
RelativePath="..\inspector\front-end\utilities.js"
>
</File>
Modified: trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (90829 => 90830)
--- trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp 2011-07-12 18:20:16 UTC (rev 90830)
@@ -126,6 +126,21 @@
return jsUndefined();
}
+JSValue JSInspectorFrontendHost::recordActionTaken(ExecState*)
+{
+ return jsUndefined();
+}
+
+JSValue JSInspectorFrontendHost::recordPanelShown(ExecState*)
+{
+ return jsUndefined();
+}
+
+JSValue JSInspectorFrontendHost::recordSettingChanged(ExecState*)
+{
+ return jsUndefined();
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
Modified: trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (90829 => 90830)
--- trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp 2011-07-12 18:20:16 UTC (rev 90830)
@@ -35,6 +35,7 @@
#include "InspectorController.h"
#include "InspectorFrontendClient.h"
#include "InspectorFrontendHost.h"
+#include "PlatformBridge.h"
#include "PlatformString.h"
#include "V8Binding.h"
@@ -114,6 +115,33 @@
return v8::Undefined();
}
+static v8::Handle<v8::Value> histogramEnumeration(const char* name, const v8::Arguments& args, int boundaryValue)
+{
+ if (args.Length() < 1 || !args[0]->IsInt32())
+ return v8::Undefined();
+
+ int sample = args[0]->ToInt32()->Value();
+ if (sample < boundaryValue)
+ PlatformBridge::histogramEnumeration(name, sample, boundaryValue);
+
+ return v8::Undefined();
+}
+
+v8::Handle<v8::Value> V8InspectorFrontendHost::recordActionTakenCallback(const v8::Arguments& args)
+{
+ return histogramEnumeration("DevTools.ActionTaken", args, 100);
+}
+
+v8::Handle<v8::Value> V8InspectorFrontendHost::recordPanelShownCallback(const v8::Arguments& args)
+{
+ return histogramEnumeration("DevTools.PanelShown", args, 20);
+}
+
+v8::Handle<v8::Value> V8InspectorFrontendHost::recordSettingChangedCallback(const v8::Arguments& args)
+{
+ return histogramEnumeration("DevTools.SettingChanged", args, 100);
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.idl (90829 => 90830)
--- trunk/Source/WebCore/inspector/InspectorFrontendHost.idl 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.idl 2011-07-12 18:20:16 UTC (rev 90830)
@@ -60,5 +60,9 @@
[Custom] DOMString port();
[Custom] void showContextMenu(in MouseEvent event, in DOMObject items);
void sendMessageToBackend(in DOMString message);
+
+ [Custom] void recordActionTaken(in unsigned long actionCode);
+ [Custom] void recordPanelShown(in unsigned long panelCode);
+ [Custom] void recordSettingChanged(in unsigned long settingChanged);
};
}
Modified: trunk/Source/WebCore/inspector/front-end/AuditsPanel.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/AuditsPanel.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/AuditsPanel.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -190,6 +190,8 @@
initiateAuditCallback.call(this, categories, launcherCallback);
else
this._reloadResources(initiateAuditCallback.bind(this, categories, launcherCallback));
+
+ WebInspector.userMetrics.AuditsStarted.record();
},
_reloadResources: function(callback)
Modified: trunk/Source/WebCore/inspector/front-end/ConsoleView.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/ConsoleView.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/ConsoleView.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -609,6 +609,8 @@
self.addMessage(new WebInspector.ConsoleCommandResult(result, wasThrown, commandMessage));
}
this.evalInInspectedWindow(str, "console", true, printResult);
+
+ WebInspector.userMetrics.ConsoleEvaluated.record();
},
_format: function(output, forceObjectFormat)
Modified: trunk/Source/WebCore/inspector/front-end/DebuggerModel.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/DebuggerModel.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/DebuggerModel.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -90,6 +90,7 @@
callback(error ? null : breakpointId, locations);
}
DebuggerAgent.setBreakpointByUrl(url, lineNumber, columnNumber, condition, didSetBreakpoint.bind(this));
+ WebInspector.userMetrics.ScriptsBreakpointSet.record();
},
setBreakpointBySourceId: function(location, condition, callback)
@@ -100,6 +101,7 @@
callback(error ? null : breakpointId, [actualLocation]);
}
DebuggerAgent.setBreakpoint(location, condition, didSetBreakpoint.bind(this));
+ WebInspector.userMetrics.ScriptsBreakpointSet.record();
},
removeBreakpoint: function(breakpointId, callback)
Modified: trunk/Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -144,6 +144,18 @@
loadSessionSetting: function(key)
{
+ },
+
+ recordActionTaken: function(actionCode)
+ {
+ },
+
+ recordPanelShown: function(panelCode)
+ {
+ },
+
+ recordSettingChanged: function(settingCode)
+ {
}
}
Modified: trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -658,9 +658,10 @@
isTemporary: true
};
}
- if (isProfiling)
+ if (isProfiling) {
this._addProfileHeader(this._temporaryRecordingProfile);
- else
+ WebInspector.userMetrics.ProfilesCPUProfileTaken.record();
+ } else
this._removeProfileHeader(this._temporaryRecordingProfile);
}
this.updateProfileTypeButtons();
@@ -680,6 +681,7 @@
this._addProfileHeader(this._temporaryTakingSnapshot);
}
ProfilerAgent.takeHeapSnapshot();
+ WebInspector.userMetrics.ProfilesHeapProfileTaken.record();
},
_reportHeapSnapshotProgress: function(done, total)
Modified: trunk/Source/WebCore/inspector/front-end/TimelinePanel.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/TimelinePanel.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/TimelinePanel.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -278,6 +278,7 @@
else {
this._clearPanel();
WebInspector.timelineManager.start();
+ WebInspector.userMetrics.TimelineStarted.record();
}
this.toggleTimelineButton.toggled = !this.toggleTimelineButton.toggled;
},
Added: trunk/Source/WebCore/inspector/front-end/UserMetrics.js (0 => 90830)
--- trunk/Source/WebCore/inspector/front-end/UserMetrics.js (rev 0)
+++ trunk/Source/WebCore/inspector/front-end/UserMetrics.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WebInspector.UserMetrics = function()
+{
+ for (var actionName in WebInspector.UserMetrics._ActionCodes) {
+ var actionCode = WebInspector.UserMetrics._ActionCodes[actionName];
+ this[actionName] = new WebInspector.UserMetrics._Recorder(actionCode);
+ }
+
+ function settingChanged(trueCode, falseCode, event)
+ {
+ if (event.data)
+ InspectorFrontendHost.recordSettingChanged(trueCode);
+ else
+ InspectorFrontendHost.recordSettingChanged(falseCode);
+ }
+
+ WebInspector.settings.domWordWrap.addChangeListener(settingChanged.bind(this, WebInspector.UserMetrics._SettingCodes.ElementsDOMWrapOn, WebInspector.UserMetrics._SettingCodes.ElementsDOMWrapOff));
+ WebInspector.settings.monitoringXHREnabled.addChangeListener(settingChanged.bind(this, WebInspector.UserMetrics._SettingCodes.ConsoleMonitorXHROn, WebInspector.UserMetrics._SettingCodes.ConsoleMonitorXHROff));
+ WebInspector.settings.preserveConsoleLog.addChangeListener(settingChanged.bind(this, WebInspector.UserMetrics._SettingCodes.ConsolePreserveLogOn, WebInspector.UserMetrics._SettingCodes.ConsolePreserveLogOff));
+ WebInspector.settings.resourcesLargeRows.addChangeListener(settingChanged.bind(this, WebInspector.UserMetrics._SettingCodes.NetworkShowLargeRowsOn, WebInspector.UserMetrics._SettingCodes.NetworkShowLargeRowsOff));
+}
+
+// Codes below are used to collect UMA histograms in the Chromium port.
+// Do not change the values below, additional actions are needed on the Chromium side
+// in order to add more codes.
+
+WebInspector.UserMetrics._ActionCodes = {
+ WindowDocked: 1,
+ WindowUndocked: 2,
+ ScriptsBreakpointSet: 3,
+ TimelineStarted: 4,
+ ProfilesCPUProfileTaken: 5,
+ ProfilesHeapProfileTaken: 6,
+ AuditsStarted: 7,
+ ConsoleEvaluated: 8
+}
+
+WebInspector.UserMetrics._SettingCodes = {
+ ElementsDOMWrapOn: 1,
+ ElementsDOMWrapOff: 2,
+ ConsoleMonitorXHROn: 3,
+ ConsoleMonitorXHROff: 4,
+ ConsolePreserveLogOn: 5,
+ ConsolePreserveLogOff: 6,
+ NetworkShowLargeRowsOn: 7,
+ NetworkShowLargeRowsOff: 8
+}
+
+WebInspector.UserMetrics._PanelCodes = {
+ elements: 1,
+ resources: 2,
+ network: 3,
+ scripts: 4,
+ timeline: 5,
+ profiles: 6,
+ audits: 7,
+ console: 8
+}
+
+WebInspector.UserMetrics.prototype = {
+ panelShown: function(panelName)
+ {
+ InspectorFrontendHost.recordPanelShown(WebInspector.UserMetrics._PanelCodes[panelName] || 0);
+ }
+}
+
+WebInspector.UserMetrics._Recorder = function(actionCode)
+{
+ this._actionCode = actionCode;
+}
+
+WebInspector.UserMetrics._Recorder.prototype = {
+ record: function()
+ {
+ InspectorFrontendHost.recordActionTaken(this._actionCode);
+ }
+}
Property changes on: trunk/Source/WebCore/inspector/front-end/UserMetrics.js
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/inspector/front-end/WebKit.qrc (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/WebKit.qrc 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/WebKit.qrc 2011-07-12 18:20:16 UTC (rev 90830)
@@ -125,6 +125,7 @@
<file>Toolbar.js</file>
<file>TopDownProfileDataGridTree.js</file>
<file>treeoutline.js</file>
+ <file>UserMetrics.js</file>
<file>utilities.js</file>
<file>View.js</file>
<file>WatchExpressionsSidebarPane.js</file>
Modified: trunk/Source/WebCore/inspector/front-end/inspector.html (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/inspector.html 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/inspector.html 2011-07-12 18:20:16 UTC (rev 90830)
@@ -167,6 +167,7 @@
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
+ <script type="text/_javascript_" src=""
</head>
<body class="detached">
<div id="toolbar">
Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (90829 => 90830)
--- trunk/Source/WebCore/inspector/front-end/inspector.js 2011-07-12 18:13:41 UTC (rev 90829)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js 2011-07-12 18:20:16 UTC (rev 90830)
@@ -147,6 +147,7 @@
if (WebInspector.panels[panelName] === x) {
WebInspector.settings.lastActivePanel.set(panelName);
this._panelHistory.setPanel(panelName);
+ WebInspector.userMetrics.panelShown(panelName);
}
}
},
@@ -202,10 +203,13 @@
_toggleAttach: function()
{
- if (!this._attached)
+ if (!this._attached) {
InspectorFrontendHost.requestAttachWindow();
- else
+ WebInspector.userMetrics.WindowDocked.record();
+ } else {
InspectorFrontendHost.requestDetachWindow();
+ WebInspector.userMetrics.WindowUndocked.record();
+ }
},
_toggleSettings: function()
@@ -483,6 +487,7 @@
document.body.addStyleClass("remote");
WebInspector.settings = new WebInspector.Settings();
+ WebInspector.userMetrics = new WebInspector.UserMetrics();
this._registerShortcuts();