Index: chrome/browser/extensions/chrome_process_manager_delegate.cc |
diff --git a/chrome/browser/extensions/chrome_process_manager_delegate.cc b/chrome/browser/extensions/chrome_process_manager_delegate.cc |
index 9e983ef02c50b43e1403cf82acec08e78694bffc..b5590eae7b4f0421c80cd14099bbce5c8be1f4b6 100644 |
--- a/chrome/browser/extensions/chrome_process_manager_delegate.cc |
+++ b/chrome/browser/extensions/chrome_process_manager_delegate.cc |
@@ -22,9 +22,12 @@ |
#include "extensions/browser/process_manager_factory.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/one_shot_event.h" |
+#include "extensions/common/permissions/api_permission.h" |
+#include "extensions/common/permissions/permissions_data.h" |
#if defined(OS_CHROMEOS) |
#include "chrome/browser/chromeos/profiles/profile_helper.h" |
+#include "chromeos/chromeos_switches.h" |
#endif |
namespace extensions { |
@@ -69,6 +72,13 @@ bool ChromeProcessManagerDelegate::IsExtensionBackgroundPageAllowed( |
!profile->IsOffTheRecord(); |
if (is_signin_profile) { |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ chromeos::switches::kEnableLockScreenApps) && |
+ extension.permissions_data()->HasAPIPermission( |
+ APIPermission::kLockScreen)) { |
+ return true; |
+ } |
+ |
// Check for flag. |
if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kDisableLoginScreenApps)) { |