1 // Copyright (c) 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. 4 5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 7 8 #include "base/strings/string16.h" 9 #include "extensions/common/extension.h" 10 #include "extensions/common/manifest_handler.h" 11 12 namespace extensions { 13 14 struct IncognitoInfo : public Extension::ManifestData { 15 explicit IncognitoInfo(bool split_mode); 16 virtual ~IncognitoInfo(); 17 18 // If true, a separate process will be used for the extension in incognito 19 // mode. 20 bool split_mode; 21 22 // Return the incognito mode information for the given |extension|. 23 static bool IsSplitMode(const Extension* extension); 24 }; 25 26 // Parses the "incognito" manifest key. 27 class IncognitoHandler : public ManifestHandler { 28 public: 29 IncognitoHandler(); 30 virtual ~IncognitoHandler(); 31 32 virtual bool Parse(Extension* extension, string16* error) OVERRIDE; 33 virtual bool AlwaysParseForType(Manifest::Type type) const OVERRIDE; 34 35 private: 36 virtual const std::vector<std::string> Keys() const OVERRIDE; 37 38 DISALLOW_COPY_AND_ASSIGN(IncognitoHandler); 39 }; 40 41 } // namespace extensions 42 43 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 44