| 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 #include "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 1904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1915 service->ShowDesktopNotification( | 1915 service->ShowDesktopNotification( |
| 1916 params, render_frame_host, delegate.Pass(), cancel_callback); | 1916 params, render_frame_host, delegate.Pass(), cancel_callback); |
| 1917 | 1917 |
| 1918 profile->GetHostContentSettingsMap()->UpdateLastUsage( | 1918 profile->GetHostContentSettingsMap()->UpdateLastUsage( |
| 1919 params.origin, params.origin, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 1919 params.origin, params.origin, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 1920 #else | 1920 #else |
| 1921 NOTIMPLEMENTED(); | 1921 NOTIMPLEMENTED(); |
| 1922 #endif | 1922 #endif |
| 1923 } | 1923 } |
| 1924 | 1924 |
| 1925 void ChromeContentBrowserClient::RequestGeolocationPermission( | 1925 void ChromeContentBrowserClient::RequestPermission( |
| 1926 content::PermissionType permission, |
| 1926 content::WebContents* web_contents, | 1927 content::WebContents* web_contents, |
| 1927 int bridge_id, | 1928 int bridge_id, |
| 1928 const GURL& requesting_frame, | 1929 const GURL& requesting_frame, |
| 1929 bool user_gesture, | 1930 bool user_gesture, |
| 1930 const base::Callback<void(bool)>& result_callback) { | 1931 const base::Callback<void(bool)>& result_callback) { |
| 1931 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); | 1932 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
| 1932 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); | 1933 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
| 1933 | 1934 |
| 1934 const PermissionRequestID request_id(render_process_id, | 1935 const PermissionRequestID request_id(render_process_id, |
| 1935 render_view_id, | 1936 render_view_id, |
| 1936 bridge_id, | 1937 bridge_id, |
| 1937 requesting_frame); | 1938 requesting_frame); |
| 1938 GeolocationPermissionContextFactory::GetForProfile( | 1939 |
| 1939 Profile::FromBrowserContext(web_contents->GetBrowserContext()))-> | 1940 switch (permission) { |
| 1940 RequestPermission(web_contents, request_id, | 1941 case content::PERMISSION_MIDI_SYSEX: |
| 1941 requesting_frame.GetOrigin(), user_gesture, | 1942 MidiPermissionContextFactory::GetForProfile( |
| 1942 result_callback); | 1943 Profile::FromBrowserContext(web_contents->GetBrowserContext())) |
| 1944 ->RequestPermission(web_contents, request_id, requesting_frame, |
| 1945 user_gesture, result_callback); |
| 1946 break; |
| 1947 case content::PERMISSION_NOTIFICATIONS: |
| 1948 // TODO(miguelg) implement notifications once the platform refactor |
| 1949 // is finished. |
| 1950 LOG(WARNING) << "Permission request not implemented for " << permission; |
| 1951 break; |
| 1952 case content::PERMISSION_GEOLOCATION: |
| 1953 GeolocationPermissionContextFactory::GetForProfile( |
| 1954 Profile::FromBrowserContext(web_contents->GetBrowserContext())) |
| 1955 ->RequestPermission(web_contents, request_id, |
| 1956 requesting_frame.GetOrigin(), user_gesture, |
| 1957 result_callback); |
| 1958 break; |
| 1959 #if defined(OS_ANDROID) |
| 1960 case content::PERMISSION_PROTECTED_MEDIA: |
| 1961 ProtectedMediaIdentifierPermissionContextFactory::GetForProfile( |
| 1962 Profile::FromBrowserContext(web_contents->GetBrowserContext())) |
| 1963 ->RequestProtectedMediaIdentifierPermission(web_contents, |
| 1964 requesting_frame, |
| 1965 result_callback); |
| 1966 break; |
| 1967 #endif |
| 1968 default: |
| 1969 LOG(WARNING) << "Permission not available " << permission; |
| 1970 } |
| 1971 |
| 1943 } | 1972 } |
| 1944 | 1973 |
| 1945 void ChromeContentBrowserClient::CancelGeolocationPermissionRequest( | 1974 void ChromeContentBrowserClient::CancelPermissionRequest( |
| 1975 content::PermissionType permission, |
| 1946 content::WebContents* web_contents, | 1976 content::WebContents* web_contents, |
| 1947 int bridge_id, | 1977 int bridge_id, |
| 1948 const GURL& requesting_frame) { | 1978 const GURL& requesting_frame) { |
| 1949 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); | 1979 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
| 1950 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); | 1980 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
| 1951 | 1981 |
| 1952 const PermissionRequestID request_id(render_process_id, | 1982 const PermissionRequestID request_id(render_process_id, |
| 1953 render_view_id, | 1983 render_view_id, |
| 1954 bridge_id, | 1984 bridge_id, |
| 1955 requesting_frame); | 1985 requesting_frame); |
| 1956 GeolocationPermissionContextFactory::GetForProfile( | 1986 switch (permission) { |
| 1957 Profile::FromBrowserContext(web_contents->GetBrowserContext()))-> | 1987 case content::PERMISSION_MIDI_SYSEX: |
| 1958 CancelPermissionRequest(web_contents, request_id); | 1988 MidiPermissionContextFactory::GetForProfile( |
| 1989 Profile::FromBrowserContext(web_contents->GetBrowserContext())) |
| 1990 ->CancelPermissionRequest(web_contents, request_id); |
| 1991 break; |
| 1992 case content::PERMISSION_NOTIFICATIONS: |
| 1993 // TODO(miguelg) implement notifications once the platform refactor |
| 1994 // is finished. |
| 1995 LOG(WARNING) << "Cancel Permission request not implemented for " |
| 1996 << permission; |
| 1997 break; |
| 1998 case content::PERMISSION_GEOLOCATION: |
| 1999 GeolocationPermissionContextFactory::GetForProfile( |
| 2000 Profile::FromBrowserContext( |
| 2001 web_contents->GetBrowserContext())) |
| 2002 ->CancelPermissionRequest(web_contents, request_id); |
| 2003 break; |
| 2004 #if defined(OS_ANDROID) |
| 2005 case content::PERMISSION_PROTECTED_MEDIA: |
| 2006 ProtectedMediaIdentifierPermissionContextFactory::GetForProfile( |
| 2007 Profile::FromBrowserContext(web_contents->GetBrowserContext())) |
| 2008 ->CancelProtectedMediaIdentifierPermissionRequests( |
| 2009 render_process_id, |
| 2010 render_view_id, |
| 2011 requesting_frame); |
| 2012 break; |
| 2013 #endif |
| 2014 default: |
| 2015 LOG(WARNING) << "Permission not available " << permission; |
| 2016 } |
| 1959 } | 2017 } |
| 1960 | 2018 |
| 1961 void ChromeContentBrowserClient::RequestMidiSysExPermission( | |
| 1962 content::WebContents* web_contents, | |
| 1963 int bridge_id, | |
| 1964 const GURL& requesting_frame, | |
| 1965 bool user_gesture, | |
| 1966 base::Callback<void(bool)> result_callback, | |
| 1967 base::Closure* cancel_callback) { | |
| 1968 MidiPermissionContext* context = | |
| 1969 MidiPermissionContextFactory::GetForProfile( | |
| 1970 Profile::FromBrowserContext(web_contents->GetBrowserContext())); | |
| 1971 int renderer_id = web_contents->GetRenderProcessHost()->GetID(); | |
| 1972 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); | |
| 1973 const PermissionRequestID id(renderer_id, render_view_id, bridge_id, GURL()); | |
| 1974 | |
| 1975 context->RequestPermission(web_contents, id, requesting_frame, | |
| 1976 user_gesture, result_callback); | |
| 1977 } | |
| 1978 | 2019 |
| 1979 void ChromeContentBrowserClient::DidUseGeolocationPermission( | 2020 void ChromeContentBrowserClient::DidUseGeolocationPermission( |
| 1980 content::WebContents* web_contents, | 2021 content::WebContents* web_contents, |
| 1981 const GURL& frame_url, | 2022 const GURL& frame_url, |
| 1982 const GURL& main_frame_url) { | 2023 const GURL& main_frame_url) { |
| 1983 Profile::FromBrowserContext(web_contents->GetBrowserContext()) | 2024 Profile::FromBrowserContext(web_contents->GetBrowserContext()) |
| 1984 ->GetHostContentSettingsMap() | 2025 ->GetHostContentSettingsMap() |
| 1985 ->UpdateLastUsage( | 2026 ->UpdateLastUsage( |
| 1986 frame_url, main_frame_url, CONTENT_SETTINGS_TYPE_GEOLOCATION); | 2027 frame_url, main_frame_url, CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 1987 } | 2028 } |
| 1988 | 2029 |
| 1989 void ChromeContentBrowserClient::RequestProtectedMediaIdentifierPermission( | |
| 1990 content::WebContents* web_contents, | |
| 1991 const GURL& origin, | |
| 1992 base::Callback<void(bool)> result_callback, | |
| 1993 base::Closure* cancel_callback) { | |
| 1994 #if defined(OS_ANDROID) | |
| 1995 ProtectedMediaIdentifierPermissionContext* context = | |
| 1996 ProtectedMediaIdentifierPermissionContextFactory::GetForProfile( | |
| 1997 Profile::FromBrowserContext(web_contents->GetBrowserContext())); | |
| 1998 context->RequestProtectedMediaIdentifierPermission(web_contents, | |
| 1999 origin, | |
| 2000 result_callback, | |
| 2001 cancel_callback); | |
| 2002 #else | |
| 2003 NOTIMPLEMENTED(); | |
| 2004 result_callback.Run(false); | |
| 2005 #endif // defined(OS_ANDROID) | |
| 2006 } | |
| 2007 | |
| 2008 bool ChromeContentBrowserClient::CanCreateWindow( | 2030 bool ChromeContentBrowserClient::CanCreateWindow( |
| 2009 const GURL& opener_url, | 2031 const GURL& opener_url, |
| 2010 const GURL& opener_top_level_frame_url, | 2032 const GURL& opener_top_level_frame_url, |
| 2011 const GURL& source_origin, | 2033 const GURL& source_origin, |
| 2012 WindowContainerType container_type, | 2034 WindowContainerType container_type, |
| 2013 const GURL& target_url, | 2035 const GURL& target_url, |
| 2014 const content::Referrer& referrer, | 2036 const content::Referrer& referrer, |
| 2015 WindowOpenDisposition disposition, | 2037 WindowOpenDisposition disposition, |
| 2016 const WebWindowFeatures& features, | 2038 const WebWindowFeatures& features, |
| 2017 bool user_gesture, | 2039 bool user_gesture, |
| (...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2613 switches::kDisableWebRtcEncryption, | 2635 switches::kDisableWebRtcEncryption, |
| 2614 }; | 2636 }; |
| 2615 to_command_line->CopySwitchesFrom(from_command_line, | 2637 to_command_line->CopySwitchesFrom(from_command_line, |
| 2616 kWebRtcDevSwitchNames, | 2638 kWebRtcDevSwitchNames, |
| 2617 arraysize(kWebRtcDevSwitchNames)); | 2639 arraysize(kWebRtcDevSwitchNames)); |
| 2618 } | 2640 } |
| 2619 } | 2641 } |
| 2620 #endif // defined(ENABLE_WEBRTC) | 2642 #endif // defined(ENABLE_WEBRTC) |
| 2621 | 2643 |
| 2622 } // namespace chrome | 2644 } // namespace chrome |
| OLD | NEW |