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 |