Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(564)

Unified Diff: extensions/browser/guest_view/guest_view_events.cc

Issue 1272373003: Add extension event histogram values for messaging, webRequest, and webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/guest_view/guest_view_events.cc
diff --git a/extensions/browser/guest_view/guest_view_events.cc b/extensions/browser/guest_view/guest_view_events.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7f4bbef11da42039a977c1db45619befeec6d7fa
--- /dev/null
+++ b/extensions/browser/guest_view/guest_view_events.cc
@@ -0,0 +1,98 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/browser/guest_view/guest_view_events.h"
+
+#include <map>
+
+#include "base/lazy_instance.h"
+#include "components/guest_view/common/guest_view_constants.h"
+#include "extensions/browser/guest_view/extension_options/extension_options_constants.h"
+#include "extensions/browser/guest_view/extension_view/extension_view_constants.h"
+#include "extensions/browser/guest_view/web_view/web_view_constants.h"
+#include "extensions/common/api/extension_options_internal.h"
+
+namespace extensions {
+namespace guest_view_events {
+
+namespace {
+
+class EventMap {
+ public:
+ EventMap() {
+ struct ValueAndName {
+ events::HistogramValue value;
+ const char* name;
+ } values_and_names[] = {
+ {events::CHROME_WEB_VIEW_INTERNAL_ON_CONTEXT_MENU_SHOW,
+ webview::kEventContextMenuShow},
+ {events::EXTENSION_OPTIONS_INTERNAL_ON_CLOSE,
+ api::extension_options_internal::OnClose::kEventName},
+ {events::EXTENSION_OPTIONS_INTERNAL_ON_LOAD,
+ api::extension_options_internal::OnLoad::kEventName},
+ {events::EXTENSION_VIEW_INTERNAL_ON_LOAD_COMMIT,
+ extensionview::kEventLoadCommit},
+ {events::GUEST_VIEW_INTERNAL_ON_RESIZE, guest_view::kEventResize},
+ {events::WEB_VIEW_INTERNAL_ON_BEFORE_REQUEST,
+ webview::kEventBeforeRequest},
+ {events::WEB_VIEW_INTERNAL_ON_BEFORE_SEND_HEADERS,
+ webview::kEventBeforeSendHeaders},
+ {events::WEB_VIEW_INTERNAL_ON_CLOSE, webview::kEventClose},
+ {events::WEB_VIEW_INTERNAL_ON_COMPLETED, webview::kEventCompleted},
+ {events::WEB_VIEW_INTERNAL_ON_CONSOLE_MESSAGE,
+ webview::kEventConsoleMessage},
+ {events::WEB_VIEW_INTERNAL_ON_CONTENT_LOAD, webview::kEventContentLoad},
+ {events::WEB_VIEW_INTERNAL_ON_DIALOG, webview::kEventDialog},
+ {events::WEB_VIEW_INTERNAL_ON_DROP_LINK, webview::kEventDropLink},
+ {events::WEB_VIEW_INTERNAL_ON_EXIT, webview::kEventExit},
+ {events::WEB_VIEW_INTERNAL_ON_EXIT_FULLSCREEN,
+ webview::kEventExitFullscreen},
+ {events::WEB_VIEW_INTERNAL_ON_FIND_REPLY, webview::kEventFindReply},
+ {events::WEB_VIEW_INTERNAL_ON_HEADERS_RECEIVED,
+ webview::kEventHeadersReceived},
+ {events::WEB_VIEW_INTERNAL_ON_FRAME_NAME_CHANGED,
+ webview::kEventFrameNameChanged},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_ABORT, webview::kEventLoadAbort},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_COMMIT, webview::kEventLoadCommit},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_PROGRESS,
+ webview::kEventLoadProgress},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_REDIRECT,
+ webview::kEventLoadRedirect},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_START, webview::kEventLoadStart},
+ {events::WEB_VIEW_INTERNAL_ON_LOAD_STOP, webview::kEventLoadStop},
+ {events::WEB_VIEW_INTERNAL_ON_NEW_WINDOW, webview::kEventNewWindow},
+ {events::WEB_VIEW_INTERNAL_ON_PERMISSION_REQUEST,
+ webview::kEventPermissionRequest},
+ {events::WEB_VIEW_INTERNAL_ON_RESPONSE_STARTED,
+ webview::kEventResponseStarted},
+ {events::WEB_VIEW_INTERNAL_ON_RESPONSIVE, webview::kEventResponsive},
+ {events::WEB_VIEW_INTERNAL_ON_SIZE_CHANGED, webview::kEventSizeChanged},
+ {events::WEB_VIEW_INTERNAL_ON_UNRESPONSIVE,
+ webview::kEventUnresponsive},
+ {events::WEB_VIEW_INTERNAL_ON_ZOOM_CHANGE, webview::kEventZoomChange},
+ };
+ for (const ValueAndName& value_and_name : values_and_names) {
+ values_[value_and_name.name] = value_and_name.value;
+ }
+ }
+
+ events::HistogramValue Find(const std::string& event_name) {
+ auto value = values_.find(event_name);
+ return value != values_.end() ? value->second : events::UNKNOWN;
+ }
+
+ private:
+ std::map<std::string, events::HistogramValue> values_;
Devlin 2015/08/05 21:34:09 Do we not support map brace initialization? It's
not at google - send to devlin 2015/08/07 20:55:03 Neat! But sadly not allowed.
+};
Devlin 2015/08/05 21:34:09 DISALLOW_COPY_AND_ASSIGN
not at google - send to devlin 2015/08/07 20:55:03 Done.
+
+base::LazyInstance<EventMap> g_event_map = LAZY_INSTANCE_INITIALIZER;
+
+} // namespace
+
+events::HistogramValue GetEventHistogramValue(const std::string& event_name) {
+ return g_event_map.Get().Find(event_name);
+}
+
+} // namespace guest_view_events
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698