Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc

Issue 620623002: Revert "Allow declarative webrequest and webrequest in extensions." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 5
6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h" 6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h"
7 7
8 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" 8 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
9 #include "chrome/browser/favicon/favicon_tab_helper.h" 9 #include "chrome/browser/favicon/favicon_tab_helper.h"
10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" 10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
11 #include "chrome/browser/ui/pdf/chrome_pdf_web_contents_helper_client.h" 11 #include "chrome/browser/ui/pdf/chrome_pdf_web_contents_helper_client.h"
12 #include "chrome/browser/ui/zoom/zoom_controller.h" 12 #include "chrome/browser/ui/zoom/zoom_controller.h"
13 #include "chrome/common/chrome_version_info.h" 13 #include "chrome/common/chrome_version_info.h"
14 #include "components/pdf/browser/pdf_web_contents_helper.h" 14 #include "components/pdf/browser/pdf_web_contents_helper.h"
15 #include "components/renderer_context_menu/context_menu_delegate.h" 15 #include "components/renderer_context_menu/context_menu_delegate.h"
16 #include "content/public/common/page_zoom.h" 16 #include "content/public/common/page_zoom.h"
17 #include "extensions/browser/api/web_request/web_request_api.h" 17 #include "extensions/browser/api/web_request/web_request_api.h"
18 #include "extensions/browser/guest_view/web_view/web_view_constants.h" 18 #include "extensions/browser/guest_view/web_view/web_view_constants.h"
19 19
20 #if defined(ENABLE_PRINTING) 20 #if defined(ENABLE_PRINTING)
21 #if defined(ENABLE_FULL_PRINTING) 21 #if defined(ENABLE_FULL_PRINTING)
22 #include "chrome/browser/printing/print_preview_message_handler.h" 22 #include "chrome/browser/printing/print_preview_message_handler.h"
23 #include "chrome/browser/printing/print_view_manager.h" 23 #include "chrome/browser/printing/print_view_manager.h"
24 #else 24 #else
25 #include "chrome/browser/printing/print_view_manager_basic.h" 25 #include "chrome/browser/printing/print_view_manager_basic.h"
26 #endif // defined(ENABLE_FULL_PRINTING) 26 #endif // defined(ENABLE_FULL_PRINTING)
27 #endif // defined(ENABLE_PRINTING) 27 #endif // defined(ENABLE_PRINTING)
28 28
29 void RemoveWebViewEventListenersOnIOThread(
30 void* profile,
31 const std::string& extension_id,
32 int embedder_process_id,
33 int view_instance_id) {
34 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
35 ExtensionWebRequestEventRouter::GetInstance()->RemoveWebViewEventListeners(
36 profile,
37 extension_id,
38 embedder_process_id,
39 view_instance_id);
40 }
41
29 ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate( 42 ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate(
30 extensions::WebViewGuest* web_view_guest) 43 extensions::WebViewGuest* web_view_guest)
31 : pending_context_menu_request_id_(0), 44 : pending_context_menu_request_id_(0),
32 chromevox_injected_(false), 45 chromevox_injected_(false),
33 current_zoom_factor_(1.0), 46 current_zoom_factor_(1.0),
34 web_view_guest_(web_view_guest) { 47 web_view_guest_(web_view_guest) {
35 } 48 }
36 49
37 ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() { 50 ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() {
38 } 51 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 #else 97 #else
85 printing::PrintViewManagerBasic::CreateForWebContents(contents); 98 printing::PrintViewManagerBasic::CreateForWebContents(contents);
86 #endif // defined(ENABLE_FULL_PRINTING) 99 #endif // defined(ENABLE_FULL_PRINTING)
87 #endif // defined(ENABLE_PRINTING) 100 #endif // defined(ENABLE_PRINTING)
88 pdf::PDFWebContentsHelper::CreateForWebContentsWithClient( 101 pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
89 contents, 102 contents,
90 scoped_ptr<pdf::PDFWebContentsHelperClient>( 103 scoped_ptr<pdf::PDFWebContentsHelperClient>(
91 new ChromePDFWebContentsHelperClient())); 104 new ChromePDFWebContentsHelperClient()));
92 } 105 }
93 106
107 void ChromeWebViewGuestDelegate::OnEmbedderDestroyed() {
108 // TODO(fsamuel): WebRequest event listeners for <webview> should survive
109 // reparenting of a <webview> within a single embedder. Right now, we keep
110 // around the browser state for the listener for the lifetime of the embedder.
111 // Ideally, the lifetime of the listeners should match the lifetime of the
112 // <webview> DOM node. Once http://crbug.com/156219 is resolved we can move
113 // the call to RemoveWebViewEventListenersOnIOThread back to
114 // WebViewGuest::WebContentsDestroyed.
115 content::BrowserThread::PostTask(
116 content::BrowserThread::IO,
117 FROM_HERE,
118 base::Bind(
119 &RemoveWebViewEventListenersOnIOThread,
120 web_view_guest()->browser_context(),
121 web_view_guest()->embedder_extension_id(),
122 web_view_guest()->embedder_render_process_id(),
123 web_view_guest()->view_instance_id()));
124 }
125
94 void ChromeWebViewGuestDelegate::OnDidAttachToEmbedder() { 126 void ChromeWebViewGuestDelegate::OnDidAttachToEmbedder() {
95 // TODO(fsamuel): This code should be implemented in GuestViewBase once the 127 // TODO(fsamuel): This code should be implemented in GuestViewBase once the
96 // ZoomController moves to the extensions module. 128 // ZoomController moves to the extensions module.
97 ZoomController* zoom_controller = ZoomController::FromWebContents( 129 ZoomController* zoom_controller = ZoomController::FromWebContents(
98 web_view_guest()->embedder_web_contents()); 130 web_view_guest()->embedder_web_contents());
99 if (!zoom_controller) 131 if (!zoom_controller)
100 return; 132 return;
101 // Listen to the embedder's zoom changes. 133 // Listen to the embedder's zoom changes.
102 zoom_controller->AddObserver(this); 134 zoom_controller->AddObserver(this);
103 // Set the guest's initial zoom level to be equal to the embedder's. 135 // Set the guest's initial zoom level to be equal to the embedder's.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 chromevox_injected_ = false; 251 chromevox_injected_ = false;
220 } 252 }
221 } 253 }
222 #endif 254 #endif
223 255
224 void ChromeWebViewGuestDelegate::OnZoomChanged( 256 void ChromeWebViewGuestDelegate::OnZoomChanged(
225 const ZoomController::ZoomChangedEventData& data) { 257 const ZoomController::ZoomChangedEventData& data) {
226 ZoomController::FromWebContents(guest_web_contents())-> 258 ZoomController::FromWebContents(guest_web_contents())->
227 SetZoomLevel(data.new_zoom_level); 259 SetZoomLevel(data.new_zoom_level);
228 } 260 }
OLDNEW
« no previous file with comments | « chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h ('k') | chrome/chrome_renderer.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698