OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h
" | 5 #include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h
" |
6 | 6 |
| 7 #include "components/guest_view/browser/guest_view_base.h" |
| 8 #include "components/guest_view/browser/guest_view_manager.h" |
7 #include "content/public/browser/browser_context.h" | 9 #include "content/public/browser/browser_context.h" |
8 #include "content/public/browser/render_process_host.h" | 10 #include "content/public/browser/render_process_host.h" |
9 #include "extensions/browser/event_router.h" | 11 #include "extensions/browser/event_router.h" |
10 #include "extensions/browser/guest_view/app_view/app_view_guest.h" | 12 #include "extensions/browser/guest_view/app_view/app_view_guest.h" |
11 #include "extensions/browser/guest_view/extension_options/extension_options_gues
t.h" | 13 #include "extensions/browser/guest_view/extension_options/extension_options_gues
t.h" |
12 #include "extensions/browser/guest_view/extension_view/extension_view_guest.h" | 14 #include "extensions/browser/guest_view/extension_view/extension_view_guest.h" |
13 #include "extensions/browser/guest_view/guest_view_base.h" | |
14 #include "extensions/browser/guest_view/guest_view_manager.h" | |
15 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" | 15 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" |
16 #include "extensions/browser/guest_view/surface_worker/surface_worker_guest.h" | 16 #include "extensions/browser/guest_view/surface_worker/surface_worker_guest.h" |
17 #include "extensions/browser/guest_view/web_view/web_view_guest.h" | 17 #include "extensions/browser/guest_view/web_view/web_view_guest.h" |
18 #include "extensions/browser/process_manager.h" | 18 #include "extensions/browser/process_manager.h" |
19 #include "extensions/browser/process_map.h" | 19 #include "extensions/browser/process_map.h" |
20 #include "extensions/common/features/feature.h" | 20 #include "extensions/common/features/feature.h" |
21 #include "extensions/common/features/feature_provider.h" | 21 #include "extensions/common/features/feature_provider.h" |
22 | 22 |
| 23 using guestview::GuestViewBase; |
| 24 using guestview::GuestViewManager; |
| 25 |
23 namespace extensions { | 26 namespace extensions { |
24 | 27 |
25 ExtensionsGuestViewManagerDelegate::ExtensionsGuestViewManagerDelegate( | 28 ExtensionsGuestViewManagerDelegate::ExtensionsGuestViewManagerDelegate( |
26 content::BrowserContext* context) | 29 content::BrowserContext* context) |
27 : context_(context) { | 30 : context_(context) { |
28 } | 31 } |
29 | 32 |
30 ExtensionsGuestViewManagerDelegate::~ExtensionsGuestViewManagerDelegate() { | 33 ExtensionsGuestViewManagerDelegate::~ExtensionsGuestViewManagerDelegate() { |
31 } | 34 } |
32 | 35 |
(...skipping 11 matching lines...) Expand all Loading... |
44 guest->owner_web_contents(), | 47 guest->owner_web_contents(), |
45 guest->browser_context(), | 48 guest->browser_context(), |
46 guest->owner_host(), | 49 guest->owner_host(), |
47 event_name, | 50 event_name, |
48 event_args.Pass(), | 51 event_args.Pass(), |
49 EventRouter::USER_GESTURE_UNKNOWN, | 52 EventRouter::USER_GESTURE_UNKNOWN, |
50 info); | 53 info); |
51 } | 54 } |
52 | 55 |
53 bool ExtensionsGuestViewManagerDelegate::IsGuestAvailableToContext( | 56 bool ExtensionsGuestViewManagerDelegate::IsGuestAvailableToContext( |
54 extensions::GuestViewBase* guest) { | 57 GuestViewBase* guest) { |
55 const Feature* feature = | 58 const Feature* feature = |
56 FeatureProvider::GetAPIFeature(guest->GetAPINamespace()); | 59 FeatureProvider::GetAPIFeature(guest->GetAPINamespace()); |
57 CHECK(feature); | 60 CHECK(feature); |
58 | 61 |
59 ProcessMap* process_map = ProcessMap::Get(context_); | 62 ProcessMap* process_map = ProcessMap::Get(context_); |
60 CHECK(process_map); | 63 CHECK(process_map); |
61 | 64 |
62 const Extension* owner_extension = ProcessManager::Get(context_)-> | 65 const Extension* owner_extension = ProcessManager::Get(context_)-> |
63 GetExtensionForWebContents(guest->owner_web_contents()); | 66 GetExtensionForWebContents(guest->owner_web_contents()); |
64 | 67 |
65 // Ok for |owner_extension| to be nullptr, the embedder might be WebUI. | 68 // Ok for |owner_extension| to be nullptr, the embedder might be WebUI. |
66 Feature::Availability availability = feature->IsAvailableToContext( | 69 Feature::Availability availability = feature->IsAvailableToContext( |
67 owner_extension, | 70 owner_extension, |
68 process_map->GetMostLikelyContextType( | 71 process_map->GetMostLikelyContextType( |
69 owner_extension, | 72 owner_extension, |
70 guest->owner_web_contents()->GetRenderProcessHost()->GetID()), | 73 guest->owner_web_contents()->GetRenderProcessHost()->GetID()), |
71 guest->GetOwnerSiteURL()); | 74 guest->GetOwnerSiteURL()); |
72 | 75 |
73 return availability.is_available(); | 76 return availability.is_available(); |
74 } | 77 } |
75 | 78 |
76 bool ExtensionsGuestViewManagerDelegate::IsOwnedByExtension( | 79 bool ExtensionsGuestViewManagerDelegate::IsOwnedByExtension( |
77 extensions::GuestViewBase* guest) { | 80 GuestViewBase* guest) { |
78 return !!ProcessManager::Get(context_)-> | 81 return !!ProcessManager::Get(context_)-> |
79 GetExtensionForWebContents(guest->owner_web_contents()); | 82 GetExtensionForWebContents(guest->owner_web_contents()); |
80 } | 83 } |
81 | 84 |
82 void ExtensionsGuestViewManagerDelegate::RegisterAdditionalGuestViewTypes() { | 85 void ExtensionsGuestViewManagerDelegate::RegisterAdditionalGuestViewTypes() { |
83 extensions::GuestViewManager* manager = | 86 GuestViewManager* manager = GuestViewManager::FromBrowserContext(context_); |
84 extensions::GuestViewManager::FromBrowserContext(context_); | |
85 manager->RegisterGuestViewType<AppViewGuest>(); | 87 manager->RegisterGuestViewType<AppViewGuest>(); |
86 manager->RegisterGuestViewType<ExtensionOptionsGuest>(); | 88 manager->RegisterGuestViewType<ExtensionOptionsGuest>(); |
87 manager->RegisterGuestViewType<ExtensionViewGuest>(); | 89 manager->RegisterGuestViewType<ExtensionViewGuest>(); |
88 manager->RegisterGuestViewType<MimeHandlerViewGuest>(); | 90 manager->RegisterGuestViewType<MimeHandlerViewGuest>(); |
89 manager->RegisterGuestViewType<SurfaceWorkerGuest>(); | 91 manager->RegisterGuestViewType<SurfaceWorkerGuest>(); |
90 manager->RegisterGuestViewType<WebViewGuest>(); | 92 manager->RegisterGuestViewType<WebViewGuest>(); |
91 } | 93 } |
92 | 94 |
93 } // namespace extensions | 95 } // namespace extensions |
OLD | NEW |