| Index: chrome/browser/extensions/settings/settings_api.cc
|
| diff --git a/chrome/browser/extensions/settings/settings_api.cc b/chrome/browser/extensions/settings/settings_api.cc
|
| index ac98a2ade948f72f7bbcfaa70477e03f4b2eedfb..3aa2298ec7c3a05c45419062cca1a95879608634 100644
|
| --- a/chrome/browser/extensions/settings/settings_api.cc
|
| +++ b/chrome/browser/extensions/settings/settings_api.cc
|
| @@ -8,12 +8,14 @@
|
| #include <vector>
|
|
|
| #include "base/bind.h"
|
| +#include "base/command_line.h"
|
| #include "base/stringprintf.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/extensions_quota_service.h"
|
| #include "chrome/browser/extensions/settings/settings_frontend.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/extensions/api/storage.h"
|
| #include "content/public/browser/browser_thread.h"
|
|
|
| @@ -25,6 +27,8 @@ namespace {
|
| const char kUnsupportedArgumentType[] = "Unsupported argument type";
|
| const char kInvalidNamespaceErrorMessage[] =
|
| "\"%s\" is not available in this instance of Chrome";
|
| +const char kManagedNamespaceDisabledErrorMessage[] =
|
| + "\"managed\" is disabled. Use \"--%s\" to enable it.";
|
| const char kStorageErrorMessage[] = "Storage error";
|
| } // namespace
|
|
|
| @@ -55,6 +59,16 @@ bool SettingsFunction::RunImpl() {
|
| EXTENSION_FUNCTION_VALIDATE(
|
| settings_namespace_ != settings_namespace::INVALID);
|
|
|
| + // TODO(joaodasilva): remove this flag once policy for extensions works on
|
| + // mac and chromeos.
|
| + if (settings_namespace_ == settings_namespace::MANAGED &&
|
| + !CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableManagedStorage)) {
|
| + error_ = base::StringPrintf(kManagedNamespaceDisabledErrorMessage,
|
| + switches::kEnableManagedStorage);
|
| + return false;
|
| + }
|
| +
|
| SettingsFrontend* frontend =
|
| profile()->GetExtensionService()->settings_frontend();
|
| if (!frontend->IsStorageEnabled(settings_namespace_)) {
|
|
|