// 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 "remoting/client/token_fetcher_proxy.h" #include "base/callback_helpers.h" namespace remoting { TokenFetcherProxy::TokenFetcherProxy( const TokenFetcherCallback& token_fetcher_impl, const std::string& host_public_key) : host_public_key_(host_public_key), token_fetcher_impl_(token_fetcher_impl), weak_factory_(this) { } TokenFetcherProxy::~TokenFetcherProxy() { } void TokenFetcherProxy::FetchThirdPartyToken( const GURL& token_url, const std::string& scope, const TokenFetchedCallback& token_fetched_callback) { token_fetched_callback_ = token_fetched_callback; token_fetcher_impl_.Run( token_url, host_public_key_, scope, weak_factory_.GetWeakPtr()); } void TokenFetcherProxy::OnTokenFetched( const std::string& token, const std::string& shared_secret) { if (!token_fetched_callback_.is_null()) { base::ResetAndReturn(&token_fetched_callback_).Run(token, shared_secret); } } } // namespace remoting