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 |