15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "content/shell/geolocation/shell_access_token_store.h" 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "base/bind.h" 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "base/message_loop/message_loop.h" 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "base/strings/utf_string_conversions.h" 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "content/public/browser/browser_thread.h" 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "content/shell/browser/shell_browser_context.h" 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace content { 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ShellAccessTokenStore::ShellAccessTokenStore( 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) content::ShellBrowserContext* shell_browser_context) 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) : shell_browser_context_(shell_browser_context), 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) system_request_context_(NULL) { 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ShellAccessTokenStore::~ShellAccessTokenStore() { 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void ShellAccessTokenStore::LoadAccessTokens( 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const LoadAccessTokensCallbackType& callback) { 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) BrowserThread::PostTaskAndReply( 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) BrowserThread::UI, 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) FROM_HERE, 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) base::Bind(&ShellAccessTokenStore::GetRequestContextOnUIThread, 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this, 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) shell_browser_context_), 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) base::Bind(&ShellAccessTokenStore::RespondOnOriginatingThread, 3306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) this, 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback)); 3551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} 3606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 37bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)void ShellAccessTokenStore::GetRequestContextOnUIThread( 3853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) content::ShellBrowserContext* shell_browser_context) { 3953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) system_request_context_ = shell_browser_context->GetRequestContext(); 401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} 41e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void ShellAccessTokenStore::RespondOnOriginatingThread( 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const LoadAccessTokensCallbackType& callback) { 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Since content_shell is a test executable, rather than an end user program, 45bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) // we provide a dummy access_token set to avoid hitting the server. 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) AccessTokenSet access_token_set; 47c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) access_token_set[GURL()] = base::ASCIIToUTF16("chromium_content_shell"); 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) callback.Run(access_token_set, system_request_context_.get()); 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) system_request_context_ = NULL; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)void ShellAccessTokenStore::SaveAccessToken( 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const GURL& server_url, const base::string16& access_token) { 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace content 57bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)