| 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
|
|
|