Index: extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc |
diff --git a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc |
index 854c6b289f657e328b059976af604503b4ed156a..2255c967b28d23e2a09d3a1e6b51a8d8c8e949f7 100644 |
--- a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc |
+++ b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc |
@@ -6,12 +6,14 @@ |
#include "components/guest_view/browser/guest_view_base.h" |
#include "components/guest_view/browser/guest_view_manager.h" |
+#include "components/guest_view/common/guest_view_constants.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/render_process_host.h" |
#include "extensions/browser/event_router.h" |
#include "extensions/browser/guest_view/app_view/app_view_guest.h" |
#include "extensions/browser/guest_view/extension_options/extension_options_guest.h" |
#include "extensions/browser/guest_view/extension_view/extension_view_guest.h" |
+#include "extensions/browser/guest_view/guest_view_events.h" |
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h" |
#include "extensions/browser/guest_view/surface_worker/surface_worker_guest.h" |
#include "extensions/browser/guest_view/web_view/web_view_guest.h" |
@@ -43,14 +45,20 @@ void ExtensionsGuestViewManagerDelegate::DispatchEvent( |
scoped_ptr<base::ListValue> event_args(new base::ListValue()); |
event_args->Append(args.release()); |
- EventRouter::DispatchEvent( |
- guest->owner_web_contents(), |
- guest->browser_context(), |
- guest->owner_host(), |
- event_name, |
- event_args.Pass(), |
- EventRouter::USER_GESTURE_UNKNOWN, |
- info); |
+ // GetEventHistogramValue maps guest view event names to their histogram |
+ // value. It needs to be like this because the guest view component doesn't |
+ // know about extensions, so GuestViewEvent can't have an |
+ // extensions::events::HistogramValue as an argument. |
+ events::HistogramValue histogram_value = |
+ guest_view_events::GetEventHistogramValue(event_name); |
+ DCHECK_NE(events::UNKNOWN, histogram_value) << "Event " << event_name |
+ << " must have a histogram value"; |
+ |
+ content::WebContents* owner = guest->owner_web_contents(); |
+ EventRouter::DispatchEventToSender( |
+ owner, guest->browser_context(), owner->GetLastCommittedURL(), |
+ guest->owner_host(), histogram_value, event_name, event_args.Pass(), |
+ EventRouter::USER_GESTURE_UNKNOWN, info); |
} |
bool ExtensionsGuestViewManagerDelegate::IsGuestAvailableToContext( |