summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/identity/identity_mint_queue.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/api/identity/identity_mint_queue.h')
-rw-r--r--chrome/browser/extensions/api/identity/identity_mint_queue.h36
1 files changed, 14 insertions, 22 deletions
diff --git a/chrome/browser/extensions/api/identity/identity_mint_queue.h b/chrome/browser/extensions/api/identity/identity_mint_queue.h
index f014998..a1ca89b 100644
--- a/chrome/browser/extensions/api/identity/identity_mint_queue.h
+++ b/chrome/browser/extensions/api/identity/identity_mint_queue.h
@@ -10,6 +10,8 @@
#include <set>
#include <string>
+#include "chrome/browser/extensions/api/identity/extension_token_key.h"
+
namespace extensions {
// getAuthToken requests are serialized to avoid excessive traffic to
@@ -37,36 +39,26 @@ class IdentityMintRequestQueue {
virtual void StartMintToken(IdentityMintRequestQueue::MintType type) = 0;
};
- struct RequestKey {
- RequestKey(IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes);
- ~RequestKey();
- bool operator<(const RequestKey& rhs) const;
- IdentityMintRequestQueue::MintType type;
- std::string extension_id;
- std::set<std::string> scopes;
- };
-
- // Adds a request to the queue specified by the id and scopes.
+ // Adds a request to the queue specified by the token key.
void RequestStart(IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes,
+ const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request);
- // Removes a request from the queue specified by the id and scopes.
+ // Removes a request from the queue specified by the token key.
void RequestComplete(IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes,
+ const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request);
bool empty(IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes) const;
+ const ExtensionTokenKey& key);
private:
- typedef std::list<IdentityMintRequestQueue::Request*> RequestList;
- std::map<RequestKey, RequestList> request_queue_;
-};
+ typedef std::list<IdentityMintRequestQueue::Request*> RequestQueue;
+ typedef std::map<const ExtensionTokenKey, RequestQueue> RequestQueueMap;
+
+ RequestQueueMap& GetRequestQueueMap(IdentityMintRequestQueue::MintType type);
+ RequestQueueMap interactive_request_queue_map_;
+ RequestQueueMap noninteractive_request_queue_map_;
+};
} // namespace extensions