Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: extensions/common/manifest_handlers/incognito_info.h

Issue 1351223003: Allow extensions to specify that they are not allowed in incognito mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tests. Refactor CanBeIncognitoEnabled to util. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 5 #ifndef EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_
6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 6 #define EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_
7 7
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "extensions/common/extension.h" 9 #include "extensions/common/extension.h"
10 #include "extensions/common/manifest_handler.h" 10 #include "extensions/common/manifest_handler.h"
11 11
12 namespace extensions { 12 namespace extensions {
13 13
14 struct IncognitoInfo : public Extension::ManifestData { 14 struct IncognitoInfo : public Extension::ManifestData {
15 explicit IncognitoInfo(bool split_mode); 15 enum Mode { SPLIT, SPANNING, NOT_ALLOWED };
16
17 explicit IncognitoInfo(Mode mode);
18
16 ~IncognitoInfo() override; 19 ~IncognitoInfo() override;
17 20
18 // If true, a separate process will be used for the extension in incognito 21 // If true, a separate process will be used for the extension in incognito
19 // mode. 22 // mode.
20 bool split_mode; 23 Mode mode;
21 24
22 // Return the incognito mode information for the given |extension|. 25 // Return the incognito mode information for the given |extension|.
23 static bool IsSplitMode(const Extension* extension); 26 static bool IsSplitMode(const Extension* extension);
27
28 // Return whether this extension can be run in incognito mode as specified
29 // in its manifest.
30 static bool IsIncognitoAllowed(const Extension* extension);
24 }; 31 };
25 32
26 // Parses the "incognito" manifest key. 33 // Parses the "incognito" manifest key.
27 class IncognitoHandler : public ManifestHandler { 34 class IncognitoHandler : public ManifestHandler {
28 public: 35 public:
29 IncognitoHandler(); 36 IncognitoHandler();
30 ~IncognitoHandler() override; 37 ~IncognitoHandler() override;
31 38
32 bool Parse(Extension* extension, base::string16* error) override; 39 bool Parse(Extension* extension, base::string16* error) override;
33 bool AlwaysParseForType(Manifest::Type type) const override; 40 bool AlwaysParseForType(Manifest::Type type) const override;
34 41
35 private: 42 private:
36 const std::vector<std::string> Keys() const override; 43 const std::vector<std::string> Keys() const override;
37 44
38 DISALLOW_COPY_AND_ASSIGN(IncognitoHandler); 45 DISALLOW_COPY_AND_ASSIGN(IncognitoHandler);
39 }; 46 };
40 47
41 } // namespace extensions 48 } // namespace extensions
42 49
43 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_ 50 #endif // EXTENSIONS_COMMON_MANIFEST_HANDLERS_INCOGNITO_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698