2019-07-24 23:01:08 +00:00
|
|
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
#include "shell/browser/extensions/electron_extensions_browser_client.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
|
2022-06-01 06:12:47 +00:00
|
|
|
#include <algorithm>
|
2019-07-24 23:01:08 +00:00
|
|
|
#include <utility>
|
|
|
|
|
2023-02-03 11:43:42 +00:00
|
|
|
#include "base/functional/bind.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
#include "base/memory/ptr_util.h"
|
2020-02-13 00:39:12 +00:00
|
|
|
#include "base/path_service.h"
|
|
|
|
#include "chrome/browser/extensions/chrome_url_request_util.h"
|
|
|
|
#include "chrome/common/chrome_paths.h"
|
|
|
|
#include "chrome/common/extensions/chrome_manifest_url_handlers.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
#include "components/version_info/version_info.h"
|
|
|
|
#include "content/public/browser/browser_context.h"
|
|
|
|
#include "content/public/browser/browser_task_traits.h"
|
|
|
|
#include "content/public/browser/browser_thread.h"
|
|
|
|
#include "content/public/browser/render_frame_host.h"
|
|
|
|
#include "content/public/common/user_agent.h"
|
2022-12-05 22:59:19 +00:00
|
|
|
#include "extensions/browser/api/core_extensions_browser_api_provider.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
#include "extensions/browser/api/extensions_api_client.h"
|
|
|
|
#include "extensions/browser/component_extension_resource_manager.h"
|
|
|
|
#include "extensions/browser/event_router.h"
|
2020-02-13 00:39:12 +00:00
|
|
|
#include "extensions/browser/extension_protocols.h"
|
2020-03-11 11:15:07 +00:00
|
|
|
#include "extensions/browser/extensions_browser_interface_binders.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
#include "extensions/browser/null_app_sorting.h"
|
|
|
|
#include "extensions/browser/updater/null_extension_cache.h"
|
|
|
|
#include "extensions/browser/url_request_util.h"
|
|
|
|
#include "extensions/common/features/feature_channel.h"
|
2020-02-13 00:39:12 +00:00
|
|
|
#include "extensions/common/file_util.h"
|
2020-01-15 00:20:30 +00:00
|
|
|
#include "extensions/common/manifest_constants.h"
|
|
|
|
#include "extensions/common/manifest_url_handlers.h"
|
|
|
|
#include "services/network/public/mojom/url_loader.mojom.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
#include "shell/browser/browser.h"
|
2020-02-03 22:01:10 +00:00
|
|
|
#include "shell/browser/electron_browser_client.h"
|
|
|
|
#include "shell/browser/electron_browser_context.h"
|
|
|
|
#include "shell/browser/extensions/api/runtime/electron_runtime_api_delegate.h"
|
2020-02-13 00:39:12 +00:00
|
|
|
#include "shell/browser/extensions/electron_component_extension_resource_manager.h"
|
2020-02-03 22:01:10 +00:00
|
|
|
#include "shell/browser/extensions/electron_extension_host_delegate.h"
|
|
|
|
#include "shell/browser/extensions/electron_extension_system_factory.h"
|
|
|
|
#include "shell/browser/extensions/electron_extension_web_contents_observer.h"
|
2020-01-13 22:55:58 +00:00
|
|
|
#include "shell/browser/extensions/electron_extensions_api_client.h"
|
2020-01-15 23:11:51 +00:00
|
|
|
#include "shell/browser/extensions/electron_extensions_browser_api_provider.h"
|
2020-04-24 01:55:17 +00:00
|
|
|
#include "shell/browser/extensions/electron_kiosk_delegate.h"
|
2020-02-03 22:01:10 +00:00
|
|
|
#include "shell/browser/extensions/electron_navigation_ui_data.h"
|
2020-01-13 22:55:58 +00:00
|
|
|
#include "shell/browser/extensions/electron_process_manager_delegate.h"
|
2020-02-13 00:39:12 +00:00
|
|
|
#include "ui/base/resource/resource_bundle.h"
|
2019-07-24 23:01:08 +00:00
|
|
|
|
|
|
|
using content::BrowserContext;
|
|
|
|
using content::BrowserThread;
|
2020-02-13 00:39:12 +00:00
|
|
|
using extensions::ExtensionsBrowserClient;
|
2019-07-24 23:01:08 +00:00
|
|
|
|
|
|
|
namespace electron {
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::ElectronExtensionsBrowserClient()
|
2021-06-08 02:00:05 +00:00
|
|
|
: api_client_(std::make_unique<extensions::ElectronExtensionsAPIClient>()),
|
|
|
|
process_manager_delegate_(
|
|
|
|
std::make_unique<extensions::ElectronProcessManagerDelegate>()),
|
|
|
|
extension_cache_(std::make_unique<extensions::NullExtensionCache>()) {
|
2020-01-13 22:55:58 +00:00
|
|
|
// Electron does not have a concept of channel, so leave UNKNOWN to
|
2019-07-24 23:01:08 +00:00
|
|
|
// enable all channel-dependent extension APIs.
|
|
|
|
extensions::SetCurrentChannel(version_info::Channel::UNKNOWN);
|
2021-06-08 02:00:05 +00:00
|
|
|
resource_manager_ =
|
|
|
|
std::make_unique<extensions::ElectronComponentExtensionResourceManager>();
|
2019-07-24 23:01:08 +00:00
|
|
|
|
|
|
|
AddAPIProvider(
|
|
|
|
std::make_unique<extensions::CoreExtensionsBrowserAPIProvider>());
|
2020-01-15 23:11:51 +00:00
|
|
|
AddAPIProvider(
|
|
|
|
std::make_unique<extensions::ElectronExtensionsBrowserAPIProvider>());
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2021-06-04 04:16:13 +00:00
|
|
|
ElectronExtensionsBrowserClient::~ElectronExtensionsBrowserClient() = default;
|
2019-07-24 23:01:08 +00:00
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsShuttingDown() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return electron::Browser::Get()->is_shutting_down();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::AreExtensionsDisabled(
|
2019-07-24 23:01:08 +00:00
|
|
|
const base::CommandLine& command_line,
|
|
|
|
BrowserContext* context) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
chore: bump chromium to 118.0.5975.0 (main) (#39531)
* chore: bump chromium in DEPS to 118.0.5951.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4727894
No logic changes, but patch needed to be manually re-applied due to upstream code shear
* chore: update port_autofill_colors_to_the_color_pipeline.patch
No manual changes; patch applied with fuzz
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5953.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5955.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5957.0
* chore: update patches
* chore: include path of native_web_keyboard_event.h
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4758689
* chore: remove reference to eextensions/browser/notification-types.h
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4771627
* chore: update references to renamed upstream field NativeWebKeyboardEvent.skip_if_unhandled (formerly known as skip_in_browser
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4758689
Need a second pair of eyes on this commit. In particular the reference in content_converter.cc, skipInBrowser, seems to not be set or documented anywhere? Is this unused/vestigal code?
* chore: sync signature of ElectronExtensionsBrowserClient::IsValidContext() to upstream change
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4784198
* chore: add auto_pip_setting_helper.[cc,h] to chromium_src build
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4688277
Exiting upstream code used by chromium_src now depends on this new upstream class
* chore: bump chromium in DEPS to 118.0.5959.0
* chore: update add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
Xref: add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
manually adjust patch to minor upstream chagnes
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5961.0
* chore: bump chromium in DEPS to 118.0.5963.0
* chore: update patches
* 4780994: Rename various base files to "apple" since iOS uses them too
https://chromium-review.googlesource.com/c/chromium/src/+/4780994
* Many files moved from `mac` -> `apple`
This commit follows a handful of CLs that simply rename files/symbols to change `mac`
to `apple`
to signify their use across both macOS and iOS:
- 4784010: Move scoped_nsautorelease_pool to base/apple, leave a forwarding header
- 4790744: Move foundation_util to base/apple, leave a forwarding header
- 4790741: Move scoped_cftypreref to base/apple, leave a forwarding header
- 4787627: Move and rename macOS+iOS base/ files in PA to "apple"
- 4780399: Move OSStatus logging to base/apple
- 4787387: Remove forwarding headers
- 4781113: Rename message_pump_mac to "apple" because iOS uses it too
* fixup minor patch update error
A function param got dropped from this patch somewhere earlier
* chore: bump chromium in DEPS to 118.0.5965.2
* chore: update patches
* 4799213: Move ScopedTypeRef and ScopedCFTypeRef into base::apple::
https://chromium-review.googlesource.com/c/chromium/src/+/4799213
* Fix removed include to BrowserContext
In crrev.com/c/4767962 an include to BrowserContext was removed,
which was necessary for compilation. This broke only for us because
"chrome/browser/profiles/profile.h" includes that class, but we remove
all references to profiles.
* chore: bump chromium in DEPS to 118.0.5967.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5969.0
* chore: update patches
* chore: bump chromium in DEPS to 118.0.5971.0
* chore: bump chromium in DEPS to 118.0.5973.0
* chore: update patches
* 4772121: [OOPIF PDF] Replace PDFWebContentsHelper with PDFDocumentHelper
https://chromium-review.googlesource.com/c/chromium/src/+/4772121
* 4811164: [Extensions] Do some cleanup in ChromeManagementAPIDelegate.
https://chromium-review.googlesource.com/c/chromium/src/+/4811164
* 4809488: Remove duplicate dnd functionality between Web and Renderer prefs
https://chromium-review.googlesource.com/c/chromium/src/+/4809488
Given that this is no longer an option of web preferences, we should
consider deprecating this option and then removing it.
* chore: bump chromium in DEPS to 118.0.5975.0
* chore: update patches
* fixup! chore: add auto_pip_settings_helper.{cc|h} to chromium_src build
* Reland "[windows] Remove RegKey::DeleteEmptyKey"
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4813255
* Ensure StrCat means StrCat
Refs https://chromium-review.googlesource.com/c/chromium/src/+/1117180
* fixup! Remove RegKey::DeleteEmptyKey
* Consistently reject large p and large q in DH
Refs https://boringssl-review.googlesource.com/c/boringssl/+/62226
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2023-09-01 06:54:59 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsValidContext(void* context) {
|
2020-08-17 20:21:53 +00:00
|
|
|
auto& context_map = ElectronBrowserContext::browser_context_map();
|
2019-07-24 23:01:08 +00:00
|
|
|
for (auto const& entry : context_map) {
|
|
|
|
if (entry.second && entry.second.get() == context)
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsSameContext(BrowserContext* first,
|
|
|
|
BrowserContext* second) {
|
2019-07-24 23:01:08 +00:00
|
|
|
return first == second;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::HasOffTheRecordContext(
|
2019-07-24 23:01:08 +00:00
|
|
|
BrowserContext* context) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
BrowserContext* ElectronExtensionsBrowserClient::GetOffTheRecordContext(
|
2019-07-24 23:01:08 +00:00
|
|
|
BrowserContext* context) {
|
|
|
|
// app_shell only supports a single context.
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
BrowserContext* ElectronExtensionsBrowserClient::GetOriginalContext(
|
2019-07-24 23:01:08 +00:00
|
|
|
BrowserContext* context) {
|
|
|
|
DCHECK(context);
|
|
|
|
if (context->IsOffTheRecord()) {
|
2020-08-17 20:21:53 +00:00
|
|
|
return ElectronBrowserContext::From("", false);
|
2019-07-24 23:01:08 +00:00
|
|
|
} else {
|
|
|
|
return context;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-10-03 20:21:00 +00:00
|
|
|
content::BrowserContext*
|
2023-07-16 14:14:43 +00:00
|
|
|
ElectronExtensionsBrowserClient::GetContextRedirectedToOriginal(
|
2022-10-03 20:21:00 +00:00
|
|
|
content::BrowserContext* context,
|
2023-07-16 14:14:43 +00:00
|
|
|
bool force_guest_profile) {
|
2022-10-03 20:21:00 +00:00
|
|
|
return GetOriginalContext(context);
|
|
|
|
}
|
|
|
|
|
2023-07-16 14:14:43 +00:00
|
|
|
content::BrowserContext* ElectronExtensionsBrowserClient::GetContextOwnInstance(
|
2022-10-03 20:21:00 +00:00
|
|
|
content::BrowserContext* context,
|
2023-07-16 14:14:43 +00:00
|
|
|
bool force_guest_profile) {
|
2022-10-03 20:21:00 +00:00
|
|
|
return context;
|
|
|
|
}
|
|
|
|
|
2023-07-16 14:14:43 +00:00
|
|
|
content::BrowserContext*
|
|
|
|
ElectronExtensionsBrowserClient::GetContextForOriginalOnly(
|
2022-10-03 20:21:00 +00:00
|
|
|
content::BrowserContext* context,
|
2023-07-16 14:14:43 +00:00
|
|
|
bool force_guest_profile) {
|
2022-10-03 20:21:00 +00:00
|
|
|
return context->IsOffTheRecord() ? nullptr : context;
|
|
|
|
}
|
|
|
|
|
2023-07-20 07:36:59 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::AreExtensionsDisabledForContext(
|
|
|
|
content::BrowserContext* context) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsGuestSession(
|
2019-07-24 23:01:08 +00:00
|
|
|
BrowserContext* context) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsExtensionIncognitoEnabled(
|
2019-07-24 23:01:08 +00:00
|
|
|
const std::string& extension_id,
|
|
|
|
content::BrowserContext* context) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::CanExtensionCrossIncognito(
|
2019-07-24 23:01:08 +00:00
|
|
|
const extensions::Extension* extension,
|
|
|
|
content::BrowserContext* context) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
base::FilePath ElectronExtensionsBrowserClient::GetBundleResourcePath(
|
2019-07-24 23:01:08 +00:00
|
|
|
const network::ResourceRequest& request,
|
|
|
|
const base::FilePath& extension_resources_path,
|
|
|
|
int* resource_id) const {
|
|
|
|
*resource_id = 0;
|
2020-02-13 00:39:12 +00:00
|
|
|
base::FilePath chrome_resources_path;
|
|
|
|
if (!base::PathService::Get(chrome::DIR_RESOURCES, &chrome_resources_path))
|
|
|
|
return base::FilePath();
|
|
|
|
|
|
|
|
// Since component extension resources are included in
|
|
|
|
// component_extension_resources.pak file in |chrome_resources_path|,
|
|
|
|
// calculate the extension |request_relative_path| against
|
|
|
|
// |chrome_resources_path|.
|
|
|
|
if (!chrome_resources_path.IsParent(extension_resources_path))
|
|
|
|
return base::FilePath();
|
|
|
|
|
|
|
|
const base::FilePath request_relative_path =
|
|
|
|
extensions::file_util::ExtensionURLToRelativeFilePath(request.url);
|
|
|
|
if (!ExtensionsBrowserClient::Get()
|
|
|
|
->GetComponentExtensionResourceManager()
|
|
|
|
->IsComponentExtensionResource(extension_resources_path,
|
|
|
|
request_relative_path, resource_id)) {
|
|
|
|
return base::FilePath();
|
|
|
|
}
|
|
|
|
DCHECK_NE(0, *resource_id);
|
|
|
|
|
|
|
|
return request_relative_path;
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::LoadResourceFromResourceBundle(
|
2019-07-24 23:01:08 +00:00
|
|
|
const network::ResourceRequest& request,
|
2019-12-11 00:22:35 +00:00
|
|
|
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
2019-07-24 23:01:08 +00:00
|
|
|
const base::FilePath& resource_relative_path,
|
|
|
|
int resource_id,
|
2021-06-03 08:05:04 +00:00
|
|
|
scoped_refptr<net::HttpResponseHeaders> headers,
|
|
|
|
mojo::PendingRemote<network::mojom::URLLoaderClient> client) {
|
2020-02-13 00:39:12 +00:00
|
|
|
extensions::chrome_url_request_util::LoadResourceFromResourceBundle(
|
|
|
|
request, std::move(loader), resource_relative_path, resource_id,
|
2021-06-03 08:05:04 +00:00
|
|
|
std::move(headers), std::move(client));
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2020-01-15 00:20:30 +00:00
|
|
|
namespace {
|
2020-12-22 22:14:44 +00:00
|
|
|
bool AllowCrossRendererResourceLoad(
|
|
|
|
const network::ResourceRequest& request,
|
|
|
|
network::mojom::RequestDestination destination,
|
|
|
|
ui::PageTransition page_transition,
|
|
|
|
int child_id,
|
|
|
|
bool is_incognito,
|
|
|
|
const extensions::Extension* extension,
|
|
|
|
const extensions::ExtensionSet& extensions,
|
|
|
|
const extensions::ProcessMap& process_map,
|
chore: bump chromium to 128.0.6611.0 (main) (#42779)
* chore: bump chromium in DEPS to 128.0.6577.0
* chore: bump chromium in DEPS to 128.0.6579.0
* 5675706: Reland "Reland "Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al""""
https://chromium-review.googlesource.com/c/chromium/src/+/5675706
* 5668597: [PDF Ink Signatures] Prompt download menu on save when there are edits
https://chromium-review.googlesource.com/c/chromium/src/+/5668597
* 5677014: Reland "Pull data_sharing_sdk from CIPD"
https://chromium-review.googlesource.com/c/chromium/src/+/5677014
* chore: fixup patch indices
* chore: bump chromium in DEPS to 128.0.6581.0
* chore: bump chromium in DEPS to 128.0.6583.0
* update patches
* 5455480: [Extensions] Allow service worker requests to continue without a cert
https://chromium-review.googlesource.com/c/chromium/src/+/5455480
* try to get some debugging output from script/push-patch.js
* chore: bump chromium in DEPS to 128.0.6585.0
* chore: bump chromium in DEPS to 128.0.6587.0
* update patches
* chore: bump chromium in DEPS to 128.0.6589.0
* more patch work
* maybe over here?
* chore: update patches
* 5673207: [HTTPS Upgrades] Disable in captive portal login webview
https://chromium-review.googlesource.com/c/chromium/src/+/5673207
* 5636785: Extensions: WAR: manifest.json's use_dynamic_url requires a dynamic url
https://chromium-review.googlesource.com/c/chromium/src/+/5636785
* chore: bump chromium in DEPS to 128.0.6591.0
* 5665458: Trigger WN2 page when feature is enabled
https://chromium-review.googlesource.com/c/chromium/src/+/5665458
* update patches
* chore: bump chromium in DEPS to 128.0.6593.0
* chore: bump chromium in DEPS to 128.0.6595.0
* chore: bump chromium in DEPS to 128.0.6597.0
* (patch update) 5694586: [compile hints] Remove the usage of v8::Isolate::SetJavaScriptCompileHintsMagicEnabledCallback API
https://chromium-review.googlesource.com/c/chromium/src/+/5694586
* update patches
* 5691287: Reland "Change blink::WebKeyboardEvent to use std::array in is members"
https://chromium-review.googlesource.com/c/chromium/src/+/5691287
The code changed here is modeled after code in `content/renderer/pepper/event_conversion.cc` that was also modified in this CL, so I took the same approach.
* 5529018: Cleanup EnableWebHidOnExtensionServiceWorker flag
https://chromium-review.googlesource.com/c/chromium/src/+/5529018
* 5526324: [Code Health] Add deprecation comment for base::SupportsWeakPtr.
https://chromium-review.googlesource.com/c/chromium/src/+/5526324
Note that this CL actually does make `SupportsWeakPtr` strictly restricted to existing implementations, no new ones. We could add a patch to add ourselves to this list, but it looks like we'll have to refactor this anyways in the near future. Since the refactor seems straightforward, let's try that first.
* chore: bump chromium in DEPS to 128.0.6598.0
* chore: update patches
* 5704737: Rename ExclusiveAccessContext::GetActiveWebContents to avoid conflict
https://chromium-review.googlesource.com/c/chromium/src/+/5704737
* chore: bump chromium in DEPS to 128.0.6601.0
* chore: update patches
* Add `base::StringPiece` header includes
Chromium is working on replacing `base::StringPiece` with `std::string_view`. (See the Chromium Bug below.) They're currently running mass codemods (across many multiple changes) to replace uses of `StringPiece` with `string_view`, including removing the header include for `StringPiece` in those files. This cascades down to our files that were implicitly depending on those includes through some other include.
They're on track to eventually deprecate and remove `StringPiece` so our code should be converted, but that can be done as an upgrade follow-up task. For now, adding the header back to files that need it should suffice for minimal upgrade changes.
Chromium Bug: https://issues.chromium.org/issues/40506050
* 5702737: GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
https://chromium-review.googlesource.com/c/chromium/src/+/5702737
contender for smallest commit 2024
* 5706534: Rename GlobalFeatures to GlobalDesktopFeatures.
https://chromium-review.googlesource.com/c/chromium/src/+/5706534
* 5691321: ui: remove params variants of SelectFile listener functions
https://chromium-review.googlesource.com/c/chromium/src/+/5691321
* 5714949: [Extensions] Display re-enable dialog for MV2 disabled stage
https://chromium-review.googlesource.com/c/chromium/src/+/5714949
* chore: update libc++ filenames
* patch: disable scope reuse & associated dchecks in v8 (hopefully temp, upgrade follow-up)
* fixup! Add `base::StringPiece` header includes
* update MAS patch
5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception
https://chromium-review.googlesource.com/c/chromium/src/+/5710330
* chore: bump chromium in DEPS to 128.0.6603.0
* chore: update patches
* 5713258: Reland "Preparation for decoupling creation/initialization of context"
https://chromium-review.googlesource.com/c/chromium/src/+/5713258
When destroying a context, it must already be shutdown, and this change enforces it with a new CHECK.
We were overriding `BrowserContextKeyedServiceFactory::BrowserContextShutdown` with an empty implementation, which differed from the default implementation that notifies the `KeyedServiceFactory` that the context has shutdown. Since we were missing this notification, the CHECK would later trip when the service was being destoryed because it was not registered as shutdown when it was shutdown.
* chore: bump chromium in DEPS to 128.0.6605.2
* chore: update patches
* refactor: linux open/save dialog patch
Our existing implementation was relying on an opaque `void* params` parameter that was passed through `ui::SelectFileDialog`.
Recently, that parameter has been getting removed:
- 5691321: ui: remove params variants of SelectFile listener functions | https://chromium-review.googlesource.com/c/chromium/src/+/5691321
- 5709097: ui: remove SelectFileDialog impl params | https://chromium-review.googlesource.com/c/chromium/src/+/5709097
- https://issues.chromium.org/issues/340178601 "reconsider SelectFileDialog"
This restructures the patch to work with mostly the same mechanics, but directly on the `ui::SelectFileDialog` object. This nets us some wins in terms of a smaller patch.
* 5713262: DevTools UI binding AIDA client event returns response
https://chromium-review.googlesource.com/c/chromium/src/+/5713262
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6606.0
* chore: update patches
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6607.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5722937
* fix: pwd error in electron-test, nan-test
fix: unshallow depot_tools before 3-way apply
* chore: e patches all
* fixup! fix: pwd error in electron-test, nan-test
* chore: bump chromium in DEPS to 128.0.6609.0
* chore: bump chromium in DEPS to 128.0.6611.0
* chore: update patches
* chore: update libcxx filenames
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
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: Alice Zhao <alice@makenotion.com>
2024-07-23 15:59:44 +00:00
|
|
|
const GURL& upstream_url,
|
2020-12-22 22:14:44 +00:00
|
|
|
bool* allowed) {
|
2020-01-15 00:20:30 +00:00
|
|
|
if (extensions::url_request_util::AllowCrossRendererResourceLoad(
|
2020-12-22 22:14:44 +00:00
|
|
|
request, destination, page_transition, child_id, is_incognito,
|
chore: bump chromium to 128.0.6611.0 (main) (#42779)
* chore: bump chromium in DEPS to 128.0.6577.0
* chore: bump chromium in DEPS to 128.0.6579.0
* 5675706: Reland "Reland "Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al""""
https://chromium-review.googlesource.com/c/chromium/src/+/5675706
* 5668597: [PDF Ink Signatures] Prompt download menu on save when there are edits
https://chromium-review.googlesource.com/c/chromium/src/+/5668597
* 5677014: Reland "Pull data_sharing_sdk from CIPD"
https://chromium-review.googlesource.com/c/chromium/src/+/5677014
* chore: fixup patch indices
* chore: bump chromium in DEPS to 128.0.6581.0
* chore: bump chromium in DEPS to 128.0.6583.0
* update patches
* 5455480: [Extensions] Allow service worker requests to continue without a cert
https://chromium-review.googlesource.com/c/chromium/src/+/5455480
* try to get some debugging output from script/push-patch.js
* chore: bump chromium in DEPS to 128.0.6585.0
* chore: bump chromium in DEPS to 128.0.6587.0
* update patches
* chore: bump chromium in DEPS to 128.0.6589.0
* more patch work
* maybe over here?
* chore: update patches
* 5673207: [HTTPS Upgrades] Disable in captive portal login webview
https://chromium-review.googlesource.com/c/chromium/src/+/5673207
* 5636785: Extensions: WAR: manifest.json's use_dynamic_url requires a dynamic url
https://chromium-review.googlesource.com/c/chromium/src/+/5636785
* chore: bump chromium in DEPS to 128.0.6591.0
* 5665458: Trigger WN2 page when feature is enabled
https://chromium-review.googlesource.com/c/chromium/src/+/5665458
* update patches
* chore: bump chromium in DEPS to 128.0.6593.0
* chore: bump chromium in DEPS to 128.0.6595.0
* chore: bump chromium in DEPS to 128.0.6597.0
* (patch update) 5694586: [compile hints] Remove the usage of v8::Isolate::SetJavaScriptCompileHintsMagicEnabledCallback API
https://chromium-review.googlesource.com/c/chromium/src/+/5694586
* update patches
* 5691287: Reland "Change blink::WebKeyboardEvent to use std::array in is members"
https://chromium-review.googlesource.com/c/chromium/src/+/5691287
The code changed here is modeled after code in `content/renderer/pepper/event_conversion.cc` that was also modified in this CL, so I took the same approach.
* 5529018: Cleanup EnableWebHidOnExtensionServiceWorker flag
https://chromium-review.googlesource.com/c/chromium/src/+/5529018
* 5526324: [Code Health] Add deprecation comment for base::SupportsWeakPtr.
https://chromium-review.googlesource.com/c/chromium/src/+/5526324
Note that this CL actually does make `SupportsWeakPtr` strictly restricted to existing implementations, no new ones. We could add a patch to add ourselves to this list, but it looks like we'll have to refactor this anyways in the near future. Since the refactor seems straightforward, let's try that first.
* chore: bump chromium in DEPS to 128.0.6598.0
* chore: update patches
* 5704737: Rename ExclusiveAccessContext::GetActiveWebContents to avoid conflict
https://chromium-review.googlesource.com/c/chromium/src/+/5704737
* chore: bump chromium in DEPS to 128.0.6601.0
* chore: update patches
* Add `base::StringPiece` header includes
Chromium is working on replacing `base::StringPiece` with `std::string_view`. (See the Chromium Bug below.) They're currently running mass codemods (across many multiple changes) to replace uses of `StringPiece` with `string_view`, including removing the header include for `StringPiece` in those files. This cascades down to our files that were implicitly depending on those includes through some other include.
They're on track to eventually deprecate and remove `StringPiece` so our code should be converted, but that can be done as an upgrade follow-up task. For now, adding the header back to files that need it should suffice for minimal upgrade changes.
Chromium Bug: https://issues.chromium.org/issues/40506050
* 5702737: GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
https://chromium-review.googlesource.com/c/chromium/src/+/5702737
contender for smallest commit 2024
* 5706534: Rename GlobalFeatures to GlobalDesktopFeatures.
https://chromium-review.googlesource.com/c/chromium/src/+/5706534
* 5691321: ui: remove params variants of SelectFile listener functions
https://chromium-review.googlesource.com/c/chromium/src/+/5691321
* 5714949: [Extensions] Display re-enable dialog for MV2 disabled stage
https://chromium-review.googlesource.com/c/chromium/src/+/5714949
* chore: update libc++ filenames
* patch: disable scope reuse & associated dchecks in v8 (hopefully temp, upgrade follow-up)
* fixup! Add `base::StringPiece` header includes
* update MAS patch
5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception
https://chromium-review.googlesource.com/c/chromium/src/+/5710330
* chore: bump chromium in DEPS to 128.0.6603.0
* chore: update patches
* 5713258: Reland "Preparation for decoupling creation/initialization of context"
https://chromium-review.googlesource.com/c/chromium/src/+/5713258
When destroying a context, it must already be shutdown, and this change enforces it with a new CHECK.
We were overriding `BrowserContextKeyedServiceFactory::BrowserContextShutdown` with an empty implementation, which differed from the default implementation that notifies the `KeyedServiceFactory` that the context has shutdown. Since we were missing this notification, the CHECK would later trip when the service was being destoryed because it was not registered as shutdown when it was shutdown.
* chore: bump chromium in DEPS to 128.0.6605.2
* chore: update patches
* refactor: linux open/save dialog patch
Our existing implementation was relying on an opaque `void* params` parameter that was passed through `ui::SelectFileDialog`.
Recently, that parameter has been getting removed:
- 5691321: ui: remove params variants of SelectFile listener functions | https://chromium-review.googlesource.com/c/chromium/src/+/5691321
- 5709097: ui: remove SelectFileDialog impl params | https://chromium-review.googlesource.com/c/chromium/src/+/5709097
- https://issues.chromium.org/issues/340178601 "reconsider SelectFileDialog"
This restructures the patch to work with mostly the same mechanics, but directly on the `ui::SelectFileDialog` object. This nets us some wins in terms of a smaller patch.
* 5713262: DevTools UI binding AIDA client event returns response
https://chromium-review.googlesource.com/c/chromium/src/+/5713262
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6606.0
* chore: update patches
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6607.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5722937
* fix: pwd error in electron-test, nan-test
fix: unshallow depot_tools before 3-way apply
* chore: e patches all
* fixup! fix: pwd error in electron-test, nan-test
* chore: bump chromium in DEPS to 128.0.6609.0
* chore: bump chromium in DEPS to 128.0.6611.0
* chore: update patches
* chore: update libcxx filenames
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
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: Alice Zhao <alice@makenotion.com>
2024-07-23 15:59:44 +00:00
|
|
|
extension, extensions, process_map, upstream_url, allowed)) {
|
2020-01-15 00:20:30 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// If there aren't any explicitly marked web accessible resources, the
|
|
|
|
// load should be allowed only if it is by DevTools. A close approximation is
|
|
|
|
// checking if the extension contains a DevTools page.
|
2020-02-13 00:39:12 +00:00
|
|
|
if (extension && !extensions::chrome_manifest_urls::GetDevToolsPage(extension)
|
2020-01-15 00:20:30 +00:00
|
|
|
.is_empty()) {
|
|
|
|
*allowed = true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Couldn't determine if the resource is allowed or not.
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
} // namespace
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::AllowCrossRendererResourceLoad(
|
2020-12-14 18:57:36 +00:00
|
|
|
const network::ResourceRequest& request,
|
2020-12-22 22:14:44 +00:00
|
|
|
network::mojom::RequestDestination destination,
|
2019-07-24 23:01:08 +00:00
|
|
|
ui::PageTransition page_transition,
|
|
|
|
int child_id,
|
|
|
|
bool is_incognito,
|
|
|
|
const extensions::Extension* extension,
|
|
|
|
const extensions::ExtensionSet& extensions,
|
chore: bump chromium to 128.0.6611.0 (main) (#42779)
* chore: bump chromium in DEPS to 128.0.6577.0
* chore: bump chromium in DEPS to 128.0.6579.0
* 5675706: Reland "Reland "Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al""""
https://chromium-review.googlesource.com/c/chromium/src/+/5675706
* 5668597: [PDF Ink Signatures] Prompt download menu on save when there are edits
https://chromium-review.googlesource.com/c/chromium/src/+/5668597
* 5677014: Reland "Pull data_sharing_sdk from CIPD"
https://chromium-review.googlesource.com/c/chromium/src/+/5677014
* chore: fixup patch indices
* chore: bump chromium in DEPS to 128.0.6581.0
* chore: bump chromium in DEPS to 128.0.6583.0
* update patches
* 5455480: [Extensions] Allow service worker requests to continue without a cert
https://chromium-review.googlesource.com/c/chromium/src/+/5455480
* try to get some debugging output from script/push-patch.js
* chore: bump chromium in DEPS to 128.0.6585.0
* chore: bump chromium in DEPS to 128.0.6587.0
* update patches
* chore: bump chromium in DEPS to 128.0.6589.0
* more patch work
* maybe over here?
* chore: update patches
* 5673207: [HTTPS Upgrades] Disable in captive portal login webview
https://chromium-review.googlesource.com/c/chromium/src/+/5673207
* 5636785: Extensions: WAR: manifest.json's use_dynamic_url requires a dynamic url
https://chromium-review.googlesource.com/c/chromium/src/+/5636785
* chore: bump chromium in DEPS to 128.0.6591.0
* 5665458: Trigger WN2 page when feature is enabled
https://chromium-review.googlesource.com/c/chromium/src/+/5665458
* update patches
* chore: bump chromium in DEPS to 128.0.6593.0
* chore: bump chromium in DEPS to 128.0.6595.0
* chore: bump chromium in DEPS to 128.0.6597.0
* (patch update) 5694586: [compile hints] Remove the usage of v8::Isolate::SetJavaScriptCompileHintsMagicEnabledCallback API
https://chromium-review.googlesource.com/c/chromium/src/+/5694586
* update patches
* 5691287: Reland "Change blink::WebKeyboardEvent to use std::array in is members"
https://chromium-review.googlesource.com/c/chromium/src/+/5691287
The code changed here is modeled after code in `content/renderer/pepper/event_conversion.cc` that was also modified in this CL, so I took the same approach.
* 5529018: Cleanup EnableWebHidOnExtensionServiceWorker flag
https://chromium-review.googlesource.com/c/chromium/src/+/5529018
* 5526324: [Code Health] Add deprecation comment for base::SupportsWeakPtr.
https://chromium-review.googlesource.com/c/chromium/src/+/5526324
Note that this CL actually does make `SupportsWeakPtr` strictly restricted to existing implementations, no new ones. We could add a patch to add ourselves to this list, but it looks like we'll have to refactor this anyways in the near future. Since the refactor seems straightforward, let's try that first.
* chore: bump chromium in DEPS to 128.0.6598.0
* chore: update patches
* 5704737: Rename ExclusiveAccessContext::GetActiveWebContents to avoid conflict
https://chromium-review.googlesource.com/c/chromium/src/+/5704737
* chore: bump chromium in DEPS to 128.0.6601.0
* chore: update patches
* Add `base::StringPiece` header includes
Chromium is working on replacing `base::StringPiece` with `std::string_view`. (See the Chromium Bug below.) They're currently running mass codemods (across many multiple changes) to replace uses of `StringPiece` with `string_view`, including removing the header include for `StringPiece` in those files. This cascades down to our files that were implicitly depending on those includes through some other include.
They're on track to eventually deprecate and remove `StringPiece` so our code should be converted, but that can be done as an upgrade follow-up task. For now, adding the header back to files that need it should suffice for minimal upgrade changes.
Chromium Bug: https://issues.chromium.org/issues/40506050
* 5702737: GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
https://chromium-review.googlesource.com/c/chromium/src/+/5702737
contender for smallest commit 2024
* 5706534: Rename GlobalFeatures to GlobalDesktopFeatures.
https://chromium-review.googlesource.com/c/chromium/src/+/5706534
* 5691321: ui: remove params variants of SelectFile listener functions
https://chromium-review.googlesource.com/c/chromium/src/+/5691321
* 5714949: [Extensions] Display re-enable dialog for MV2 disabled stage
https://chromium-review.googlesource.com/c/chromium/src/+/5714949
* chore: update libc++ filenames
* patch: disable scope reuse & associated dchecks in v8 (hopefully temp, upgrade follow-up)
* fixup! Add `base::StringPiece` header includes
* update MAS patch
5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception
https://chromium-review.googlesource.com/c/chromium/src/+/5710330
* chore: bump chromium in DEPS to 128.0.6603.0
* chore: update patches
* 5713258: Reland "Preparation for decoupling creation/initialization of context"
https://chromium-review.googlesource.com/c/chromium/src/+/5713258
When destroying a context, it must already be shutdown, and this change enforces it with a new CHECK.
We were overriding `BrowserContextKeyedServiceFactory::BrowserContextShutdown` with an empty implementation, which differed from the default implementation that notifies the `KeyedServiceFactory` that the context has shutdown. Since we were missing this notification, the CHECK would later trip when the service was being destoryed because it was not registered as shutdown when it was shutdown.
* chore: bump chromium in DEPS to 128.0.6605.2
* chore: update patches
* refactor: linux open/save dialog patch
Our existing implementation was relying on an opaque `void* params` parameter that was passed through `ui::SelectFileDialog`.
Recently, that parameter has been getting removed:
- 5691321: ui: remove params variants of SelectFile listener functions | https://chromium-review.googlesource.com/c/chromium/src/+/5691321
- 5709097: ui: remove SelectFileDialog impl params | https://chromium-review.googlesource.com/c/chromium/src/+/5709097
- https://issues.chromium.org/issues/340178601 "reconsider SelectFileDialog"
This restructures the patch to work with mostly the same mechanics, but directly on the `ui::SelectFileDialog` object. This nets us some wins in terms of a smaller patch.
* 5713262: DevTools UI binding AIDA client event returns response
https://chromium-review.googlesource.com/c/chromium/src/+/5713262
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6606.0
* chore: update patches
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6607.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5722937
* fix: pwd error in electron-test, nan-test
fix: unshallow depot_tools before 3-way apply
* chore: e patches all
* fixup! fix: pwd error in electron-test, nan-test
* chore: bump chromium in DEPS to 128.0.6609.0
* chore: bump chromium in DEPS to 128.0.6611.0
* chore: update patches
* chore: update libcxx filenames
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
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: Alice Zhao <alice@makenotion.com>
2024-07-23 15:59:44 +00:00
|
|
|
const extensions::ProcessMap& process_map,
|
|
|
|
const GURL& upstream_url) {
|
2019-07-24 23:01:08 +00:00
|
|
|
bool allowed = false;
|
2020-01-15 00:20:30 +00:00
|
|
|
if (::electron::AllowCrossRendererResourceLoad(
|
2020-12-22 22:14:44 +00:00
|
|
|
request, destination, page_transition, child_id, is_incognito,
|
chore: bump chromium to 128.0.6611.0 (main) (#42779)
* chore: bump chromium in DEPS to 128.0.6577.0
* chore: bump chromium in DEPS to 128.0.6579.0
* 5675706: Reland "Reland "Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al""""
https://chromium-review.googlesource.com/c/chromium/src/+/5675706
* 5668597: [PDF Ink Signatures] Prompt download menu on save when there are edits
https://chromium-review.googlesource.com/c/chromium/src/+/5668597
* 5677014: Reland "Pull data_sharing_sdk from CIPD"
https://chromium-review.googlesource.com/c/chromium/src/+/5677014
* chore: fixup patch indices
* chore: bump chromium in DEPS to 128.0.6581.0
* chore: bump chromium in DEPS to 128.0.6583.0
* update patches
* 5455480: [Extensions] Allow service worker requests to continue without a cert
https://chromium-review.googlesource.com/c/chromium/src/+/5455480
* try to get some debugging output from script/push-patch.js
* chore: bump chromium in DEPS to 128.0.6585.0
* chore: bump chromium in DEPS to 128.0.6587.0
* update patches
* chore: bump chromium in DEPS to 128.0.6589.0
* more patch work
* maybe over here?
* chore: update patches
* 5673207: [HTTPS Upgrades] Disable in captive portal login webview
https://chromium-review.googlesource.com/c/chromium/src/+/5673207
* 5636785: Extensions: WAR: manifest.json's use_dynamic_url requires a dynamic url
https://chromium-review.googlesource.com/c/chromium/src/+/5636785
* chore: bump chromium in DEPS to 128.0.6591.0
* 5665458: Trigger WN2 page when feature is enabled
https://chromium-review.googlesource.com/c/chromium/src/+/5665458
* update patches
* chore: bump chromium in DEPS to 128.0.6593.0
* chore: bump chromium in DEPS to 128.0.6595.0
* chore: bump chromium in DEPS to 128.0.6597.0
* (patch update) 5694586: [compile hints] Remove the usage of v8::Isolate::SetJavaScriptCompileHintsMagicEnabledCallback API
https://chromium-review.googlesource.com/c/chromium/src/+/5694586
* update patches
* 5691287: Reland "Change blink::WebKeyboardEvent to use std::array in is members"
https://chromium-review.googlesource.com/c/chromium/src/+/5691287
The code changed here is modeled after code in `content/renderer/pepper/event_conversion.cc` that was also modified in this CL, so I took the same approach.
* 5529018: Cleanup EnableWebHidOnExtensionServiceWorker flag
https://chromium-review.googlesource.com/c/chromium/src/+/5529018
* 5526324: [Code Health] Add deprecation comment for base::SupportsWeakPtr.
https://chromium-review.googlesource.com/c/chromium/src/+/5526324
Note that this CL actually does make `SupportsWeakPtr` strictly restricted to existing implementations, no new ones. We could add a patch to add ourselves to this list, but it looks like we'll have to refactor this anyways in the near future. Since the refactor seems straightforward, let's try that first.
* chore: bump chromium in DEPS to 128.0.6598.0
* chore: update patches
* 5704737: Rename ExclusiveAccessContext::GetActiveWebContents to avoid conflict
https://chromium-review.googlesource.com/c/chromium/src/+/5704737
* chore: bump chromium in DEPS to 128.0.6601.0
* chore: update patches
* Add `base::StringPiece` header includes
Chromium is working on replacing `base::StringPiece` with `std::string_view`. (See the Chromium Bug below.) They're currently running mass codemods (across many multiple changes) to replace uses of `StringPiece` with `string_view`, including removing the header include for `StringPiece` in those files. This cascades down to our files that were implicitly depending on those includes through some other include.
They're on track to eventually deprecate and remove `StringPiece` so our code should be converted, but that can be done as an upgrade follow-up task. For now, adding the header back to files that need it should suffice for minimal upgrade changes.
Chromium Bug: https://issues.chromium.org/issues/40506050
* 5702737: GlobalRequestID: Avoid unwanted inlining and narrowing int conversions
https://chromium-review.googlesource.com/c/chromium/src/+/5702737
contender for smallest commit 2024
* 5706534: Rename GlobalFeatures to GlobalDesktopFeatures.
https://chromium-review.googlesource.com/c/chromium/src/+/5706534
* 5691321: ui: remove params variants of SelectFile listener functions
https://chromium-review.googlesource.com/c/chromium/src/+/5691321
* 5714949: [Extensions] Display re-enable dialog for MV2 disabled stage
https://chromium-review.googlesource.com/c/chromium/src/+/5714949
* chore: update libc++ filenames
* patch: disable scope reuse & associated dchecks in v8 (hopefully temp, upgrade follow-up)
* fixup! Add `base::StringPiece` header includes
* update MAS patch
5710330: Add crash keys to debug NativeWidgetMacNSWindowBorderlessFrame exception
https://chromium-review.googlesource.com/c/chromium/src/+/5710330
* chore: bump chromium in DEPS to 128.0.6603.0
* chore: update patches
* 5713258: Reland "Preparation for decoupling creation/initialization of context"
https://chromium-review.googlesource.com/c/chromium/src/+/5713258
When destroying a context, it must already be shutdown, and this change enforces it with a new CHECK.
We were overriding `BrowserContextKeyedServiceFactory::BrowserContextShutdown` with an empty implementation, which differed from the default implementation that notifies the `KeyedServiceFactory` that the context has shutdown. Since we were missing this notification, the CHECK would later trip when the service was being destoryed because it was not registered as shutdown when it was shutdown.
* chore: bump chromium in DEPS to 128.0.6605.2
* chore: update patches
* refactor: linux open/save dialog patch
Our existing implementation was relying on an opaque `void* params` parameter that was passed through `ui::SelectFileDialog`.
Recently, that parameter has been getting removed:
- 5691321: ui: remove params variants of SelectFile listener functions | https://chromium-review.googlesource.com/c/chromium/src/+/5691321
- 5709097: ui: remove SelectFileDialog impl params | https://chromium-review.googlesource.com/c/chromium/src/+/5709097
- https://issues.chromium.org/issues/340178601 "reconsider SelectFileDialog"
This restructures the patch to work with mostly the same mechanics, but directly on the `ui::SelectFileDialog` object. This nets us some wins in terms of a smaller patch.
* 5713262: DevTools UI binding AIDA client event returns response
https://chromium-review.googlesource.com/c/chromium/src/+/5713262
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6606.0
* chore: update patches
* fixup! refactor: linux open/save dialog patch
* chore: bump chromium in DEPS to 128.0.6607.0
* chore: update printing.patch
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5722937
* fix: pwd error in electron-test, nan-test
fix: unshallow depot_tools before 3-way apply
* chore: e patches all
* fixup! fix: pwd error in electron-test, nan-test
* chore: bump chromium in DEPS to 128.0.6609.0
* chore: bump chromium in DEPS to 128.0.6611.0
* chore: update patches
* chore: update libcxx filenames
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
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: Alice Zhao <alice@makenotion.com>
2024-07-23 15:59:44 +00:00
|
|
|
extension, extensions, process_map, upstream_url, &allowed)) {
|
2019-07-24 23:01:08 +00:00
|
|
|
return allowed;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Couldn't determine if resource is allowed. Block the load.
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
PrefService* ElectronExtensionsBrowserClient::GetPrefServiceForContext(
|
2019-07-24 23:01:08 +00:00
|
|
|
BrowserContext* context) {
|
|
|
|
return static_cast<ElectronBrowserContext*>(context)->prefs();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::GetEarlyExtensionPrefsObservers(
|
2019-07-24 23:01:08 +00:00
|
|
|
content::BrowserContext* context,
|
|
|
|
std::vector<extensions::EarlyExtensionPrefsObserver*>* observers) const {}
|
|
|
|
|
|
|
|
extensions::ProcessManagerDelegate*
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::GetProcessManagerDelegate() const {
|
2020-01-13 22:55:58 +00:00
|
|
|
return process_manager_delegate_.get();
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2024-01-25 17:46:30 +00:00
|
|
|
mojo::PendingRemote<network::mojom::URLLoaderFactory>
|
|
|
|
ElectronExtensionsBrowserClient::GetControlledFrameEmbedderURLLoader(
|
2024-06-07 21:18:35 +00:00
|
|
|
const url::Origin& app_origin,
|
2024-01-25 17:46:30 +00:00
|
|
|
int frame_tree_node_id,
|
|
|
|
content::BrowserContext* browser_context) {
|
|
|
|
return mojo::PendingRemote<network::mojom::URLLoaderFactory>();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
std::unique_ptr<extensions::ExtensionHostDelegate>
|
|
|
|
ElectronExtensionsBrowserClient::
|
2019-07-24 23:01:08 +00:00
|
|
|
CreateExtensionHostDelegate() { // TODO(samuelmaddock):
|
2021-06-08 02:00:05 +00:00
|
|
|
return std::make_unique<extensions::ElectronExtensionHostDelegate>();
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::DidVersionUpdate(
|
|
|
|
BrowserContext* context) {
|
2019-07-24 23:01:08 +00:00
|
|
|
// TODO(jamescook): We might want to tell extensions when app_shell updates.
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::PermitExternalProtocolHandler() {}
|
2019-07-24 23:01:08 +00:00
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsInDemoMode() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsScreensaverInDemoMode(
|
2019-07-24 23:01:08 +00:00
|
|
|
const std::string& app_id) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsRunningInForcedAppMode() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsAppModeForcedForApp(
|
2019-07-24 23:01:08 +00:00
|
|
|
const extensions::ExtensionId& extension_id) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsLoggedInAsPublicAccount() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
extensions::ExtensionSystemProvider*
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::GetExtensionSystemFactory() {
|
|
|
|
return extensions::ElectronExtensionSystemFactory::GetInstance();
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
std::unique_ptr<extensions::RuntimeAPIDelegate>
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::CreateRuntimeAPIDelegate(
|
2019-07-24 23:01:08 +00:00
|
|
|
content::BrowserContext* context) const {
|
2020-02-03 22:01:10 +00:00
|
|
|
return std::make_unique<extensions::ElectronRuntimeAPIDelegate>(context);
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const extensions::ComponentExtensionResourceManager*
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::GetComponentExtensionResourceManager() {
|
2020-02-13 00:39:12 +00:00
|
|
|
return resource_manager_.get();
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::BroadcastEventToRenderers(
|
2019-07-24 23:01:08 +00:00
|
|
|
extensions::events::HistogramValue histogram_value,
|
|
|
|
const std::string& event_name,
|
2022-06-01 06:12:47 +00:00
|
|
|
base::Value::List args,
|
2019-11-04 23:59:31 +00:00
|
|
|
bool dispatch_to_off_the_record_profiles) {
|
2019-07-24 23:01:08 +00:00
|
|
|
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
|
2022-05-17 16:48:40 +00:00
|
|
|
content::GetUIThreadTaskRunner({})->PostTask(
|
|
|
|
FROM_HERE,
|
2020-02-03 22:01:10 +00:00
|
|
|
base::BindOnce(
|
|
|
|
&ElectronExtensionsBrowserClient::BroadcastEventToRenderers,
|
|
|
|
base::Unretained(this), histogram_value, event_name,
|
|
|
|
std::move(args), dispatch_to_off_the_record_profiles));
|
2019-07-24 23:01:08 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2022-07-13 21:26:16 +00:00
|
|
|
for (auto const& [key, browser_context] :
|
|
|
|
ElectronBrowserContext::browser_context_map()) {
|
|
|
|
if (browser_context) {
|
|
|
|
extensions::EventRouter::Get(browser_context.get())
|
2024-07-08 15:04:35 +00:00
|
|
|
->BroadcastEvent(std::make_unique<extensions::Event>(
|
|
|
|
histogram_value, event_name, args.Clone()));
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
extensions::ExtensionCache*
|
|
|
|
ElectronExtensionsBrowserClient::GetExtensionCache() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return extension_cache_.get();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsBackgroundUpdateAllowed() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsMinBrowserVersionSupported(
|
2019-07-24 23:01:08 +00:00
|
|
|
const std::string& min_version) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::SetAPIClientForTest(
|
2019-07-24 23:01:08 +00:00
|
|
|
extensions::ExtensionsAPIClient* api_client) {
|
|
|
|
api_client_.reset(api_client);
|
|
|
|
}
|
|
|
|
|
|
|
|
extensions::ExtensionWebContentsObserver*
|
2020-02-03 22:01:10 +00:00
|
|
|
ElectronExtensionsBrowserClient::GetExtensionWebContentsObserver(
|
2019-07-24 23:01:08 +00:00
|
|
|
content::WebContents* web_contents) {
|
2020-02-03 22:01:10 +00:00
|
|
|
return extensions::ElectronExtensionWebContentsObserver::FromWebContents(
|
2019-07-24 23:01:08 +00:00
|
|
|
web_contents);
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
extensions::KioskDelegate* ElectronExtensionsBrowserClient::GetKioskDelegate() {
|
2020-04-24 01:55:17 +00:00
|
|
|
if (!kiosk_delegate_)
|
2021-06-08 02:00:05 +00:00
|
|
|
kiosk_delegate_ = std::make_unique<ElectronKioskDelegate>();
|
2020-04-24 01:55:17 +00:00
|
|
|
return kiosk_delegate_.get();
|
2019-07-24 23:01:08 +00:00
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
bool ElectronExtensionsBrowserClient::IsLockScreenContext(
|
2019-07-24 23:01:08 +00:00
|
|
|
content::BrowserContext* context) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
std::string ElectronExtensionsBrowserClient::GetApplicationLocale() {
|
2019-07-24 23:01:08 +00:00
|
|
|
return ElectronBrowserClient::Get()->GetApplicationLocale();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
std::string ElectronExtensionsBrowserClient::GetUserAgent() const {
|
2019-07-24 23:01:08 +00:00
|
|
|
return ElectronBrowserClient::Get()->GetUserAgent();
|
|
|
|
}
|
|
|
|
|
2020-02-03 22:01:10 +00:00
|
|
|
void ElectronExtensionsBrowserClient::RegisterBrowserInterfaceBindersForFrame(
|
2020-05-26 20:06:26 +00:00
|
|
|
mojo::BinderMapWithContext<content::RenderFrameHost*>* map,
|
2019-12-11 00:22:35 +00:00
|
|
|
content::RenderFrameHost* render_frame_host,
|
2020-03-11 11:15:07 +00:00
|
|
|
const extensions::Extension* extension) const {
|
|
|
|
PopulateExtensionFrameBinders(map, render_frame_host, extension);
|
|
|
|
}
|
2019-12-11 00:22:35 +00:00
|
|
|
|
2019-07-24 23:01:08 +00:00
|
|
|
} // namespace electron
|