15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/cross_site_request_manager.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/singleton.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool CrossSiteRequestManager::HasPendingCrossSiteRequest(int renderer_id, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int render_view_id) { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::AutoLock lock(lock_); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::pair<int, int> key(renderer_id, render_view_id); 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return pending_cross_site_views_.find(key) != 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pending_cross_site_views_.end(); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CrossSiteRequestManager::SetHasPendingCrossSiteRequest(int renderer_id, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int render_view_id, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_pending) { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::AutoLock lock(lock_); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::pair<int, int> key(renderer_id, render_view_id); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (has_pending) { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pending_cross_site_views_.insert(key); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pending_cross_site_views_.erase(key); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CrossSiteRequestManager::CrossSiteRequestManager() {} 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CrossSiteRequestManager::~CrossSiteRequestManager() {} 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CrossSiteRequestManager* CrossSiteRequestManager::GetInstance() { 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return Singleton<CrossSiteRequestManager>::get(); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 43