| 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
|
|
|