OLD | NEW |
---|---|
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/ui/sync/one_click_signin_helper.h" | 5 #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1043 url.ReplaceComponents(replacements) != | 1043 url.ReplaceComponents(replacements) != |
1044 continue_url_.ReplaceComponents(replacements)) { | 1044 continue_url_.ReplaceComponents(replacements)) { |
1045 if (++untrusted_navigations_since_signin_visit_ > kMaxNavigationsSince) | 1045 if (++untrusted_navigations_since_signin_visit_ > kMaxNavigationsSince) |
1046 CleanTransientState(); | 1046 CleanTransientState(); |
1047 } | 1047 } |
1048 } | 1048 } |
1049 | 1049 |
1050 void OneClickSigninHelper::DidNavigateMainFrame( | 1050 void OneClickSigninHelper::DidNavigateMainFrame( |
1051 const content::LoadCommittedDetails& details, | 1051 const content::LoadCommittedDetails& details, |
1052 const content::FrameNavigateParams& params) { | 1052 const content::FrameNavigateParams& params) { |
1053 // If we navigate to a non-sign-in URL, make sure that the renderer process | |
1054 // is no longer considered the trusted sign-in process. | |
1055 if (!SigninManager::IsWebBasedSigninFlowURL(params.url)) { | 1053 if (!SigninManager::IsWebBasedSigninFlowURL(params.url)) { |
1054 // Make sure the renderer process is no longer considered the trusted | |
1055 // sign-in process when a navigation to a non-sign-in URL occurs. | |
1056 Profile* profile = | 1056 Profile* profile = |
1057 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 1057 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
1058 SigninManager* manager = profile ? | 1058 SigninManager* manager = profile ? |
1059 SigninManagerFactory::GetForProfile(profile) : NULL; | 1059 SigninManagerFactory::GetForProfile(profile) : NULL; |
1060 int process_id = web_contents()->GetRenderProcessHost()->GetID(); | 1060 int process_id = web_contents()->GetRenderProcessHost()->GetID(); |
1061 if (manager && manager->IsSigninProcess(process_id)) | 1061 if (manager && manager->IsSigninProcess(process_id)) |
1062 manager->ClearSigninProcess(); | 1062 manager->ClearSigninProcess(); |
1063 | |
1064 // If the navigation to a non-sign-in URL hasn't been triggered by the web | |
1065 // contents, the sign in flow has been aborted and the state must be | |
1066 // cleaned (crbug.com/269421). | |
1067 if (!content::PageTransitionIsWebTriggerable(params.transition) && | |
1068 auto_accept_ != AUTO_ACCEPT_NONE) { | |
1069 CleanTransientState(); | |
1070 } | |
1063 } | 1071 } |
1064 } | 1072 } |
1065 | 1073 |
1066 void OneClickSigninHelper::DidStopLoading( | 1074 void OneClickSigninHelper::DidStopLoading( |
1067 content::RenderViewHost* render_view_host) { | 1075 content::RenderViewHost* render_view_host) { |
1068 // If the user left the sign in process, clear all members. | 1076 // If the user left the sign in process, clear all members. |
1069 // TODO(rogerta): might need to allow some youtube URLs. | 1077 // TODO(rogerta): might need to allow some youtube URLs. |
1070 content::WebContents* contents = web_contents(); | 1078 content::WebContents* contents = web_contents(); |
1071 const GURL url = contents->GetLastCommittedURL(); | 1079 const GURL url = contents->GetLastCommittedURL(); |
1072 Profile* profile = | 1080 Profile* profile = |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1186 } | 1194 } |
1187 | 1195 |
1188 Browser* browser = chrome::FindBrowserWithWebContents(contents); | 1196 Browser* browser = chrome::FindBrowserWithWebContents(contents); |
1189 | 1197 |
1190 VLOG(1) << "OneClickSigninHelper::DidStopLoading: signin is go." | 1198 VLOG(1) << "OneClickSigninHelper::DidStopLoading: signin is go." |
1191 << " auto_accept=" << auto_accept_ | 1199 << " auto_accept=" << auto_accept_ |
1192 << " source=" << source_; | 1200 << " source=" << source_; |
1193 | 1201 |
1194 switch (auto_accept_) { | 1202 switch (auto_accept_) { |
1195 case AUTO_ACCEPT_NONE: | 1203 case AUTO_ACCEPT_NONE: |
1196 if (showing_signin_) | 1204 if (showing_signin_) |
fdoray
2013/08/09 17:42:14
Is it possible to reach this line? |email_| would
| |
1197 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_DISMISSED); | 1205 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_DISMISSED); |
1198 break; | 1206 break; |
1199 case AUTO_ACCEPT_ACCEPTED: | 1207 case AUTO_ACCEPT_ACCEPTED: |
1200 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_ACCEPTED); | 1208 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_ACCEPTED); |
1201 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_WITH_DEFAULTS); | 1209 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_WITH_DEFAULTS); |
1202 SigninManager::DisableOneClickSignIn(profile); | 1210 SigninManager::DisableOneClickSignIn(profile); |
1203 // Start syncing with the default settings - prompt the user to sign in | 1211 // Start syncing with the default settings - prompt the user to sign in |
1204 // first. | 1212 // first. |
1205 StartSync(StartSyncArgs(profile, browser, auto_accept_, | 1213 StartSync(StartSyncArgs(profile, browser, auto_accept_, |
1206 session_index_, email_, password_, | 1214 session_index_, email_, password_, |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1370 // If the web contents is showing a blank page and not about to be closed, | 1378 // If the web contents is showing a blank page and not about to be closed, |
1371 // redirect to the NTP or apps page. | 1379 // redirect to the NTP or apps page. |
1372 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && | 1380 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && |
1373 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { | 1381 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { |
1374 RedirectToNtpOrAppsPage( | 1382 RedirectToNtpOrAppsPage( |
1375 web_contents(), | 1383 web_contents(), |
1376 signin::GetSourceForPromoURL(original_continue_url_)); | 1384 signin::GetSourceForPromoURL(original_continue_url_)); |
1377 } | 1385 } |
1378 } | 1386 } |
1379 } | 1387 } |
OLD | NEW |