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

Side by Side Diff: chrome/browser/android/tab_web_contents_delegate_android.cc

Issue 2876023002: Use VrTabHelper to disable popups
Patch Set: Created 3 years, 7 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
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/android/tab_web_contents_delegate_android.h" 5 #include "chrome/browser/android/tab_web_contents_delegate_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "chrome/browser/android/banners/app_banner_manager_android.h" 13 #include "chrome/browser/android/banners/app_banner_manager_android.h"
14 #include "chrome/browser/android/feature_utilities.h" 14 #include "chrome/browser/android/feature_utilities.h"
15 #include "chrome/browser/android/hung_renderer_infobar_delegate.h" 15 #include "chrome/browser/android/hung_renderer_infobar_delegate.h"
16 #include "chrome/browser/android/vr_shell/vr_tab_helper.h"
16 #include "chrome/browser/chrome_notification_types.h" 17 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/file_select_helper.h" 18 #include "chrome/browser/file_select_helper.h"
18 #include "chrome/browser/infobars/infobar_service.h" 19 #include "chrome/browser/infobars/infobar_service.h"
19 #include "chrome/browser/media/protected_media_identifier_permission_context.h" 20 #include "chrome/browser/media/protected_media_identifier_permission_context.h"
20 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" 21 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
21 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" 22 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
22 #include "chrome/browser/prerender/prerender_manager.h" 23 #include "chrome/browser/prerender/prerender_manager.h"
23 #include "chrome/browser/prerender/prerender_manager_factory.h" 24 #include "chrome/browser/prerender/prerender_manager_factory.h"
24 #include "chrome/browser/profiles/profile.h" 25 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/browser/ui/android/bluetooth_chooser_android.h" 26 #include "chrome/browser/ui/android/bluetooth_chooser_android.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 WebContents* source, bool to_different_document) { 113 WebContents* source, bool to_different_document) {
113 bool has_stopped = source == nullptr || !source->IsLoading(); 114 bool has_stopped = source == nullptr || !source->IsLoading();
114 WebContentsDelegateAndroid::LoadingStateChanged( 115 WebContentsDelegateAndroid::LoadingStateChanged(
115 source, to_different_document); 116 source, to_different_document);
116 LoadProgressChanged(source, has_stopped ? 1 : 0); 117 LoadProgressChanged(source, has_stopped ? 1 : 0);
117 } 118 }
118 119
119 void TabWebContentsDelegateAndroid::RunFileChooser( 120 void TabWebContentsDelegateAndroid::RunFileChooser(
120 content::RenderFrameHost* render_frame_host, 121 content::RenderFrameHost* render_frame_host,
121 const FileChooserParams& params) { 122 const FileChooserParams& params) {
123 vr_shell::VrTabHelper* vr_tab_helper = vr_shell::VrTabHelper::FromWebContents(
124 WebContents::FromRenderFrameHost(render_frame_host));
125 DCHECK(vr_tab_helper);
126 if (vr_tab_helper->HandleFileChooser())
127 return;
128
122 FileSelectHelper::RunFileChooser(render_frame_host, params); 129 FileSelectHelper::RunFileChooser(render_frame_host, params);
123 } 130 }
124 131
125 std::unique_ptr<BluetoothChooser> 132 std::unique_ptr<BluetoothChooser>
126 TabWebContentsDelegateAndroid::RunBluetoothChooser( 133 TabWebContentsDelegateAndroid::RunBluetoothChooser(
127 content::RenderFrameHost* frame, 134 content::RenderFrameHost* frame,
128 const BluetoothChooser::EventHandler& event_handler) { 135 const BluetoothChooser::EventHandler& event_handler) {
136 vr_shell::VrTabHelper* vr_tab_helper = vr_shell::VrTabHelper::FromWebContents(
137 WebContents::FromRenderFrameHost(frame));
138 DCHECK(vr_tab_helper);
139 if (vr_tab_helper->HandleBluetoothChooser())
140 return nullptr;
141
129 return base::MakeUnique<BluetoothChooserAndroid>(frame, event_handler); 142 return base::MakeUnique<BluetoothChooserAndroid>(frame, event_handler);
130 } 143 }
131 144
132 void TabWebContentsDelegateAndroid::CloseContents( 145 void TabWebContentsDelegateAndroid::CloseContents(
133 WebContents* web_contents) { 146 WebContents* web_contents) {
134 // Prevent dangling registrations assigned to closed web contents. 147 // Prevent dangling registrations assigned to closed web contents.
135 if (notification_registrar_.IsRegistered(this, 148 if (notification_registrar_.IsRegistered(this,
136 chrome::NOTIFICATION_FIND_RESULT_AVAILABLE, 149 chrome::NOTIFICATION_FIND_RESULT_AVAILABLE,
137 content::Source<WebContents>(web_contents))) { 150 content::Source<WebContents>(web_contents))) {
138 notification_registrar_.Remove(this, 151 notification_registrar_.Remove(this,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 env, details_object, i, CreateJavaRectF(env, rects[i])); 261 env, details_object, i, CreateJavaRectF(env, rects[i]));
249 } 262 }
250 263
251 Java_TabWebContentsDelegateAndroid_onFindMatchRectsAvailable(env, obj, 264 Java_TabWebContentsDelegateAndroid_onFindMatchRectsAvailable(env, obj,
252 details_object); 265 details_object);
253 } 266 }
254 267
255 content::JavaScriptDialogManager* 268 content::JavaScriptDialogManager*
256 TabWebContentsDelegateAndroid::GetJavaScriptDialogManager( 269 TabWebContentsDelegateAndroid::GetJavaScriptDialogManager(
257 WebContents* source) { 270 WebContents* source) {
271 vr_shell::VrTabHelper* vr_tab_helper =
272 vr_shell::VrTabHelper::FromWebContents(source);
273 DCHECK(vr_tab_helper);
274 if (vr_tab_helper->HandleJavaScriptDialog())
275 return nullptr;
258 return app_modal::JavaScriptDialogManager::GetInstance(); 276 return app_modal::JavaScriptDialogManager::GetInstance();
259 } 277 }
260 278
261 void TabWebContentsDelegateAndroid::RequestMediaAccessPermission( 279 void TabWebContentsDelegateAndroid::RequestMediaAccessPermission(
262 content::WebContents* web_contents, 280 content::WebContents* web_contents,
263 const content::MediaStreamRequest& request, 281 const content::MediaStreamRequest& request,
264 const content::MediaResponseCallback& callback) { 282 const content::MediaResponseCallback& callback) {
283 vr_shell::VrTabHelper* vr_tab_helper =
284 vr_shell::VrTabHelper::FromWebContents(web_contents);
285 DCHECK(vr_tab_helper);
286 if (vr_tab_helper->HandleMediaPermission())
287 return;
288
265 MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest( 289 MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
266 web_contents, request, callback, nullptr); 290 web_contents, request, callback, nullptr);
267 } 291 }
268 292
269 bool TabWebContentsDelegateAndroid::CheckMediaAccessPermission( 293 bool TabWebContentsDelegateAndroid::CheckMediaAccessPermission(
270 content::WebContents* web_contents, 294 content::WebContents* web_contents,
271 const GURL& security_origin, 295 const GURL& security_origin,
272 content::MediaStreamType type) { 296 content::MediaStreamType type) {
273 return MediaCaptureDevicesDispatcher::GetInstance() 297 return MediaCaptureDevicesDispatcher::GetInstance()
274 ->CheckMediaAccessPermission(web_contents, security_origin, type); 298 ->CheckMediaAccessPermission(web_contents, security_origin, type);
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 void NotifyStopped(JNIEnv* env, 494 void NotifyStopped(JNIEnv* env,
471 const JavaParamRef<jclass>& clazz, 495 const JavaParamRef<jclass>& clazz,
472 const JavaParamRef<jobject>& java_web_contents) { 496 const JavaParamRef<jobject>& java_web_contents) {
473 content::WebContents* web_contents = 497 content::WebContents* web_contents =
474 content::WebContents::FromJavaWebContents(java_web_contents); 498 content::WebContents::FromJavaWebContents(java_web_contents);
475 scoped_refptr<MediaStreamCaptureIndicator> indicator = 499 scoped_refptr<MediaStreamCaptureIndicator> indicator =
476 MediaCaptureDevicesDispatcher::GetInstance() 500 MediaCaptureDevicesDispatcher::GetInstance()
477 ->GetMediaStreamCaptureIndicator(); 501 ->GetMediaStreamCaptureIndicator();
478 indicator->NotifyStopped(web_contents); 502 indicator->NotifyStopped(web_contents);
479 } 503 }
OLDNEW
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698