Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "extensions/browser/guest_view/guest_view_events.h" | |
| 6 | |
| 7 #include <map> | |
| 8 | |
| 9 #include "base/lazy_instance.h" | |
| 10 #include "components/guest_view/common/guest_view_constants.h" | |
| 11 #include "extensions/browser/guest_view/extension_options/extension_options_cons tants.h" | |
| 12 #include "extensions/browser/guest_view/extension_view/extension_view_constants. h" | |
| 13 #include "extensions/browser/guest_view/web_view/web_view_constants.h" | |
| 14 #include "extensions/common/api/extension_options_internal.h" | |
| 15 | |
| 16 namespace extensions { | |
| 17 namespace guest_view_events { | |
| 18 | |
| 19 namespace { | |
| 20 | |
| 21 class EventMap { | |
| 22 public: | |
| 23 EventMap() { | |
| 24 struct ValueAndName { | |
| 25 events::HistogramValue value; | |
| 26 const char* name; | |
| 27 } values_and_names[] = { | |
| 28 {events::CHROME_WEB_VIEW_INTERNAL_ON_CONTEXT_MENU_SHOW, | |
| 29 webview::kEventContextMenuShow}, | |
| 30 {events::EXTENSION_OPTIONS_INTERNAL_ON_CLOSE, | |
| 31 api::extension_options_internal::OnClose::kEventName}, | |
| 32 {events::EXTENSION_OPTIONS_INTERNAL_ON_LOAD, | |
| 33 api::extension_options_internal::OnLoad::kEventName}, | |
| 34 {events::EXTENSION_VIEW_INTERNAL_ON_LOAD_COMMIT, | |
| 35 extensionview::kEventLoadCommit}, | |
| 36 {events::GUEST_VIEW_INTERNAL_ON_RESIZE, guest_view::kEventResize}, | |
| 37 {events::WEB_VIEW_INTERNAL_ON_BEFORE_REQUEST, | |
| 38 webview::kEventBeforeRequest}, | |
| 39 {events::WEB_VIEW_INTERNAL_ON_BEFORE_SEND_HEADERS, | |
| 40 webview::kEventBeforeSendHeaders}, | |
| 41 {events::WEB_VIEW_INTERNAL_ON_CLOSE, webview::kEventClose}, | |
| 42 {events::WEB_VIEW_INTERNAL_ON_COMPLETED, webview::kEventCompleted}, | |
| 43 {events::WEB_VIEW_INTERNAL_ON_CONSOLE_MESSAGE, | |
| 44 webview::kEventConsoleMessage}, | |
| 45 {events::WEB_VIEW_INTERNAL_ON_CONTENT_LOAD, webview::kEventContentLoad}, | |
| 46 {events::WEB_VIEW_INTERNAL_ON_DIALOG, webview::kEventDialog}, | |
| 47 {events::WEB_VIEW_INTERNAL_ON_DROP_LINK, webview::kEventDropLink}, | |
| 48 {events::WEB_VIEW_INTERNAL_ON_EXIT, webview::kEventExit}, | |
| 49 {events::WEB_VIEW_INTERNAL_ON_EXIT_FULLSCREEN, | |
| 50 webview::kEventExitFullscreen}, | |
| 51 {events::WEB_VIEW_INTERNAL_ON_FIND_REPLY, webview::kEventFindReply}, | |
| 52 {events::WEB_VIEW_INTERNAL_ON_HEADERS_RECEIVED, | |
| 53 webview::kEventHeadersReceived}, | |
| 54 {events::WEB_VIEW_INTERNAL_ON_FRAME_NAME_CHANGED, | |
| 55 webview::kEventFrameNameChanged}, | |
| 56 {events::WEB_VIEW_INTERNAL_ON_LOAD_ABORT, webview::kEventLoadAbort}, | |
| 57 {events::WEB_VIEW_INTERNAL_ON_LOAD_COMMIT, webview::kEventLoadCommit}, | |
| 58 {events::WEB_VIEW_INTERNAL_ON_LOAD_PROGRESS, | |
| 59 webview::kEventLoadProgress}, | |
| 60 {events::WEB_VIEW_INTERNAL_ON_LOAD_REDIRECT, | |
| 61 webview::kEventLoadRedirect}, | |
| 62 {events::WEB_VIEW_INTERNAL_ON_LOAD_START, webview::kEventLoadStart}, | |
| 63 {events::WEB_VIEW_INTERNAL_ON_LOAD_STOP, webview::kEventLoadStop}, | |
| 64 {events::WEB_VIEW_INTERNAL_ON_NEW_WINDOW, webview::kEventNewWindow}, | |
| 65 {events::WEB_VIEW_INTERNAL_ON_PERMISSION_REQUEST, | |
| 66 webview::kEventPermissionRequest}, | |
| 67 {events::WEB_VIEW_INTERNAL_ON_RESPONSE_STARTED, | |
| 68 webview::kEventResponseStarted}, | |
| 69 {events::WEB_VIEW_INTERNAL_ON_RESPONSIVE, webview::kEventResponsive}, | |
| 70 {events::WEB_VIEW_INTERNAL_ON_SIZE_CHANGED, webview::kEventSizeChanged}, | |
| 71 {events::WEB_VIEW_INTERNAL_ON_UNRESPONSIVE, | |
| 72 webview::kEventUnresponsive}, | |
| 73 {events::WEB_VIEW_INTERNAL_ON_ZOOM_CHANGE, webview::kEventZoomChange}, | |
| 74 }; | |
| 75 for (const ValueAndName& value_and_name : values_and_names) { | |
| 76 values_[value_and_name.name] = value_and_name.value; | |
| 77 } | |
| 78 } | |
| 79 | |
| 80 events::HistogramValue Find(const std::string& event_name) { | |
| 81 auto value = values_.find(event_name); | |
| 82 return value != values_.end() ? value->second : events::UNKNOWN; | |
| 83 } | |
| 84 | |
| 85 private: | |
| 86 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.
| |
| 87 }; | |
|
Devlin
2015/08/05 21:34:09
DISALLOW_COPY_AND_ASSIGN
not at google - send to devlin
2015/08/07 20:55:03
Done.
| |
| 88 | |
| 89 base::LazyInstance<EventMap> g_event_map = LAZY_INSTANCE_INITIALIZER; | |
| 90 | |
| 91 } // namespace | |
| 92 | |
| 93 events::HistogramValue GetEventHistogramValue(const std::string& event_name) { | |
| 94 return g_event_map.Get().Find(event_name); | |
| 95 } | |
| 96 | |
| 97 } // namespace guest_view_events | |
| 98 } // namespace extensions | |
| OLD | NEW |