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

Side by Side Diff: chrome/browser/ui/sync/one_click_signin_helper.cc

Issue 562603002: Move PageTransition from //content/public/common to //ui/base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 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 unified diff | Download patch
OLDNEW
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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 #include "components/signin/core/common/profile_management_switches.h" 72 #include "components/signin/core/common/profile_management_switches.h"
73 #include "components/sync_driver/sync_prefs.h" 73 #include "components/sync_driver/sync_prefs.h"
74 #include "content/public/browser/browser_thread.h" 74 #include "content/public/browser/browser_thread.h"
75 #include "content/public/browser/navigation_entry.h" 75 #include "content/public/browser/navigation_entry.h"
76 #include "content/public/browser/page_navigator.h" 76 #include "content/public/browser/page_navigator.h"
77 #include "content/public/browser/render_frame_host.h" 77 #include "content/public/browser/render_frame_host.h"
78 #include "content/public/browser/render_process_host.h" 78 #include "content/public/browser/render_process_host.h"
79 #include "content/public/browser/web_contents.h" 79 #include "content/public/browser/web_contents.h"
80 #include "content/public/browser/web_contents_delegate.h" 80 #include "content/public/browser/web_contents_delegate.h"
81 #include "content/public/common/frame_navigate_params.h" 81 #include "content/public/common/frame_navigate_params.h"
82 #include "content/public/common/page_transition_types.h"
83 #include "google_apis/gaia/gaia_auth_util.h" 82 #include "google_apis/gaia/gaia_auth_util.h"
84 #include "google_apis/gaia/gaia_urls.h" 83 #include "google_apis/gaia/gaia_urls.h"
85 #include "grit/components_strings.h" 84 #include "grit/components_strings.h"
86 #include "ipc/ipc_message_macros.h" 85 #include "ipc/ipc_message_macros.h"
87 #include "net/base/url_util.h" 86 #include "net/base/url_util.h"
88 #include "net/cookies/cookie_monster.h" 87 #include "net/cookies/cookie_monster.h"
89 #include "net/url_request/url_request.h" 88 #include "net/url_request/url_request.h"
90 #include "ui/base/l10n/l10n_util.h" 89 #include "ui/base/l10n/l10n_util.h"
90 #include "ui/base/page_transition_types.h"
91 #include "url/gurl.h" 91 #include "url/gurl.h"
92 92
93 93
94 namespace { 94 namespace {
95 95
96 // ConfirmEmailDialogDelegate ------------------------------------------------- 96 // ConfirmEmailDialogDelegate -------------------------------------------------
97 97
98 class ConfirmEmailDialogDelegate : public TabModalConfirmDialogDelegate { 98 class ConfirmEmailDialogDelegate : public TabModalConfirmDialogDelegate {
99 public: 99 public:
100 enum Action { 100 enum Action {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 void ConfirmEmailDialogDelegate::OnClosed() { 202 void ConfirmEmailDialogDelegate::OnClosed() {
203 base::ResetAndReturn(&callback_).Run(CLOSE); 203 base::ResetAndReturn(&callback_).Run(CLOSE);
204 } 204 }
205 205
206 void ConfirmEmailDialogDelegate::OnLinkClicked( 206 void ConfirmEmailDialogDelegate::OnLinkClicked(
207 WindowOpenDisposition disposition) { 207 WindowOpenDisposition disposition) {
208 content::OpenURLParams params( 208 content::OpenURLParams params(
209 GURL(chrome::kChromeSyncMergeTroubleshootingURL), 209 GURL(chrome::kChromeSyncMergeTroubleshootingURL),
210 content::Referrer(), 210 content::Referrer(),
211 NEW_POPUP, 211 NEW_POPUP,
212 content::PAGE_TRANSITION_AUTO_TOPLEVEL, 212 ui::PAGE_TRANSITION_AUTO_TOPLEVEL,
213 false); 213 false);
214 // It is guaranteed that |web_contents_| is valid here because when it's 214 // It is guaranteed that |web_contents_| is valid here because when it's
215 // deleted, the dialog is immediately closed and no further action can be 215 // deleted, the dialog is immediately closed and no further action can be
216 // performed. 216 // performed.
217 web_contents_->OpenURL(params); 217 web_contents_->OpenURL(params);
218 } 218 }
219 219
220 220
221 // Helpers -------------------------------------------------------------------- 221 // Helpers --------------------------------------------------------------------
222 222
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 class CurrentHistoryCleaner : public content::WebContentsObserver { 436 class CurrentHistoryCleaner : public content::WebContentsObserver {
437 public: 437 public:
438 explicit CurrentHistoryCleaner(content::WebContents* contents); 438 explicit CurrentHistoryCleaner(content::WebContents* contents);
439 virtual ~CurrentHistoryCleaner(); 439 virtual ~CurrentHistoryCleaner();
440 440
441 // content::WebContentsObserver: 441 // content::WebContentsObserver:
442 virtual void WebContentsDestroyed() OVERRIDE; 442 virtual void WebContentsDestroyed() OVERRIDE;
443 virtual void DidCommitProvisionalLoadForFrame( 443 virtual void DidCommitProvisionalLoadForFrame(
444 content::RenderFrameHost* render_frame_host, 444 content::RenderFrameHost* render_frame_host,
445 const GURL& url, 445 const GURL& url,
446 content::PageTransition transition_type) OVERRIDE; 446 ui::PageTransition transition_type) OVERRIDE;
447 447
448 private: 448 private:
449 scoped_ptr<content::WebContents> contents_; 449 scoped_ptr<content::WebContents> contents_;
450 int history_index_to_remove_; 450 int history_index_to_remove_;
451 451
452 DISALLOW_COPY_AND_ASSIGN(CurrentHistoryCleaner); 452 DISALLOW_COPY_AND_ASSIGN(CurrentHistoryCleaner);
453 }; 453 };
454 454
455 CurrentHistoryCleaner::CurrentHistoryCleaner(content::WebContents* contents) 455 CurrentHistoryCleaner::CurrentHistoryCleaner(content::WebContents* contents)
456 : WebContentsObserver(contents) { 456 : WebContentsObserver(contents) {
457 history_index_to_remove_ = 457 history_index_to_remove_ =
458 web_contents()->GetController().GetLastCommittedEntryIndex(); 458 web_contents()->GetController().GetLastCommittedEntryIndex();
459 } 459 }
460 460
461 CurrentHistoryCleaner::~CurrentHistoryCleaner() { 461 CurrentHistoryCleaner::~CurrentHistoryCleaner() {
462 } 462 }
463 463
464 void CurrentHistoryCleaner::DidCommitProvisionalLoadForFrame( 464 void CurrentHistoryCleaner::DidCommitProvisionalLoadForFrame(
465 content::RenderFrameHost* render_frame_host, 465 content::RenderFrameHost* render_frame_host,
466 const GURL& url, 466 const GURL& url,
467 content::PageTransition transition_type) { 467 ui::PageTransition transition_type) {
468 // Return early if this is not top-level navigation. 468 // Return early if this is not top-level navigation.
469 if (render_frame_host->GetParent()) 469 if (render_frame_host->GetParent())
470 return; 470 return;
471 471
472 content::NavigationController* nc = &web_contents()->GetController(); 472 content::NavigationController* nc = &web_contents()->GetController();
473 HistoryService* hs = HistoryServiceFactory::GetForProfile( 473 HistoryService* hs = HistoryServiceFactory::GetForProfile(
474 Profile::FromBrowserContext(web_contents()->GetBrowserContext()), 474 Profile::FromBrowserContext(web_contents()->GetBrowserContext()),
475 Profile::IMPLICIT_ACCESS); 475 Profile::IMPLICIT_ACCESS);
476 476
477 // Have to wait until something else gets added to history before removal. 477 // Have to wait until something else gets added to history before removal.
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 if (contents->GetController().GetPendingEntry()) 1197 if (contents->GetController().GetPendingEntry())
1198 return; 1198 return;
1199 1199
1200 VLOG(1) << "RedirectToNtpOrAppsPage"; 1200 VLOG(1) << "RedirectToNtpOrAppsPage";
1201 // Redirect to NTP/Apps page and display a confirmation bubble 1201 // Redirect to NTP/Apps page and display a confirmation bubble
1202 GURL url(source == signin::SOURCE_APPS_PAGE_LINK ? 1202 GURL url(source == signin::SOURCE_APPS_PAGE_LINK ?
1203 chrome::kChromeUIAppsURL : chrome::kChromeUINewTabURL); 1203 chrome::kChromeUIAppsURL : chrome::kChromeUINewTabURL);
1204 content::OpenURLParams params(url, 1204 content::OpenURLParams params(url,
1205 content::Referrer(), 1205 content::Referrer(),
1206 CURRENT_TAB, 1206 CURRENT_TAB,
1207 content::PAGE_TRANSITION_AUTO_TOPLEVEL, 1207 ui::PAGE_TRANSITION_AUTO_TOPLEVEL,
1208 false); 1208 false);
1209 contents->OpenURL(params); 1209 contents->OpenURL(params);
1210 } 1210 }
1211 1211
1212 // static 1212 // static
1213 void OneClickSigninHelper::RedirectToNtpOrAppsPageIfNecessary( 1213 void OneClickSigninHelper::RedirectToNtpOrAppsPageIfNecessary(
1214 content::WebContents* contents, signin::Source source) { 1214 content::WebContents* contents, signin::Source source) {
1215 if (source != signin::SOURCE_SETTINGS && 1215 if (source != signin::SOURCE_SETTINGS &&
1216 source != signin::SOURCE_WEBSTORE_INSTALL) { 1216 source != signin::SOURCE_WEBSTORE_INSTALL) {
1217 RedirectToNtpOrAppsPage(contents, source); 1217 RedirectToNtpOrAppsPage(contents, source);
1218 } 1218 }
1219 } 1219 }
1220 1220
1221 void OneClickSigninHelper::RedirectToSignin() { 1221 void OneClickSigninHelper::RedirectToSignin() {
1222 VLOG(1) << "OneClickSigninHelper::RedirectToSignin"; 1222 VLOG(1) << "OneClickSigninHelper::RedirectToSignin";
1223 1223
1224 // Extract the existing sounce=X value. Default to "2" if missing. 1224 // Extract the existing sounce=X value. Default to "2" if missing.
1225 signin::Source source = signin::GetSourceForPromoURL(continue_url_); 1225 signin::Source source = signin::GetSourceForPromoURL(continue_url_);
1226 if (source == signin::SOURCE_UNKNOWN) 1226 if (source == signin::SOURCE_UNKNOWN)
1227 source = signin::SOURCE_MENU; 1227 source = signin::SOURCE_MENU;
1228 GURL page = signin::GetPromoURL(source, false); 1228 GURL page = signin::GetPromoURL(source, false);
1229 1229
1230 content::WebContents* contents = web_contents(); 1230 content::WebContents* contents = web_contents();
1231 contents->GetController().LoadURL(page, 1231 contents->GetController().LoadURL(page,
1232 content::Referrer(), 1232 content::Referrer(),
1233 content::PAGE_TRANSITION_AUTO_TOPLEVEL, 1233 ui::PAGE_TRANSITION_AUTO_TOPLEVEL,
1234 std::string()); 1234 std::string());
1235 } 1235 }
1236 1236
1237 void OneClickSigninHelper::CleanTransientState() { 1237 void OneClickSigninHelper::CleanTransientState() {
1238 VLOG(1) << "OneClickSigninHelper::CleanTransientState"; 1238 VLOG(1) << "OneClickSigninHelper::CleanTransientState";
1239 showing_signin_ = false; 1239 showing_signin_ = false;
1240 email_.clear(); 1240 email_.clear();
1241 password_.clear(); 1241 password_.clear();
1242 auto_accept_ = AUTO_ACCEPT_NONE; 1242 auto_accept_ = AUTO_ACCEPT_NONE;
1243 source_ = signin::SOURCE_UNKNOWN; 1243 source_ = signin::SOURCE_UNKNOWN;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1307 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1308 SigninClient* signin_client = 1308 SigninClient* signin_client =
1309 profile ? ChromeSigninClientFactory::GetForProfile(profile) : NULL; 1309 profile ? ChromeSigninClientFactory::GetForProfile(profile) : NULL;
1310 int process_id = web_contents()->GetRenderProcessHost()->GetID(); 1310 int process_id = web_contents()->GetRenderProcessHost()->GetID();
1311 if (signin_client && signin_client->IsSigninProcess(process_id)) 1311 if (signin_client && signin_client->IsSigninProcess(process_id))
1312 signin_client->ClearSigninProcess(); 1312 signin_client->ClearSigninProcess();
1313 1313
1314 // If the navigation to a non-sign-in URL hasn't been triggered by the web 1314 // If the navigation to a non-sign-in URL hasn't been triggered by the web
1315 // contents, the sign in flow has been aborted and the state must be 1315 // contents, the sign in flow has been aborted and the state must be
1316 // cleaned (crbug.com/269421). 1316 // cleaned (crbug.com/269421).
1317 if (!content::PageTransitionIsWebTriggerable(params.transition) && 1317 if (!ui::PageTransitionIsWebTriggerable(params.transition) &&
1318 auto_accept_ != AUTO_ACCEPT_NONE) { 1318 auto_accept_ != AUTO_ACCEPT_NONE) {
1319 CleanTransientState(); 1319 CleanTransientState();
1320 } 1320 }
1321 } 1321 }
1322 } 1322 }
1323 1323
1324 void OneClickSigninHelper::DidStopLoading( 1324 void OneClickSigninHelper::DidStopLoading(
1325 content::RenderViewHost* render_view_host) { 1325 content::RenderViewHost* render_view_host) {
1326 // If the user left the sign in process, clear all members. 1326 // If the user left the sign in process, clear all members.
1327 // TODO(rogerta): might need to allow some youtube URLs. 1327 // TODO(rogerta): might need to allow some youtube URLs.
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
1597 // If the web contents is showing a blank page and not about to be closed, 1597 // If the web contents is showing a blank page and not about to be closed,
1598 // redirect to the NTP or apps page. 1598 // redirect to the NTP or apps page.
1599 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && 1599 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) &&
1600 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { 1600 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) {
1601 RedirectToNtpOrAppsPage( 1601 RedirectToNtpOrAppsPage(
1602 web_contents(), 1602 web_contents(),
1603 signin::GetSourceForPromoURL(original_continue_url_)); 1603 signin::GetSourceForPromoURL(original_continue_url_));
1604 } 1604 }
1605 } 1605 }
1606 } 1606 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698