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

Side by Side Diff: chrome/browser/geolocation/geolocation_infobar_delegate_android.cc

Issue 23345004: Fix Android strict-mode violation in GeoLocation info bar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments / fix tests Created 6 years, 10 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
OLDNEW
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/geolocation/geolocation_infobar_delegate_android.h" 5 #include "chrome/browser/geolocation/geolocation_infobar_delegate_android.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/android/google_location_settings_helper.h" 9 #include "chrome/browser/android/google_location_settings_helper.h"
10 #include "grit/generated_resources.h" 10 #include "grit/generated_resources.h"
(...skipping 21 matching lines...) Expand all
32 UMA_HISTOGRAM_ENUMERATION("Geolocation.InfoBarDelegateAndroid.Event", 32 UMA_HISTOGRAM_ENUMERATION("Geolocation.InfoBarDelegateAndroid.Event",
33 event, GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_COUNT); 33 event, GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_COUNT);
34 } 34 }
35 } // namespace 35 } // namespace
36 36
37 GeolocationInfoBarDelegateAndroid::GeolocationInfoBarDelegateAndroid( 37 GeolocationInfoBarDelegateAndroid::GeolocationInfoBarDelegateAndroid(
38 PermissionQueueController* controller, 38 PermissionQueueController* controller,
39 const PermissionRequestID& id, 39 const PermissionRequestID& id,
40 const GURL& requesting_frame_url, 40 const GURL& requesting_frame_url,
41 int contents_unique_id, 41 int contents_unique_id,
42 const std::string& display_languages) 42 const std::string& display_languages,
43 const std::string& accept_button_label)
43 : GeolocationInfoBarDelegate(controller, id, requesting_frame_url, 44 : GeolocationInfoBarDelegate(controller, id, requesting_frame_url,
44 contents_unique_id, display_languages), 45 contents_unique_id, display_languages,
46 accept_button_label_),
45 google_location_settings_helper_( 47 google_location_settings_helper_(
46 GoogleLocationSettingsHelper::Create()) { 48 GoogleLocationSettingsHelper::Create()),
49 accept_button_label_(accept_button_label) {
47 } 50 }
48 51
49 GeolocationInfoBarDelegateAndroid::~GeolocationInfoBarDelegateAndroid() { 52 GeolocationInfoBarDelegateAndroid::~GeolocationInfoBarDelegateAndroid() {
50 } 53 }
51 54
52 bool GeolocationInfoBarDelegateAndroid::Accept() { 55 bool GeolocationInfoBarDelegateAndroid::Accept() {
53 set_user_has_interacted(); 56 set_user_has_interacted();
54 57
55 // Accept button text could be either 'Allow' or 'Google Location Settings'. 58 // Accept button text could be either 'Allow' or 'Google Location Settings'.
56 // If 'Allow' we follow the regular flow. 59 // If 'Allow' we follow the regular flow.
57 if (google_location_settings_helper_->IsGoogleAppsLocationSettingEnabled()) { 60 if (google_location_settings_helper_->IsGoogleAppsLocationSettingEnabled()) {
58 RecordUmaEvent(GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_ALLOW); 61 RecordUmaEvent(GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_ALLOW);
59 return GeolocationInfoBarDelegate::Accept(); 62 return GeolocationInfoBarDelegate::Accept();
60 } 63 }
61 64
62 // If 'Google Location Settings', we need to open the system Google Location 65 // If 'Google Location Settings', we need to open the system Google Location
63 // Settings activity. 66 // Settings activity.
64 RecordUmaEvent(GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_SETTINGS); 67 RecordUmaEvent(GEOLOCATION_INFO_BAR_DELEGATE_ANDROID_EVENT_SETTINGS);
65 google_location_settings_helper_->ShowGoogleLocationSettings(); 68 google_location_settings_helper_->ShowGoogleLocationSettings();
66 SetPermission(false, false); 69 SetPermission(false, false);
67 return true; 70 return true;
68 } 71 }
69 72
70 base::string16 GeolocationInfoBarDelegateAndroid::GetButtonLabel( 73 base::string16 GeolocationInfoBarDelegateAndroid::GetButtonLabel(
71 InfoBarButton button) const { 74 InfoBarButton button) const {
72 return (button == BUTTON_OK) ? 75 return (button == BUTTON_OK) ?
73 base::UTF8ToUTF16( 76 base::UTF8ToUTF16(accept_button_label_ ) :
74 google_location_settings_helper_->GetAcceptButtonLabel()) :
75 l10n_util::GetStringUTF16(IDS_GEOLOCATION_DENY_BUTTON); 77 l10n_util::GetStringUTF16(IDS_GEOLOCATION_DENY_BUTTON);
76 } 78 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698