12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <set> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector> 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/manifest_handler.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// OAuth2 info included in the extension. 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct OAuth2Info : public Extension::ManifestData { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OAuth2Info(); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~OAuth2Info(); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string client_id; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::vector<std::string> scopes; 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Indicates that approval UI can be skipped for a set of whitelisted apps. 26868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) bool auto_approve; 27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static const OAuth2Info& GetOAuth2Info(const Extension* extension); 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Parses the "oauth2" manifest key. 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class OAuth2ManifestHandler : public ManifestHandler { 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OAuth2ManifestHandler(); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~OAuth2ManifestHandler(); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool Parse(Extension* extension, 38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16* error) OVERRIDE; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual const std::vector<std::string> Keys() const OVERRIDE; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(OAuth2ManifestHandler); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace extensions 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_COMMON_EXTENSIONS_API_IDENTITY_OAUTH2_MANIFEST_HANDLER_H_ 49