Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/permissions/permission_update_infobar_delegate_android. h" | 5 #include "chrome/browser/permissions/permission_update_infobar_delegate_android. h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 69 } | 69 } |
| 70 | 70 |
| 71 // static | 71 // static |
| 72 bool PermissionUpdateInfoBarDelegate::RegisterPermissionUpdateInfoBarDelegate( | 72 bool PermissionUpdateInfoBarDelegate::RegisterPermissionUpdateInfoBarDelegate( |
| 73 JNIEnv* env) { | 73 JNIEnv* env) { |
| 74 return RegisterNativesImpl(env); | 74 return RegisterNativesImpl(env); |
| 75 } | 75 } |
| 76 | 76 |
| 77 void PermissionUpdateInfoBarDelegate::OnPermissionResult( | 77 void PermissionUpdateInfoBarDelegate::OnPermissionResult( |
| 78 JNIEnv* env, jobject obj, jboolean all_permissions_granted) { | 78 JNIEnv* env, jobject obj, jboolean all_permissions_granted) { |
| 79 callback_.Run(all_permissions_granted); | 79 PermissionUpdatedCallback cb = callback_; |
|
Guido Urdaneta
2015/09/23 13:32:14
Can you use base::ResetAndReturn() here?
Ted C
2015/09/23 19:45:34
Neat! Done
Peter Kasting
2016/09/21 21:33:44
This change got referenced in another review I was
Peter Kasting
2016/09/21 21:37:08
To be clear: I understand why you want to reset th
| |
| 80 callback_.Reset(); | |
| 81 cb.Run(all_permissions_granted); | |
| 82 | |
| 80 infobar()->RemoveSelf(); | 83 infobar()->RemoveSelf(); |
| 81 } | 84 } |
| 82 | 85 |
| 83 PermissionUpdateInfoBarDelegate::PermissionUpdateInfoBarDelegate( | 86 PermissionUpdateInfoBarDelegate::PermissionUpdateInfoBarDelegate( |
| 84 content::WebContents* web_contents, | 87 content::WebContents* web_contents, |
| 85 const std::vector<ContentSettingsType>& content_settings_types, | 88 const std::vector<ContentSettingsType>& content_settings_types, |
| 86 const PermissionUpdatedCallback& callback) | 89 const PermissionUpdatedCallback& callback) |
| 87 : ConfirmInfoBarDelegate(), | 90 : ConfirmInfoBarDelegate(), |
| 88 content_settings_types_(content_settings_types), | 91 content_settings_types_(content_settings_types), |
| 89 callback_(callback) { | 92 callback_(callback) { |
| 90 std::vector<int> content_settings_type_values; | 93 std::vector<int> content_settings_type_values; |
| 91 for (ContentSettingsType type : content_settings_types) | 94 for (ContentSettingsType type : content_settings_types) |
| 92 content_settings_type_values.push_back(type); | 95 content_settings_type_values.push_back(type); |
| 93 | 96 |
| 94 JNIEnv* env = base::android::AttachCurrentThread(); | 97 JNIEnv* env = base::android::AttachCurrentThread(); |
| 95 java_delegate_.Reset(Java_PermissionUpdateInfoBarDelegate_create( | 98 java_delegate_.Reset(Java_PermissionUpdateInfoBarDelegate_create( |
| 96 env, | 99 env, |
| 97 reinterpret_cast<intptr_t>(this), | 100 reinterpret_cast<intptr_t>(this), |
| 98 web_contents->GetJavaWebContents().obj(), | 101 web_contents->GetJavaWebContents().obj(), |
| 99 base::android::ToJavaIntArray(env, content_settings_type_values).obj())); | 102 base::android::ToJavaIntArray(env, content_settings_type_values).obj())); |
| 100 | 103 |
| 101 content::ContentViewCore* cvc = | 104 content::ContentViewCore* cvc = |
| 102 content::ContentViewCore::FromWebContents(web_contents); | 105 content::ContentViewCore::FromWebContents(web_contents); |
| 103 window_android_ = cvc->GetWindowAndroid(); | 106 window_android_ = cvc->GetWindowAndroid(); |
| 104 } | 107 } |
| 105 | 108 |
| 106 PermissionUpdateInfoBarDelegate::~PermissionUpdateInfoBarDelegate() { | 109 PermissionUpdateInfoBarDelegate::~PermissionUpdateInfoBarDelegate() { |
| 107 Java_PermissionUpdateInfoBarDelegate_onNativeDestroyed( | 110 Java_PermissionUpdateInfoBarDelegate_onNativeDestroyed( |
| 108 base::android::AttachCurrentThread(), java_delegate_.obj()); | 111 base::android::AttachCurrentThread(), java_delegate_.obj()); |
| 112 | |
| 113 if (!callback_.is_null()) | |
| 114 callback_.Run(false); | |
| 109 } | 115 } |
| 110 | 116 |
| 111 int PermissionUpdateInfoBarDelegate::GetIconId() const { | 117 int PermissionUpdateInfoBarDelegate::GetIconId() const { |
| 112 return IDR_INFOBAR_WARNING; | 118 return IDR_INFOBAR_WARNING; |
| 113 } | 119 } |
| 114 | 120 |
| 115 base::string16 PermissionUpdateInfoBarDelegate::GetMessageText() const { | 121 base::string16 PermissionUpdateInfoBarDelegate::GetMessageText() const { |
| 116 int missing_permission_count = 0; | 122 int missing_permission_count = 0; |
| 117 int message_id = IDS_INFOBAR_MISSING_MULTIPLE_PERMISSIONS_TEXT; | 123 int message_id = IDS_INFOBAR_MISSING_MULTIPLE_PERMISSIONS_TEXT; |
| 118 | 124 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 160 return l10n_util::GetStringUTF16(IDS_INFOBAR_UPDATE_PERMISSIONS_BUTTON_TEXT); | 166 return l10n_util::GetStringUTF16(IDS_INFOBAR_UPDATE_PERMISSIONS_BUTTON_TEXT); |
| 161 } | 167 } |
| 162 | 168 |
| 163 bool PermissionUpdateInfoBarDelegate::Accept() { | 169 bool PermissionUpdateInfoBarDelegate::Accept() { |
| 164 Java_PermissionUpdateInfoBarDelegate_requestPermissions( | 170 Java_PermissionUpdateInfoBarDelegate_requestPermissions( |
| 165 base::android::AttachCurrentThread(), java_delegate_.obj()); | 171 base::android::AttachCurrentThread(), java_delegate_.obj()); |
| 166 return false; | 172 return false; |
| 167 } | 173 } |
| 168 | 174 |
| 169 bool PermissionUpdateInfoBarDelegate::Cancel() { | 175 bool PermissionUpdateInfoBarDelegate::Cancel() { |
| 170 callback_.Run(false); | 176 PermissionUpdatedCallback cb = callback_; |
|
Guido Urdaneta
2015/09/23 13:32:14
base::ResetAndReturn()
| |
| 177 callback_.Reset(); | |
| 178 cb.Run(false); | |
| 179 | |
| 171 return true; | 180 return true; |
| 172 } | 181 } |
| 182 | |
| 183 void PermissionUpdateInfoBarDelegate::InfoBarDismissed() { | |
| 184 PermissionUpdatedCallback cb = callback_; | |
| 185 callback_.Reset(); | |
| 186 cb.Run(false); | |
| 187 } | |
| OLD | NEW |