OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/guest_view/web_view/web_view_guest.h" | 5 #include "chrome/browser/guest_view/web_view/web_view_guest.h" |
6 | 6 |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
11 #include "chrome/browser/extensions/api/web_request/web_request_api.h" | 11 #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
12 #include "chrome/browser/extensions/api/web_view/web_view_internal_api.h" | 12 #include "chrome/browser/extensions/api/web_view/web_view_internal_api.h" |
13 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" | 13 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" |
14 #include "chrome/browser/extensions/extension_service.h" | |
15 #include "chrome/browser/extensions/menu_manager.h" | 14 #include "chrome/browser/extensions/menu_manager.h" |
16 #include "chrome/browser/extensions/script_executor.h" | 15 #include "chrome/browser/extensions/script_executor.h" |
17 #include "chrome/browser/favicon/favicon_tab_helper.h" | 16 #include "chrome/browser/favicon/favicon_tab_helper.h" |
18 #include "chrome/browser/guest_view/guest_view_constants.h" | 17 #include "chrome/browser/guest_view/guest_view_constants.h" |
19 #include "chrome/browser/guest_view/guest_view_manager.h" | 18 #include "chrome/browser/guest_view/guest_view_manager.h" |
20 #include "chrome/browser/guest_view/web_view/web_view_constants.h" | 19 #include "chrome/browser/guest_view/web_view/web_view_constants.h" |
21 #include "chrome/browser/guest_view/web_view/web_view_permission_helper.h" | 20 #include "chrome/browser/guest_view/web_view/web_view_permission_helper.h" |
22 #include "chrome/browser/guest_view/web_view/web_view_permission_types.h" | 21 #include "chrome/browser/guest_view/web_view/web_view_permission_types.h" |
23 #include "chrome/browser/guest_view/web_view/web_view_renderer_state.h" | 22 #include "chrome/browser/guest_view/web_view/web_view_renderer_state.h" |
24 #include "chrome/browser/renderer_context_menu/context_menu_delegate.h" | 23 #include "chrome/browser/renderer_context_menu/context_menu_delegate.h" |
(...skipping 17 matching lines...) Expand all Loading... |
42 #include "content/public/browser/site_instance.h" | 41 #include "content/public/browser/site_instance.h" |
43 #include "content/public/browser/storage_partition.h" | 42 #include "content/public/browser/storage_partition.h" |
44 #include "content/public/browser/user_metrics.h" | 43 #include "content/public/browser/user_metrics.h" |
45 #include "content/public/browser/web_contents.h" | 44 #include "content/public/browser/web_contents.h" |
46 #include "content/public/browser/web_contents_delegate.h" | 45 #include "content/public/browser/web_contents_delegate.h" |
47 #include "content/public/common/media_stream_request.h" | 46 #include "content/public/common/media_stream_request.h" |
48 #include "content/public/common/page_zoom.h" | 47 #include "content/public/common/page_zoom.h" |
49 #include "content/public/common/result_codes.h" | 48 #include "content/public/common/result_codes.h" |
50 #include "content/public/common/stop_find_action.h" | 49 #include "content/public/common/stop_find_action.h" |
51 #include "content/public/common/url_constants.h" | 50 #include "content/public/common/url_constants.h" |
| 51 #include "extensions/browser/extension_registry.h" |
52 #include "extensions/browser/extension_system.h" | 52 #include "extensions/browser/extension_system.h" |
53 #include "extensions/common/constants.h" | 53 #include "extensions/common/constants.h" |
54 #include "extensions/common/permissions/permissions_data.h" | 54 #include "extensions/common/permissions/permissions_data.h" |
55 #include "ipc/ipc_message_macros.h" | 55 #include "ipc/ipc_message_macros.h" |
56 #include "net/base/escape.h" | 56 #include "net/base/escape.h" |
57 #include "net/base/net_errors.h" | 57 #include "net/base/net_errors.h" |
58 #include "third_party/WebKit/public/web/WebFindOptions.h" | 58 #include "third_party/WebKit/public/web/WebFindOptions.h" |
59 #include "ui/base/models/simple_menu_model.h" | 59 #include "ui/base/models/simple_menu_model.h" |
60 | 60 |
61 #if defined(ENABLE_PRINTING) | 61 #if defined(ENABLE_PRINTING) |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 item_value->SetInteger(webview::kMenuItemCommandId, | 226 item_value->SetInteger(webview::kMenuItemCommandId, |
227 menu_model.GetCommandIdAt(i)); | 227 menu_model.GetCommandIdAt(i)); |
228 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i)); | 228 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i)); |
229 items->Append(item_value); | 229 items->Append(item_value); |
230 } | 230 } |
231 return items.Pass(); | 231 return items.Pass(); |
232 } | 232 } |
233 | 233 |
234 bool WebViewGuest::CanEmbedderUseGuestView( | 234 bool WebViewGuest::CanEmbedderUseGuestView( |
235 const std::string& embedder_extension_id) { | 235 const std::string& embedder_extension_id) { |
236 Profile* profile = Profile::FromBrowserContext(browser_context()); | |
237 ExtensionService* service = | |
238 extensions::ExtensionSystem::Get(profile)->extension_service(); | |
239 const extensions::Extension* embedder_extension = | 236 const extensions::Extension* embedder_extension = |
240 service->GetExtensionById(embedder_extension_id, false); | 237 extensions::ExtensionRegistry::Get(browser_context()) |
241 const extensions::PermissionsData* permissions_data = | 238 ->enabled_extensions() |
242 embedder_extension->permissions_data(); | 239 .GetByID(embedder_extension_id); |
243 return permissions_data->HasAPIPermission( | 240 if (!embedder_extension) |
| 241 return false; |
| 242 return embedder_extension->permissions_data()->HasAPIPermission( |
244 extensions::APIPermission::kWebView); | 243 extensions::APIPermission::kWebView); |
245 } | 244 } |
246 | 245 |
247 void WebViewGuest::CreateWebContents( | 246 void WebViewGuest::CreateWebContents( |
248 const std::string& embedder_extension_id, | 247 const std::string& embedder_extension_id, |
249 int embedder_render_process_id, | 248 int embedder_render_process_id, |
250 const base::DictionaryValue& create_params, | 249 const base::DictionaryValue& create_params, |
251 const WebContentsCreatedCallback& callback) { | 250 const WebContentsCreatedCallback& callback) { |
252 content::RenderProcessHost* embedder_render_process_host = | 251 content::RenderProcessHost* embedder_render_process_host = |
253 content::RenderProcessHost::FromID(embedder_render_process_id); | 252 content::RenderProcessHost::FromID(embedder_render_process_id); |
(...skipping 984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1238 bool allow, | 1237 bool allow, |
1239 const std::string& user_input) { | 1238 const std::string& user_input) { |
1240 WebViewGuest* guest = | 1239 WebViewGuest* guest = |
1241 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); | 1240 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); |
1242 if (!guest) | 1241 if (!guest) |
1243 return; | 1242 return; |
1244 | 1243 |
1245 if (!allow) | 1244 if (!allow) |
1246 guest->Destroy(); | 1245 guest->Destroy(); |
1247 } | 1246 } |
OLD | NEW |