• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_
6 #define CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_
7 
8 #include <set>
9 #include <string>
10 #include <vector>
11 
12 #include "extensions/common/extension.h"
13 #include "extensions/common/manifest_handler.h"
14 
15 namespace extensions {
16 
17 // OAuth2 info included in the extension.
18 struct OAuth2Info : public Extension::ManifestData {
19   OAuth2Info();
20   virtual ~OAuth2Info();
21 
22   std::string client_id;
23   std::vector<std::string> scopes;
24 
25   // Indicates that approval UI can be skipped for a set of whitelisted apps.
26   bool auto_approve;
27 
28   static const OAuth2Info& GetOAuth2Info(const Extension* extension);
29 };
30 
31 // Parses the "oauth2" manifest key.
32 class OAuth2ManifestHandler : public ManifestHandler {
33  public:
34   OAuth2ManifestHandler();
35   virtual ~OAuth2ManifestHandler();
36 
37   virtual bool Parse(Extension* extension,
38                      base::string16* error) OVERRIDE;
39 
40  private:
41   virtual const std::vector<std::string> Keys() const OVERRIDE;
42 
43   DISALLOW_COPY_AND_ASSIGN(OAuth2ManifestHandler);
44 };
45 
46 }  // namespace extensions
47 
48 #endif  // CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_
49