Commit c7d00ca7 authored by Jeevan Shikaram's avatar Jeevan Shikaram Committed by Chromium LUCI CQ

[Play Billing] Prevent DGAPI from being available in Incognito mode.

Check to see if a browser is in Incognito mode before returning a DGAPI
interface.

Bug: 1159592
Change-Id: Ia1619ad87ff2dc3cd689801b1e014b7fe39f78b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2596556
Commit-Queue: Jeevan Shikaram <jshikaram@chromium.org>
Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839535}
parent c389e7ad
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include "base/optional.h" #include "base/optional.h"
#include "chrome/browser/chromeos/apps/apk_web_app_service.h" #include "chrome/browser/chromeos/apps/apk_web_app_service.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
#include "chrome/browser/web_applications/components/app_registrar.h" #include "chrome/browser/web_applications/components/app_registrar.h"
#include "chrome/browser/web_applications/web_app_provider.h" #include "chrome/browser/web_applications/web_app_provider.h"
#include "content/public/browser/render_document_host_user_data.h" #include "content/public/browser/render_document_host_user_data.h"
...@@ -15,9 +17,23 @@ ...@@ -15,9 +17,23 @@
namespace apps { namespace apps {
std::string GetTwaPackageName(content::RenderFrameHost* render_frame_host) { std::string GetTwaPackageName(content::RenderFrameHost* render_frame_host) {
auto* apk_web_app_service = chromeos::ApkWebAppService::Get( auto* web_contents =
Profile::FromBrowserContext(render_frame_host->GetBrowserContext())); content::WebContents::FromRenderFrameHost(render_frame_host);
if (!web_contents)
return "";
Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
if (!web_app::AppBrowserController::IsWebApp(browser)) {
return "";
}
auto* profile =
Profile::FromBrowserContext(render_frame_host->GetBrowserContext());
if (profile->IsIncognitoProfile()) {
return "";
}
auto* apk_web_app_service = chromeos::ApkWebAppService::Get(profile);
if (!apk_web_app_service) { if (!apk_web_app_service) {
return ""; return "";
} }
......
...@@ -13,6 +13,12 @@ class RenderFrameHost; ...@@ -13,6 +13,12 @@ class RenderFrameHost;
namespace apps { namespace apps {
/**
* Gets the TWA package name associated with the website present in the
* render frame host. An empty string will be retured if there is no associated
* TWA, if the website is in an Incognito tab, or if the website is not in a
* web app window.
*/
std::string GetTwaPackageName(content::RenderFrameHost* render_frame_host); std::string GetTwaPackageName(content::RenderFrameHost* render_frame_host);
std::string GetScope(content::RenderFrameHost* render_frame_host); std::string GetScope(content::RenderFrameHost* render_frame_host);
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view.h" #include "chrome/browser/ui/views/payments/payment_request_dialog_view.h"
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
#include "chrome/browser/web_data_service_factory.h" #include "chrome/browser/web_data_service_factory.h"
#include "components/autofill/content/browser/webauthn/internal_authenticator_impl.h" #include "components/autofill/content/browser/webauthn/internal_authenticator_impl.h"
#include "components/autofill/core/browser/address_normalizer_impl.h" #include "components/autofill/core/browser/address_normalizer_impl.h"
...@@ -272,7 +273,7 @@ std::string ChromePaymentRequestDelegate::GetTwaPackageName() const { ...@@ -272,7 +273,7 @@ std::string ChromePaymentRequestDelegate::GetTwaPackageName() const {
return ""; return "";
Browser* browser = chrome::FindBrowserWithWebContents(web_contents); Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
if (!browser || !browser->app_controller()) if (!web_app::AppBrowserController::IsWebApp(browser))
return ""; return "";
auto* apk_web_app_service = chromeos::ApkWebAppService::Get( auto* apk_web_app_service = chromeos::ApkWebAppService::Get(
......
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