Chromium Code Reviews| 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 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1045 url.ReplaceComponents(replacements) != | 1045 url.ReplaceComponents(replacements) != |
| 1046 continue_url_.ReplaceComponents(replacements)) { | 1046 continue_url_.ReplaceComponents(replacements)) { |
| 1047 if (++untrusted_navigations_since_signin_visit_ > kMaxNavigationsSince) | 1047 if (++untrusted_navigations_since_signin_visit_ > kMaxNavigationsSince) |
| 1048 CleanTransientState(); | 1048 CleanTransientState(); |
| 1049 } | 1049 } |
| 1050 } | 1050 } |
| 1051 | 1051 |
| 1052 void OneClickSigninHelper::DidNavigateMainFrame( | 1052 void OneClickSigninHelper::DidNavigateMainFrame( |
| 1053 const content::LoadCommittedDetails& details, | 1053 const content::LoadCommittedDetails& details, |
| 1054 const content::FrameNavigateParams& params) { | 1054 const content::FrameNavigateParams& params) { |
| 1055 // If we navigate to a non-sign-in URL, make sure that the renderer process | |
| 1056 // is no longer considered the trusted sign-in process. | |
| 1057 if (!SigninManager::IsWebBasedSigninFlowURL(params.url)) { | 1055 if (!SigninManager::IsWebBasedSigninFlowURL(params.url)) { |
| 1056 // Make sure the renderer process is no longer considered the trusted | |
| 1057 // sign-in process when a navigation to a non-sign-in URL occurs. | |
| 1058 Profile* profile = | 1058 Profile* profile = |
| 1059 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 1059 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
| 1060 SigninManager* manager = profile ? | 1060 SigninManager* manager = profile ? |
| 1061 SigninManagerFactory::GetForProfile(profile) : NULL; | 1061 SigninManagerFactory::GetForProfile(profile) : NULL; |
| 1062 int process_id = web_contents()->GetRenderProcessHost()->GetID(); | 1062 int process_id = web_contents()->GetRenderProcessHost()->GetID(); |
| 1063 if (manager && manager->IsSigninProcess(process_id)) | 1063 if (manager && manager->IsSigninProcess(process_id)) |
| 1064 manager->ClearSigninProcess(); | 1064 manager->ClearSigninProcess(); |
| 1065 | |
| 1066 // If the navigation to a non-sign-in URL hasn't been triggered by the web | |
| 1067 // contents, the sign in flow has been aborted and the state must be | |
| 1068 // cleaned (crbug.com/269421). | |
| 1069 if (!content::PageTransitionIsWebTriggerable(params.transition) && | |
| 1070 auto_accept_ != AUTO_ACCEPT_NONE) | |
|
fdoray
2013/08/09 14:32:25
CleanTransientState() cannot be executed in a unit
(NOT FOR CODE REVIEWS)
2013/08/09 14:43:04
Is it only for tests? Can you set do_not_clear_pe
fdoray
2013/08/09 17:42:14
It's for tests, but it also avoids unnecessary cal
| |
| 1071 CleanTransientState(); | |
|
(NOT FOR CODE REVIEWS)
2013/08/09 14:43:04
Should add { and } to this if statement since cond
fdoray
2013/08/09 17:42:14
Done.
| |
| 1065 } | 1072 } |
| 1066 } | 1073 } |
| 1067 | 1074 |
| 1068 void OneClickSigninHelper::DidStopLoading( | 1075 void OneClickSigninHelper::DidStopLoading( |
| 1069 content::RenderViewHost* render_view_host) { | 1076 content::RenderViewHost* render_view_host) { |
| 1070 // If the user left the sign in process, clear all members. | 1077 // If the user left the sign in process, clear all members. |
| 1071 // TODO(rogerta): might need to allow some youtube URLs. | 1078 // TODO(rogerta): might need to allow some youtube URLs. |
| 1072 content::WebContents* contents = web_contents(); | 1079 content::WebContents* contents = web_contents(); |
| 1073 const GURL url = contents->GetLastCommittedURL(); | 1080 const GURL url = contents->GetLastCommittedURL(); |
| 1074 Profile* profile = | 1081 Profile* profile = |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1372 // If the web contents is showing a blank page and not about to be closed, | 1379 // If the web contents is showing a blank page and not about to be closed, |
| 1373 // redirect to the NTP or apps page. | 1380 // redirect to the NTP or apps page. |
| 1374 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && | 1381 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && |
| 1375 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { | 1382 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { |
| 1376 RedirectToNtpOrAppsPage( | 1383 RedirectToNtpOrAppsPage( |
| 1377 web_contents(), | 1384 web_contents(), |
| 1378 signin::GetSourceForPromoURL(original_continue_url_)); | 1385 signin::GetSourceForPromoURL(original_continue_url_)); |
| 1379 } | 1386 } |
| 1380 } | 1387 } |
| 1381 } | 1388 } |
| OLD | NEW |