Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Unified Diff: components/payments/content/android/payment_manifest_downloader.h

Issue 2759283002: Make payment manifest download/parse cross-platform (Closed)
Patch Set: Address comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/payments/content/android/payment_manifest_downloader.h
diff --git a/components/payments/content/android/payment_manifest_downloader.h b/components/payments/content/android/payment_manifest_downloader.h
deleted file mode 100644
index eb02b61e28a6bec28fb3674e28ad111bf99356e3..0000000000000000000000000000000000000000
--- a/components/payments/content/android/payment_manifest_downloader.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2017 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.
-
-#ifndef COMPONENTS_PAYMENTS_CONTENT_ANDROID_PAYMENT_MANIFEST_DOWNLOADER_H_
-#define COMPONENTS_PAYMENTS_CONTENT_ANDROID_PAYMENT_MANIFEST_DOWNLOADER_H_
-
-#include <memory>
-#include <string>
-
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "net/url_request/url_fetcher.h"
-#include "net/url_request/url_fetcher_delegate.h"
-#include "url/gurl.h"
-
-namespace net {
-class URLRequestContextGetter;
-}
-
-namespace payments {
-
-// Downloader of the payment method manifest based on the payment method name
-// that is a URL with HTTPS scheme, e.g., https://bobpay.com. The download
-// happens via two consecutive HTTP requests:
-//
-// 1) HEAD request for the payment method name. The HTTP response header is
-// parsed for Link header that points to the location of the payment method
-// manifest file. Example of a relative location:
-//
-// Link: <data/payment-manifest.json>; rel="payment-method-manifest"
-//
-// (This is relative to the payment method URL.) Example of an absolute
-// location:
-//
-// Link: <https://bobpay.com/data/payment-manifest.json>;
-// rel="payment-method-manifest"
-//
-// The absolute location must use HTTPS scheme.
-//
-// 2) GET request for the payment method manifest file.
-//
-// The downloader does not follow redirects. A download succeeds only if both
-// HTTP response codes are 200.
-class PaymentManifestDownloader : public net::URLFetcherDelegate {
- public:
- // The interface for receiving the result of downloading a manifest.
- class Delegate {
- public:
- // Called when a manifest has been successfully downloaded.
- virtual void OnManifestDownloadSuccess(const std::string& content) = 0;
-
- // Called when failed to download the manifest for any reason:
- // - HTTP response code is not 200.
- // - HTTP response headers are absent.
- // - HTTP response headers does not contain Link headers.
- // - Link header does not contain rel="payment-method-manifest".
- // - Link header does not contain a valid URL.
- // - HTTP GET on the manifest URL returns empty content.
- virtual void OnManifestDownloadFailure() = 0;
-
- protected:
- virtual ~Delegate() {}
- };
-
- // |delegate| should not be null and must outlive this object. |method_name|
- // should be a valid URL that starts with "https://".
- PaymentManifestDownloader(
- const scoped_refptr<net::URLRequestContextGetter>& context,
- const GURL& method_name,
- Delegate* delegate);
-
- ~PaymentManifestDownloader() override;
-
- void Download();
-
- private:
- void InitiateDownload(const GURL& url,
- net::URLFetcher::RequestType request_type);
-
- // net::URLFetcherDelegate
- void OnURLFetchComplete(const net::URLFetcher* source) override;
-
- scoped_refptr<net::URLRequestContextGetter> context_;
- const GURL method_name_;
-
- // Non-owned. Never null. Outlives this object.
- Delegate* delegate_;
-
- bool is_downloading_http_link_header_;
- std::unique_ptr<net::URLFetcher> fetcher_;
-
- DISALLOW_COPY_AND_ASSIGN(PaymentManifestDownloader);
-};
-
-} // namespace payments
-
-#endif // COMPONENTS_PAYMENTS_CONTENT_ANDROID_PAYMENT_MANIFEST_DOWNLOADER_H_
« no previous file with comments | « components/payments/content/android/DEPS ('k') | components/payments/content/android/payment_manifest_downloader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698