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 |