1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chromecast/shell/browser/geolocation/cast_access_token_store.h" 6 7#include "base/callback_helpers.h" 8#include "chromecast/shell/browser/cast_browser_context.h" 9#include "chromecast/shell/browser/cast_content_browser_client.h" 10#include "content/public/browser/browser_thread.h" 11#include "content/public/common/content_client.h" 12 13namespace chromecast { 14namespace shell { 15 16CastAccessTokenStore::CastAccessTokenStore( 17 content::BrowserContext* browser_context) 18 : browser_context_(browser_context) { 19} 20 21CastAccessTokenStore::~CastAccessTokenStore() { 22} 23 24void CastAccessTokenStore::GetRequestContextGetterOnUIThread() { 25 request_context_ = browser_context_->GetRequestContext(); 26} 27 28void CastAccessTokenStore::RespondOnOriginatingThread() { 29 base::ResetAndReturn(&callback_).Run(access_token_set_, request_context_); 30} 31 32void CastAccessTokenStore::LoadAccessTokens( 33 const LoadAccessTokensCallbackType& callback) { 34 callback_ = callback; 35 content::BrowserThread::PostTaskAndReply( 36 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