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

Side by Side Diff: chrome/browser/password_manager/chrome_password_manager_client.cc

Issue 1978563002: Stop compiling password infobar code on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean up cocoa Created 4 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/password_manager/chrome_password_manager_client.h" 5 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "components/prefs/pref_service.h" 49 #include "components/prefs/pref_service.h"
50 #include "components/signin/core/browser/signin_manager.h" 50 #include "components/signin/core/browser/signin_manager.h"
51 #include "components/version_info/version_info.h" 51 #include "components/version_info/version_info.h"
52 #include "content/public/browser/navigation_entry.h" 52 #include "content/public/browser/navigation_entry.h"
53 #include "content/public/browser/render_view_host.h" 53 #include "content/public/browser/render_view_host.h"
54 #include "content/public/browser/web_contents.h" 54 #include "content/public/browser/web_contents.h"
55 #include "google_apis/gaia/gaia_urls.h" 55 #include "google_apis/gaia/gaia_urls.h"
56 #include "net/base/url_util.h" 56 #include "net/base/url_util.h"
57 #include "third_party/re2/src/re2/re2.h" 57 #include "third_party/re2/src/re2/re2.h"
58 58
59 #if defined(OS_MACOSX) || BUILDFLAG(ANDROID_JAVA_UI)
60 #include "chrome/browser/password_manager/save_password_infobar_delegate.h"
61 #endif
62
63 #if BUILDFLAG(ANDROID_JAVA_UI) 59 #if BUILDFLAG(ANDROID_JAVA_UI)
64 #include "chrome/browser/android/tab_android.h" 60 #include "chrome/browser/android/tab_android.h"
65 #include "chrome/browser/password_manager/account_chooser_dialog_android.h" 61 #include "chrome/browser/password_manager/account_chooser_dialog_android.h"
66 #include "chrome/browser/password_manager/auto_signin_first_run_dialog_android.h " 62 #include "chrome/browser/password_manager/auto_signin_first_run_dialog_android.h "
67 #include "chrome/browser/password_manager/generated_password_saved_infobar_deleg ate_android.h" 63 #include "chrome/browser/password_manager/generated_password_saved_infobar_deleg ate_android.h"
64 #include "chrome/browser/password_manager/save_password_infobar_delegate.h"
68 #include "chrome/browser/password_manager/update_password_infobar_delegate.h" 65 #include "chrome/browser/password_manager/update_password_infobar_delegate.h"
69 #include "chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.h" 66 #include "chrome/browser/ui/android/snackbars/auto_signin_prompt_controller.h"
70 #endif 67 #endif
71 68
72 using password_manager::ContentPasswordManagerDriverFactory; 69 using password_manager::ContentPasswordManagerDriverFactory;
73 using password_manager::PasswordManagerInternalsService; 70 using password_manager::PasswordManagerInternalsService;
74 71
75 // Shorten the name to spare line breaks. The code provides enough context 72 // Shorten the name to spare line breaks. The code provides enough context
76 // already. 73 // already.
77 typedef autofill::SavePasswordProgressLogger Logger; 74 typedef autofill::SavePasswordProgressLogger Logger;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 std::unique_ptr<password_manager::PasswordFormManager> form_to_save, 212 std::unique_ptr<password_manager::PasswordFormManager> form_to_save,
216 password_manager::CredentialSourceType type, 213 password_manager::CredentialSourceType type,
217 bool update_password) { 214 bool update_password) {
218 // Save password infobar and the password bubble prompts in case of 215 // Save password infobar and the password bubble prompts in case of
219 // "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://). 216 // "webby" URLs and do not prompt in case of "non-webby" URLS (e.g. file://).
220 if (!BrowsingDataHelper::IsWebScheme( 217 if (!BrowsingDataHelper::IsWebScheme(
221 web_contents()->GetLastCommittedURL().scheme())) { 218 web_contents()->GetLastCommittedURL().scheme())) {
222 return false; 219 return false;
223 } 220 }
224 221
225 if (IsTheHotNewBubbleUIEnabled()) {
226 #if !BUILDFLAG(ANDROID_JAVA_UI) 222 #if !BUILDFLAG(ANDROID_JAVA_UI)
227 PasswordsClientUIDelegate* manage_passwords_ui_controller = 223 PasswordsClientUIDelegate* manage_passwords_ui_controller =
228 PasswordsClientUIDelegateFromWebContents(web_contents()); 224 PasswordsClientUIDelegateFromWebContents(web_contents());
229 if (update_password && IsUpdatePasswordUIEnabled()) { 225 if (update_password) {
230 manage_passwords_ui_controller->OnUpdatePasswordSubmitted( 226 manage_passwords_ui_controller->OnUpdatePasswordSubmitted(
231 std::move(form_to_save)); 227 std::move(form_to_save));
232 } else {
233 manage_passwords_ui_controller->OnPasswordSubmitted(
234 std::move(form_to_save));
235 }
236 #endif
237 } else { 228 } else {
238 #if defined(OS_MACOSX) || BUILDFLAG(ANDROID_JAVA_UI) 229 manage_passwords_ui_controller->OnPasswordSubmitted(
239 if (form_to_save->IsBlacklisted()) 230 std::move(form_to_save));
240 return false; 231 }
241 #if BUILDFLAG(ANDROID_JAVA_UI)
242 if (update_password && IsUpdatePasswordUIEnabled()) {
243 UpdatePasswordInfoBarDelegate::Create(web_contents(),
244 std::move(form_to_save));
245 return true;
246 }
247 #endif
248 SavePasswordInfoBarDelegate::Create(web_contents(),
249 std::move(form_to_save));
250 #else 232 #else
251 NOTREACHED() << "Aura platforms should always use the bubble"; 233 if (form_to_save->IsBlacklisted())
252 #endif 234 return false;
235
236 if (update_password && IsUpdatePasswordUIEnabled()) {
237 UpdatePasswordInfoBarDelegate::Create(web_contents(),
238 std::move(form_to_save));
239 return true;
253 } 240 }
241 SavePasswordInfoBarDelegate::Create(web_contents(),
242 std::move(form_to_save));
243 #endif // !BUILDFLAG(ANDROID_JAVA_UI)
254 return true; 244 return true;
255 } 245 }
256 246
257 bool ChromePasswordManagerClient::PromptUserToChooseCredentials( 247 bool ChromePasswordManagerClient::PromptUserToChooseCredentials(
258 ScopedVector<autofill::PasswordForm> local_forms, 248 ScopedVector<autofill::PasswordForm> local_forms,
259 ScopedVector<autofill::PasswordForm> federated_forms, 249 ScopedVector<autofill::PasswordForm> federated_forms,
260 const GURL& origin, 250 const GURL& origin,
261 const CredentialsCallback& callback) { 251 const CredentialsCallback& callback) {
262 // Set up an intercept callback if the prompt is zero-clickable (e.g. just one 252 // Set up an intercept callback if the prompt is zero-clickable (e.g. just one
263 // form provided). 253 // form provided).
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 // If a site stores a credential the autofill password manager shouldn't kick 332 // If a site stores a credential the autofill password manager shouldn't kick
343 // in. 333 // in.
344 password_manager_.DropFormManagers(); 334 password_manager_.DropFormManagers();
345 } 335 }
346 336
347 void ChromePasswordManagerClient::AutomaticPasswordSave( 337 void ChromePasswordManagerClient::AutomaticPasswordSave(
348 std::unique_ptr<password_manager::PasswordFormManager> saved_form) { 338 std::unique_ptr<password_manager::PasswordFormManager> saved_form) {
349 #if BUILDFLAG(ANDROID_JAVA_UI) 339 #if BUILDFLAG(ANDROID_JAVA_UI)
350 GeneratedPasswordSavedInfoBarDelegateAndroid::Create(web_contents()); 340 GeneratedPasswordSavedInfoBarDelegateAndroid::Create(web_contents());
351 #else 341 #else
352 if (IsTheHotNewBubbleUIEnabled()) { 342 PasswordsClientUIDelegate* manage_passwords_ui_controller =
353 PasswordsClientUIDelegate* manage_passwords_ui_controller = 343 PasswordsClientUIDelegateFromWebContents(web_contents());
354 PasswordsClientUIDelegateFromWebContents(web_contents()); 344 manage_passwords_ui_controller->OnAutomaticPasswordSave(
355 manage_passwords_ui_controller->OnAutomaticPasswordSave( 345 std::move(saved_form));
356 std::move(saved_form));
357 }
358 #endif 346 #endif
359 } 347 }
360 348
361 void ChromePasswordManagerClient::PasswordWasAutofilled( 349 void ChromePasswordManagerClient::PasswordWasAutofilled(
362 const autofill::PasswordFormMap& best_matches, 350 const autofill::PasswordFormMap& best_matches,
363 const GURL& origin, 351 const GURL& origin,
364 const std::vector<std::unique_ptr<autofill::PasswordForm>>* 352 const std::vector<std::unique_ptr<autofill::PasswordForm>>*
365 federated_matches) const { 353 federated_matches) const {
366 #if !BUILDFLAG(ANDROID_JAVA_UI) 354 #if !BUILDFLAG(ANDROID_JAVA_UI)
367 PasswordsClientUIDelegate* manage_passwords_ui_controller = 355 PasswordsClientUIDelegate* manage_passwords_ui_controller =
368 PasswordsClientUIDelegateFromWebContents(web_contents()); 356 PasswordsClientUIDelegateFromWebContents(web_contents());
369 if (manage_passwords_ui_controller && IsTheHotNewBubbleUIEnabled()) 357 manage_passwords_ui_controller->OnPasswordAutofilled(best_matches, origin,
370 manage_passwords_ui_controller->OnPasswordAutofilled(best_matches, origin, 358 federated_matches);
371 federated_matches);
372 #endif 359 #endif
373 } 360 }
374 361
375 void ChromePasswordManagerClient::HidePasswordGenerationPopup() { 362 void ChromePasswordManagerClient::HidePasswordGenerationPopup() {
376 if (popup_controller_) 363 if (popup_controller_)
377 popup_controller_->HideAndDestroy(); 364 popup_controller_->HideAndDestroy();
378 } 365 }
379 366
380 PrefService* ChromePasswordManagerClient::GetPrefs() { 367 PrefService* ChromePasswordManagerClient::GetPrefs() {
381 return profile_->GetPrefs(); 368 return profile_->GetPrefs();
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 PasswordsClientUIDelegateFromWebContents(web_contents()) 542 PasswordsClientUIDelegateFromWebContents(web_contents())
556 ->OnPromptEnableAutoSignin(); 543 ->OnPromptEnableAutoSignin();
557 #endif 544 #endif
558 } 545 }
559 546
560 void ChromePasswordManagerClient::GenerationAvailableForForm( 547 void ChromePasswordManagerClient::GenerationAvailableForForm(
561 const autofill::PasswordForm& form) { 548 const autofill::PasswordForm& form) {
562 password_manager_.GenerationAvailableForForm(form); 549 password_manager_.GenerationAvailableForForm(form);
563 } 550 }
564 551
565 bool ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled() {
566 #if BUILDFLAG(ANDROID_JAVA_UI)
567 return false;
568 #elif defined(OS_MACOSX)
569 // Query the group first for correct UMA reporting.
570 std::string group_name =
571 base::FieldTrialList::FindFullName("PasswordManagerUI");
572 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
573 if (command_line->HasSwitch(switches::kDisableSavePasswordBubble))
574 return false;
575
576 if (command_line->HasSwitch(switches::kEnableSavePasswordBubble))
577 return true;
578
579 // The bubble should be the default case that runs on the bots.
580 return group_name != "Infobar";
581 #else
582 // All other platforms use Aura, and therefore always show the bubble.
583 return true;
584 #endif
585 }
586
587 bool ChromePasswordManagerClient::IsUpdatePasswordUIEnabled() const { 552 bool ChromePasswordManagerClient::IsUpdatePasswordUIEnabled() const {
588 #if BUILDFLAG(ANDROID_JAVA_UI) 553 #if BUILDFLAG(ANDROID_JAVA_UI)
589 return base::FeatureList::IsEnabled( 554 return base::FeatureList::IsEnabled(
590 password_manager::features::kEnablePasswordChangeSupport); 555 password_manager::features::kEnablePasswordChangeSupport);
591 #else 556 #else
592 return IsTheHotNewBubbleUIEnabled(); 557 return true;
593 #endif 558 #endif
594 } 559 }
595 560
596 const GURL& ChromePasswordManagerClient::GetMainFrameURL() const { 561 const GURL& ChromePasswordManagerClient::GetMainFrameURL() const {
597 return web_contents()->GetVisibleURL(); 562 return web_contents()->GetVisibleURL();
598 } 563 }
599 564
600 const GURL& ChromePasswordManagerClient::GetLastCommittedEntryURL() const { 565 const GURL& ChromePasswordManagerClient::GetLastCommittedEntryURL() const {
601 DCHECK(web_contents()); 566 DCHECK(web_contents());
602 content::NavigationEntry* entry = 567 content::NavigationEntry* entry =
(...skipping 20 matching lines...) Expand all
623 password_manager::mojom::CredentialManagerRequest request) { 588 password_manager::mojom::CredentialManagerRequest request) {
624 content::WebContents* web_contents = 589 content::WebContents* web_contents =
625 content::WebContents::FromRenderFrameHost(render_frame_host); 590 content::WebContents::FromRenderFrameHost(render_frame_host);
626 DCHECK(web_contents); 591 DCHECK(web_contents);
627 592
628 ChromePasswordManagerClient* instance = 593 ChromePasswordManagerClient* instance =
629 ChromePasswordManagerClient::FromWebContents(web_contents); 594 ChromePasswordManagerClient::FromWebContents(web_contents);
630 DCHECK(instance); 595 DCHECK(instance);
631 instance->credential_manager_impl_.BindRequest(std::move(request)); 596 instance->credential_manager_impl_.BindRequest(std::move(request));
632 } 597 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698