Commit d52297f9 authored by gogerald's avatar gogerald Committed by Commit Bot

[Payments] Do not crawl blocked JIT payment handlers

Bug: 782270
Change-Id: Idbc5696044aec4da0efed8c6f30f867e1b335fb9
Reviewed-on: https://chromium-review.googlesource.com/969605
Commit-Queue: Ganggui Tang <gogerald@chromium.org>
Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544380}
parent 66353c23
......@@ -7,9 +7,12 @@
#include <utility>
#include "base/strings/utf_string_conversions.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/manifest_icon_downloader.h"
#include "content/public/browser/manifest_icon_selector.h"
#include "content/public/browser/permission_manager.h"
#include "content/public/browser/permission_type.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/console_message_level.h"
#include "content/public/common/manifest.h"
......@@ -100,6 +103,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed(
bool all_origins_supported) {
number_of_payment_method_manifest_to_parse_--;
if (web_contents() == nullptr)
return;
content::PermissionManager* permission_manager =
web_contents()->GetBrowserContext()->GetPermissionManager();
if (permission_manager == nullptr)
return;
for (const auto& url : default_applications) {
if (downloaded_web_app_manifests_.find(url) !=
downloaded_web_app_manifests_.end()) {
......@@ -108,6 +118,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed(
continue;
}
if (permission_manager->GetPermissionStatus(
content::PermissionType::PAYMENT_HANDLER, url.GetOrigin(),
url.GetOrigin()) != blink::mojom::PermissionStatus::GRANTED) {
// Do not download the web app manifest if it is blocked.
continue;
}
number_of_web_app_manifest_to_download_++;
downloaded_web_app_manifests_.insert(url);
downloader_->DownloadWebAppManifest(
......
......@@ -339,11 +339,6 @@ void CheckPermissionForPaymentApps(
PaymentAppProvider::PaymentApps apps) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (!browser_context) {
std::move(callback).Run(PaymentAppProvider::PaymentApps());
return;
}
PermissionManager* permission_manager =
browser_context->GetPermissionManager();
if (!permission_manager) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment