Chromium Code Reviews| 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..b0be428b139baaca1fa7530fe49fed3bb0ecc918 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,36 @@ 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(); |
| +} |
| + |
| +// TODO(akuegel): This should be deprecated. |
|
Bernhard Bauer
2013/03/20 15:08:30
Why don't you just go ahead and mark it as depreca
Adrian Kuegel
2013/03/20 15:51:16
Done.
Bernhard Bauer
2013/03/20 15:57:17
Ideally, add "Use Foo() instead".
|
| 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; |
| } |
| @@ -377,6 +396,13 @@ void ManagedUserService::SetElevated(bool is_elevated) { |
| is_elevated_ = is_elevated; |
| } |
| +void ManagedUserService::SetElevatedForWebContents( |
|
Bernhard Bauer
2013/03/20 15:08:30
I'm not convinced that adding this method is very
Adrian Kuegel
2013/03/20 15:51:16
True, that would work, too. The only (very) small
|
| + bool is_elevated, |
| + content::WebContents* web_contents) { |
| + ManagedModeNavigationObserver::FromWebContents(web_contents)->SetElevated( |
| + is_elevated); |
| +} |
| + |
| void ManagedUserService::AddElevationForExtension( |
| const std::string& extension_id) { |
| elevated_for_extensions_.insert(extension_id); |