| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 // These accessors will always return an object (except during shutdown). | 38 // These accessors will always return an object (except during shutdown). |
| 39 // If the object doesn't exist, they will create one first. | 39 // If the object doesn't exist, they will create one first. |
| 40 copresence::CopresenceManager* manager(); | 40 copresence::CopresenceManager* manager(); |
| 41 copresence::WhispernetClient* whispernet_client(); | 41 copresence::WhispernetClient* whispernet_client(); |
| 42 | 42 |
| 43 // A registry containing the app id's associated with every subscription. | 43 // A registry containing the app id's associated with every subscription. |
| 44 SubscriptionToAppMap& apps_by_subscription_id() { | 44 SubscriptionToAppMap& apps_by_subscription_id() { |
| 45 return apps_by_subscription_id_; | 45 return apps_by_subscription_id_; |
| 46 } | 46 } |
| 47 | 47 |
| 48 void set_api_key(const std::string& api_key) { api_key_ = api_key; } | 48 void set_api_key(const std::string& app_id, |
| 49 const std::string& api_key); |
| 50 void set_auth_token(const std::string& token); |
| 49 | 51 |
| 50 // Manager override for testing. | 52 // Manager override for testing. |
| 51 void set_manager_for_testing( | 53 void set_manager_for_testing( |
| 52 scoped_ptr<copresence::CopresenceManager> manager); | 54 scoped_ptr<copresence::CopresenceManager> manager); |
| 53 | 55 |
| 54 // BrowserContextKeyedAPI implementation. | 56 // BrowserContextKeyedAPI implementation. |
| 55 static BrowserContextKeyedAPIFactory<CopresenceService>* GetFactoryInstance(); | 57 static BrowserContextKeyedAPIFactory<CopresenceService>* GetFactoryInstance(); |
| 56 | 58 |
| 57 private: | 59 private: |
| 58 friend class BrowserContextKeyedAPIFactory<CopresenceService>; | 60 friend class BrowserContextKeyedAPIFactory<CopresenceService>; |
| 59 | 61 |
| 60 // CopresenceDelegate implementation | 62 // CopresenceDelegate implementation |
| 61 void HandleMessages(const std::string& app_id, | 63 void HandleMessages(const std::string& app_id, |
| 62 const std::string& subscription_id, | 64 const std::string& subscription_id, |
| 63 const std::vector<copresence::Message>& message) override; | 65 const std::vector<copresence::Message>& message) override; |
| 64 net::URLRequestContextGetter* GetRequestContext() const override; | 66 net::URLRequestContextGetter* GetRequestContext() const override; |
| 65 const std::string GetPlatformVersionString() const override; | 67 const std::string GetPlatformVersionString() const override; |
| 66 const std::string GetAPIKey() const override; | 68 const std::string GetAPIKey(const std::string& app_id) const override; |
| 69 const std::string GetAuthToken() const override; |
| 67 copresence::WhispernetClient* GetWhispernetClient() override; | 70 copresence::WhispernetClient* GetWhispernetClient() override; |
| 68 | 71 |
| 69 // BrowserContextKeyedAPI implementation. | 72 // BrowserContextKeyedAPI implementation. |
| 70 static const char* service_name() { return "CopresenceService"; } | 73 static const char* service_name() { return "CopresenceService"; } |
| 71 | 74 |
| 72 bool is_shutting_down_; | 75 bool is_shutting_down_; |
| 73 std::map<std::string, std::string> apps_by_subscription_id_; | 76 std::map<std::string, std::string> apps_by_subscription_id_; |
| 74 | 77 |
| 75 content::BrowserContext* const browser_context_; | 78 content::BrowserContext* const browser_context_; |
| 76 std::string api_key_; | 79 std::map<std::string, std::string> api_keys_by_app_; |
| 80 |
| 81 // TODO(ckehoe): This is a temporary hack. |
| 82 // Auth tokens from different apps needs to be separated properly. |
| 83 std::string auth_token_; |
| 77 | 84 |
| 78 scoped_ptr<copresence::CopresenceManager> manager_; | 85 scoped_ptr<copresence::CopresenceManager> manager_; |
| 79 scoped_ptr<ChromeWhispernetClient> whispernet_client_; | 86 scoped_ptr<ChromeWhispernetClient> whispernet_client_; |
| 80 | 87 |
| 81 DISALLOW_COPY_AND_ASSIGN(CopresenceService); | 88 DISALLOW_COPY_AND_ASSIGN(CopresenceService); |
| 82 }; | 89 }; |
| 83 | 90 |
| 84 template <> | 91 template <> |
| 85 void BrowserContextKeyedAPIFactory< | 92 void BrowserContextKeyedAPIFactory< |
| 86 CopresenceService>::DeclareFactoryDependencies(); | 93 CopresenceService>::DeclareFactoryDependencies(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 99 | 106 |
| 100 class CopresenceSetApiKeyFunction : public ChromeUIThreadExtensionFunction { | 107 class CopresenceSetApiKeyFunction : public ChromeUIThreadExtensionFunction { |
| 101 public: | 108 public: |
| 102 DECLARE_EXTENSION_FUNCTION("copresence.setApiKey", COPRESENCE_SETAPIKEY); | 109 DECLARE_EXTENSION_FUNCTION("copresence.setApiKey", COPRESENCE_SETAPIKEY); |
| 103 | 110 |
| 104 protected: | 111 protected: |
| 105 ~CopresenceSetApiKeyFunction() override {} | 112 ~CopresenceSetApiKeyFunction() override {} |
| 106 ExtensionFunction::ResponseAction Run() override; | 113 ExtensionFunction::ResponseAction Run() override; |
| 107 }; | 114 }; |
| 108 | 115 |
| 116 class CopresenceSetAuthTokenFunction : public ChromeUIThreadExtensionFunction { |
| 117 public: |
| 118 DECLARE_EXTENSION_FUNCTION("copresence.setAuthToken", |
| 119 COPRESENCE_SETAUTHTOKEN); |
| 120 |
| 121 protected: |
| 122 virtual ~CopresenceSetAuthTokenFunction() {} |
| 123 virtual ExtensionFunction::ResponseAction Run() override; |
| 124 }; |
| 125 |
| 109 } // namespace extensions | 126 } // namespace extensions |
| 110 | 127 |
| 111 #endif // CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ | 128 #endif // CHROME_BROWSER_EXTENSIONS_API_COPRESENCE_COPRESENCE_API_H_ |
| OLD | NEW |