| OLD | NEW |
| 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/geolocation/geolocation_permission_context_android.h" | 5 #include "chrome/browser/geolocation/geolocation_permission_context_android.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 : GeolocationPermissionContext(profile), | 31 : GeolocationPermissionContext(profile), |
| 32 location_settings_(new LocationSettingsImpl()), | 32 location_settings_(new LocationSettingsImpl()), |
| 33 permission_update_infobar_(nullptr), | 33 permission_update_infobar_(nullptr), |
| 34 weak_factory_(this) { | 34 weak_factory_(this) { |
| 35 } | 35 } |
| 36 | 36 |
| 37 GeolocationPermissionContextAndroid::~GeolocationPermissionContextAndroid() { | 37 GeolocationPermissionContextAndroid::~GeolocationPermissionContextAndroid() { |
| 38 } | 38 } |
| 39 | 39 |
| 40 ContentSetting GeolocationPermissionContextAndroid::GetPermissionStatusInternal( | 40 ContentSetting GeolocationPermissionContextAndroid::GetPermissionStatusInternal( |
| 41 content::RenderFrameHost* render_frame_host, |
| 41 const GURL& requesting_origin, | 42 const GURL& requesting_origin, |
| 42 const GURL& embedding_origin) const { | 43 const GURL& embedding_origin) const { |
| 43 ContentSetting value = | 44 ContentSetting value = |
| 44 GeolocationPermissionContext::GetPermissionStatusInternal( | 45 GeolocationPermissionContext::GetPermissionStatusInternal( |
| 45 requesting_origin, embedding_origin); | 46 render_frame_host, requesting_origin, embedding_origin); |
| 46 | 47 |
| 47 if (value == CONTENT_SETTING_ASK && requesting_origin == embedding_origin) { | 48 if (value == CONTENT_SETTING_ASK && requesting_origin == embedding_origin) { |
| 48 // Consult the DSE Geolocation setting. Note that this only needs to be | 49 // Consult the DSE Geolocation setting. Note that this only needs to be |
| 49 // consulted when the content setting is ASK. In the other cases (ALLOW or | 50 // consulted when the content setting is ASK. In the other cases (ALLOW or |
| 50 // BLOCK) checking the setting is redundant, as the setting is kept | 51 // BLOCK) checking the setting is redundant, as the setting is kept |
| 51 // consistent with the content setting. | 52 // consistent with the content setting. |
| 52 SearchGeolocationService* search_helper = | 53 SearchGeolocationService* search_helper = |
| 53 SearchGeolocationService::Factory::GetForBrowserContext(profile()); | 54 SearchGeolocationService::Factory::GetForBrowserContext(profile()); |
| 54 | 55 |
| 55 // If the user is incognito, use the DSE Geolocation setting from the | 56 // If the user is incognito, use the DSE Geolocation setting from the |
| (...skipping 30 matching lines...) Expand all Loading... |
| 86 user_gesture)) { | 87 user_gesture)) { |
| 87 PermissionDecided(id, requesting_frame_origin, | 88 PermissionDecided(id, requesting_frame_origin, |
| 88 web_contents->GetLastCommittedURL().GetOrigin(), | 89 web_contents->GetLastCommittedURL().GetOrigin(), |
| 89 user_gesture, callback, false /* persist */, | 90 user_gesture, callback, false /* persist */, |
| 90 CONTENT_SETTING_BLOCK); | 91 CONTENT_SETTING_BLOCK); |
| 91 return; | 92 return; |
| 92 } | 93 } |
| 93 | 94 |
| 94 GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin(); | 95 GURL embedding_origin = web_contents->GetLastCommittedURL().GetOrigin(); |
| 95 ContentSetting content_setting = | 96 ContentSetting content_setting = |
| 96 GeolocationPermissionContext::GetPermissionStatus(requesting_frame_origin, | 97 GeolocationPermissionContext::GetPermissionStatus( |
| 97 embedding_origin) | 98 nullptr /* render_frame_host */, requesting_frame_origin, |
| 99 embedding_origin) |
| 98 .content_setting; | 100 .content_setting; |
| 99 std::vector<ContentSettingsType> content_settings_types; | 101 std::vector<ContentSettingsType> content_settings_types; |
| 100 content_settings_types.push_back(CONTENT_SETTINGS_TYPE_GEOLOCATION); | 102 content_settings_types.push_back(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 101 if (content_setting == CONTENT_SETTING_ALLOW && | 103 if (content_setting == CONTENT_SETTING_ALLOW && |
| 102 PermissionUpdateInfoBarDelegate::ShouldShowPermissionInfobar( | 104 PermissionUpdateInfoBarDelegate::ShouldShowPermissionInfobar( |
| 103 web_contents, content_settings_types)) { | 105 web_contents, content_settings_types)) { |
| 104 permission_update_infobar_ = PermissionUpdateInfoBarDelegate::Create( | 106 permission_update_infobar_ = PermissionUpdateInfoBarDelegate::Create( |
| 105 web_contents, content_settings_types, | 107 web_contents, content_settings_types, |
| 106 base::Bind( | 108 base::Bind( |
| 107 &GeolocationPermissionContextAndroid | 109 &GeolocationPermissionContextAndroid |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 // The tab helper can be null in tests. | 263 // The tab helper can be null in tests. |
| 262 if (disclosure_helper) | 264 if (disclosure_helper) |
| 263 disclosure_helper->MaybeShowDisclosure(requesting_origin); | 265 disclosure_helper->MaybeShowDisclosure(requesting_origin); |
| 264 } | 266 } |
| 265 } | 267 } |
| 266 | 268 |
| 267 void GeolocationPermissionContextAndroid::SetLocationSettingsForTesting( | 269 void GeolocationPermissionContextAndroid::SetLocationSettingsForTesting( |
| 268 std::unique_ptr<LocationSettings> settings) { | 270 std::unique_ptr<LocationSettings> settings) { |
| 269 location_settings_ = std::move(settings); | 271 location_settings_ = std::move(settings); |
| 270 } | 272 } |
| OLD | NEW |