Chromium Code Reviews| 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 |