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