| Index: chrome/browser/managed_mode/managed_user_service.cc
|
| diff --git a/chrome/browser/managed_mode/managed_user_service.cc b/chrome/browser/managed_mode/managed_user_service.cc
|
| index c27fdc7748ebafedf47e14e2b0026afba1afde7b..7402b43986b7715ece8362b9fda99a8b6eed8bc9 100644
|
| --- a/chrome/browser/managed_mode/managed_user_service.cc
|
| +++ b/chrome/browser/managed_mode/managed_user_service.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/sequenced_task_runner.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/extension_system.h"
|
| +#include "chrome/browser/managed_mode/managed_mode_navigation_observer.h"
|
| #include "chrome/browser/managed_mode/managed_mode_site_list.h"
|
| #include "chrome/browser/prefs/scoped_user_pref_update.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -103,18 +104,35 @@ bool ManagedUserService::IsElevated() const {
|
| return is_elevated_;
|
| }
|
|
|
| +bool ManagedUserService::IsElevatedForWebContents(
|
| + const content::WebContents* web_contents) const {
|
| + const ManagedModeNavigationObserver* observer =
|
| + ManagedModeNavigationObserver::FromWebContents(web_contents);
|
| + return observer->is_elevated();
|
| +}
|
| +
|
| +bool ManagedUserService::IsPassphraseEmpty() const {
|
| + PrefService* pref_service = profile_->GetPrefs();
|
| + return pref_service->GetString(prefs::kManagedModeLocalPassphrase).empty();
|
| +}
|
| +
|
| bool ManagedUserService::CanSkipPassphraseDialog() {
|
| // If the profile is already elevated or there is no passphrase set, no
|
| // authentication is needed.
|
| - PrefService* pref_service = profile_->GetPrefs();
|
| + return IsElevated() || IsPassphraseEmpty();
|
| +}
|
| +
|
| +bool ManagedUserService::CanSkipPassphraseDialog(
|
| + const content::WebContents* web_contents) const {
|
| return IsElevated() ||
|
| - pref_service->GetString(prefs::kManagedModeLocalPassphrase).empty();
|
| + IsElevatedForWebContents(web_contents) ||
|
| + IsPassphraseEmpty();
|
| }
|
|
|
| void ManagedUserService::RequestAuthorization(
|
| content::WebContents* web_contents,
|
| const PassphraseCheckedCallback& callback) {
|
| - if (CanSkipPassphraseDialog()) {
|
| + if (CanSkipPassphraseDialog(web_contents)) {
|
| callback.Run(true);
|
| return;
|
| }
|
| @@ -373,6 +391,8 @@ void ManagedUserService::SetManualBehaviorForURLs(const std::vector<GURL>& urls,
|
| UpdateManualURLs();
|
| }
|
|
|
| +// TODO(akuegel): Rename to SetElevatedForTesting when all callers are changed
|
| +// to set elevation on the ManagedModeNavigationObserver.
|
| void ManagedUserService::SetElevated(bool is_elevated) {
|
| is_elevated_ = is_elevated;
|
| }
|
|
|