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_permission_helper.h" | 5 #include "chrome/browser/guest_view/web_view/web_view_permission_helper.h" |
6 | 6 |
7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
8 #include "chrome/browser/geolocation/geolocation_permission_context.h" | 8 #include "chrome/browser/geolocation/geolocation_permission_context.h" |
9 #include "chrome/browser/geolocation/geolocation_permission_context_factory.h" | 9 #include "chrome/browser/geolocation/geolocation_permission_context_factory.h" |
10 #include "chrome/browser/guest_view/web_view/web_view_constants.h" | 10 #include "chrome/browser/guest_view/web_view/web_view_constants.h" |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 } | 256 } |
257 } | 257 } |
258 | 258 |
259 #endif // defined(ENABLE_PLUGINS) | 259 #endif // defined(ENABLE_PLUGINS) |
260 | 260 |
261 void WebViewPermissionHelper::RequestMediaAccessPermission( | 261 void WebViewPermissionHelper::RequestMediaAccessPermission( |
262 content::WebContents* source, | 262 content::WebContents* source, |
263 const content::MediaStreamRequest& request, | 263 const content::MediaStreamRequest& request, |
264 const content::MediaResponseCallback& callback) { | 264 const content::MediaResponseCallback& callback) { |
265 base::DictionaryValue request_info; | 265 base::DictionaryValue request_info; |
266 request_info.Set(guestview::kUrl, | 266 request_info.SetString(guestview::kUrl, request.security_origin.spec()); |
267 new base::StringValue(request.security_origin.spec())); | |
268 RequestPermission(WEB_VIEW_PERMISSION_TYPE_MEDIA, | 267 RequestPermission(WEB_VIEW_PERMISSION_TYPE_MEDIA, |
269 request_info, | 268 request_info, |
270 base::Bind(&WebViewPermissionHelper:: | 269 base::Bind(&WebViewPermissionHelper:: |
271 OnMediaPermissionResponse, | 270 OnMediaPermissionResponse, |
272 base::Unretained(this), | 271 base::Unretained(this), |
273 request, | 272 request, |
274 callback), | 273 callback), |
275 false /* allowed_by_default */); | 274 false /* allowed_by_default */); |
276 } | 275 } |
277 | 276 |
(...skipping 17 matching lines...) Expand all Loading... |
295 request, | 294 request, |
296 callback); | 295 callback); |
297 } | 296 } |
298 | 297 |
299 void WebViewPermissionHelper::CanDownload( | 298 void WebViewPermissionHelper::CanDownload( |
300 content::RenderViewHost* render_view_host, | 299 content::RenderViewHost* render_view_host, |
301 const GURL& url, | 300 const GURL& url, |
302 const std::string& request_method, | 301 const std::string& request_method, |
303 const base::Callback<void(bool)>& callback) { | 302 const base::Callback<void(bool)>& callback) { |
304 base::DictionaryValue request_info; | 303 base::DictionaryValue request_info; |
305 request_info.Set(guestview::kUrl, new base::StringValue(url.spec())); | 304 request_info.SetString(guestview::kUrl, url.spec()); |
306 RequestPermission( | 305 RequestPermission( |
307 WEB_VIEW_PERMISSION_TYPE_DOWNLOAD, | 306 WEB_VIEW_PERMISSION_TYPE_DOWNLOAD, |
308 request_info, | 307 request_info, |
309 base::Bind(&WebViewPermissionHelper::OnDownloadPermissionResponse, | 308 base::Bind(&WebViewPermissionHelper::OnDownloadPermissionResponse, |
310 base::Unretained(this), | 309 base::Unretained(this), |
311 callback), | 310 callback), |
312 false /* allowed_by_default */); | 311 false /* allowed_by_default */); |
313 } | 312 } |
314 | 313 |
315 void WebViewPermissionHelper::OnDownloadPermissionResponse( | 314 void WebViewPermissionHelper::OnDownloadPermissionResponse( |
316 const base::Callback<void(bool)>& callback, | 315 const base::Callback<void(bool)>& callback, |
317 bool allow, | 316 bool allow, |
318 const std::string& user_input) { | 317 const std::string& user_input) { |
319 callback.Run(allow && web_view_guest_->attached()); | 318 callback.Run(allow && web_view_guest_->attached()); |
320 } | 319 } |
321 | 320 |
322 void WebViewPermissionHelper::RequestPointerLockPermission( | 321 void WebViewPermissionHelper::RequestPointerLockPermission( |
323 bool user_gesture, | 322 bool user_gesture, |
324 bool last_unlocked_by_target, | 323 bool last_unlocked_by_target, |
325 const base::Callback<void(bool)>& callback) { | 324 const base::Callback<void(bool)>& callback) { |
326 base::DictionaryValue request_info; | 325 base::DictionaryValue request_info; |
327 request_info.Set(guestview::kUserGesture, | 326 request_info.SetBoolean(guestview::kUserGesture, user_gesture); |
328 base::Value::CreateBooleanValue(user_gesture)); | 327 request_info.SetBoolean(webview::kLastUnlockedBySelf, |
329 request_info.Set(webview::kLastUnlockedBySelf, | 328 last_unlocked_by_target); |
330 base::Value::CreateBooleanValue(last_unlocked_by_target)); | 329 request_info.SetString(guestview::kUrl, |
331 request_info.Set(guestview::kUrl, | 330 web_contents()->GetLastCommittedURL().spec()); |
332 new base::StringValue( | |
333 web_contents()->GetLastCommittedURL().spec())); | |
334 | 331 |
335 RequestPermission( | 332 RequestPermission( |
336 WEB_VIEW_PERMISSION_TYPE_POINTER_LOCK, | 333 WEB_VIEW_PERMISSION_TYPE_POINTER_LOCK, |
337 request_info, | 334 request_info, |
338 base::Bind( | 335 base::Bind( |
339 &WebViewPermissionHelper::OnPointerLockPermissionResponse, | 336 &WebViewPermissionHelper::OnPointerLockPermissionResponse, |
340 base::Unretained(this), | 337 base::Unretained(this), |
341 callback), | 338 callback), |
342 false /* allowed_by_default */); | 339 false /* allowed_by_default */); |
343 } | 340 } |
344 | 341 |
345 void WebViewPermissionHelper::OnPointerLockPermissionResponse( | 342 void WebViewPermissionHelper::OnPointerLockPermissionResponse( |
346 const base::Callback<void(bool)>& callback, | 343 const base::Callback<void(bool)>& callback, |
347 bool allow, | 344 bool allow, |
348 const std::string& user_input) { | 345 const std::string& user_input) { |
349 callback.Run(allow && web_view_guest_->attached()); | 346 callback.Run(allow && web_view_guest_->attached()); |
350 } | 347 } |
351 | 348 |
352 void WebViewPermissionHelper::RequestGeolocationPermission( | 349 void WebViewPermissionHelper::RequestGeolocationPermission( |
353 int bridge_id, | 350 int bridge_id, |
354 const GURL& requesting_frame, | 351 const GURL& requesting_frame, |
355 bool user_gesture, | 352 bool user_gesture, |
356 const base::Callback<void(bool)>& callback) { | 353 const base::Callback<void(bool)>& callback) { |
357 base::DictionaryValue request_info; | 354 base::DictionaryValue request_info; |
358 request_info.Set(guestview::kUrl, | 355 request_info.SetString(guestview::kUrl, requesting_frame.spec()); |
359 new base::StringValue(requesting_frame.spec())); | 356 request_info.SetBoolean(guestview::kUserGesture, user_gesture); |
360 request_info.Set(guestview::kUserGesture, | |
361 base::Value::CreateBooleanValue(user_gesture)); | |
362 | 357 |
363 // It is safe to hold an unretained pointer to WebViewPermissionHelper because | 358 // It is safe to hold an unretained pointer to WebViewPermissionHelper because |
364 // this callback is called from WebViewPermissionHelper::SetPermission. | 359 // this callback is called from WebViewPermissionHelper::SetPermission. |
365 const PermissionResponseCallback permission_callback = | 360 const PermissionResponseCallback permission_callback = |
366 base::Bind( | 361 base::Bind( |
367 &WebViewPermissionHelper::OnGeolocationPermissionResponse, | 362 &WebViewPermissionHelper::OnGeolocationPermissionResponse, |
368 base::Unretained(this), | 363 base::Unretained(this), |
369 bridge_id, | 364 bridge_id, |
370 user_gesture, | 365 user_gesture, |
371 callback); | 366 callback); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 int request_id = bridge_itr->second; | 424 int request_id = bridge_itr->second; |
430 bridge_id_to_request_id_map_.erase(bridge_itr); | 425 bridge_id_to_request_id_map_.erase(bridge_itr); |
431 return request_id; | 426 return request_id; |
432 } | 427 } |
433 | 428 |
434 void WebViewPermissionHelper::RequestFileSystemPermission( | 429 void WebViewPermissionHelper::RequestFileSystemPermission( |
435 const GURL& url, | 430 const GURL& url, |
436 bool allowed_by_default, | 431 bool allowed_by_default, |
437 const base::Callback<void(bool)>& callback) { | 432 const base::Callback<void(bool)>& callback) { |
438 base::DictionaryValue request_info; | 433 base::DictionaryValue request_info; |
439 request_info.Set(guestview::kUrl, new base::StringValue(url.spec())); | 434 request_info.SetString(guestview::kUrl, url.spec()); |
440 RequestPermission( | 435 RequestPermission( |
441 WEB_VIEW_PERMISSION_TYPE_FILESYSTEM, | 436 WEB_VIEW_PERMISSION_TYPE_FILESYSTEM, |
442 request_info, | 437 request_info, |
443 base::Bind( | 438 base::Bind( |
444 &WebViewPermissionHelper::OnFileSystemPermissionResponse, | 439 &WebViewPermissionHelper::OnFileSystemPermissionResponse, |
445 base::Unretained(this), | 440 base::Unretained(this), |
446 callback), | 441 callback), |
447 allowed_by_default); | 442 allowed_by_default); |
448 } | 443 } |
449 | 444 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 const PermissionResponseCallback& callback, | 590 const PermissionResponseCallback& callback, |
596 WebViewPermissionType permission_type, | 591 WebViewPermissionType permission_type, |
597 bool allowed_by_default) | 592 bool allowed_by_default) |
598 : callback(callback), | 593 : callback(callback), |
599 permission_type(permission_type), | 594 permission_type(permission_type), |
600 allowed_by_default(allowed_by_default) { | 595 allowed_by_default(allowed_by_default) { |
601 } | 596 } |
602 | 597 |
603 WebViewPermissionHelper::PermissionResponseInfo::~PermissionResponseInfo() { | 598 WebViewPermissionHelper::PermissionResponseInfo::~PermissionResponseInfo() { |
604 } | 599 } |
OLD | NEW |