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

Unified Diff: chrome/browser/chromeos/login/merge_session_throttle.cc

Issue 23678007: OAuth2LoginManager+MergeSessionThrottle hardening, multi-profle support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/merge_session_throttle.cc
diff --git a/chrome/browser/chromeos/login/merge_session_throttle.cc b/chrome/browser/chromeos/login/merge_session_throttle.cc
index a77892a36c17049c0e64bf994a98a450eb7a1380..85f5d9928ecda4b7bfeec70ea8601ed01a30091c 100644
--- a/chrome/browser/chromeos/login/merge_session_throttle.cc
+++ b/chrome/browser/chromeos/login/merge_session_throttle.cc
@@ -29,6 +29,8 @@ using content::WebContents;
namespace {
+const int kSessionThrottleWindowInSeconds = 10;
+
void ShowDeleayedLoadingPage(
int render_process_id,
int render_view_id,
@@ -69,10 +71,11 @@ MergeSessionThrottle::~MergeSessionThrottle() {
}
void MergeSessionThrottle::WillStartRequest(bool* defer) {
- if (!ShouldShowMergeSessionPage(request_->url()))
+ if (!ShouldShowMergeSessionPage(request_->url())) {
return;
+ }
- DVLOG(1) << "WillStartRequest: url=" << request_->url();
+ DVLOG(1) << "WillStartRequest: defer " << request_->url();
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
@@ -95,9 +98,13 @@ void MergeSessionThrottle::OnBlockingPageComplete() {
bool MergeSessionThrottle::ShouldShowMergeSessionPage(const GURL& url) const {
// If we are loading google properties while merge session is in progress,
// we will show delayed loading page instead.
+ chromeos::UserManager* manager = chromeos::UserManager::Get();
+ int64 session_duration = manager->GetSessionDurationInSeconds();
return !net::NetworkChangeNotifier::IsOffline() &&
- chromeos::UserManager::Get()->GetMergeSessionState() ==
+ manager->GetMergeSessionState() ==
chromeos::UserManager::MERGE_STATUS_IN_PROCESS &&
- google_util::IsGoogleHostname(url.host(),
- google_util::ALLOW_SUBDOMAIN);
+ session_duration >= 0 &&
+ session_duration < kSessionThrottleWindowInSeconds &&
+ google_util::IsGoogleHostname(url.host(),
+ google_util::ALLOW_SUBDOMAIN);
}

Powered by Google App Engine
This is Rietveld 408576698