Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / extensions / common / manifest_handlers / offline_enabled_info.h
blobe1ba407294dc704c6430751dc5e55f13b910efa8
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLERS_OFFLINE_ENABLED_INFO_H_
6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_OFFLINE_ENABLED_INFO_H_
8 #include <string>
9 #include <vector>
11 #include "extensions/common/extension.h"
12 #include "extensions/common/manifest.h"
13 #include "extensions/common/manifest_handler.h"
15 namespace extensions {
17 struct OfflineEnabledInfo : public Extension::ManifestData {
18 explicit OfflineEnabledInfo(bool offline_enabled);
19 ~OfflineEnabledInfo() override;
21 // Whether the extension or app should be enabled when offline.
22 // Defaults to false, except for platform apps which are offline by default.
23 bool offline_enabled;
25 static bool IsOfflineEnabled(const Extension* extension);
28 // Parses the "offline_enabled" manifest key.
29 class OfflineEnabledHandler : public ManifestHandler {
30 public:
31 OfflineEnabledHandler();
32 ~OfflineEnabledHandler() override;
34 bool Parse(Extension* extension, base::string16* error) override;
35 bool AlwaysParseForType(Manifest::Type type) const override;
37 private:
38 const std::vector<std::string> Keys() const override;
40 DISALLOW_COPY_AND_ASSIGN(OfflineEnabledHandler);
43 } // namespace extensions
45 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_OFFLINE_ENABLED_INFO_H_