1// Copyright 2013 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 "components/autofill/content/browser/autocheckout_request_manager.h"
6
7#include "components/autofill/core/browser/autofill_manager_delegate.h"
8#include "content/public/browser/browser_context.h"
9
10namespace {
11
12const char kAutocheckoutRequestManagerKey[] =
13    "browser_context_autocheckout_request_manager";
14
15}  // namespace
16
17namespace autofill {
18
19AutocheckoutRequestManager::~AutocheckoutRequestManager() {}
20
21// static
22void AutocheckoutRequestManager::CreateForBrowserContext(
23    content::BrowserContext* browser_context) {
24  if (FromBrowserContext(browser_context))
25    return;
26
27  browser_context->SetUserData(
28      kAutocheckoutRequestManagerKey,
29      new AutocheckoutRequestManager(browser_context->GetRequestContext()));
30}
31
32// static
33AutocheckoutRequestManager* AutocheckoutRequestManager::FromBrowserContext(
34    content::BrowserContext* browser_context) {
35  return static_cast<AutocheckoutRequestManager*>(
36      browser_context->GetUserData(kAutocheckoutRequestManagerKey));
37}
38
39void AutocheckoutRequestManager::SendAutocheckoutStatus(
40    AutocheckoutStatus status,
41    const GURL& source_url,
42    const std::vector<AutocheckoutStatistic>& latency_statistics,
43    const std::string& google_transaction_id) {
44  wallet_client_.SendAutocheckoutStatus(status,
45                                        source_url,
46                                        latency_statistics,
47                                        google_transaction_id);
48}
49
50
51const AutofillMetrics& AutocheckoutRequestManager::GetMetricLogger() const {
52  return metric_logger_;
53}
54
55DialogType AutocheckoutRequestManager::GetDialogType() const {
56  return DIALOG_TYPE_AUTOCHECKOUT;
57}
58
59std::string AutocheckoutRequestManager::GetRiskData() const {
60  NOTREACHED();
61  return std::string();
62}
63
64std::string AutocheckoutRequestManager::GetWalletCookieValue() const {
65  return std::string();
66}
67
68bool AutocheckoutRequestManager::IsShippingAddressRequired() const {
69  NOTREACHED();
70  return true;
71}
72
73void AutocheckoutRequestManager::OnDidAcceptLegalDocuments() {
74  NOTREACHED();
75}
76
77void AutocheckoutRequestManager::OnDidAuthenticateInstrument(bool success) {
78  NOTREACHED();
79}
80
81void AutocheckoutRequestManager::OnDidGetFullWallet(
82    scoped_ptr<wallet::FullWallet> full_wallet) {
83  NOTREACHED();
84}
85
86void AutocheckoutRequestManager::OnDidGetWalletItems(
87    scoped_ptr<wallet::WalletItems> wallet_items) {
88  NOTREACHED();
89}
90
91
92void AutocheckoutRequestManager::OnDidSaveToWallet(
93    const std::string& instrument_id,
94    const std::string& address_id,
95    const std::vector<wallet::RequiredAction>& required_actions,
96    const std::vector<wallet::FormFieldError>& form_field_errors) {
97  NOTREACHED();
98}
99
100void AutocheckoutRequestManager::OnWalletError(
101    wallet::WalletClient::ErrorType error_type) {
102  // Nothing to be done. |error_type| is logged by |metric_logger_|.
103}
104
105AutocheckoutRequestManager::AutocheckoutRequestManager(
106    net::URLRequestContextGetter* request_context_getter)
107    : wallet_client_(request_context_getter, this) {
108}
109
110}  // namespace autofill
111