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 @@ ...@@ -7,9 +7,12 @@
#include <utility> #include <utility>
#include "base/strings/utf_string_conversions.h" #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/browser_thread.h"
#include "content/public/browser/manifest_icon_downloader.h" #include "content/public/browser/manifest_icon_downloader.h"
#include "content/public/browser/manifest_icon_selector.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/browser/web_contents.h"
#include "content/public/common/console_message_level.h" #include "content/public/common/console_message_level.h"
#include "content/public/common/manifest.h" #include "content/public/common/manifest.h"
...@@ -100,6 +103,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed( ...@@ -100,6 +103,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed(
bool all_origins_supported) { bool all_origins_supported) {
number_of_payment_method_manifest_to_parse_--; 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) { for (const auto& url : default_applications) {
if (downloaded_web_app_manifests_.find(url) != if (downloaded_web_app_manifests_.find(url) !=
downloaded_web_app_manifests_.end()) { downloaded_web_app_manifests_.end()) {
...@@ -108,6 +118,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed( ...@@ -108,6 +118,13 @@ void InstallablePaymentAppCrawler::OnPaymentMethodManifestParsed(
continue; 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_++; number_of_web_app_manifest_to_download_++;
downloaded_web_app_manifests_.insert(url); downloaded_web_app_manifests_.insert(url);
downloader_->DownloadWebAppManifest( downloader_->DownloadWebAppManifest(
......
...@@ -339,11 +339,6 @@ void CheckPermissionForPaymentApps( ...@@ -339,11 +339,6 @@ void CheckPermissionForPaymentApps(
PaymentAppProvider::PaymentApps apps) { PaymentAppProvider::PaymentApps apps) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (!browser_context) {
std::move(callback).Run(PaymentAppProvider::PaymentApps());
return;
}
PermissionManager* permission_manager = PermissionManager* permission_manager =
browser_context->GetPermissionManager(); browser_context->GetPermissionManager();
if (!permission_manager) { 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