Commit 1c8ce46b authored by sergeyv@chromium.org's avatar sergeyv@chromium.org

Devtools: UMA for InspectElement loading time was added

BUG=

Review URL: https://codereview.chromium.org/137383005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247994 0039d316-1c4b-4281-b951-d872f2087c98
parent 70f57730
......@@ -161,6 +161,9 @@ DevToolsEmbedderMessageDispatcher::DevToolsEmbedderMessageDispatcher(
RegisterHandler("setContentsInsets",
BindToListParser(base::Bind(&Delegate::SetContentsInsets,
base::Unretained(delegate))));
RegisterHandler("inspectElementCompleted",
BindToListParser(base::Bind(&Delegate::InspectElementCompleted,
base::Unretained(delegate))));
RegisterHandler("moveWindowBy",
BindToListParser(base::Bind(&Delegate::MoveWindow,
base::Unretained(delegate))));
......
......@@ -30,6 +30,7 @@ class DevToolsEmbedderMessageDispatcher {
virtual void CloseWindow() = 0;
virtual void SetContentsInsets(
int top, int left, int bottom, int right) = 0;
virtual void InspectElementCompleted() = 0;
virtual void MoveWindow(int x, int y) = 0;
virtual void SetIsDocked(bool is_docked) = 0;
virtual void OpenInNewTab(const std::string& url) = 0;
......
......@@ -10,10 +10,12 @@
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/lazy_instance.h"
#include "base/metrics/histogram.h"
#include "base/prefs/scoped_user_pref_update.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
......@@ -469,9 +471,13 @@ void DevToolsWindow::InspectElement(content::RenderViewHost* inspected_rvh,
scoped_refptr<DevToolsAgentHost> agent(
DevToolsAgentHost::GetOrCreateFor(inspected_rvh));
agent->InspectElement(x, y);
bool should_measure_time = FindDevToolsWindow(agent.get()) == NULL;
base::TimeTicks start_time = base::TimeTicks::Now();
// TODO(loislo): we should initiate DevTools window opening from within
// renderer. Otherwise, we still can hit a race condition here.
OpenDevToolsWindow(inspected_rvh);
DevToolsWindow* window = OpenDevToolsWindow(inspected_rvh);
if (should_measure_time)
window->inspect_element_start_time_ = start_time;
}
// static
......@@ -1013,6 +1019,14 @@ void DevToolsWindow::SetContentsInsets(
}
}
void DevToolsWindow::InspectElementCompleted() {
if (!inspect_element_start_time_.is_null()) {
UMA_HISTOGRAM_TIMES("DevTools.InspectElement",
base::TimeTicks::Now() - inspect_element_start_time_);
inspect_element_start_time_ = base::TimeTicks();
}
}
void DevToolsWindow::MoveWindow(int x, int y) {
if (!is_docked_) {
gfx::Rect bounds = browser_->window()->GetBounds();
......
......@@ -301,6 +301,7 @@ class DevToolsWindow : private content::NotificationObserver,
virtual void CloseWindow() OVERRIDE;
virtual void SetContentsInsets(
int left, int top, int right, int bottom) OVERRIDE;
virtual void InspectElementCompleted() OVERRIDE;
virtual void MoveWindow(int x, int y) OVERRIDE;
virtual void SetIsDocked(bool is_docked) OVERRIDE;
virtual void OpenInNewTab(const std::string& url) OVERRIDE;
......@@ -388,6 +389,7 @@ class DevToolsWindow : private content::NotificationObserver,
scoped_ptr<DevToolsEmbedderMessageDispatcher> embedder_message_dispatcher_;
base::WeakPtrFactory<DevToolsWindow> weak_factory_;
base::TimeTicks inspect_element_start_time_;
DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
};
......
......@@ -1834,6 +1834,13 @@ other types of suffix sets.
</summary>
</histogram>
<histogram name="DevTools.InspectElement" units="milliseconds">
<summary>
Time to load Developer Tools when user clicks Inspect Element in the context
menu.
</summary>
</histogram>
<histogram name="Diagnostics.Recovery.ConflictingDlls" enum="DiagnosticsResult">
<summary>
TBD - Not run automatically yet, so this is just a placeholder for future
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment