OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #ifndef CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ |
6 #define CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ | 6 #define CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 class SiteInstance; | 102 class SiteInstance; |
103 class SpeechRecognitionManagerDelegate; | 103 class SpeechRecognitionManagerDelegate; |
104 class VibrationProvider; | 104 class VibrationProvider; |
105 class WebContents; | 105 class WebContents; |
106 class WebContentsViewDelegate; | 106 class WebContentsViewDelegate; |
107 struct MainFunctionParams; | 107 struct MainFunctionParams; |
108 struct Referrer; | 108 struct Referrer; |
109 struct ShowDesktopNotificationHostMsgParams; | 109 struct ShowDesktopNotificationHostMsgParams; |
110 struct WebPreferences; | 110 struct WebPreferences; |
111 | 111 |
| 112 |
| 113 enum PermissionType { |
| 114 PERMISSION_UNKNOWN = 0, |
| 115 PERMISSION_MIDI_SYSEX = 1, |
| 116 PERMISSION_PUSH_MESSAGING = 2, |
| 117 PERMISSION_NOTIFICATIONS = 3, |
| 118 PERMISSION_GEOLOCATION = 4, |
| 119 PERMISSION_PROTECTED_MEDIA = 5, |
| 120 |
| 121 // Always keep this at the end. |
| 122 PERMISSION_NUM, |
| 123 }; |
| 124 |
112 // A mapping from the scheme name to the protocol handler that services its | 125 // A mapping from the scheme name to the protocol handler that services its |
113 // content. | 126 // content. |
114 typedef std::map< | 127 typedef std::map< |
115 std::string, linked_ptr<net::URLRequestJobFactory::ProtocolHandler> > | 128 std::string, linked_ptr<net::URLRequestJobFactory::ProtocolHandler> > |
116 ProtocolHandlerMap; | 129 ProtocolHandlerMap; |
117 | 130 |
118 // A scoped vector of protocol interceptors. | 131 // A scoped vector of protocol interceptors. |
119 typedef ScopedVector<net::URLRequestInterceptor> | 132 typedef ScopedVector<net::URLRequestInterceptor> |
120 URLRequestInterceptorScopedVector; | 133 URLRequestInterceptorScopedVector; |
121 | 134 |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 int render_process_id); | 441 int render_process_id); |
429 | 442 |
430 // Show a desktop notification. If |cancel_callback| is non-null, it's set to | 443 // Show a desktop notification. If |cancel_callback| is non-null, it's set to |
431 // a callback which can be used to cancel the notification. | 444 // a callback which can be used to cancel the notification. |
432 virtual void ShowDesktopNotification( | 445 virtual void ShowDesktopNotification( |
433 const ShowDesktopNotificationHostMsgParams& params, | 446 const ShowDesktopNotificationHostMsgParams& params, |
434 RenderFrameHost* render_frame_host, | 447 RenderFrameHost* render_frame_host, |
435 scoped_ptr<DesktopNotificationDelegate> delegate, | 448 scoped_ptr<DesktopNotificationDelegate> delegate, |
436 base::Closure* cancel_callback) {} | 449 base::Closure* cancel_callback) {} |
437 | 450 |
438 // The renderer is requesting permission to use Geolocation. When the answer | 451 virtual void RequestPermission( |
439 // to a permission request has been determined, |result_callback| should be | 452 PermissionType permission, |
440 // called with the result. If |cancel_callback| is non-null, it's set to a | |
441 // callback which can be used to cancel the permission request. | |
442 virtual void RequestGeolocationPermission( | |
443 WebContents* web_contents, | 453 WebContents* web_contents, |
444 int bridge_id, | 454 int bridge_id, |
445 const GURL& requesting_frame, | 455 const GURL& requesting_frame, |
446 bool user_gesture, | 456 bool user_gesture, |
447 const base::Callback<void(bool)>& result_callback); | 457 const base::Callback<void(bool)>& result_callback); |
448 | 458 |
449 virtual void CancelGeolocationPermissionRequest( | 459 |
| 460 virtual void CancelPermissionRequest( |
| 461 PermissionType permission, |
450 WebContents* web_contents, | 462 WebContents* web_contents, |
451 int bridge_id, | 463 int bridge_id, |
452 const GURL& requesting_frame); | 464 const GURL& requesting_frame); |
453 | 465 |
454 // Invoked when the Geolocation API uses its permission. | 466 // Invoked when the Geolocation API uses its permission. |
455 virtual void DidUseGeolocationPermission(WebContents* web_contents, | 467 virtual void DidUseGeolocationPermission(WebContents* web_contents, |
456 const GURL& frame_url, | 468 const GURL& frame_url, |
457 const GURL& main_frame_url) {} | 469 const GURL& main_frame_url) {} |
458 | 470 |
459 // Requests a permission to use system exclusive messages in MIDI events. | |
460 // |result_callback| will be invoked when the request is resolved. If | |
461 // |cancel_callback| is non-null, it's set to a callback which can be used to | |
462 // cancel the permission request. | |
463 virtual void RequestMidiSysExPermission( | |
464 WebContents* web_contents, | |
465 int bridge_id, | |
466 const GURL& requesting_frame, | |
467 bool user_gesture, | |
468 base::Callback<void(bool)> result_callback, | |
469 base::Closure* cancel_callback); | |
470 | |
471 // Request permission to access protected media identifier. |result_callback | |
472 // will tell whether it's permitted. If |cancel_callback| is non-null, it's | |
473 // set to a callback which can be used to cancel the permission request. | |
474 virtual void RequestProtectedMediaIdentifierPermission( | |
475 WebContents* web_contents, | |
476 const GURL& origin, | |
477 base::Callback<void(bool)> result_callback, | |
478 base::Closure* cancel_callback); | |
479 | 471 |
480 // Returns true if the given page is allowed to open a window of the given | 472 // Returns true if the given page is allowed to open a window of the given |
481 // type. If true is returned, |no_javascript_access| will indicate whether | 473 // type. If true is returned, |no_javascript_access| will indicate whether |
482 // the window that is created should be scriptable/in the same process. | 474 // the window that is created should be scriptable/in the same process. |
483 // This is called on the IO thread. | 475 // This is called on the IO thread. |
484 virtual bool CanCreateWindow(const GURL& opener_url, | 476 virtual bool CanCreateWindow(const GURL& opener_url, |
485 const GURL& opener_top_level_frame_url, | 477 const GURL& opener_top_level_frame_url, |
486 const GURL& source_origin, | 478 const GURL& source_origin, |
487 WindowContainerType container_type, | 479 WindowContainerType container_type, |
488 const GURL& target_url, | 480 const GURL& target_url, |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 // camera. Note that this does not query the user. |type| must be | 639 // camera. Note that this does not query the user. |type| must be |
648 // MEDIA_DEVICE_AUDIO_CAPTURE or MEDIA_DEVICE_VIDEO_CAPTURE. | 640 // MEDIA_DEVICE_AUDIO_CAPTURE or MEDIA_DEVICE_VIDEO_CAPTURE. |
649 virtual bool CheckMediaAccessPermission(BrowserContext* browser_context, | 641 virtual bool CheckMediaAccessPermission(BrowserContext* browser_context, |
650 const GURL& security_origin, | 642 const GURL& security_origin, |
651 MediaStreamType type); | 643 MediaStreamType type); |
652 }; | 644 }; |
653 | 645 |
654 } // namespace content | 646 } // namespace content |
655 | 647 |
656 #endif // CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ | 648 #endif // CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ |
OLD | NEW |