Commit 98ed99a2 authored by mlerman@chromium.org's avatar mlerman@chromium.org

Change refs from ChromeSigninClient to base SigninClient class.

Refactor.

BUG=357693

Review URL: https://codereview.chromium.org/296703011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272595 0039d316-1c4b-4281-b951-d872f2087c98
parent 4804ce6d
......@@ -1185,7 +1185,7 @@ bool ChromeContentBrowserClient::IsSuitableHost(
}
#if !defined(OS_CHROMEOS)
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(profile);
if (signin_client && signin_client->IsSigninProcess(process_host->GetID()))
return SigninManager::IsWebBasedSigninFlowURL(site_url);
......@@ -1310,7 +1310,7 @@ void ChromeContentBrowserClient::SiteInstanceGotProcess(
// for signin URLs. The signin process will be cleared from SigninManager
// when the renderer is destroyed.
if (SigninManager::IsWebBasedSigninFlowURL(site_instance->GetSiteURL())) {
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(profile);
if (signin_client)
signin_client->SetSigninProcess(site_instance->GetProcess()->GetID());
......@@ -1565,7 +1565,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitch(switches::kInstantProcess);
#if !defined(OS_CHROMEOS)
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(profile);
if (signin_client && signin_client->IsSigninProcess(process->GetID()))
command_line->AppendSwitch(switches::kSigninProcess);
......
......@@ -48,7 +48,7 @@ bool BrowserPermissionsPolicyDelegate::CanExecuteScriptOnPage(
g_browser_process->profile_manager()->GetLoadedProfiles();
for (std::vector<Profile*>::iterator profile = profiles.begin();
profile != profiles.end(); ++profile) {
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(*profile);
if (signin_client && signin_client->IsSigninProcess(process_id)) {
if (error)
......
......@@ -64,7 +64,7 @@ TEST_F(BrowserPermissionsPolicyDelegateTest, CanExecuteScriptOnPage) {
content::MockRenderProcessHost signin_process(profile_);
content::MockRenderProcessHost normal_process(profile_);
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(profile_);
ASSERT_TRUE(signin_client);
signin_client->SetSigninProcess(signin_process.GetID());
......
......@@ -7,7 +7,6 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/signin/core/browser/signin_client.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
......@@ -17,7 +16,6 @@ class CookieSettings;
class Profile;
class ChromeSigninClient : public SigninClient,
public KeyedService,
public content::NotificationObserver,
public content::RenderProcessHostObserver {
public:
......@@ -36,10 +34,10 @@ class ChromeSigninClient : public SigninClient,
// N.B. This is the id returned by RenderProcessHost::GetID().
// TODO(guohui): Eliminate these APIs once the web-based signin flow is
// replaced by a native flow. crbug.com/347247
void SetSigninProcess(int host_id);
void ClearSigninProcess();
bool IsSigninProcess(int host_id) const;
bool HasSigninProcess() const;
virtual void SetSigninProcess(int host_id) OVERRIDE;
virtual void ClearSigninProcess() OVERRIDE;
virtual bool IsSigninProcess(int host_id) const OVERRIDE;
virtual bool HasSigninProcess() const OVERRIDE;
// content::RenderProcessHostObserver implementation.
virtual void RenderProcessHostDestroyed(content::RenderProcessHost* host)
......
......@@ -15,8 +15,8 @@ ChromeSigninClientFactory::ChromeSigninClientFactory()
ChromeSigninClientFactory::~ChromeSigninClientFactory() {}
// static
ChromeSigninClient* ChromeSigninClientFactory::GetForProfile(Profile* profile) {
return static_cast<ChromeSigninClient*>(
SigninClient* ChromeSigninClientFactory::GetForProfile(Profile* profile) {
return static_cast<SigninClient*>(
GetInstance()->GetServiceForBrowserContext(profile, true));
}
......
......@@ -15,10 +15,10 @@ class Profile;
// Profiles.
class ChromeSigninClientFactory : public BrowserContextKeyedServiceFactory {
public:
// Returns the instance of ChromeSigninClient associated with this profile
// Returns the instance of SigninClient associated with this profile
// (creating one if none exists). Returns NULL if this profile cannot have an
// ChromeSigninClient (for example, if |profile| is incognito).
static ChromeSigninClient* GetForProfile(Profile* profile);
// SigninClient (for example, if |profile| is incognito).
static SigninClient* GetForProfile(Profile* profile);
// Returns an instance of the factory singleton.
static ChromeSigninClientFactory* GetInstance();
......
......@@ -107,7 +107,7 @@ const bool kOneClickSigninEnabled = false;
#define MAYBE_ProcessIsolation ProcessIsolation
#endif
IN_PROC_BROWSER_TEST_F(SigninBrowserTest, MAYBE_ProcessIsolation) {
ChromeSigninClient* signin =
SigninClient* signin =
ChromeSigninClientFactory::GetForProfile(browser()->profile());
EXPECT_FALSE(signin->HasSigninProcess());
......@@ -156,7 +156,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest, MAYBE_ProcessIsolation) {
#endif
IN_PROC_BROWSER_TEST_F(SigninBrowserTest, MAYBE_NotTrustedAfterRedirect) {
ChromeSigninClient* signin =
SigninClient* signin =
ChromeSigninClientFactory::GetForProfile(browser()->profile());
EXPECT_FALSE(signin->HasSigninProcess());
......@@ -213,7 +213,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest, SigninSkipForNowAndGoBack) {
GURL start_url = signin::GetPromoURL(signin::SOURCE_START_PAGE, false);
GURL skip_url = signin::GetLandingURL("ntp", 1);
ChromeSigninClient* signin =
SigninClient* signin =
ChromeSigninClientFactory::GetForProfile(browser()->profile());
EXPECT_FALSE(signin->HasSigninProcess());
......
......@@ -1105,7 +1105,7 @@ void OneClickSigninHelper::ShowInfoBarUIThread(
// show a modal dialog asking the user to confirm.
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
ChromeSigninClient* signin_client =
SigninClient* signin_client =
profile ? ChromeSigninClientFactory::GetForProfile(profile) : NULL;
helper->untrusted_confirmation_required_ |=
(signin_client && !signin_client->IsSigninProcess(child_id));
......@@ -1306,7 +1306,7 @@ void OneClickSigninHelper::DidNavigateMainFrame(
// sign-in process when a navigation to a non-sign-in URL occurs.
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
ChromeSigninClient* signin_client =
SigninClient* signin_client =
profile ? ChromeSigninClientFactory::GetForProfile(profile) : NULL;
int process_id = web_contents()->GetRenderProcessHost()->GetID();
if (signin_client && signin_client->IsSigninProcess(process_id))
......
......@@ -279,7 +279,7 @@ void OneClickSigninHelperTest::SetTrustedSigninProcessID(int id) {
}
void OneClickSigninHelperTest::SetUpSigninManager(const std::string& username) {
ChromeSigninClient* signin_client =
SigninClient* signin_client =
ChromeSigninClientFactory::GetForProfile(profile());
if (signin_client)
signin_client->SetSigninProcess(trusted_signin_process_id_);
......
......@@ -6,6 +6,7 @@
#define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_CLIENT_H_
#include "base/callback.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/signin/core/browser/webdata/token_web_data.h"
class PrefService;
......@@ -27,7 +28,7 @@ class ProfileOAuth2TokenServiceIOSProvider;
// An interface that needs to be supplied to the Signin component by its
// embedder.
class SigninClient {
class SigninClient : public KeyedService {
public:
typedef base::Callback<void(const net::CanonicalCookie* cookie)>
CookieChangedCallback;
......@@ -66,6 +67,12 @@ class SigninClient {
virtual void GoogleSigninSucceeded(const std::string& username,
const std::string& password) {}
virtual void SetSigninProcess(int host_id) = 0;
virtual void ClearSigninProcess() = 0;
virtual bool IsSigninProcess(int host_id) const = 0;
virtual bool HasSigninProcess() const = 0;
#if defined(OS_IOS)
// TODO(msarda): http://crbug.com/358544 Remove this iOS specific code from
// the core SigninClient.
......
......@@ -13,6 +13,12 @@
#include "ios/public/test/fake_profile_oauth2_token_service_ios_provider.h"
#endif
namespace {
// Helper for testing.
const int kInvalidProcessId = -1;
}
TestSigninClient::TestSigninClient()
: request_context_(new net::TestURLRequestContextGetter(
base::MessageLoopProxy::current())) {
......@@ -71,3 +77,23 @@ TestSigninClient::GetIOSProviderAsFake() {
return iosProvider_.get();
}
#endif
void TestSigninClient::SetSigninProcess(int process_id) {
if (process_id == signin_host_id_)
return;
DLOG_IF(WARNING, signin_host_id_ != kInvalidProcessId)
<< "Replacing in-use signin process.";
signin_host_id_ = process_id;
}
void TestSigninClient::ClearSigninProcess() {
signin_host_id_ = kInvalidProcessId;
}
bool TestSigninClient::IsSigninProcess(int process_id) const {
return process_id == signin_host_id_;
}
bool TestSigninClient::HasSigninProcess() const {
return signin_host_id_ != kInvalidProcessId;
}
......@@ -59,6 +59,12 @@ class TestSigninClient : public SigninClient {
ios::FakeProfileOAuth2TokenServiceIOSProvider* GetIOSProviderAsFake();
#endif
// SigninClient overrides:
virtual void SetSigninProcess(int host_id) OVERRIDE;
virtual void ClearSigninProcess() OVERRIDE;
virtual bool IsSigninProcess(int host_id) const OVERRIDE;
virtual bool HasSigninProcess() const OVERRIDE;
private:
// Loads the token database.
void LoadDatabase();
......@@ -66,6 +72,7 @@ class TestSigninClient : public SigninClient {
base::ScopedTempDir temp_dir_;
scoped_refptr<net::TestURLRequestContextGetter> request_context_;
scoped_refptr<TokenWebData> database_;
int signin_host_id_;
#if defined(OS_IOS)
scoped_ptr<ios::FakeProfileOAuth2TokenServiceIOSProvider> iosProvider_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment