cast_access_token_store.cc revision 116680a4aac90f2aa7413d9095a592090648e557
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 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 "chromecast/shell/browser/geolocation/cast_access_token_store.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback_helpers.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "chromecast/shell/browser/cast_browser_context.h" 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chromecast/shell/browser/cast_content_browser_client.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/browser_thread.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/content_client.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromecast { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace shell { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CastAccessTokenStore::CastAccessTokenStore( 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) content::BrowserContext* browser_context) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : browser_context_(browser_context) { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CastAccessTokenStore::~CastAccessTokenStore() { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CastAccessTokenStore::GetRequestContextGetterOnUIThread() { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) request_context_ = browser_context_->GetRequestContext(); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CastAccessTokenStore::RespondOnOriginatingThread() { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ResetAndReturn(&callback_).Run(access_token_set_, request_context_); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CastAccessTokenStore::LoadAccessTokens( 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const LoadAccessTokensCallbackType& callback) { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) callback_ = callback; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::BrowserThread::PostTaskAndReply( 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::BrowserThread::UI, 37 FROM_HERE, 38 base::Bind(&CastAccessTokenStore::GetRequestContextGetterOnUIThread, 39 this), 40 base::Bind(&CastAccessTokenStore::RespondOnOriginatingThread, this)); 41} 42 43void CastAccessTokenStore::SaveAccessToken( 44 const GURL& server_url, const base::string16& access_token) { 45 if (access_token_set_[server_url] != access_token) { 46 access_token_set_[server_url] = access_token; 47 } 48} 49 50} // namespace shell 51} // namespace chromecast 52