electron/patches/chromium/notification_provenance.patch
Electron Bot 9a198e8ef4 chore: bump chromium to f30828899e4cd7161f6dc6507023f (master) (#20824)
* chore: bump chromium in DEPS to 0476932294da8809a19189b9f54cee11d50cc512

* update chromium patches (#20838)

* chore: bump chromium in DEPS to 838863f5ec9e8a12132a10bb47be8382ad9756a7

* IsRendererTransferNeededForNavigation went away

https://chromium-review.googlesource.com/c/chromium/src/+/1867031

* [arraybuffer] Move the ArrayBuffer implementation from wtf to core

https://chromium-review.googlesource.com/c/chromium/src/+/1875731

* URLLoaderRequest new mojo types

* context menu enums moved around

https://chromium-review.googlesource.com/c/chromium/src/+/1872004

https://chromium-review.googlesource.com/c/chromium/src/+/1876088

https://chromium-review.googlesource.com/c/chromium/src/+/1866520

* chore: bump chromium in DEPS to dc9525d251bf30828899e4cd7161f6dc6507023f

* update chromium patches

* [WIP] Convert network hints IPC to Mojo

https://chromium-review.googlesource.com/c/chromium/src/+/1881967

* jumbo build is no longer supported

https://chromium-review.googlesource.com/c/chromium/src/+/1881967

* fix disable-color-correct-rendering

* [FIXME] fix printing patch

compiles but prob doesn't work

* explicitly include ax_enums

https://chromium-review.googlesource.com/c/chromium/src/+/1759821

* fixup! [WIP] Convert network hints IPC to Mojo

* fix base::span

* fix AsarURLLoader to not double-std::move

* fix debug build

* fix msstl patch

* lint

* more fix msstl

* mooooore fix msstl

* fix compile

* update backport_fix_msstl_compat_in_ui_events.patch

* update msstl compat patch

* don't try to build chrome's prefetch predictor

* build: fix compilation on windows

* Fixup patches for MAS build

* Free up disk space for mac debug builds

* fix: apply custom site instance only for main frame

* Fixup from rebase

* Try not generating symbols for mac debug builds

* Remove double entry of patch

* FIx compile errors

* Trigger CI

* Set symbol_level to 1 for mac debug builds
2019-11-05 18:41:20 -05:00

167 lines
9.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jeremy Apthorp <jeremya@chromium.org>
Date: Fri, 5 Oct 2018 14:22:06 -0700
Subject: notification_provenance.patch
Pass RenderProcessHost through to PlatformNotificationService
so Electron can identify which renderer a notification came from.
diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc
index a717d9f3539dc0fe86b743c6e29e4311b8b5cec3..1351217319c57be414e6c66f8a01f71fe46d2c04 100644
--- a/content/browser/notifications/blink_notification_service_impl.cc
+++ b/content/browser/notifications/blink_notification_service_impl.cc
@@ -88,9 +88,11 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
PlatformNotificationContextImpl* notification_context,
BrowserContext* browser_context,
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
+ RenderProcessHost* render_process_host,
const url::Origin& origin,
mojo::PendingReceiver<blink::mojom::NotificationService> receiver)
: notification_context_(notification_context),
+ render_process_host_(render_process_host),
browser_context_(browser_context),
service_worker_context_(std::move(service_worker_context)),
origin_(origin),
@@ -151,8 +153,9 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification(
notification_id, std::move(event_listener_remote));
GetNotificationService(browser_context_)
- ->DisplayNotification(notification_id, origin_.GetURL(),
- platform_notification_data, notification_resources);
+ ->DisplayNotification(render_process_host_, notification_id,
+ origin_.GetURL(), platform_notification_data,
+ notification_resources);
}
void BlinkNotificationServiceImpl::CloseNonPersistentNotification(
diff --git a/content/browser/notifications/blink_notification_service_impl.h b/content/browser/notifications/blink_notification_service_impl.h
index 5253f6be778cc78571b3df0a33d364a9b1e6ef52..dc5307e6500b0bfb5da83e8d8ff8886b91133522 100644
--- a/content/browser/notifications/blink_notification_service_impl.h
+++ b/content/browser/notifications/blink_notification_service_impl.h
@@ -40,6 +40,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
PlatformNotificationContextImpl* notification_context,
BrowserContext* browser_context,
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
+ RenderProcessHost* render_process_host,
const url::Origin& origin,
mojo::PendingReceiver<blink::mojom::NotificationService> receiver);
~BlinkNotificationServiceImpl() override;
@@ -99,6 +100,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
// The notification context that owns this service instance.
PlatformNotificationContextImpl* notification_context_;
+ RenderProcessHost* render_process_host_;
BrowserContext* browser_context_;
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context_;
diff --git a/content/browser/notifications/blink_notification_service_impl_unittest.cc b/content/browser/notifications/blink_notification_service_impl_unittest.cc
index 951dc88b44e76b6736aa0ff30d548022486f0f6a..ea7f72b7aa05c31972e4abbdc6529ab044117b0b 100644
--- a/content/browser/notifications/blink_notification_service_impl_unittest.cc
+++ b/content/browser/notifications/blink_notification_service_impl_unittest.cc
@@ -139,7 +139,7 @@ class BlinkNotificationServiceImplTest : public ::testing::Test {
notification_service_ = std::make_unique<BlinkNotificationServiceImpl>(
notification_context_.get(), &browser_context_,
- embedded_worker_helper_->context_wrapper(),
+ embedded_worker_helper_->context_wrapper(), nullptr,
url::Origin::Create(GURL(kTestOrigin)),
notification_service_remote_.BindNewPipeAndPassReceiver());
diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
index 9ada5345a004a761b6e12ac0259d61e9fd8de5e9..9c13bd9e7d2604ef72b28029a9733153e776754f 100644
--- a/content/browser/notifications/platform_notification_context_impl.cc
+++ b/content/browser/notifications/platform_notification_context_impl.cc
@@ -208,12 +208,13 @@ void PlatformNotificationContextImpl::Shutdown() {
}
void PlatformNotificationContextImpl::CreateService(
+ RenderProcessHost* render_process_host,
const url::Origin& origin,
mojo::PendingReceiver<blink::mojom::NotificationService> receiver) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
services_.push_back(std::make_unique<BlinkNotificationServiceImpl>(
- this, browser_context_, service_worker_context_, origin,
- std::move(receiver)));
+ this, browser_context_, service_worker_context_, render_process_host,
+ origin, std::move(receiver)));
}
void PlatformNotificationContextImpl::RemoveService(
diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h
index 4bf25bf1fa69f7d3869369172d375e2e489e62a1..f80ef2cecc8b111dc54e109646573a5978d8ea9c 100644
--- a/content/browser/notifications/platform_notification_context_impl.h
+++ b/content/browser/notifications/platform_notification_context_impl.h
@@ -24,6 +24,7 @@
#include "content/common/content_export.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/platform_notification_context.h"
+#include "content/public/browser/render_process_host.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "third_party/blink/public/mojom/notifications/notification_service.mojom.h"
@@ -67,6 +68,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl
// Creates a BlinkNotificationServiceImpl that is owned by this context.
void CreateService(
+ RenderProcessHost* render_process_host,
const url::Origin& origin,
mojo::PendingReceiver<blink::mojom::NotificationService> receiver);
diff --git a/content/browser/renderer_interface_binders.cc b/content/browser/renderer_interface_binders.cc
index ca880850d5f538c6615fb8b3546d4726bf42b7f6..918448ace7c99bd406ff49d3903aeae98f4fc831 100644
--- a/content/browser/renderer_interface_binders.cc
+++ b/content/browser/renderer_interface_binders.cc
@@ -136,7 +136,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
RenderProcessHost* host, const url::Origin& origin) {
static_cast<StoragePartitionImpl*>(host->GetStoragePartition())
->GetPlatformNotificationContext()
- ->CreateService(origin, std::move(request));
+ ->CreateService(host, origin, std::move(request));
}));
parameterized_binder_registry_.AddInterface(
base::BindRepeating(&QuotaDispatcherHost::CreateForWorker));
diff --git a/content/public/browser/platform_notification_service.h b/content/public/browser/platform_notification_service.h
index ca61088079c4150fcf389504ddcf26bcf6bf69cd..d9c034c39890eef1fe3d95c6d7c0ae68eb711a89 100644
--- a/content/public/browser/platform_notification_service.h
+++ b/content/public/browser/platform_notification_service.h
@@ -27,6 +27,8 @@ struct PlatformNotificationData;
namespace content {
+class RenderProcessHost;
+
// The service using which notifications can be presented to the user. There
// should be a unique instance of the PlatformNotificationService depending
// on the browsing context being used.
@@ -41,6 +43,7 @@ class CONTENT_EXPORT PlatformNotificationService {
// Displays the notification described in |notification_data| to the user.
// This method must be called on the UI thread.
virtual void DisplayNotification(
+ RenderProcessHost* render_process_host,
const std::string& notification_id,
const GURL& origin,
const blink::PlatformNotificationData& notification_data,
diff --git a/content/test/mock_platform_notification_service.cc b/content/test/mock_platform_notification_service.cc
index 73a1af201b12bf818af2eafadad478b8c422826c..fc7e74c0bf900d475fc134a7b606c5f9e404f934 100644
--- a/content/test/mock_platform_notification_service.cc
+++ b/content/test/mock_platform_notification_service.cc
@@ -31,6 +31,7 @@ MockPlatformNotificationService::MockPlatformNotificationService(
MockPlatformNotificationService::~MockPlatformNotificationService() = default;
void MockPlatformNotificationService::DisplayNotification(
+ RenderProcessHost* render_process_host,
const std::string& notification_id,
const GURL& origin,
const blink::PlatformNotificationData& notification_data,
diff --git a/content/test/mock_platform_notification_service.h b/content/test/mock_platform_notification_service.h
index 6d108f9884f7e8f608b70ec33d286a06346e7456..4650a01c2d090c5957eb7a7e21f124489513142a 100644
--- a/content/test/mock_platform_notification_service.h
+++ b/content/test/mock_platform_notification_service.h
@@ -47,6 +47,7 @@ class MockPlatformNotificationService : public PlatformNotificationService {
// PlatformNotificationService implementation.
void DisplayNotification(
+ RenderProcessHost* render_process_host,
const std::string& notification_id,
const GURL& origin,
const blink::PlatformNotificationData& notification_data,