blob: 64a182a2c0a2a123b2631fa7edcdc46e0862d39f [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromecast/browser/geolocation/cast_access_token_store.h"
#include "base/callback_helpers.h"
#include "chromecast/browser/cast_browser_context.h"
#include "chromecast/browser/cast_content_browser_client.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/common/content_client.h"
namespace chromecast {
namespace shell {
CastAccessTokenStore::CastAccessTokenStore(
content::BrowserContext* browser_context)
: browser_context_(browser_context) {
}
CastAccessTokenStore::~CastAccessTokenStore() {
}
void CastAccessTokenStore::GetRequestContextGetterOnUIThread() {
request_context_ = content::BrowserContext::GetDefaultStoragePartition(
browser_context_)->GetURLRequestContext();
}
void CastAccessTokenStore::RespondOnOriginatingThread() {
base::ResetAndReturn(&callback_).Run(access_token_map_, request_context_);
}
void CastAccessTokenStore::LoadAccessTokens(
const LoadAccessTokensCallback& callback) {
callback_ = callback;
content::BrowserThread::PostTaskAndReply(
content::BrowserThread::UI,
FROM_HERE,
base::Bind(&CastAccessTokenStore::GetRequestContextGetterOnUIThread,
this),
base::Bind(&CastAccessTokenStore::RespondOnOriginatingThread, this));
}
void CastAccessTokenStore::SaveAccessToken(
const GURL& server_url, const base::string16& access_token) {
if (access_token_map_[server_url] != access_token) {
access_token_map_[server_url] = access_token;
}
}
} // namespace shell
} // namespace chromecast