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

Side by Side Diff: chrome/browser/extensions/api/identity/identity_api.cc

Issue 2025103003: ExtensionFunction: don't pass ownership of base::Value by raw pointer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/extensions/api/identity/identity_api.h" 5 #include "chrome/browser/extensions/api/identity/identity_api.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory>
9 #include <set> 10 #include <set>
10 #include <string> 11 #include <string>
11 #include <utility> 12 #include <utility>
12 #include <vector> 13 #include <vector>
13 14
14 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
15 #include "base/macros.h" 16 #include "base/macros.h"
16 #include "base/memory/ptr_util.h" 17 #include "base/memory/ptr_util.h"
17 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
18 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 286
286 ExtensionFunction::ResponseAction IdentityGetAccountsFunction::Run() { 287 ExtensionFunction::ResponseAction IdentityGetAccountsFunction::Run() {
287 if (GetProfile()->IsOffTheRecord()) { 288 if (GetProfile()->IsOffTheRecord()) {
288 return RespondNow(Error(identity_constants::kOffTheRecord)); 289 return RespondNow(Error(identity_constants::kOffTheRecord));
289 } 290 }
290 291
291 std::vector<std::string> gaia_ids = 292 std::vector<std::string> gaia_ids =
292 IdentityAPI::GetFactoryInstance()->Get(GetProfile())->GetAccounts(); 293 IdentityAPI::GetFactoryInstance()->Get(GetProfile())->GetAccounts();
293 DCHECK(gaia_ids.size() < 2 || switches::IsExtensionsMultiAccount()); 294 DCHECK(gaia_ids.size() < 2 || switches::IsExtensionsMultiAccount());
294 295
295 base::ListValue* infos = new base::ListValue(); 296 std::unique_ptr<base::ListValue> infos(new base::ListValue());
296 297
297 for (std::vector<std::string>::const_iterator it = gaia_ids.begin(); 298 for (std::vector<std::string>::const_iterator it = gaia_ids.begin();
298 it != gaia_ids.end(); 299 it != gaia_ids.end();
299 ++it) { 300 ++it) {
300 api::identity::AccountInfo account_info; 301 api::identity::AccountInfo account_info;
301 account_info.id = *it; 302 account_info.id = *it;
302 infos->Append(account_info.ToValue().release()); 303 infos->Append(account_info.ToValue().release());
303 } 304 }
304 305
305 return RespondNow(OneArgument(infos)); 306 return RespondNow(OneArgument(std::move(infos)));
306 } 307 }
307 308
308 IdentityGetAuthTokenFunction::IdentityGetAuthTokenFunction() 309 IdentityGetAuthTokenFunction::IdentityGetAuthTokenFunction()
309 : OAuth2TokenService::Consumer("extensions_identity_api"), 310 : OAuth2TokenService::Consumer("extensions_identity_api"),
310 interactive_(false), 311 interactive_(false),
311 should_prompt_for_scopes_(false), 312 should_prompt_for_scopes_(false),
312 should_prompt_for_signin_(false) { 313 should_prompt_for_signin_(false) {
313 } 314 }
314 315
315 IdentityGetAuthTokenFunction::~IdentityGetAuthTokenFunction() { 316 IdentityGetAuthTokenFunction::~IdentityGetAuthTokenFunction() {
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 AccountInfo account = 911 AccountInfo account =
911 AccountTrackerServiceFactory::GetForProfile(GetProfile()) 912 AccountTrackerServiceFactory::GetForProfile(GetProfile())
912 ->GetAccountInfo(GetPrimaryAccountId(GetProfile())); 913 ->GetAccountInfo(GetPrimaryAccountId(GetProfile()));
913 api::identity::ProfileUserInfo profile_user_info; 914 api::identity::ProfileUserInfo profile_user_info;
914 if (extension()->permissions_data()->HasAPIPermission( 915 if (extension()->permissions_data()->HasAPIPermission(
915 APIPermission::kIdentityEmail)) { 916 APIPermission::kIdentityEmail)) {
916 profile_user_info.email = account.email; 917 profile_user_info.email = account.email;
917 profile_user_info.id = account.gaia; 918 profile_user_info.id = account.gaia;
918 } 919 }
919 920
920 return RespondNow(OneArgument(profile_user_info.ToValue().release())); 921 return RespondNow(OneArgument(profile_user_info.ToValue()));
921 } 922 }
922 923
923 IdentityRemoveCachedAuthTokenFunction::IdentityRemoveCachedAuthTokenFunction() { 924 IdentityRemoveCachedAuthTokenFunction::IdentityRemoveCachedAuthTokenFunction() {
924 } 925 }
925 926
926 IdentityRemoveCachedAuthTokenFunction:: 927 IdentityRemoveCachedAuthTokenFunction::
927 ~IdentityRemoveCachedAuthTokenFunction() { 928 ~IdentityRemoveCachedAuthTokenFunction() {
928 } 929 }
929 930
930 bool IdentityRemoveCachedAuthTokenFunction::RunSync() { 931 bool IdentityRemoveCachedAuthTokenFunction::RunSync() {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1015 if (redirect_url.GetWithEmptyPath() == final_url_prefix_) { 1016 if (redirect_url.GetWithEmptyPath() == final_url_prefix_) {
1016 SetResult(base::MakeUnique<base::StringValue>(redirect_url.spec())); 1017 SetResult(base::MakeUnique<base::StringValue>(redirect_url.spec()));
1017 SendResponse(true); 1018 SendResponse(true);
1018 if (auth_flow_) 1019 if (auth_flow_)
1019 auth_flow_.release()->DetachDelegateAndDelete(); 1020 auth_flow_.release()->DetachDelegateAndDelete();
1020 Release(); // Balanced in RunAsync. 1021 Release(); // Balanced in RunAsync.
1021 } 1022 }
1022 } 1023 }
1023 1024
1024 } // namespace extensions 1025 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698