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..843083bc7ba3bc049146273792b35104b0456557 |
--- /dev/null |
+++ b/extensions/browser/guest_view/guest_view_events.cc |
@@ -0,0 +1,102 @@ |
+// 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 NameAndValue { |
+ const char* name; |
+ events::HistogramValue value; |
+ } names_and_values[] = { |
+ {webview::kEventContextMenuShow, |
+ events::CHROME_WEB_VIEW_INTERNAL_ON_CONTEXT_MENU_SHOW}, |
+ {api::extension_options_internal::OnClose::kEventName, |
+ events::EXTENSION_OPTIONS_INTERNAL_ON_CLOSE}, |
+ {api::extension_options_internal::OnLoad::kEventName, |
+ events::EXTENSION_OPTIONS_INTERNAL_ON_LOAD}, |
+ {api::extension_options_internal::OnPreferredSizeChanged::kEventName, |
+ events::EXTENSION_OPTIONS_INTERNAL_ON_PREFERRED_SIZE_CHANGED}, |
+ {extensionview::kEventLoadCommit, |
+ events::EXTENSION_VIEW_INTERNAL_ON_LOAD_COMMIT}, |
+ {guest_view::kEventResize, events::GUEST_VIEW_INTERNAL_ON_RESIZE}, |
+ {webview::kEventBeforeRequest, |
+ events::WEB_VIEW_INTERNAL_ON_BEFORE_REQUEST}, |
+ {webview::kEventBeforeSendHeaders, |
+ events::WEB_VIEW_INTERNAL_ON_BEFORE_SEND_HEADERS}, |
+ {webview::kEventClose, events::WEB_VIEW_INTERNAL_ON_CLOSE}, |
+ {webview::kEventCompleted, events::WEB_VIEW_INTERNAL_ON_COMPLETED}, |
+ {webview::kEventConsoleMessage, |
+ events::WEB_VIEW_INTERNAL_ON_CONSOLE_MESSAGE}, |
+ {webview::kEventContentLoad, events::WEB_VIEW_INTERNAL_ON_CONTENT_LOAD}, |
+ {webview::kEventDialog, events::WEB_VIEW_INTERNAL_ON_DIALOG}, |
+ {webview::kEventDropLink, events::WEB_VIEW_INTERNAL_ON_DROP_LINK}, |
+ {webview::kEventExit, events::WEB_VIEW_INTERNAL_ON_EXIT}, |
+ {webview::kEventExitFullscreen, |
+ events::WEB_VIEW_INTERNAL_ON_EXIT_FULLSCREEN}, |
+ {webview::kEventFindReply, events::WEB_VIEW_INTERNAL_ON_FIND_REPLY}, |
+ {webview::kEventHeadersReceived, |
+ events::WEB_VIEW_INTERNAL_ON_HEADERS_RECEIVED}, |
+ {webview::kEventFrameNameChanged, |
+ events::WEB_VIEW_INTERNAL_ON_FRAME_NAME_CHANGED}, |
+ {webview::kEventLoadAbort, events::WEB_VIEW_INTERNAL_ON_LOAD_ABORT}, |
+ {webview::kEventLoadCommit, events::WEB_VIEW_INTERNAL_ON_LOAD_COMMIT}, |
+ {webview::kEventLoadProgress, |
+ events::WEB_VIEW_INTERNAL_ON_LOAD_PROGRESS}, |
+ {webview::kEventLoadRedirect, |
+ events::WEB_VIEW_INTERNAL_ON_LOAD_REDIRECT}, |
+ {webview::kEventLoadStart, events::WEB_VIEW_INTERNAL_ON_LOAD_START}, |
+ {webview::kEventLoadStop, events::WEB_VIEW_INTERNAL_ON_LOAD_STOP}, |
+ {webview::kEventNewWindow, events::WEB_VIEW_INTERNAL_ON_NEW_WINDOW}, |
+ {webview::kEventPermissionRequest, |
+ events::WEB_VIEW_INTERNAL_ON_PERMISSION_REQUEST}, |
+ {webview::kEventResponseStarted, |
+ events::WEB_VIEW_INTERNAL_ON_RESPONSE_STARTED}, |
+ {webview::kEventResponsive, events::WEB_VIEW_INTERNAL_ON_RESPONSIVE}, |
+ {webview::kEventSizeChanged, events::WEB_VIEW_INTERNAL_ON_SIZE_CHANGED}, |
+ {webview::kEventUnresponsive, |
+ events::WEB_VIEW_INTERNAL_ON_UNRESPONSIVE}, |
+ {webview::kEventZoomChange, events::WEB_VIEW_INTERNAL_ON_ZOOM_CHANGE}, |
+ }; |
+ for (const auto& name_and_value : names_and_values) { |
+ values_[name_and_value.name] = name_and_value.value; |
+ } |
+ } |
+ |
+ events::HistogramValue Get(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_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(EventMap); |
+}; |
+ |
+base::LazyInstance<EventMap> g_event_map = LAZY_INSTANCE_INITIALIZER; |
+ |
+} // namespace |
+ |
+events::HistogramValue GetEventHistogramValue(const std::string& event_name) { |
+ return g_event_map.Get().Get(event_name); |
+} |
+ |
+} // namespace guest_view_events |
+} // namespace extensions |