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 12namespace extensions { 13 14struct 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. 27class IncognitoHandler : public ManifestHandler { 28 public: 29 IncognitoHandler(); 30 virtual ~IncognitoHandler(); 31 32 virtual bool Parse(Extension* extension, base::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