New issue
Advanced search Search tips

Issue 654990 link

Starred by 6 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task


Sign in to add a comment

Content Modularization Project: Extract Identity "persona management" into service

Project Member Reported by ben@chromium.org, Oct 12 2016

Issue description

Create an Identity service which manages multiple accounts/identities for a single meat-user.

Code in //chrome (e.g. sync) can then use this service API to auth.
 

Comment 1 by ew...@chromium.org, Oct 12 2016

Cc: anthonyvd@chromium.org msarda@chromium.org
Components: Services>SignIn
Labels: OS-Linux OS-Mac OS-Windows

Comment 2 by jam@chromium.org, Nov 3 2016

Owner: blundell@chromium.org
Status: Assigned (was: Untriaged)
(Assigning per discussion when you were here)
Project Member

Comment 3 by sheriffbot@chromium.org, Dec 19 2016

Status: Available (was: Assigned)
--Chrome Identity automated triaging--

This bug is Assigned and has gone one month without any activity, so it is being moved to Available to indicate that it is not actively being worked on. If you are working on this bug, please mark yourself as the owner and move back to Assigned. Please see https://goo.gl/78kbny for more details. Please remove the Services>SignIn or UI>Browser>Profiles components if this bug isn't related to Chrome Identity.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Assigned (was: Available)

Comment 5 by xiy...@chromium.org, Jan 17 2017

Cc: xiy...@chromium.org
Labels: -OS-Linux -OS-Windows -OS-Mac OS-All
In the long term, all platforms should use the Identity Service.
Blockedon: 683120
Blockedon: 683124

Comment 9 by st...@chromium.org, Jan 23 2017

Cc: st...@chromium.org
Labels: DeviceService
Labels: -DeviceService
Cc: alemate@chromium.org michae...@chromium.org
Cc: r...@chromium.org
Cc: -st...@chromium.org
Project Member

Comment 15 by sheriffbot@chromium.org, Apr 3 2017

Status: Available (was: Assigned)
--Chrome Identity automated triaging--

This bug is Assigned and has gone one month without any activity, so it is being moved to Available to indicate that it is not actively being worked on. If you are working on this bug, please mark yourself as the owner and move back to Assigned. Please see https://goo.gl/78kbny for more details. Please remove the Services>SignIn or UI>Browser>Profiles components if this bug isn't related to Chrome Identity.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Assigned (was: Available)
Project Member

Comment 17 by sheriffbot@chromium.org, May 4 2017

Status: Available (was: Assigned)
--Chrome Identity automated triaging--

This bug is Assigned and has gone one month without any activity, so it is being moved to Available to indicate that it is not actively being worked on. If you are working on this bug, please mark yourself as the owner and move back to Assigned. Please see https://goo.gl/78kbny for more details. Please remove the Services>SignIn or UI>Browser>Profiles components if this bug isn't related to Chrome Identity.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Started (was: Available)
oh sheriffbot.
Labels: IdentityService
Blockedon: 729590
Blockedon: 729968
Blockedon: 729975
Blockedon: 729976
Blockedon: 731023
Blockedon: 731034
Blockedon: 731587
Components: Internals>Services>Identity
Labels: Type-Task
Migrating S13N meta bugs to Type=Task, so that they can be distinguished from technical work.
Components: Internals>Services
Project Member

Comment 30 by bugdroid1@chromium.org, Nov 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4c6d8720876d034646ceef64231069b81d061438

commit 4c6d8720876d034646ceef64231069b81d061438
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Nov 23 10:53:05 2017

Remove dead signin include from SigninGlobalErrorFactory

Discovered while analyzing work required to implement Identity Service.

Bug: 654990
Change-Id: Id50327bbc01394784d33d535cffed8c422b39075
Reviewed-on: https://chromium-review.googlesource.com/785695
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518884}
[modify] https://crrev.com/4c6d8720876d034646ceef64231069b81d061438/chrome/browser/signin/signin_global_error_factory.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Nov 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac4bc1aa728f6a776854e7da74cfaa3004c62770

commit ac4bc1aa728f6a776854e7da74cfaa3004c62770
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Nov 23 16:41:57 2017

Remove stale signin includes from //chrome/browser/devtools

Discovered during analysis of work required to implement Identity Service.

Bug: 654990
Change-Id: I4d5c493f0f42a2f77e3ea60046bdb5f9c52f50e5
Reviewed-on: https://chromium-review.googlesource.com/785674
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518961}
[modify] https://crrev.com/ac4bc1aa728f6a776854e7da74cfaa3004c62770/chrome/browser/devtools/device/devtools_android_bridge.cc

Cc: blundell@chromium.org
 Issue 683120  has been merged into this issue.
Project Member

Comment 33 by bugdroid1@chromium.org, Dec 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295

commit 7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Dec 19 12:13:03 2017

Identity Service: Rename IdentityManager to IdentityManagerImpl

A forthcoming CL is going to introduce a client-side C++ encapsulation
of identity::mojom::IdentityManager. We have decided that the best
name for this client-side C++ class is IdentityManager (following a
pattern set by e.g. interface_provider.h and interface_provider.mojom).
To enable this introduction, we must rename the current
identity::IdentityManager. This CL hence renames this class to
identity::IdentityManagerImpl.

Note that this renaming triggers a bunch of presubmit warnings about
usage of base::Bind() and base::Closure. As this CL is not intended
to be a behavioral change, we simply change these usages to what they
are aliased to: base::BindRepeating() and base::RepeatingClosure.
Future work can convert any of these that are suitable to the
Once variants.

Bug: 654990
Change-Id: Ic25090e562617499d6ef3052248c7a0833ff0b69
Reviewed-on: https://chromium-review.googlesource.com/832482
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525003}
[modify] https://crrev.com/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295/services/identity/BUILD.gn
[rename] https://crrev.com/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295/services/identity/identity_manager_impl.cc
[rename] https://crrev.com/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295/services/identity/identity_manager_impl.h
[rename] https://crrev.com/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295/services/identity/identity_manager_impl_unittest.cc
[modify] https://crrev.com/7b2a9f0e5f5d7f2baf63f9f2dcbb5ea798603295/services/identity/identity_service.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Dec 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ec084b0e2994f9f8a30e77f3c7c641fc743448e

commit 9ec084b0e2994f9f8a30e77f3c7c641fc743448e
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Dec 19 14:30:57 2017

Introduce Identity Service client library

This CL introduces IdentityManager, which will serve as the primary
client-side interface for consumers of the Identity Service. Its
function will be to provide more user-friendly interfaces on top of the
bare asynchronous Mojo interfaces of the Identity Service itself. In
particular, it provides synchronous access to the primary account info
via caching of the latest update received from the Identity Service.

As described in the README.md being added here, we are bringing up this
class *in parallel with* bringing up the Identity Service itself. The
reason is so that we can start using and validating these client-side
APIs in parallel and in advance of actually supporting them via the
Identity Service. Thus, at this time, IdentityManager is directly backed
by //components/signin classes that will eventually live inside the
Identity Service implementation. As much as possible, we are building
the interactions of IdentityManager with those classes to resemble the
interactions that it will eventually have with the Identity Service.

This CL also adds variants of the SigninManagerBase signin/signout
callbacks that pass AccountInfo rather than an (accountID, email) pair.
The reason is that the only way to reconstruct the AccountInfo from
the latter information is by going through the AccountTrackerService;
as mentioned above, we are trying to limit synchronous interaction of
IdentityManager with the core signin classes as much as possible.

Bug: 654990
Change-Id: I1cec0f8306d1f362c66df00626f8b321706db368
Reviewed-on: https://chromium-review.googlesource.com/827130
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525021}
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/components/signin/core/browser/fake_signin_manager.cc
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/components/signin/core/browser/signin_manager.cc
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/components/signin/core/browser/signin_manager_base.h
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/BUILD.gn
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/BUILD.gn
[modify] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/DEPS
[add] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/README.md
[add] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/identity_manager.cc
[add] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/identity_manager.h
[add] https://crrev.com/9ec084b0e2994f9f8a30e77f3c7c641fc743448e/services/identity/public/cpp/identity_manager_unittest.cc

Project Member

Comment 35 by bugdroid1@chromium.org, Dec 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bbb8461bbfd523b65e8448ee85685ef3cc961d8a

commit bbb8461bbfd523b65e8448ee85685ef3cc961d8a
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Dec 19 15:58:41 2017

Rename AccessTokenFetcher to PrimaryAccountAccessTokenFetcher

AccessTokenFetcher is a very user-friendly convenience class for
fetching access tokens for the primary (authenticated) account once
the user is signed in. This CL renames it to the more-specific
PrimaryAccountAccessTokenFetcher in preparation for moving this
interface to be part of the Identity Service client library.

Bug: 654990
Change-Id: I8ff4081b316a7ceb5b427b6674ff964331fd0cb3
Reviewed-on: https://chromium-review.googlesource.com/831519
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525044}
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/breaking_news/subscription_manager_impl.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/breaking_news/subscription_manager_impl.h
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.h
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/omnibox/browser/contextual_suggestions_service.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/omnibox/browser/contextual_suggestions_service.h
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/signin/core/browser/BUILD.gn
[rename] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/signin/core/browser/primary_account_access_token_fetcher.cc
[rename] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/signin/core/browser/primary_account_access_token_fetcher.h
[rename] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/signin/core/browser/primary_account_access_token_fetcher_unittest.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/suggestions/suggestions_service_impl.cc
[modify] https://crrev.com/bbb8461bbfd523b65e8448ee85685ef3cc961d8a/components/suggestions/suggestions_service_impl.h

Project Member

Comment 36 by bugdroid1@chromium.org, Dec 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/660c0573a5cfe18103c50d9cc538f4beca20b978

commit 660c0573a5cfe18103c50d9cc538f4beca20b978
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Dec 19 19:58:34 2017

Move PrimaryAccountTokenFetcher to Identity Service client library

This class will serve as the primary client-side wrapper interface for
obtaining access tokens from the primary account (including waiting for
the primary account to become available).

A followup CL will add an interface to IdentityProxy for creating a
PrimaryAccountTokenFetcher instance without requiring direct access
to core //components/signin classes. In the future, all clients that
use this class will be converted to create instances via IdentityProxy.
This class itself will in the longer term be converted to be backed by
the Identity Service rather than by those //components/signin classes.

A followup CL will also put this class in the ::identity namespace.

Bug: 654990
Change-Id: I1b2bc380630435223b9134202d407d48e3d0554f
Reviewed-on: https://chromium-review.googlesource.com/831868
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525119}
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/ntp_snippets/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/ntp_snippets/DEPS
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/ntp_snippets/breaking_news/subscription_manager_impl.cc
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.cc
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/omnibox/browser/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/omnibox/browser/DEPS
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/omnibox/browser/contextual_suggestions_service.h
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/signin/core/browser/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/suggestions/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/suggestions/DEPS
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/components/suggestions/suggestions_service_impl.h
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/BUILD.gn
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/DEPS
[modify] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/README.md
[rename] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/primary_account_access_token_fetcher.cc
[rename] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/primary_account_access_token_fetcher.h
[rename] https://crrev.com/660c0573a5cfe18103c50d9cc538f4beca20b978/services/identity/public/cpp/primary_account_access_token_fetcher_unittest.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Dec 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/28bba9f661b4680c182972388737b27a2edca286

commit 28bba9f661b4680c182972388737b27a2edca286
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Dec 19 23:01:40 2017

Identity Service: Add //chrome KeyedService that wraps IdentityManager

This CL makes IdentityManager available in //chrome via a
KeyedServiceFactory. KeyedService is conceptually the right match for
IdentityManager: There should be one IdentityManager instance per
Identity Service instance, and as the Identity Service is a per-user
service, there will be one Identity Service instance per Profile.

Note that IdentityManager itself cannot be a KeyedService directly as it
is intended for usage from generic client processes (e.g., the renderer);
to introduce KeyedService in this generic context would be a layering
violation. Hence, IdentityManagerFactory maintains a small wrapper class
internally that holds IdentityManager instances.

A followup change will introduce the same access for //ios/chrome.

Bug: 654990
Change-Id: I5bf924083e4764fb3bc9e9d0d12b16b18937d8d1
Reviewed-on: https://chromium-review.googlesource.com/831516
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525171}
[modify] https://crrev.com/28bba9f661b4680c182972388737b27a2edca286/chrome/browser/BUILD.gn
[add] https://crrev.com/28bba9f661b4680c182972388737b27a2edca286/chrome/browser/signin/identity_manager_factory.cc
[add] https://crrev.com/28bba9f661b4680c182972388737b27a2edca286/chrome/browser/signin/identity_manager_factory.h

Project Member

Comment 38 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70a72281cec9955d0ba681c3537f051856e0a144

commit 70a72281cec9955d0ba681c3537f051856e0a144
Author: Colin Blundell <blundell@chromium.org>
Date: Wed Dec 20 11:06:36 2017

Add creation of PrimaryAccountAccessTokenFetcher via IdentityManager

This CL adds an interface on IdentityManager to create a
PrimaryAccountAccessTokenFetcher instance. In this way, clients of
IdentityManager can create PrimaryAccountAccessTokenFetchers without
needing to know about the core signin classes on which it depends. This
interface will facilitate moving clients of
PrimaryAccountAccessTokenFetcher to depend on IdentityManager rather
than depending on these core signin classes directly.

Bug: 654990
Change-Id: I15217dabf60a8dada17ce54f76406c011d011f5c
Reviewed-on: https://chromium-review.googlesource.com/832647
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525303}
[modify] https://crrev.com/70a72281cec9955d0ba681c3537f051856e0a144/chrome/browser/signin/identity_manager_factory.cc
[modify] https://crrev.com/70a72281cec9955d0ba681c3537f051856e0a144/services/identity/public/cpp/identity_manager.cc
[modify] https://crrev.com/70a72281cec9955d0ba681c3537f051856e0a144/services/identity/public/cpp/identity_manager.h
[modify] https://crrev.com/70a72281cec9955d0ba681c3537f051856e0a144/services/identity/public/cpp/identity_manager_unittest.cc

Blockedon: 796544
Project Member

Comment 40 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ee42ed6447b61edafe933b4b2f5612ceb92fd78

commit 0ee42ed6447b61edafe933b4b2f5612ceb92fd78
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Dec 21 12:10:43 2017

Put PrimaryAccountAccessTokenFetcher in ::identity namespace

Followup to the move of this class into the Identity Service client
library.

Bug: 654990
Change-Id: I24f1c5b47b36d7a79e30a20aad2870dc4520a4c8
Reviewed-on: https://chromium-review.googlesource.com/836868
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525674}
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/breaking_news/subscription_manager_impl.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/breaking_news/subscription_manager_impl.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/omnibox/browser/contextual_suggestions_service.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/omnibox/browser/contextual_suggestions_service.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/suggestions/suggestions_service_impl.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/components/suggestions/suggestions_service_impl.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/services/identity/public/cpp/primary_account_access_token_fetcher.cc
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/services/identity/public/cpp/primary_account_access_token_fetcher.h
[modify] https://crrev.com/0ee42ed6447b61edafe933b4b2f5612ceb92fd78/services/identity/public/cpp/primary_account_access_token_fetcher_unittest.cc

Project Member

Comment 41 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ee540c5e0d7ef6607d6bfe06d808a13f22af478

commit 1ee540c5e0d7ef6607d6bfe06d808a13f22af478
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Dec 21 13:01:19 2017

Identity Service: Add //ios/chrome KeyedService to wrap IdentityManager

Follows the pattern of
https://chromium-review.googlesource.com/c/chromium/src/+/831516, which
added the corresponding KeyedService in //chrome.

Bug: 654990
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I8b8d2ce22c4faa6be149e151d1ad6b213475b6e0
Reviewed-on: https://chromium-review.googlesource.com/836587
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525678}
[modify] https://crrev.com/1ee540c5e0d7ef6607d6bfe06d808a13f22af478/chrome/browser/signin/identity_manager_factory.h
[modify] https://crrev.com/1ee540c5e0d7ef6607d6bfe06d808a13f22af478/ios/chrome/browser/signin/BUILD.gn
[add] https://crrev.com/1ee540c5e0d7ef6607d6bfe06d808a13f22af478/ios/chrome/browser/signin/identity_manager_factory.cc
[add] https://crrev.com/1ee540c5e0d7ef6607d6bfe06d808a13f22af478/ios/chrome/browser/signin/identity_manager_factory.h

Project Member

Comment 42 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac5d37a06022b0ee42210455aaa9dd938ca60c5e

commit ac5d37a06022b0ee42210455aaa9dd938ca60c5e
Author: Colin Blundell <blundell@chromium.org>
Date: Wed Jan 03 10:47:49 2018

Make ContextualSuggestionsFetcher test work with async token fetches

In order to move the behavior of PrimaryAccountAccessTokenFetcher closer
to what it will be once it is interacting with the Identity Service, I
will shortly be changing this class to fetch
access tokens strictly asynchronously (by posting a task to the current
message loop to call into ProfileOAuth2TokenService). In particular,
this change is necessary to preserve the expected ordering with other
soon-to-be-introduced IdentityManager APIs that will interact
asynchronously with ProfileOAuth2TokenService (e.g., to invalidate
access tokens).

The ContextualSuggestionsFetcher unittests currently assume that
AccessTokenFetcher interacts synchronously with PO2TS. This CL relaxes
these assumptions so that the tests will continue to work as-is when the
above change is made.

Bug: 654990
Change-Id: Ia1ee647c3c97af9482e21c2605e1dcd5a4af7894
Reviewed-on: https://chromium-review.googlesource.com/844596
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526662}
[modify] https://crrev.com/ac5d37a06022b0ee42210455aaa9dd938ca60c5e/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl_unittest.cc

Project Member

Comment 43 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0defaba62f4c7b05f3af56c0a4a2d8b63eabbf2e

commit 0defaba62f4c7b05f3af56c0a4a2d8b63eabbf2e
Author: Colin Blundell <blundell@chromium.org>
Date: Wed Jan 03 10:51:19 2018

Change AccessTokenFetcher unittest to work with async fetching

In order to move the behavior of PrimaryAccountAccessTokenFetcher closer
to what it will be once it is interacting with the Identity Service, I
will shortly be changing this class to fetch
access tokens strictly asynchronously (by posting a task to the current
message loop to call into ProfileOAuth2TokenService). In particular,
this change is necessary to preserve the expected ordering with other
soon-to-be-introduced IdentityManager APIs that will interact
asynchronously with ProfileOAuth2TokenService (e.g., to invalidate
access tokens).

The PrimaryAccountAccessTokenFetcher unittests currently assume that
AccessTokenFetcher interacts synchronously with PO2TS. This CL relaxes
these assumptions so that the tests will continue to work as-is when the
above change is made.

Bug: 654990
Change-Id: I9f3c8bef926ece573480123136b82df42e71abbc
Reviewed-on: https://chromium-review.googlesource.com/844595
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526663}
[modify] https://crrev.com/0defaba62f4c7b05f3af56c0a4a2d8b63eabbf2e/services/identity/public/cpp/primary_account_access_token_fetcher_unittest.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4eb2a7f0f77288d103aa19495eff6cb53c282f50

commit 4eb2a7f0f77288d103aa19495eff6cb53c282f50
Author: Colin Blundell <blundell@chromium.org>
Date: Wed Jan 03 10:58:19 2018

Make SubscriptionManager test work with async token fetches

In order to move the behavior of PrimaryAccountAccessTokenFetcher closer
to what it will be once it is interacting with the Identity Service, I
will shortly be changing this class to fetch
access tokens strictly asynchronously (by posting a task to the current
message loop to call into ProfileOAuth2TokenService). In particular,
this change is necessary to preserve the expected ordering with other
soon-to-be-introduced IdentityManager APIs that will interact
asynchronously with ProfileOAuth2TokenService (e.g., to invalidate
access tokens).

The SubscriptionManager unittests currently assume that
AccessTokenFetcher interacts synchronously with PO2TS. This CL relaxes
these assumptions so that the tests will continue to work as-is when the
above change is made.

Bug: 654990
Change-Id: Ib0a863c0b00133379819319129e1a49a46647d88
Reviewed-on: https://chromium-review.googlesource.com/844575
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526664}
[modify] https://crrev.com/4eb2a7f0f77288d103aa19495eff6cb53c282f50/components/ntp_snippets/breaking_news/subscription_manager_impl_unittest.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8edd5f7d54f3ab644d89358219792bce48bc28dc

commit 8edd5f7d54f3ab644d89358219792bce48bc28dc
Author: Colin Blundell <blundell@chromium.org>
Date: Wed Jan 03 11:20:39 2018

Make RemoteSuggestionsFetcher test work with async token fetches

In order to move the behavior of PrimaryAccountAccessTokenFetcher closer
to what it will be once it is interacting with the Identity Service, I
will shortly be changing this class to fetch
access tokens strictly asynchronously (by posting a task to the current
message loop to call into ProfileOAuth2TokenService). In particular,
this change is necessary to preserve the expected ordering with other
soon-to-be-introduced IdentityManager APIs that will interact
asynchronously with ProfileOAuth2TokenService (e.g., to invalidate
access tokens).

The RemoteSuggestionsFetcher unittests currently assume that
AccessTokenFetcher interacts synchronously with PO2TS. This CL relaxes
these assumptions so that the tests will continue to work as-is when the
above change is made.

Bug: 654990
Change-Id: Ic61fd2bf9ef4ffdbba82c7eeff5f54e3766f310b
Reviewed-on: https://chromium-review.googlesource.com/844675
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526665}
[modify] https://crrev.com/8edd5f7d54f3ab644d89358219792bce48bc28dc/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Jan 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8032fcce943a8523f60860d382c4fff1fe633374

commit 8032fcce943a8523f60860d382c4fff1fe633374
Author: Colin Blundell <blundell@chromium.org>
Date: Mon Jan 08 08:40:08 2018

Make SuggestionsService test work with async access token fetches

In order to move the behavior of PrimaryAccountAccessTokenFetcher closer
to what it will be once it is interacting with the Identity Service, I
will shortly be changing this class to fetch
access tokens strictly asynchronously (by posting a task to the current
message loop to call into ProfileOAuth2TokenService). In particular,
this change is necessary to preserve the expected ordering with other
soon-to-be-introduced IdentityManager APIs that will interact
asynchronously with ProfileOAuth2TokenService (e.g., to invalidate
access tokens).

The SuggestionsService unittests currently assume that
AccessTokenFetcher interacts synchronously with PO2TS. This CL relaxes
these assumptions so that the tests will continue to work as-is when the
above change is made.

Bug: 654990
Change-Id: Ie3a0ffc563aaa764791fec898a632f09ce4adbd1
Reviewed-on: https://chromium-review.googlesource.com/844674
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Commit-Queue: Colin Blundell (OOO until January 8) <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527584}
[modify] https://crrev.com/8032fcce943a8523f60860d382c4fff1fe633374/components/suggestions/suggestions_service_impl_unittest.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Jan 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/09cdc4ae33191491e4a00f6a58bb0006ee4f66f7

commit 09cdc4ae33191491e4a00f6a58bb0006ee4f66f7
Author: Colin Blundell <blundell@chromium.org>
Date: Mon Jan 08 16:47:54 2018

Have PrimaryAccountAccessTokenFetcher start request asynchronously

PrimaryAccountAccessTokenFetcher currently starts token requests to
ProfileOAuth2TokenService asynchronously. However, this is not
reflective of the fact that these requests will always be async once
they are going to the Identity Service. This CL changes
PrimaryAccountAccessTokenFetcher to post a task when starting an
access token request.

This change in particular enables a followup API addition to
IdentityManager for removing cached access tokens. This API addition
will also be implemented asynchronously; in order to maintain ordering
between a client request to remove a cached token and a subsequent
client request to fetch a token via PrimaryAccountAccessTokenFetcher,
the latter's requests need to be asynchronous as well.

I tested the clients of PrimaryAccountAccessTokenFetcher manually after
this change: The NTP page still has NTP tiles on desktop/Android and
still has content suggestions on Android. Hence, these clients are
still receiving access tokens as expected.

Bug: 654990
Change-Id: I8ed396a9e686f6f24f3f867a7a174da1daf82bb2
Reviewed-on: https://chromium-review.googlesource.com/839681
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527647}
[modify] https://crrev.com/09cdc4ae33191491e4a00f6a58bb0006ee4f66f7/services/identity/public/cpp/primary_account_access_token_fetcher.cc
[modify] https://crrev.com/09cdc4ae33191491e4a00f6a58bb0006ee4f66f7/services/identity/public/cpp/primary_account_access_token_fetcher.h

Project Member

Comment 48 by bugdroid1@chromium.org, Jan 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d2052b3ca6b9268beb78726b27ffe7113f96834

commit 7d2052b3ca6b9268beb78726b27ffe7113f96834
Author: Colin Blundell <blundell@chromium.org>
Date: Mon Jan 08 19:02:13 2018

IdentityManager: Introduce API for invalidating access tokens.

This CL adds an IdentityManager API for invalidating access tokens,
intended for usage in converting consumers of
OAuth2TokenService::InvalidateAccessToken().

To mimic the eventual underlying interaction with the Identity Service,
IdentityManager calls ProfileOAuth2TokenService asynchronously in the
implementation of this method.

The test added here is somewhat of a kludge; as
FakeProfileOAuth2TokenService deliberately eschews usage of a cache of
access tokens, validating that at least the underlying implementation
method is invoked is the best we can do.

Bug: 654990
Change-Id: Ie667922fe9f837678a4c92b25134988282972d79
Reviewed-on: https://chromium-review.googlesource.com/846767
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527693}
[modify] https://crrev.com/7d2052b3ca6b9268beb78726b27ffe7113f96834/services/identity/public/cpp/identity_manager.cc
[modify] https://crrev.com/7d2052b3ca6b9268beb78726b27ffe7113f96834/services/identity/public/cpp/identity_manager.h
[modify] https://crrev.com/7d2052b3ca6b9268beb78726b27ffe7113f96834/services/identity/public/cpp/identity_manager_unittest.cc

Project Member

Comment 49 by bugdroid1@chromium.org, Jan 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f08ca0bdbcc799722b1bec69033b839d0f96687

commit 7f08ca0bdbcc799722b1bec69033b839d0f96687
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Jan 09 07:08:34 2018

Introduce one-shot variant of PrimaryAccountAccessTokenFetcher

PrimaryAccountAccessTokenFetcher currently waits until the primary
account is available to make an access token request and retries a
request once on cancellation. While this behavior is desired by some
consumers (e.g., all the existing ones), upcoming consumers fetch
access tokens for the primary account in a "one-shot" mode: making
the access request without checking status of the primary account and
not retrying at all on error.

To facilitate conversion of these upcoming consumers to use
PrimaryAccountAccessTokenFetcher, this CL makes the behavior of
PrimaryAccountAccessTokenFetcher configurable via a |mode| argument.

Bug: 654990
Change-Id: I329b52a6461b6a5a609096ce8cef62ce171e7551
Reviewed-on: https://chromium-review.googlesource.com/846743
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527919}
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/components/ntp_snippets/breaking_news/subscription_manager_impl.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/components/ntp_snippets/contextual/contextual_suggestions_fetcher_impl.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/components/omnibox/browser/contextual_suggestions_service.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/components/suggestions/suggestions_service_impl.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/identity_manager.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/identity_manager.h
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/identity_manager_unittest.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/primary_account_access_token_fetcher.cc
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/primary_account_access_token_fetcher.h
[modify] https://crrev.com/7f08ca0bdbcc799722b1bec69033b839d0f96687/services/identity/public/cpp/primary_account_access_token_fetcher_unittest.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Jan 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb87a2e585caafa97a085d771405351c9c4237dd

commit bb87a2e585caafa97a085d771405351c9c4237dd
Author: Colin Blundell <blundell@chromium.org>
Date: Tue Jan 09 17:29:41 2018

Have browsertests go through full SigninManager signin flow

These browsertests short-circuit the SigninManager signin flow,
instead just directly setting the authenticated account info. As the
IdentityManager gets introduced into the codebase, this test behavior
will be problematic: only the full signin flow results in observer
callbacks, which the IdentityManager relies on receiving in order to
have consistent state with SigninManager (e.g., for when
IdentityManager receives a corresponding signout notification).

This CL changes the ComponentCloudPolicy browsertest to do a full
signin flow.

Bug: 654990
Change-Id: Ibb09f21e6aa8b9afa097a60001916f348ee587cf
Reviewed-on: https://chromium-review.googlesource.com/857178
Reviewed-by: Julian Pastarmov <pastarmovj@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528028}
[modify] https://crrev.com/bb87a2e585caafa97a085d771405351c9c4237dd/chrome/browser/policy/cloud/component_cloud_policy_browsertest.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Jan 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1374c5dc1e27f85a299f6f685637fd062be7f557

commit 1374c5dc1e27f85a299f6f685637fd062be7f557
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Jan 25 14:49:18 2018

Don't have FakeSigninManager fire signin/signout observer calls directly

This CL changes FakeSigninManager to go through SigninManager to fire
signin and signout observer callbacks. The reason is that an upcoming
CL will add some more events that need to happen around the firing of
these callbacks, and it is better to have that added code have to live
only in SigninManager rather than be duplicated in FakeSigninManager.

Bug: 654990
Change-Id: I9de195e0f1bb69754b04e578978ebe85791a6a0f
Reviewed-on: https://chromium-review.googlesource.com/883529
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531898}
[modify] https://crrev.com/1374c5dc1e27f85a299f6f685637fd062be7f557/components/signin/core/browser/fake_signin_manager.cc
[modify] https://crrev.com/1374c5dc1e27f85a299f6f685637fd062be7f557/components/signin/core/browser/signin_manager.cc
[modify] https://crrev.com/1374c5dc1e27f85a299f6f685637fd062be7f557/components/signin/core/browser/signin_manager.h

Sign in to add a comment