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

Unified Diff: chrome/browser/extensions/api/identity/identity_mint_queue.cc

Issue 99173004: Identity API: add multi-account support to token cache and request queues (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/identity/identity_mint_queue.cc
diff --git a/chrome/browser/extensions/api/identity/identity_mint_queue.cc b/chrome/browser/extensions/api/identity/identity_mint_queue.cc
index 3d206df963669a6b1c15d0d161018487bf669e6f..7af32a292fddbe863c95a3ebc3e86084fe0d8594 100644
--- a/chrome/browser/extensions/api/identity/identity_mint_queue.cc
+++ b/chrome/browser/extensions/api/identity/identity_mint_queue.cc
@@ -13,68 +13,55 @@ IdentityMintRequestQueue::IdentityMintRequestQueue() {
}
IdentityMintRequestQueue::~IdentityMintRequestQueue() {
- std::map<RequestKey, RequestList>::const_iterator it;
- for (it = request_queue_.begin(); it != request_queue_.end(); ++it)
+ for (RequestQueueMap::const_iterator
+ it = interactive_request_queue_map_.begin();
+ it != interactive_request_queue_map_.end();
+ ++it) {
DCHECK_EQ(it->second.size(), 0lu);
-}
-
-IdentityMintRequestQueue::RequestKey::RequestKey(
- IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes) : type(type),
- extension_id(extension_id),
- scopes(scopes) {
-}
-
-IdentityMintRequestQueue::RequestKey::~RequestKey() {
-}
-
-bool IdentityMintRequestQueue::RequestKey::operator<(
- const RequestKey& rhs) const {
- if (type < rhs.type)
- return true;
- else if (rhs.type < type)
- return false;
-
- if (extension_id < rhs.extension_id)
- return true;
- else if (rhs.extension_id < extension_id)
- return false;
-
- return scopes < rhs.scopes;
+ }
+ for (RequestQueueMap::const_iterator
+ it = noninteractive_request_queue_map_.begin();
+ it != noninteractive_request_queue_map_.end();
+ ++it) {
+ DCHECK_EQ(it->second.size(), 0lu);
+ }
}
void IdentityMintRequestQueue::RequestStart(
IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes,
+ const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request) {
- RequestKey key(type, extension_id, scopes);
- request_queue_[key].push_back(request);
+ RequestQueue& request_queue = GetRequestQueueMap(type)[key];
+ request_queue.push_back(request);
// If this is the first request, start it now. RequestComplete will start
// all other requests.
- if (request_queue_[key].size() == 1)
- request_queue_[key].front()->StartMintToken(type);
+ if (request_queue.size() == 1)
+ request_queue.front()->StartMintToken(type);
}
void IdentityMintRequestQueue::RequestComplete(
IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes,
+ const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request) {
- RequestKey key(type, extension_id, scopes);
- CHECK(request_queue_[key].front() == request);
- request_queue_[key].pop_front();
- if (request_queue_[key].size() > 0)
- request_queue_[key].front()->StartMintToken(type);
+ RequestQueue& request_queue = GetRequestQueueMap(type)[key];
+ CHECK_EQ(request_queue.front(), request);
+ request_queue.pop_front();
+ if (request_queue.size() > 0)
+ request_queue.front()->StartMintToken(type);
}
bool IdentityMintRequestQueue::empty(IdentityMintRequestQueue::MintType type,
- const std::string& extension_id,
- const std::set<std::string> scopes) const {
- RequestKey key(type, extension_id, scopes);
- return !ContainsKey(request_queue_, key) ||
- (request_queue_.find(key))->second.empty();
+ const ExtensionTokenKey& key) {
+ RequestQueueMap& request_queue_map = GetRequestQueueMap(type);
+ return !ContainsKey(request_queue_map, key) ||
+ (request_queue_map.find(key))->second.empty();
+}
+
+IdentityMintRequestQueue::RequestQueueMap&
+IdentityMintRequestQueue::GetRequestQueueMap(
+ IdentityMintRequestQueue::MintType type) {
+ return (type == MINT_TYPE_INTERACTIVE) ? interactive_request_queue_map_
+ : noninteractive_request_queue_map_;
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698