be44a2c5b7
* chore: bump chromium in DEPS to 120.0.6049.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6050.0 * chore: update patches * 4910494: Reland "[autopip] Show autopip UI for video pip" https://chromium-review.googlesource.com/c/chromium/src/+/4910494 * 4812338: Move partition_alloc into a "partition_alloc" dir. https://chromium-review.googlesource.com/c/chromium/src/+/4812338 * [Extensions Cleanup] Remove mojom ViewType::kExtensionDialog https://chromium-review.googlesource.com/c/chromium/src/+/4909897 * 4894923: Force enable raw_ptrs pointer arithmetic check. https://chromium-review.googlesource.com/c/chromium/src/+/4894923 * gin: Prevent wrappables from being constructed from author code. https://chromium-review.googlesource.com/c/chromium/src/+/4905829 * chore: update patches * chore: bump chromium in DEPS to 120.0.6052.0 * chore: bump chromium in DEPS to 120.0.6054.0 * chore: bump chromium in DEPS to 120.0.6056.0 * chore: fix patches * 4918545: Reland "[autopip] Add permissions embargo" https://chromium-review.googlesource.com/c/chromium/src/+/4918545 * 4881761: UI bindings for visual logging with structured metrics. https://chromium-review.googlesource.com/c/chromium/src/+/4881761 * chore: bump chromium in DEPS to 120.0.6058.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6060.0 * chore: bump chromium in DEPS to 120.0.6061.0 * chore: bump chromium in DEPS to 120.0.6062.0 * chore: gen libc++ filenames * chore: update patches * 4911894: Move //c/b/ui/views/eye_dropper to //components https://chromium-review.googlesource.com/c/chromium/src/+/4911894 * chore: bump chromium in DEPS to 120.0.6064.0 * chore: bump chromium in DEPS to 120.0.6066.0 * chore: bump chromium in DEPS to 120.0.6068.0 * chore: bump chromium in DEPS to 120.0.6070.0 * chore: remove temp_prevent_unused_function_error.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4931270 * chore: add TransferDragSecurityInfo() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4928028 * mark TransferDragSecurityInfo() as NOTREACHED A follow-up to previous commit. I think this is commit is correct (i.e. that this function shouldn't get called) but am not positive, so I'm including it in a standalone commit in case we need to revert. * chore: update signature of OnPrivateNetworkAccessPermissionRequired() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4919478 Our impl is a no-op, so updating the signature is the only change. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6072.0 * chore: update patches * chore: sync ParseMatchPattern() param order with upstream change Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4944243 * chore: update fix_crash_loading_non-standard_schemes_in_iframes.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4939602 * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6073.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6074.0 * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4908053 no manual changes; patch applied with fuzz 1 * chore: update fix_handle_no_top_level_aura_window_in_webcontentsimpl.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4936315 minor manual sync to upstream code shear * chore: rebuild patches * chore: update ClearHttpAuthCache arguments Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4937937 adding ClearDataFilterPtr arg. Upstream added this arg, which is already present in other NetworkContext methods. Our code uses `nullptr` there. * chore: bump chromium in DEPS to 120.0.6076.0 * chore: update mas_disable_remote_accessibility.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4865412 minor manual sync to upstream code shear * chore: update disable_color_correct_rendering.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4942936 minor manual sync to upstream code shear * fix: move x11_util.h include to top of source file This is a short-term fix to unblock the roll. I will follow up a better fix in a standalone PR. * chore: rebuild patches * chore: bump chromium in DEPS to 120.0.6077.0 * chore: update patches * chore: bump chromium in DEPS to 120.0.6078.0 * chore: update patches * refactor: add BrowserProcessImpl::os_crypt_async() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4455776 This is one to keep an eye on. This commit copies the upstream impl, which appears to be an interim step with more upstream code changes still forthcoming. Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=1373092 * fixup! refactor: add BrowserProcessImpl::os_crypt_async() chore: make 'gn check' happy * chore: remove ensure_messageports_get_gced_when_not_referenced.patch Xref: ensure_messageports_get_gced_when_not_referenced.patch no longer needed because upstreamed * chore: remove webrtc/pipewire_capturer_make_restore_tokens_re-usable_more_than_one_time.patch Xref: https://webrtc-review.googlesource.com/c/src/+/322621 no longer needed because upstreamed * chore: add //components/compose:buildflags dep Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4912601 needed by browser/ui/browser_dialogs.h * chore: update filenames.libcxx.gni node ./script/gen-libc++-filenames.js * test: fix UI.InspectorView -> UI.InspectorView.instance() --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
201 lines
11 KiB
Diff
201 lines
11 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 RenderFrameHost through to PlatformNotificationService
|
|
so Electron can identify which renderer a notification came from.
|
|
|
|
diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc
|
|
index 7b31b8fce0fb99baa751131b336a2842f728433a..8f230c09e465df0403c7f162f5f9161ae0085cdf 100644
|
|
--- a/chrome/browser/notifications/platform_notification_service_impl.cc
|
|
+++ b/chrome/browser/notifications/platform_notification_service_impl.cc
|
|
@@ -201,6 +201,7 @@ bool PlatformNotificationServiceImpl::WasClosedProgrammatically(
|
|
|
|
// TODO(awdf): Rename to DisplayNonPersistentNotification (Similar for Close)
|
|
void PlatformNotificationServiceImpl::DisplayNotification(
|
|
+ content::RenderFrameHost* render_frame_host,
|
|
const std::string& notification_id,
|
|
const GURL& origin,
|
|
const GURL& document_url,
|
|
diff --git a/chrome/browser/notifications/platform_notification_service_impl.h b/chrome/browser/notifications/platform_notification_service_impl.h
|
|
index 2552c32ed769482c8bbb7b7538bf59cb66dcc16d..7fda86e70ad47766211a9ff8b5ed732068f0b885 100644
|
|
--- a/chrome/browser/notifications/platform_notification_service_impl.h
|
|
+++ b/chrome/browser/notifications/platform_notification_service_impl.h
|
|
@@ -57,6 +57,7 @@ class PlatformNotificationServiceImpl
|
|
|
|
// content::PlatformNotificationService implementation.
|
|
void DisplayNotification(
|
|
+ content::RenderFrameHost* render_frame_host,
|
|
const std::string& notification_id,
|
|
const GURL& origin,
|
|
const GURL& document_url,
|
|
diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc
|
|
index 688c95eeb2a1ea60b004eb643cb5afcff48c11bd..226d1e3f01f976d8b35e6b3fbd332683d1a0f84b 100644
|
|
--- a/content/browser/notifications/blink_notification_service_impl.cc
|
|
+++ b/content/browser/notifications/blink_notification_service_impl.cc
|
|
@@ -87,12 +87,14 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
|
|
BrowserContext* browser_context,
|
|
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
|
|
RenderProcessHost* render_process_host,
|
|
+ RenderFrameHost* render_frame_host,
|
|
const blink::StorageKey& storage_key,
|
|
const GURL& document_url,
|
|
const WeakDocumentPtr& weak_document_ptr,
|
|
RenderProcessHost::NotificationServiceCreatorType creator_type,
|
|
mojo::PendingReceiver<blink::mojom::NotificationService> receiver)
|
|
: notification_context_(notification_context),
|
|
+ render_frame_host_(render_frame_host),
|
|
browser_context_(browser_context),
|
|
service_worker_context_(std::move(service_worker_context)),
|
|
render_process_host_id_(render_process_host->GetID()),
|
|
@@ -184,7 +186,7 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification(
|
|
creator_type_);
|
|
|
|
browser_context_->GetPlatformNotificationService()->DisplayNotification(
|
|
- notification_id, storage_key_.origin().GetURL(), document_url_,
|
|
+ render_frame_host_, notification_id, storage_key_.origin().GetURL(), document_url_,
|
|
platform_notification_data, notification_resources);
|
|
}
|
|
|
|
diff --git a/content/browser/notifications/blink_notification_service_impl.h b/content/browser/notifications/blink_notification_service_impl.h
|
|
index e7cc73f375ada7ee8715d331c3d372e0f59a0cdf..c0a142bea4a9a30c10dbb30c72fedce9ab4d1e62 100644
|
|
--- a/content/browser/notifications/blink_notification_service_impl.h
|
|
+++ b/content/browser/notifications/blink_notification_service_impl.h
|
|
@@ -44,6 +44,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
|
|
BrowserContext* browser_context,
|
|
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
|
|
RenderProcessHost* render_process_host,
|
|
+ RenderFrameHost* render_frame_host,
|
|
const blink::StorageKey& storage_key,
|
|
const GURL& document_url,
|
|
const WeakDocumentPtr& weak_document_ptr,
|
|
@@ -113,6 +114,7 @@ class CONTENT_EXPORT BlinkNotificationServiceImpl
|
|
raw_ptr<PlatformNotificationContextImpl, DanglingUntriaged>
|
|
notification_context_;
|
|
|
|
+ raw_ptr<RenderFrameHost> render_frame_host_;
|
|
raw_ptr<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 00965c253f28bd3947255b2ab77bf3a0bb71f14a..e04a7eef94990dfb0e2fca2e116352fe80965303 100644
|
|
--- a/content/browser/notifications/blink_notification_service_impl_unittest.cc
|
|
+++ b/content/browser/notifications/blink_notification_service_impl_unittest.cc
|
|
@@ -136,7 +136,7 @@ class BlinkNotificationServiceImplTest : public ::testing::Test {
|
|
notification_service_ = std::make_unique<BlinkNotificationServiceImpl>(
|
|
notification_context_.get(), &browser_context_,
|
|
embedded_worker_helper_->context_wrapper(), &render_process_host_,
|
|
- storage_key_,
|
|
+ nullptr, storage_key_,
|
|
/*document_url=*/GURL(),
|
|
contents_.get()->GetPrimaryMainFrame()->GetWeakDocumentPtr(),
|
|
RenderProcessHost::NotificationServiceCreatorType::kDocument,
|
|
diff --git a/content/browser/notifications/platform_notification_context_impl.cc b/content/browser/notifications/platform_notification_context_impl.cc
|
|
index aaccaa3e3e43497ebd0909d55f471cf98972f27a..52e0692c5ce782d3ac433e9de443c2b63430e2ce 100644
|
|
--- a/content/browser/notifications/platform_notification_context_impl.cc
|
|
+++ b/content/browser/notifications/platform_notification_context_impl.cc
|
|
@@ -268,6 +268,7 @@ void PlatformNotificationContextImpl::Shutdown() {
|
|
|
|
void PlatformNotificationContextImpl::CreateService(
|
|
RenderProcessHost* render_process_host,
|
|
+ RenderFrameHost* render_frame_host,
|
|
const blink::StorageKey& storage_key,
|
|
const GURL& document_url,
|
|
const WeakDocumentPtr& weak_document_ptr,
|
|
@@ -276,7 +277,7 @@ void PlatformNotificationContextImpl::CreateService(
|
|
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
services_.push_back(std::make_unique<BlinkNotificationServiceImpl>(
|
|
this, browser_context_, service_worker_context_, render_process_host,
|
|
- storage_key, document_url, weak_document_ptr, creator_type,
|
|
+ render_frame_host, storage_key, document_url, weak_document_ptr, creator_type,
|
|
std::move(receiver)));
|
|
}
|
|
|
|
diff --git a/content/browser/notifications/platform_notification_context_impl.h b/content/browser/notifications/platform_notification_context_impl.h
|
|
index 9c9e590aab71d5b66cdd2c9a0cfc5f2d34443e84..c461c131d93d592487e319893d531bf4bdf14e39 100644
|
|
--- a/content/browser/notifications/platform_notification_context_impl.h
|
|
+++ b/content/browser/notifications/platform_notification_context_impl.h
|
|
@@ -45,6 +45,7 @@ struct NotificationDatabaseData;
|
|
class PlatformNotificationServiceProxy;
|
|
class RenderProcessHost;
|
|
class ServiceWorkerContextWrapper;
|
|
+class RenderFrameHost;
|
|
|
|
// Implementation of the Web Notification storage context. The public methods
|
|
// defined in this interface must only be called on the UI thread.
|
|
@@ -78,6 +79,7 @@ class CONTENT_EXPORT PlatformNotificationContextImpl
|
|
// service is created by a dedicated worker, or is `nullptr` otherwise.
|
|
void CreateService(
|
|
RenderProcessHost* render_process_host,
|
|
+ RenderFrameHost* render_frame_host,
|
|
const blink::StorageKey& storage_key,
|
|
const GURL& document_url,
|
|
const WeakDocumentPtr& weak_document_ptr,
|
|
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
|
index d0356a3e1c9aa3bc8d1a7c514da01d19e8783a9c..056ddf030c3d661b32f5d61d90b0f0b89b6d0e01 100644
|
|
--- a/content/browser/renderer_host/render_process_host_impl.cc
|
|
+++ b/content/browser/renderer_host/render_process_host_impl.cc
|
|
@@ -2018,7 +2018,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
|
case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker:
|
|
case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: {
|
|
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
|
|
- this, storage_key, /*document_url=*/GURL(), weak_document_ptr,
|
|
+ this, rfh, storage_key, /*document_url=*/GURL(), weak_document_ptr,
|
|
creator_type, std::move(receiver));
|
|
break;
|
|
}
|
|
@@ -2026,7 +2026,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
|
CHECK(rfh);
|
|
|
|
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
|
|
- this, storage_key, rfh->GetLastCommittedURL(), weak_document_ptr,
|
|
+ this, rfh, storage_key, rfh->GetLastCommittedURL(), weak_document_ptr,
|
|
creator_type, std::move(receiver));
|
|
break;
|
|
}
|
|
diff --git a/content/public/browser/platform_notification_service.h b/content/public/browser/platform_notification_service.h
|
|
index 82db1db4175fb9f4ee7490d5a163164ef4495ecb..4f51683be14ba6ee657a290c7747969e052a88ca 100644
|
|
--- a/content/public/browser/platform_notification_service.h
|
|
+++ b/content/public/browser/platform_notification_service.h
|
|
@@ -26,6 +26,8 @@ struct PlatformNotificationData;
|
|
|
|
namespace content {
|
|
|
|
+class RenderFrameHost;
|
|
+
|
|
// 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 {
|
|
// This method must be called on the UI thread. |document_url| is empty when
|
|
// the display notification originates from a worker.
|
|
virtual void DisplayNotification(
|
|
+ RenderFrameHost* render_frame_host,
|
|
const std::string& notification_id,
|
|
const GURL& origin,
|
|
const GURL& document_url,
|
|
diff --git a/content/test/mock_platform_notification_service.cc b/content/test/mock_platform_notification_service.cc
|
|
index 6b835ca4d0426d2412f1cff6f0bb962e0f2fd586..a48198747b80929e7d4b290e9b40b6629dbda669 100644
|
|
--- a/content/test/mock_platform_notification_service.cc
|
|
+++ b/content/test/mock_platform_notification_service.cc
|
|
@@ -29,6 +29,7 @@ MockPlatformNotificationService::MockPlatformNotificationService(
|
|
MockPlatformNotificationService::~MockPlatformNotificationService() = default;
|
|
|
|
void MockPlatformNotificationService::DisplayNotification(
|
|
+ RenderFrameHost* render_frame_host,
|
|
const std::string& notification_id,
|
|
const GURL& origin,
|
|
const GURL& document_url,
|
|
diff --git a/content/test/mock_platform_notification_service.h b/content/test/mock_platform_notification_service.h
|
|
index 66fd1e7f1171fec33c337375a9f8f11fcc6ab27e..188d507b42544dfab7abceed24097766496086b5 100644
|
|
--- a/content/test/mock_platform_notification_service.h
|
|
+++ b/content/test/mock_platform_notification_service.h
|
|
@@ -52,6 +52,7 @@ class MockPlatformNotificationService : public PlatformNotificationService {
|
|
|
|
// PlatformNotificationService implementation.
|
|
void DisplayNotification(
|
|
+ RenderFrameHost* render_frame_host,
|
|
const std::string& notification_id,
|
|
const GURL& origin,
|
|
const GURL& document_url,
|