chore: bump chromium to 103.0.5046.0 (main) (#33906)
* chore: bump chromium in DEPS to 103.0.5020.0 * chore: bump chromium in DEPS to 103.0.5022.0 * chore: bump chromium in DEPS to 103.0.5024.0 * chore: update patches * 3587410: [Printing] Remove JobEventDetails Ref:3587410
* chore: bump chromium in DEPS to 103.0.5026.0 * chore: update patches * 3577218: WebUI: Delete webui_resources.grd and related GN targets. Ref:3577218
* chore: bump chromium in DEPS to 103.0.5028.0 * chore: update patches * 3579297: Convert UpdatePrintSettings() to use non-deprecated base::Value APIs. Ref:3579297
* 3560622: serial: Add SerialPort.forget() method Ref:3560622
* 3581708: Restore original display when moving from tab-fullscreen to browser-fullscreen. Ref:3581708
* chore: fix authorization flags lint error * 3583363: Remove net wrappers around base/strings/escape.h Ref:3583363
* fixup! 3560622: serial: Add SerialPort.forget() method Ref:3560622
* 3587589: Reland "Propagate the MIME type from DownloadTargetDeterminer to DownloadItem" Ref:3587589
* 3584006: Remove IsRenderViewLive from content public Ref:3584006
* 3596174: [api] Remove APIs for resurrecting finalizers Ref:3596174
* 3368244: Hook SnapshotForContentAnalysis renderer API to scan system prints Ref:3368244
* chore: bump chromium in DEPS to 103.0.5030.0 * chore: update patches * chore: bump chromium in DEPS to 103.0.5032.0 * chore: bump chromium in DEPS to 103.0.5034.0 * chore: bump chromium in DEPS to 103.0.5036.0 * chore: update patches * 3586363: Introduce PrintRenderFrame.PrintWithParams() for batch printing to PDF Ref:3586363
* 3593199: Remove content::PermissionType references and replace them with blink::PermissionType Ref:3593199
* 3368244: Hook SnapshotForContentAnalysis renderer API to scan system prints Ref:3368244
* chore: lint * chore: bump chromium in DEPS to 103.0.5038.0 * chore: update patches * fixup! 3560622: serial: Add SerialPort.forget() method * 3606495: mac screen capture: add metric Ref:3606495
* chore: bump chromium in DEPS to 103.0.5040.0 * chore: update patches * 3590840: Add IPs to DnsOverHttpsServerConfig3590840
* stub functions for ElectronSerialDelegate and SerialChooserController to fix link * 3566412: [base] Remove base/android dependency on post_task.h and officially remove post_task.h! Ref:3566412
* 3347944: [content] No longer hand-off whole MainFunctionParams to BrowserMainParts Ref:3347944
* fixup! 3566412: [base] Remove base/android dependency on post_task.h and off… e3ea3e1 …icially remove post_task.h! * chore: update process_singleton patches for content::GetIOThreadTaskRunner({}) Ref: 2015655: [BrowserThread] Migrate co/pub/br and co/br/scheduler to the new API |2015655
* chore: migrate base::DeleteSoon to content::GetUIThreadTaskRunner({})->DeleteSoon Ref:3566412
* chore: remove duplicate functions for RevokePortPermissionWebInitiated & GetPortInfo * chore: migrate Linux/Windows methods off of post_task.h Ref:3566412
* 64908: Stop building legacy SwiftShader GL in Chromium https://swiftshader-review.googlesource.com/c/SwiftShader/+/64908 * 3573245: Added Themed versions of RoundedRectBackground and RoundedRectBorder. Ref:3573245
* chore: bump chromium in DEPS to 103.0.5042.0 * chore: update patches * 3571804: [api] Advance API deprecation for V8 version v10.23571804
* fixup! 3571804: [api] Advance API deprecation for V8 version v10.2 * build: fix run-clang-format extension matching * lint * fix windows build * how is clang-format still not working for me * chore: update patches * 3623985: Replace ad-hoc SetPublicFirstPartySets calls with method in ContentBrowserClient.3623985
* no need to implement WillProvidePublicFirstPartySets; the default is false * 3601036: [QT] Introduce ui/views/linux_ui/linux_ui_factory.*3601036
* 3583363: Remove net wrappers around base/strings/escape.h3583363
* lint * chore: bump chromium in DEPS to 103.0.5044.0 * fix conflicts * chore: update patches * upgrade nan * pin version of nan in tests * replace my hacky deprecated override fix with the fix from upstream * revert runtime dcheck in v8 * pin nan version at root too * refactor: tell gyp to use c++17 when building with our node * Revert "refactor: tell gyp to use c++17 when building with our node" This reverts commit 41a03a5799a8f40f31555d73d20ea865acfcd192. * Undo the reversion of 41a03a5799a8f40f31555d73d20ea865acfcd192. This reverts commit 54440abc598153bd7e259be4a908f0ecc0b33348. * disable sequential/test-cpu-prof-kill for now * also sequential/test-diagnostic-dir-cpu-prof Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: Jeremy Rose <japthorp@slack-corp.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Jeremy Rose <jeremya@chromium.org> Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
parent
04b33b319b
commit
61374019c0
168 changed files with 1009 additions and 873 deletions
|
@ -253,6 +253,8 @@ bool ElectronMainDelegate::BasicStartupComplete(int* exit_code) {
|
|||
|
||||
auto env = base::Environment::Create();
|
||||
|
||||
gin_helper::Locker::SetIsBrowserProcess(IsBrowserProcess(command_line));
|
||||
|
||||
// Enable convenient stack printing. This is enabled by default in
|
||||
// non-official builds.
|
||||
if (env->HasVar(kElectronEnableStackDumping))
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "crypto/crypto_buildflags.h"
|
||||
#include "media/audio/audio_manager.h"
|
||||
#include "net/dns/public/dns_over_https_config.h"
|
||||
#include "net/dns/public/dns_over_https_server_config.h"
|
||||
#include "net/dns/public/util.h"
|
||||
#include "net/ssl/client_cert_identity.h"
|
||||
#include "net/ssl/ssl_cert_request_info.h"
|
||||
|
@ -1680,17 +1681,18 @@ void ConfigureHostResolver(v8::Isolate* isolate,
|
|||
|
||||
// Validate individual server templates prior to batch-assigning to
|
||||
// doh_config.
|
||||
std::vector<net::DnsOverHttpsServerConfig> servers;
|
||||
for (const std::string& server_template : secure_dns_server_strings) {
|
||||
absl::optional<net::DnsOverHttpsConfig> server_config =
|
||||
net::DnsOverHttpsConfig::FromString(server_template);
|
||||
absl::optional<net::DnsOverHttpsServerConfig> server_config =
|
||||
net::DnsOverHttpsServerConfig::FromString(server_template);
|
||||
if (!server_config.has_value()) {
|
||||
thrower.ThrowTypeError(std::string("not a valid DoH template: ") +
|
||||
server_template);
|
||||
return;
|
||||
}
|
||||
servers.push_back(*server_config);
|
||||
}
|
||||
doh_config = *net::DnsOverHttpsConfig::FromStrings(
|
||||
std::move(secure_dns_server_strings));
|
||||
doh_config = net::DnsOverHttpsConfig(std::move(servers));
|
||||
}
|
||||
|
||||
if (opts.Has("enableAdditionalDnsQueryTypes") &&
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "gin/handle.h"
|
||||
|
@ -258,8 +257,8 @@ class BaseWindow : public gin_helper::TrackableObject<BaseWindow>,
|
|||
|
||||
template <typename... Args>
|
||||
void EmitEventSoon(base::StringPiece eventName) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(base::IgnoreResult(&BaseWindow::Emit<Args...>),
|
||||
weak_factory_.GetWeakPtr(), eventName));
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "base/mac/scoped_sending_event.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/current_thread.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "gin/handle.h"
|
||||
|
@ -39,8 +38,8 @@ void NativeTheme::OnNativeThemeUpdatedOnUI() {
|
|||
}
|
||||
|
||||
void NativeTheme::OnNativeThemeUpdated(ui::NativeTheme* theme) {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(&NativeTheme::OnNativeThemeUpdatedOnUI,
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&NativeTheme::OnNativeThemeUpdatedOnUI,
|
||||
base::Unretained(this)));
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <string>
|
||||
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
#include "content/public/browser/device_service.h"
|
||||
#include "gin/dictionary.h"
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/common/chrome_switches.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
|
@ -622,7 +621,7 @@ void Session::SetPermissionRequestHandler(v8::Local<v8::Value> val,
|
|||
permission_manager->SetPermissionRequestHandler(base::BindRepeating(
|
||||
[](ElectronPermissionManager::RequestHandler* handler,
|
||||
content::WebContents* web_contents,
|
||||
content::PermissionType permission_type,
|
||||
blink::PermissionType permission_type,
|
||||
ElectronPermissionManager::StatusCallback callback,
|
||||
const base::Value& details) {
|
||||
handler->Run(web_contents, permission_type,
|
||||
|
@ -951,8 +950,8 @@ void Session::Preconnect(const gin_helper::Dictionary& options,
|
|||
}
|
||||
|
||||
DCHECK_GT(num_sockets_to_preconnect, 0);
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&StartPreconnectOnUI, base::Unretained(browser_context_),
|
||||
url, num_sockets_to_preconnect));
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "base/no_destructor.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/current_thread.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "base/threading/scoped_blocking_call.h"
|
||||
#include "base/threading/sequenced_task_runner_handle.h"
|
||||
|
@ -995,8 +994,8 @@ void WebContents::Destroy() {
|
|||
if (Browser::Get()->is_shutting_down() || IsGuest()) {
|
||||
DeleteThisIfAlive();
|
||||
} else {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(
|
||||
[](base::WeakPtr<WebContents> contents) {
|
||||
if (contents)
|
||||
contents->DeleteThisIfAlive();
|
||||
|
@ -3450,7 +3449,7 @@ v8::Local<v8::Promise> WebContents::TakeHeapSnapshot(
|
|||
void WebContents::GrantDevicePermission(
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::PermissionType permissionType,
|
||||
blink::PermissionType permissionType,
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
granted_devices_[render_frame_host->GetFrameTreeNodeId()][permissionType]
|
||||
[origin]
|
||||
|
@ -3460,7 +3459,7 @@ void WebContents::GrantDevicePermission(
|
|||
|
||||
std::vector<base::Value> WebContents::GetGrantedDevices(
|
||||
const url::Origin& origin,
|
||||
content::PermissionType permissionType,
|
||||
blink::PermissionType permissionType,
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
const auto& devices_for_frame_host_it =
|
||||
granted_devices_.find(render_frame_host->GetFrameTreeNodeId());
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "content/common/frame.mojom.h"
|
||||
#include "content/public/browser/devtools_agent_host.h"
|
||||
#include "content/public/browser/keyboard_event_processing_result.h"
|
||||
#include "content/public/browser/permission_type.h"
|
||||
#include "content/public/browser/render_widget_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/web_contents_delegate.h"
|
||||
|
@ -43,6 +42,7 @@
|
|||
#include "shell/common/gin_helper/constructible.h"
|
||||
#include "shell/common/gin_helper/error_thrower.h"
|
||||
#include "shell/common/gin_helper/pinnable.h"
|
||||
#include "third_party/blink/public/common/permissions/permission_utils.h"
|
||||
#include "ui/base/models/image_model.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
|
||||
|
@ -61,7 +61,8 @@ class ScriptExecutor;
|
|||
|
||||
namespace blink {
|
||||
struct DeviceEmulationParams;
|
||||
}
|
||||
// enum class PermissionType;
|
||||
} // namespace blink
|
||||
|
||||
namespace gin_helper {
|
||||
class Dictionary;
|
||||
|
@ -97,7 +98,7 @@ namespace api {
|
|||
|
||||
using DevicePermissionMap = std::map<
|
||||
int,
|
||||
std::map<content::PermissionType,
|
||||
std::map<blink::PermissionType,
|
||||
std::map<url::Origin, std::vector<std::unique_ptr<base::Value>>>>>;
|
||||
|
||||
// Wrapper around the content::WebContents.
|
||||
|
@ -439,7 +440,7 @@ class WebContents : public ExclusiveAccessContext,
|
|||
// To be used in place of ObjectPermissionContextBase::GrantObjectPermission.
|
||||
void GrantDevicePermission(const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::PermissionType permissionType,
|
||||
blink::PermissionType permissionType,
|
||||
content::RenderFrameHost* render_frame_host);
|
||||
|
||||
// Returns the list of devices that |origin| has been granted permission to
|
||||
|
@ -447,7 +448,7 @@ class WebContents : public ExclusiveAccessContext,
|
|||
// ObjectPermissionContextBase::GetGrantedObjects.
|
||||
std::vector<base::Value> GetGrantedDevices(
|
||||
const url::Origin& origin,
|
||||
content::PermissionType permissionType,
|
||||
blink::PermissionType permissionType,
|
||||
content::RenderFrameHost* render_frame_host);
|
||||
|
||||
// disable copy
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "base/bind.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_context.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
@ -72,8 +71,8 @@ net::NSSCertDatabase* GetNSSCertDatabaseForResourceContext(
|
|||
void CertificateManagerModel::Create(content::BrowserContext* browser_context,
|
||||
CreationCallback callback) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
base::PostTask(FROM_HERE, {BrowserThread::IO},
|
||||
base::BindOnce(&CertificateManagerModel::GetCertDBOnIOThread,
|
||||
content::GetIOThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&CertificateManagerModel::GetCertDBOnIOThread,
|
||||
browser_context->GetResourceContext(),
|
||||
std::move(callback)));
|
||||
}
|
||||
|
@ -145,8 +144,8 @@ void CertificateManagerModel::DidGetCertDBOnIOThread(
|
|||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
|
||||
bool is_user_db_available = !!cert_db->GetPublicSlot();
|
||||
base::PostTask(
|
||||
FROM_HERE, {BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&CertificateManagerModel::DidGetCertDBOnUIThread, cert_db,
|
||||
is_user_db_available, std::move(callback)));
|
||||
}
|
||||
|
|
|
@ -21,11 +21,11 @@
|
|||
#include "base/no_destructor.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/stl_util.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/strcat.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "chrome/common/chrome_switches.h"
|
||||
|
@ -57,7 +57,6 @@
|
|||
#include "electron/shell/common/api/api.mojom.h"
|
||||
#include "extensions/browser/api/messaging/messaging_api_message_filter.h"
|
||||
#include "mojo/public/cpp/bindings/binder_map.h"
|
||||
#include "net/base/escape.h"
|
||||
#include "net/ssl/ssl_cert_request_info.h"
|
||||
#include "ppapi/buildflags/buildflags.h"
|
||||
#include "ppapi/host/ppapi_host.h"
|
||||
|
@ -395,9 +394,8 @@ ElectronBrowserClient* ElectronBrowserClient::Get() {
|
|||
// static
|
||||
void ElectronBrowserClient::SetApplicationLocale(const std::string& locale) {
|
||||
if (!BrowserThread::IsThreadInitialized(BrowserThread::IO) ||
|
||||
!base::PostTask(
|
||||
FROM_HERE, {BrowserThread::IO},
|
||||
base::BindOnce(&SetApplicationLocaleOnIOThread, locale))) {
|
||||
!content::GetIOThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&SetApplicationLocaleOnIOThread, locale))) {
|
||||
g_io_thread_application_locale.Get() = locale;
|
||||
}
|
||||
*g_application_locale = locale;
|
||||
|
@ -964,10 +962,8 @@ ElectronBrowserClient::GetSystemNetworkContext() {
|
|||
}
|
||||
|
||||
std::unique_ptr<content::BrowserMainParts>
|
||||
ElectronBrowserClient::CreateBrowserMainParts(
|
||||
content::MainFunctionParams params) {
|
||||
auto browser_main_parts =
|
||||
std::make_unique<ElectronBrowserMainParts>(std::move(params));
|
||||
ElectronBrowserClient::CreateBrowserMainParts(bool /* is_integration_test */) {
|
||||
auto browser_main_parts = std::make_unique<ElectronBrowserMainParts>();
|
||||
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
browser_main_parts_ = browser_main_parts.get();
|
||||
|
@ -1038,7 +1034,7 @@ void HandleExternalProtocolInUI(
|
|||
if (!permission_helper)
|
||||
return;
|
||||
|
||||
GURL escaped_url(net::EscapeExternalHandlerValue(url.spec()));
|
||||
GURL escaped_url(base::EscapeExternalHandlerValue(url.spec()));
|
||||
auto callback = base::BindOnce(&OnOpenExternal, escaped_url);
|
||||
permission_helper->RequestOpenExternalPermission(std::move(callback),
|
||||
has_user_gesture, url);
|
||||
|
@ -1057,8 +1053,8 @@ bool ElectronBrowserClient::HandleExternalProtocol(
|
|||
const absl::optional<url::Origin>& initiating_origin,
|
||||
content::RenderFrameHost* initiator_document,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&HandleExternalProtocolInUI, url,
|
||||
std::move(web_contents_getter), has_user_gesture));
|
||||
return true;
|
||||
|
|
|
@ -181,7 +181,7 @@ class ElectronBrowserClient : public content::ContentBrowserClient,
|
|||
std::unique_ptr<content::DevToolsManagerDelegate>
|
||||
CreateDevToolsManagerDelegate() override;
|
||||
std::unique_ptr<content::BrowserMainParts> CreateBrowserMainParts(
|
||||
content::MainFunctionParams params) override;
|
||||
bool /* is_integration_test */) override;
|
||||
base::FilePath GetDefaultDownloadDirectory() override;
|
||||
scoped_refptr<network::SharedURLLoaderFactory>
|
||||
GetSystemSharedURLLoaderFactory() override;
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
#include "base/files/file_path.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/sequenced_task_runner_handle.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
|
@ -33,7 +33,6 @@
|
|||
#include "content/public/browser/cors_origin_pattern_setter.h"
|
||||
#include "content/public/browser/shared_cors_origin_access_list.h"
|
||||
#include "content/public/browser/storage_partition.h"
|
||||
#include "net/base/escape.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
|
||||
#include "services/network/public/mojom/network_context.mojom.h"
|
||||
|
@ -88,7 +87,7 @@ namespace {
|
|||
|
||||
// Convert string to lower case and escape it.
|
||||
std::string MakePartitionName(const std::string& input) {
|
||||
return net::EscapePath(base::ToLowerASCII(input));
|
||||
return base::EscapePath(base::ToLowerASCII(input));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -74,11 +74,11 @@
|
|||
#include "ui/base/cursor/cursor_factory.h"
|
||||
#include "ui/base/ime/linux/linux_input_method_context_factory.h"
|
||||
#include "ui/gfx/color_utils.h"
|
||||
#include "ui/gtk/gtk_compat.h" // nogncheck
|
||||
#include "ui/gtk/gtk_ui_factory.h" // nogncheck
|
||||
#include "ui/gtk/gtk_util.h" // nogncheck
|
||||
#include "ui/gtk/gtk_compat.h" // nogncheck
|
||||
#include "ui/gtk/gtk_util.h" // nogncheck
|
||||
#include "ui/ozone/public/ozone_platform.h"
|
||||
#include "ui/views/linux_ui/linux_ui.h"
|
||||
#include "ui/views/linux_ui/linux_ui_factory.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
|
@ -179,8 +179,7 @@ class DarkThemeObserver : public ui::NativeThemeObserver {
|
|||
// static
|
||||
ElectronBrowserMainParts* ElectronBrowserMainParts::self_ = nullptr;
|
||||
|
||||
ElectronBrowserMainParts::ElectronBrowserMainParts(
|
||||
const content::MainFunctionParams& params)
|
||||
ElectronBrowserMainParts::ElectronBrowserMainParts()
|
||||
: fake_browser_process_(std::make_unique<BrowserProcessImpl>()),
|
||||
browser_(std::make_unique<Browser>()),
|
||||
node_bindings_(
|
||||
|
@ -347,8 +346,8 @@ int ElectronBrowserMainParts::PreCreateThreads() {
|
|||
}
|
||||
|
||||
void ElectronBrowserMainParts::PostCreateThreads() {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::IO},
|
||||
content::GetIOThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&tracing::TracingSamplerProfiler::CreateOnChildThread));
|
||||
}
|
||||
|
||||
|
@ -366,8 +365,7 @@ void ElectronBrowserMainParts::PostDestroyThreads() {
|
|||
|
||||
void ElectronBrowserMainParts::ToolkitInitialized() {
|
||||
#if BUILDFLAG(IS_LINUX)
|
||||
auto linux_ui = BuildGtkUi();
|
||||
linux_ui->Initialize();
|
||||
auto linux_ui = CreateLinuxUi();
|
||||
DCHECK(ui::LinuxInputMethodContextFactory::instance());
|
||||
|
||||
// Try loading gtk symbols used by Electron.
|
||||
|
@ -417,11 +415,6 @@ int ElectronBrowserMainParts::PreMainMessageLoopRun() {
|
|||
// url::Add*Scheme are not threadsafe, this helps prevent data races.
|
||||
url::LockSchemeRegistries();
|
||||
|
||||
// The First-Party Sets feature always expects to be initialized
|
||||
// CL: https://chromium-review.googlesource.com/c/chromium/src/+/3448551
|
||||
content::FirstPartySetsHandler::GetInstance()->SetPublicFirstPartySets(
|
||||
base::File());
|
||||
|
||||
#if BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS)
|
||||
extensions_client_ = std::make_unique<ElectronExtensionsClient>();
|
||||
extensions::ExtensionsClient::Set(extensions_client_.get());
|
||||
|
@ -446,8 +439,8 @@ int ElectronBrowserMainParts::PreMainMessageLoopRun() {
|
|||
if (command_line->HasSwitch(switches::kRemoteDebuggingPipe)) {
|
||||
// --remote-debugging-pipe
|
||||
auto on_disconnect = base::BindOnce([]() {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce([]() { Browser::Get()->Quit(); }));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce([]() { Browser::Get()->Quit(); }));
|
||||
});
|
||||
content::DevToolsAgentHost::StartRemoteDebuggingPipeHandler(
|
||||
std::move(on_disconnect));
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "base/timer/timer.h"
|
||||
#include "content/public/browser/browser_context.h"
|
||||
#include "content/public/browser/browser_main_parts.h"
|
||||
#include "content/public/common/main_function_params.h"
|
||||
#include "electron/buildflags/buildflags.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "services/device/public/mojom/geolocation_control.mojom.h"
|
||||
|
@ -67,7 +66,7 @@ class DarkThemeObserver;
|
|||
|
||||
class ElectronBrowserMainParts : public content::BrowserMainParts {
|
||||
public:
|
||||
explicit ElectronBrowserMainParts(const content::MainFunctionParams& params);
|
||||
ElectronBrowserMainParts();
|
||||
~ElectronBrowserMainParts() override;
|
||||
|
||||
// disable copy
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "base/debug/leak_annotations.h"
|
||||
#include "base/posix/eintr_wrapper.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/platform_thread.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "base/bind.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
|
@ -144,7 +143,8 @@ void ElectronDownloadManagerDelegate::OnDownloadPathGenerated(
|
|||
std::move(callback).Run(
|
||||
path, download::DownloadItem::TARGET_DISPOSITION_PROMPT,
|
||||
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
||||
item->GetMixedContentStatus(), path, base::FilePath(), absl::nullopt,
|
||||
item->GetMixedContentStatus(), path, base::FilePath(),
|
||||
std::string() /*mime_type*/, absl::nullopt /*download_schedule*/,
|
||||
download::DOWNLOAD_INTERRUPT_REASON_NONE);
|
||||
}
|
||||
}
|
||||
|
@ -184,7 +184,8 @@ void ElectronDownloadManagerDelegate::OnDownloadSaveDialogDone(
|
|||
std::move(download_callback)
|
||||
.Run(path, download::DownloadItem::TARGET_DISPOSITION_PROMPT,
|
||||
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
||||
item->GetMixedContentStatus(), path, base::FilePath(), absl::nullopt,
|
||||
item->GetMixedContentStatus(), path, base::FilePath(),
|
||||
std::string() /*mime_type*/, absl::nullopt /*download_schedule*/,
|
||||
interrupt_reason);
|
||||
}
|
||||
|
||||
|
@ -204,7 +205,8 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget(
|
|||
download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
|
||||
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
||||
download::DownloadItem::MixedContentStatus::UNKNOWN,
|
||||
download->GetForcedFilePath(), base::FilePath(), absl::nullopt,
|
||||
download->GetForcedFilePath(), base::FilePath(),
|
||||
std::string() /*mime_type*/, absl::nullopt /*download_schedule*/,
|
||||
download::DOWNLOAD_INTERRUPT_REASON_NONE);
|
||||
return true;
|
||||
}
|
||||
|
@ -217,7 +219,8 @@ bool ElectronDownloadManagerDelegate::DetermineDownloadTarget(
|
|||
save_path, download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
|
||||
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
||||
download::DownloadItem::MixedContentStatus::UNKNOWN, save_path,
|
||||
base::FilePath(), absl::nullopt,
|
||||
base::FilePath(), std::string() /*mime_type*/,
|
||||
absl::nullopt /*download_schedule*/,
|
||||
download::DOWNLOAD_INTERRUPT_REASON_NONE);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "content/public/browser/child_process_security_policy.h"
|
||||
#include "content/public/browser/global_routing_id.h"
|
||||
#include "content/public/browser/permission_controller.h"
|
||||
#include "content/public/browser/permission_type.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/render_process_host.h"
|
||||
#include "content/public/browser/render_view_host.h"
|
||||
|
@ -30,6 +29,7 @@
|
|||
#include "shell/common/gin_converters/frame_converter.h"
|
||||
#include "shell/common/gin_converters/value_converter.h"
|
||||
#include "shell/common/gin_helper/event_emitter_caller.h"
|
||||
#include "third_party/blink/public/common/permissions/permission_utils.h"
|
||||
|
||||
namespace electron {
|
||||
|
||||
|
@ -54,7 +54,7 @@ void PermissionRequestResponseCallbackWrapper(
|
|||
class ElectronPermissionManager::PendingRequest {
|
||||
public:
|
||||
PendingRequest(content::RenderFrameHost* render_frame_host,
|
||||
const std::vector<content::PermissionType>& permissions,
|
||||
const std::vector<blink::PermissionType>& permissions,
|
||||
StatusesCallback callback)
|
||||
: render_process_id_(render_frame_host->GetProcess()->GetID()),
|
||||
render_frame_id_(render_frame_host->GetGlobalId()),
|
||||
|
@ -69,10 +69,10 @@ class ElectronPermissionManager::PendingRequest {
|
|||
|
||||
if (status == blink::mojom::PermissionStatus::GRANTED) {
|
||||
const auto permission = permissions_[permission_id];
|
||||
if (permission == content::PermissionType::MIDI_SYSEX) {
|
||||
if (permission == blink::PermissionType::MIDI_SYSEX) {
|
||||
content::ChildProcessSecurityPolicy::GetInstance()
|
||||
->GrantSendMidiSysExMessage(render_process_id_);
|
||||
} else if (permission == content::PermissionType::GEOLOCATION) {
|
||||
} else if (permission == blink::PermissionType::GEOLOCATION) {
|
||||
ElectronBrowserMainParts::Get()
|
||||
->GetGeolocationControl()
|
||||
->UserDidOptIntoLocationServices();
|
||||
|
@ -99,7 +99,7 @@ class ElectronPermissionManager::PendingRequest {
|
|||
int render_process_id_;
|
||||
content::GlobalRenderFrameHostId render_frame_id_;
|
||||
StatusesCallback callback_;
|
||||
std::vector<content::PermissionType> permissions_;
|
||||
std::vector<blink::PermissionType> permissions_;
|
||||
std::vector<blink::mojom::PermissionStatus> results_;
|
||||
size_t remaining_results_;
|
||||
};
|
||||
|
@ -133,7 +133,7 @@ void ElectronPermissionManager::SetDevicePermissionHandler(
|
|||
}
|
||||
|
||||
void ElectronPermissionManager::RequestPermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
|
@ -144,21 +144,21 @@ void ElectronPermissionManager::RequestPermission(
|
|||
}
|
||||
|
||||
void ElectronPermissionManager::RequestPermissionWithDetails(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
const base::DictionaryValue* details,
|
||||
StatusCallback response_callback) {
|
||||
RequestPermissionsWithDetails(
|
||||
std::vector<content::PermissionType>(1, permission), render_frame_host,
|
||||
std::vector<blink::PermissionType>(1, permission), render_frame_host,
|
||||
requesting_origin, user_gesture, details,
|
||||
base::BindOnce(PermissionRequestResponseCallbackWrapper,
|
||||
std::move(response_callback)));
|
||||
}
|
||||
|
||||
void ElectronPermissionManager::RequestPermissions(
|
||||
const std::vector<content::PermissionType>& permissions,
|
||||
const std::vector<blink::PermissionType>& permissions,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
|
@ -169,7 +169,7 @@ void ElectronPermissionManager::RequestPermissions(
|
|||
}
|
||||
|
||||
void ElectronPermissionManager::RequestPermissionsWithDetails(
|
||||
const std::vector<content::PermissionType>& permissions,
|
||||
const std::vector<blink::PermissionType>& permissions,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
|
@ -183,11 +183,11 @@ void ElectronPermissionManager::RequestPermissionsWithDetails(
|
|||
if (request_handler_.is_null()) {
|
||||
std::vector<blink::mojom::PermissionStatus> statuses;
|
||||
for (auto permission : permissions) {
|
||||
if (permission == content::PermissionType::MIDI_SYSEX) {
|
||||
if (permission == blink::PermissionType::MIDI_SYSEX) {
|
||||
content::ChildProcessSecurityPolicy::GetInstance()
|
||||
->GrantSendMidiSysExMessage(
|
||||
render_frame_host->GetProcess()->GetID());
|
||||
} else if (permission == content::PermissionType::GEOLOCATION) {
|
||||
} else if (permission == blink::PermissionType::GEOLOCATION) {
|
||||
ElectronBrowserMainParts::Get()
|
||||
->GetGeolocationControl()
|
||||
->UserDidOptIntoLocationServices();
|
||||
|
@ -234,12 +234,12 @@ void ElectronPermissionManager::OnPermissionResponse(
|
|||
}
|
||||
|
||||
void ElectronPermissionManager::ResetPermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const GURL& requesting_origin,
|
||||
const GURL& embedding_origin) {}
|
||||
|
||||
blink::mojom::PermissionStatus ElectronPermissionManager::GetPermissionStatus(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const GURL& requesting_origin,
|
||||
const GURL& embedding_origin) {
|
||||
base::DictionaryValue details;
|
||||
|
@ -252,7 +252,7 @@ blink::mojom::PermissionStatus ElectronPermissionManager::GetPermissionStatus(
|
|||
|
||||
ElectronPermissionManager::SubscriptionId
|
||||
ElectronPermissionManager::SubscribePermissionStatusChange(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderProcessHost* render_process_host,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
|
@ -264,7 +264,7 @@ void ElectronPermissionManager::UnsubscribePermissionStatusChange(
|
|||
SubscriptionId id) {}
|
||||
|
||||
bool ElectronPermissionManager::CheckPermissionWithDetails(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
const base::DictionaryValue* details) const {
|
||||
|
@ -285,10 +285,10 @@ bool ElectronPermissionManager::CheckPermissionWithDetails(
|
|||
"isMainFrame",
|
||||
render_frame_host && render_frame_host->GetParent() == nullptr);
|
||||
switch (permission) {
|
||||
case content::PermissionType::AUDIO_CAPTURE:
|
||||
case blink::PermissionType::AUDIO_CAPTURE:
|
||||
mutable_details.SetStringKey("mediaType", "audio");
|
||||
break;
|
||||
case content::PermissionType::VIDEO_CAPTURE:
|
||||
case blink::PermissionType::VIDEO_CAPTURE:
|
||||
mutable_details.SetStringKey("mediaType", "video");
|
||||
break;
|
||||
default:
|
||||
|
@ -299,7 +299,7 @@ bool ElectronPermissionManager::CheckPermissionWithDetails(
|
|||
}
|
||||
|
||||
bool ElectronPermissionManager::CheckDevicePermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
|
@ -314,7 +314,7 @@ bool ElectronPermissionManager::CheckDevicePermission(
|
|||
|
||||
for (const auto& granted_device : granted_devices) {
|
||||
if (permission ==
|
||||
static_cast<content::PermissionType>(
|
||||
static_cast<blink::PermissionType>(
|
||||
WebContentsPermissionHelper::PermissionType::HID)) {
|
||||
if (device->FindIntKey(kHidVendorIdKey) !=
|
||||
granted_device.FindIntKey(kHidVendorIdKey) ||
|
||||
|
@ -332,7 +332,7 @@ bool ElectronPermissionManager::CheckDevicePermission(
|
|||
*device_serial_number == *serial_number)
|
||||
return true;
|
||||
} else if (permission ==
|
||||
static_cast<content::PermissionType>(
|
||||
static_cast<blink::PermissionType>(
|
||||
WebContentsPermissionHelper::PermissionType::SERIAL)) {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
if (device->FindStringKey(kDeviceInstanceIdKey) ==
|
||||
|
@ -374,7 +374,7 @@ bool ElectronPermissionManager::CheckDevicePermission(
|
|||
}
|
||||
|
||||
void ElectronPermissionManager::GrantDevicePermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
|
@ -390,7 +390,7 @@ void ElectronPermissionManager::GrantDevicePermission(
|
|||
|
||||
blink::mojom::PermissionStatus
|
||||
ElectronPermissionManager::GetPermissionStatusForFrame(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin) {
|
||||
base::DictionaryValue details;
|
||||
|
@ -402,7 +402,7 @@ ElectronPermissionManager::GetPermissionStatusForFrame(
|
|||
|
||||
blink::mojom::PermissionStatus
|
||||
ElectronPermissionManager::GetPermissionStatusForCurrentDocument(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
return GetPermissionStatus(
|
||||
permission, render_frame_host->GetLastCommittedOrigin().GetURL(),
|
||||
|
@ -411,7 +411,7 @@ ElectronPermissionManager::GetPermissionStatusForCurrentDocument(
|
|||
|
||||
blink::mojom::PermissionStatus
|
||||
ElectronPermissionManager::GetPermissionStatusForWorker(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderProcessHost* render_process_host,
|
||||
const GURL& worker_origin) {
|
||||
return GetPermissionStatus(permission, worker_origin, worker_origin);
|
||||
|
|
|
@ -39,12 +39,12 @@ class ElectronPermissionManager : public content::PermissionControllerDelegate {
|
|||
using StatusesCallback = base::OnceCallback<void(
|
||||
const std::vector<blink::mojom::PermissionStatus>&)>;
|
||||
using RequestHandler = base::RepeatingCallback<void(content::WebContents*,
|
||||
content::PermissionType,
|
||||
blink::PermissionType,
|
||||
StatusCallback,
|
||||
const base::Value&)>;
|
||||
using CheckHandler =
|
||||
base::RepeatingCallback<bool(content::WebContents*,
|
||||
content::PermissionType,
|
||||
blink::PermissionType,
|
||||
const GURL& requesting_origin,
|
||||
const base::Value&)>;
|
||||
|
||||
|
@ -57,49 +57,48 @@ class ElectronPermissionManager : public content::PermissionControllerDelegate {
|
|||
void SetDevicePermissionHandler(const DeviceCheckHandler& handler);
|
||||
|
||||
// content::PermissionControllerDelegate:
|
||||
void RequestPermission(content::PermissionType permission,
|
||||
void RequestPermission(blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
StatusCallback callback) override;
|
||||
void RequestPermissionWithDetails(content::PermissionType permission,
|
||||
void RequestPermissionWithDetails(blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
const base::DictionaryValue* details,
|
||||
StatusCallback callback);
|
||||
void RequestPermissions(
|
||||
const std::vector<content::PermissionType>& permissions,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
StatusesCallback callback) override;
|
||||
void RequestPermissions(const std::vector<blink::PermissionType>& permissions,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
StatusesCallback callback) override;
|
||||
void RequestPermissionsWithDetails(
|
||||
const std::vector<content::PermissionType>& permissions,
|
||||
const std::vector<blink::PermissionType>& permissions,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
bool user_gesture,
|
||||
const base::DictionaryValue* details,
|
||||
StatusesCallback callback);
|
||||
blink::mojom::PermissionStatus GetPermissionStatusForFrame(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin) override;
|
||||
blink::mojom::PermissionStatus GetPermissionStatusForCurrentDocument(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host) override;
|
||||
|
||||
bool CheckPermissionWithDetails(content::PermissionType permission,
|
||||
bool CheckPermissionWithDetails(blink::PermissionType permission,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
const base::DictionaryValue* details) const;
|
||||
|
||||
bool CheckDevicePermission(content::PermissionType permission,
|
||||
bool CheckDevicePermission(blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* object,
|
||||
content::RenderFrameHost* render_frame_host) const;
|
||||
|
||||
void GrantDevicePermission(content::PermissionType permission,
|
||||
void GrantDevicePermission(blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* object,
|
||||
content::RenderFrameHost* render_frame_host) const;
|
||||
|
@ -110,19 +109,19 @@ class ElectronPermissionManager : public content::PermissionControllerDelegate {
|
|||
blink::mojom::PermissionStatus status);
|
||||
|
||||
// content::PermissionControllerDelegate:
|
||||
void ResetPermission(content::PermissionType permission,
|
||||
void ResetPermission(blink::PermissionType permission,
|
||||
const GURL& requesting_origin,
|
||||
const GURL& embedding_origin) override;
|
||||
blink::mojom::PermissionStatus GetPermissionStatus(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const GURL& requesting_origin,
|
||||
const GURL& embedding_origin) override;
|
||||
blink::mojom::PermissionStatus GetPermissionStatusForWorker(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderProcessHost* render_process_host,
|
||||
const GURL& worker_origin) override;
|
||||
SubscriptionId SubscribePermissionStatusChange(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
content::RenderProcessHost* render_process_host,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "base/strings/strcat.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "chrome/common/extensions/extension_metrics.h"
|
||||
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
|
||||
#include "chrome/common/webui_url_constants.h"
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "base/memory/ptr_util.h"
|
||||
#include "base/stl_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "content/public/browser/browser_context.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
|
@ -78,7 +77,7 @@ void ElectronExtensionMessageFilter::OnDestruct() const {
|
|||
if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
|
||||
delete this;
|
||||
} else {
|
||||
base::DeleteSoon(FROM_HERE, {BrowserThread::UI}, this);
|
||||
content::GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "base/files/file_util.h"
|
||||
#include "base/json/json_string_value_serializer.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "chrome/grit/browser_resources.h"
|
||||
#include "components/value_store/value_store_factory_impl.h"
|
||||
|
@ -204,11 +203,12 @@ AppSorting* ElectronExtensionSystem::app_sorting() {
|
|||
void ElectronExtensionSystem::RegisterExtensionWithRequestContexts(
|
||||
const Extension* extension,
|
||||
base::OnceClosure callback) {
|
||||
base::PostTaskAndReply(FROM_HERE, {BrowserThread::IO},
|
||||
base::BindOnce(&InfoMap::AddExtension, info_map(),
|
||||
base::RetainedRef(extension),
|
||||
base::Time::Now(), false, false),
|
||||
std::move(callback));
|
||||
content::GetIOThreadTaskRunner({})->PostTaskAndReply(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&InfoMap::AddExtension, info_map(),
|
||||
base::RetainedRef(extension), base::Time::Now(), false,
|
||||
false),
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
void ElectronExtensionSystem::UnregisterExtensionWithRequestContexts(
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "base/bind.h"
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/extensions/chrome_url_request_util.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
|
@ -301,8 +300,8 @@ void ElectronExtensionsBrowserClient::BroadcastEventToRenderers(
|
|||
std::unique_ptr<base::ListValue> args,
|
||||
bool dispatch_to_off_the_record_profiles) {
|
||||
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
&ElectronExtensionsBrowserClient::BroadcastEventToRenderers,
|
||||
base::Unretained(this), histogram_value, event_name,
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
|
||||
#include "base/bind.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
||||
|
@ -122,8 +121,8 @@
|
|||
*/
|
||||
- (void)runCallback:(bool)isProductValid {
|
||||
if (callback_) {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(std::move(callback_), isProductValid));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(std::move(callback_), isProductValid));
|
||||
}
|
||||
// Release this delegate.
|
||||
[self release];
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
#include "base/bind.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
||||
|
@ -75,8 +74,8 @@ using InAppTransactionCallback = base::RepeatingCallback<void(
|
|||
}
|
||||
|
||||
// Send the callback to the browser thread.
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(callback_, converted));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(callback_, converted));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "base/bind.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
||||
|
@ -83,8 +82,8 @@
|
|||
}
|
||||
|
||||
// Send the callback to the browser thread.
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(std::move(callback_), converted));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(std::move(callback_), converted));
|
||||
|
||||
[self release];
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "base/mac/mac_util.h"
|
||||
#include "base/mac/scoped_cftyperef.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h"
|
||||
#include "components/remote_cocoa/browser/scoped_cg_window_id.h"
|
||||
#include "content/public/browser/browser_accessibility_state.h"
|
||||
|
@ -1000,8 +999,8 @@ void NativeWindowMac::OnDisplayMetricsChanged(const display::Display& display,
|
|||
if (!is_simple_fullscreen_)
|
||||
return;
|
||||
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(&NativeWindow::UpdateFrame, GetWeakPtr()));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&NativeWindow::UpdateFrame, GetWeakPtr()));
|
||||
}
|
||||
|
||||
void NativeWindowMac::SetSimpleFullScreen(bool simple_fullscreen) {
|
||||
|
@ -1779,8 +1778,8 @@ bool NativeWindowMac::CanMaximize() const {
|
|||
}
|
||||
|
||||
void NativeWindowMac::OnNativeThemeUpdated(ui::NativeTheme* observed_theme) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&NativeWindow::RedrawTrafficLights, GetWeakPtr()));
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include <vector>
|
||||
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "content/public/browser/file_url_loader.h"
|
||||
#include "electron/fuses.h"
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include "base/logging.h"
|
||||
#include "base/strings/string_util_win.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/browser/notifications/notification_delegate.h"
|
||||
|
@ -600,8 +599,8 @@ ToastEventHandler::~ToastEventHandler() = default;
|
|||
IFACEMETHODIMP ToastEventHandler::Invoke(
|
||||
ABI::Windows::UI::Notifications::IToastNotification* sender,
|
||||
IInspectable* args) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&Notification::NotificationClicked, notification_));
|
||||
if (IsDebuggingNotifications())
|
||||
LOG(INFO) << "Notification clicked";
|
||||
|
@ -612,8 +611,8 @@ IFACEMETHODIMP ToastEventHandler::Invoke(
|
|||
IFACEMETHODIMP ToastEventHandler::Invoke(
|
||||
ABI::Windows::UI::Notifications::IToastNotification* sender,
|
||||
ABI::Windows::UI::Notifications::IToastDismissedEventArgs* e) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&Notification::NotificationDismissed, notification_));
|
||||
if (IsDebuggingNotifications())
|
||||
LOG(INFO) << "Notification dismissed";
|
||||
|
@ -628,8 +627,8 @@ IFACEMETHODIMP ToastEventHandler::Invoke(
|
|||
e->get_ErrorCode(&error);
|
||||
std::string errorMessage =
|
||||
"Notification failed. HRESULT:" + std::to_string(error);
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(&Notification::NotificationFailed,
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&Notification::NotificationFailed,
|
||||
notification_, errorMessage));
|
||||
if (IsDebuggingNotifications())
|
||||
LOG(INFO) << errorMessage;
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "base/callback_helpers.h"
|
||||
#include "base/location.h"
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/single_thread_task_runner.h"
|
||||
#include "base/time/time.h"
|
||||
#include "components/viz/common/features.h"
|
||||
|
@ -757,8 +756,8 @@ void OffScreenRenderWidgetHostView::ReleaseResize() {
|
|||
hold_resize_ = false;
|
||||
if (pending_resize_) {
|
||||
pending_resize_ = false;
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
&OffScreenRenderWidgetHostView::SynchronizeVisualProperties,
|
||||
weak_ptr_factory_.GetWeakPtr()));
|
||||
|
@ -862,8 +861,8 @@ void OffScreenRenderWidgetHostView::SendMouseWheelEvent(
|
|||
// Scrolling outside of the popup widget so destroy it.
|
||||
// Execute asynchronously to avoid deleting the widget from inside some
|
||||
// other callback.
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&OffScreenRenderWidgetHostView::CancelWidget,
|
||||
popup_host_view_->weak_ptr_factory_.GetWeakPtr()));
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "base/memory/read_only_shared_memory_region.h"
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "base/memory/ref_counted_memory.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/printing/print_job_manager.h"
|
||||
#include "chrome/browser/printing/printer_query.h"
|
||||
|
@ -42,8 +41,8 @@ void StopWorker(int document_cookie) {
|
|||
std::unique_ptr<printing::PrinterQuery> printer_query =
|
||||
queue->PopPrinterQuery(document_cookie);
|
||||
if (printer_query.get()) {
|
||||
base::PostTask(FROM_HERE, {BrowserThread::IO},
|
||||
base::BindOnce(&printing::PrinterQuery::StopWorker,
|
||||
content::GetIOThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&printing::PrinterQuery::StopWorker,
|
||||
std::move(printer_query)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,6 +81,19 @@ void ElectronSerialDelegate::RemoveObserver(content::RenderFrameHost* frame,
|
|||
}
|
||||
}
|
||||
|
||||
void ElectronSerialDelegate::RevokePortPermissionWebInitiated(
|
||||
content::RenderFrameHost* frame,
|
||||
const base::UnguessableToken& token) {
|
||||
// TODO(nornagon/jkleinsc): pass this on to the chooser context
|
||||
}
|
||||
|
||||
const device::mojom::SerialPortInfo* ElectronSerialDelegate::GetPortInfo(
|
||||
content::RenderFrameHost* frame,
|
||||
const base::UnguessableToken& token) {
|
||||
// TODO(nornagon/jkleinsc): pass this on to the chooser context
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
SerialChooserController* ElectronSerialDelegate::ControllerForFrame(
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
auto mapping = controller_map_.find(render_frame_host);
|
||||
|
|
|
@ -39,6 +39,12 @@ class ElectronSerialDelegate : public content::SerialDelegate {
|
|||
Observer* observer) override;
|
||||
void RemoveObserver(content::RenderFrameHost* frame,
|
||||
Observer* observer) override;
|
||||
void RevokePortPermissionWebInitiated(
|
||||
content::RenderFrameHost* frame,
|
||||
const base::UnguessableToken& token) override;
|
||||
const device::mojom::SerialPortInfo* GetPortInfo(
|
||||
content::RenderFrameHost* frame,
|
||||
const base::UnguessableToken& token) override;
|
||||
|
||||
void DeleteControllerForFrame(content::RenderFrameHost* render_frame_host);
|
||||
|
||||
|
|
|
@ -90,6 +90,11 @@ SerialChooserContext::SerialChooserContext() = default;
|
|||
|
||||
SerialChooserContext::~SerialChooserContext() = default;
|
||||
|
||||
void SerialChooserContext::OnPermissionRevoked(const url::Origin& origin) {
|
||||
for (auto& observer : port_observer_list_)
|
||||
observer.OnPermissionRevoked(origin);
|
||||
}
|
||||
|
||||
void SerialChooserContext::GrantPortPermission(
|
||||
const url::Origin& origin,
|
||||
const device::mojom::SerialPortInfo& port,
|
||||
|
@ -116,6 +121,16 @@ bool SerialChooserContext::HasPortPermission(
|
|||
render_frame_host);
|
||||
}
|
||||
|
||||
void SerialChooserContext::RevokePortPermissionWebInitiated(
|
||||
const url::Origin& origin,
|
||||
const base::UnguessableToken& token) {
|
||||
auto it = port_info_.find(token);
|
||||
if (it == port_info_.end())
|
||||
return;
|
||||
|
||||
return OnPermissionRevoked(origin);
|
||||
}
|
||||
|
||||
// static
|
||||
bool SerialChooserContext::CanStorePersistentEntry(
|
||||
const device::mojom::SerialPortInfo& port) {
|
||||
|
@ -150,6 +165,13 @@ bool SerialChooserContext::CanStorePersistentEntry(
|
|||
#endif // BUILDFLAG(IS_WIN)
|
||||
}
|
||||
|
||||
const device::mojom::SerialPortInfo* SerialChooserContext::GetPortInfo(
|
||||
const base::UnguessableToken& token) {
|
||||
DCHECK(is_initialized_);
|
||||
auto it = port_info_.find(token);
|
||||
return it == port_info_.end() ? nullptr : it->second.get();
|
||||
}
|
||||
|
||||
device::mojom::SerialPortManager* SerialChooserContext::GetPortManager() {
|
||||
EnsurePortManagerConnection();
|
||||
return port_manager_.get();
|
||||
|
|
|
@ -55,6 +55,9 @@ class SerialChooserContext : public KeyedService,
|
|||
SerialChooserContext(const SerialChooserContext&) = delete;
|
||||
SerialChooserContext& operator=(const SerialChooserContext&) = delete;
|
||||
|
||||
// ObjectPermissionContextBase::PermissionObserver:
|
||||
void OnPermissionRevoked(const url::Origin& origin);
|
||||
|
||||
// Serial-specific interface for granting and checking permissions.
|
||||
void GrantPortPermission(const url::Origin& origin,
|
||||
const device::mojom::SerialPortInfo& port,
|
||||
|
@ -72,15 +75,30 @@ class SerialChooserContext : public KeyedService,
|
|||
|
||||
base::WeakPtr<SerialChooserContext> AsWeakPtr();
|
||||
|
||||
bool is_initialized_ = false;
|
||||
|
||||
// Map from port token to port info.
|
||||
std::map<base::UnguessableToken, device::mojom::SerialPortInfoPtr> port_info_;
|
||||
|
||||
// SerialPortManagerClient implementation.
|
||||
void OnPortAdded(device::mojom::SerialPortInfoPtr port) override;
|
||||
void OnPortRemoved(device::mojom::SerialPortInfoPtr port) override;
|
||||
void RevokePortPermissionWebInitiated(const url::Origin& origin,
|
||||
const base::UnguessableToken& token);
|
||||
// Only call this if you're sure |port_info_| has been initialized
|
||||
// before-hand. The returned raw pointer is owned by |port_info_| and will be
|
||||
// destroyed when the port is removed.
|
||||
const device::mojom::SerialPortInfo* GetPortInfo(
|
||||
const base::UnguessableToken& token);
|
||||
|
||||
private:
|
||||
void EnsurePortManagerConnection();
|
||||
void SetUpPortManagerConnection(
|
||||
mojo::PendingRemote<device::mojom::SerialPortManager> manager);
|
||||
void OnPortManagerConnectionError();
|
||||
void RevokeObjectPermissionInternal(const url::Origin& origin,
|
||||
const base::Value& object,
|
||||
bool revoked_by_website);
|
||||
|
||||
mojo::Remote<device::mojom::SerialPortManager> port_manager_;
|
||||
mojo::Receiver<device::mojom::SerialPortManagerClient> client_receiver_{this};
|
||||
|
|
|
@ -116,6 +116,10 @@ void SerialChooserController::OnPortRemoved(
|
|||
}
|
||||
}
|
||||
|
||||
void SerialChooserController::OnPortManagerConnectionError() {
|
||||
// TODO(nornagon/jkleinsc): report event
|
||||
}
|
||||
|
||||
void SerialChooserController::OnDeviceChosen(const std::string& port_id) {
|
||||
if (port_id.empty()) {
|
||||
RunCallback(/*port=*/nullptr);
|
||||
|
|
|
@ -46,7 +46,8 @@ class SerialChooserController final : public SerialChooserContext::PortObserver,
|
|||
// SerialChooserContext::PortObserver:
|
||||
void OnPortAdded(const device::mojom::SerialPortInfo& port) override;
|
||||
void OnPortRemoved(const device::mojom::SerialPortInfo& port) override;
|
||||
void OnPortManagerConnectionError() override {}
|
||||
void OnPortManagerConnectionError() override;
|
||||
void OnPermissionRevoked(const url::Origin& origin) override {}
|
||||
|
||||
private:
|
||||
api::Session* GetSession();
|
||||
|
|
|
@ -291,9 +291,10 @@ bool ElectronBundleMover::AuthorizedInstall(NSString* srcPath,
|
|||
|
||||
AuthorizationItem myItems = {kAuthorizationRightExecute, 0, NULL, 0};
|
||||
AuthorizationRights myRights = {1, &myItems};
|
||||
AuthorizationFlags myFlags = (AuthorizationFlags)(
|
||||
kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights |
|
||||
kAuthorizationFlagPreAuthorize);
|
||||
AuthorizationFlags myFlags =
|
||||
(AuthorizationFlags)(kAuthorizationFlagInteractionAllowed |
|
||||
kAuthorizationFlagExtendRights |
|
||||
kAuthorizationFlagPreAuthorize);
|
||||
|
||||
err = AuthorizationCopyRights(myAuthorizationRef, &myRights, NULL, myFlags,
|
||||
NULL);
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "base/mac/foundation_util.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "net/base/mac/url_conversions.h"
|
||||
|
@ -227,7 +226,8 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
if (model_)
|
||||
model_->MenuWillClose();
|
||||
if (!closeCallback.is_null()) {
|
||||
base::PostTask(FROM_HERE, {BrowserThread::UI}, std::move(closeCallback));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
|
||||
std::move(closeCallback));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -536,7 +536,8 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
// Post async task so that itemSelected runs before the close callback
|
||||
// deletes the controller from the map which deallocates it
|
||||
if (!closeCallback.is_null()) {
|
||||
base::PostTask(FROM_HERE, {BrowserThread::UI}, std::move(closeCallback));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
|
||||
std::move(closeCallback));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,8 +117,8 @@ void DevToolsManagerDelegate::HandleCommand(
|
|||
// Since we only have one method and it is supposed to close Electron,
|
||||
// we don't need to add this complexity. Should we decide to support
|
||||
// methods like Browser.setWindowBounds, we'll need to do it though.
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce([]() { Browser::Get()->Quit(); }));
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce([]() { Browser::Get()->Quit(); }));
|
||||
return;
|
||||
}
|
||||
std::move(callback).Run(message);
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "base/mac/mac_util.h"
|
||||
#include "base/mac/scoped_cftyperef.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
@ -301,8 +300,8 @@ void ResolvePromiseInNextTick(gin_helper::Promise<v8::Local<v8::Value>> promise,
|
|||
// users will run in the microtask, we have to delay the resolution until
|
||||
// next tick, otherwise crash like this may happen:
|
||||
// https://github.com/electron/electron/issues/26884
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
[](gin_helper::Promise<v8::Local<v8::Value>> promise,
|
||||
v8::Global<v8::Value> global) {
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/browser/ui/gtk/app_indicator_icon_menu.h"
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/values.h"
|
||||
#include "components/prefs/pref_registry_simple.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "base/mac/scoped_nsobject.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/browser/native_window.h"
|
||||
|
@ -178,8 +177,8 @@ void ShowMessageBox(const MessageBoxSettings& settings,
|
|||
// users will run in the callback, we have to delay running the callback
|
||||
// until next tick, otherwise crash like this may happen:
|
||||
// https://github.com/electron/electron/issues/26884
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(std::move(callback_), response, suppressed));
|
||||
};
|
||||
[alert beginSheetModalForWindow:window completionHandler:handler];
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/synchronization/lock.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/win/scoped_gdi_object.h"
|
||||
#include "shell/browser/browser.h"
|
||||
#include "shell/browser/native_window_views.h"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "base/message_loop/message_pump_mac.h"
|
||||
#include "base/strings/sys_string_conversions.h"
|
||||
#include "base/task/current_thread.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/browser/ui/cocoa/NSString+ANSI.h"
|
||||
|
@ -365,8 +364,8 @@ void TrayIconCocoa::PopUpOnUI(ElectronMenuModel* menu_model) {
|
|||
|
||||
void TrayIconCocoa::PopUpContextMenu(const gfx::Point& pos,
|
||||
ElectronMenuModel* menu_model) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&TrayIconCocoa::PopUpOnUI, weak_factory_.GetWeakPtr(),
|
||||
base::Unretained(menu_model)));
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -38,8 +38,7 @@ MenuBar::MenuBar(NativeWindow* window, RootView* root_view)
|
|||
RefreshColorCache(theme);
|
||||
UpdateViewColors();
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
SetBackground(
|
||||
views::CreateThemedSolidBackground(this, ui::kColorMenuBackground));
|
||||
SetBackground(views::CreateThemedSolidBackground(ui::kColorMenuBackground));
|
||||
background_color_ = GetBackground()->get_color();
|
||||
#endif
|
||||
SetFocusBehavior(FocusBehavior::ALWAYS);
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/browser/ui/views/menu_bar.h"
|
||||
|
@ -134,8 +133,8 @@ views::MenuItemView* MenuDelegate::GetSiblingMenu(
|
|||
button_to_open_ = button;
|
||||
// Switching menu asynchronously to avoid crash.
|
||||
if (!switch_in_progress) {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce(&views::MenuRunner::Cancel,
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(&views::MenuRunner::Cancel,
|
||||
base::Unretained(menu_runner_.get())));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "base/callback_helpers.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/json/json_writer.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/pattern.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
|
@ -37,7 +38,6 @@
|
|||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/web_contents_delegate.h"
|
||||
#include "content/public/browser/web_ui_data_source.h"
|
||||
#include "net/base/escape.h"
|
||||
#include "shell/browser/native_window.h"
|
||||
#include "shell/browser/window_list.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
|
@ -95,7 +95,7 @@ std::unique_ptr<base::DictionaryValue> BuildTargetDescriptor(
|
|||
target_data->SetInteger(kProcessIdField, process_id);
|
||||
target_data->SetInteger(kRoutingIdField, routing_id);
|
||||
target_data->SetString(kUrlField, url.spec());
|
||||
target_data->SetString(kNameField, net::EscapeForHTML(name));
|
||||
target_data->SetString(kNameField, base::EscapeForHTML(name));
|
||||
target_data->SetInteger(kPidField, base::GetProcId(handle));
|
||||
target_data->SetString(kFaviconUrlField, favicon_url.spec());
|
||||
target_data->SetInteger(kAccessibilityModeField, accessibility_mode.mode());
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include <utility>
|
||||
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
|
||||
namespace dialog_thread {
|
||||
|
@ -33,8 +33,8 @@ void Run(base::OnceCallback<R()> execute, base::OnceCallback<void(R)> done) {
|
|||
[](TaskRunner task_runner, base::OnceCallback<R()> execute,
|
||||
base::OnceCallback<void(R)> done) {
|
||||
R r = std::move(execute).Run();
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
[](TaskRunner task_runner, base::OnceCallback<void(R)> done,
|
||||
R r) {
|
||||
|
|
|
@ -61,7 +61,7 @@ WebContentsPermissionHelper::WebContentsPermissionHelper(
|
|||
WebContentsPermissionHelper::~WebContentsPermissionHelper() = default;
|
||||
|
||||
void WebContentsPermissionHelper::RequestPermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
base::OnceCallback<void(bool)> callback,
|
||||
bool user_gesture,
|
||||
const base::DictionaryValue* details) {
|
||||
|
@ -75,7 +75,7 @@ void WebContentsPermissionHelper::RequestPermission(
|
|||
}
|
||||
|
||||
bool WebContentsPermissionHelper::CheckPermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const base::DictionaryValue* details) const {
|
||||
auto* rfh = web_contents_->GetMainFrame();
|
||||
auto* permission_manager = static_cast<ElectronPermissionManager*>(
|
||||
|
@ -86,7 +86,7 @@ bool WebContentsPermissionHelper::CheckPermission(
|
|||
}
|
||||
|
||||
bool WebContentsPermissionHelper::CheckDevicePermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
|
@ -97,7 +97,7 @@ bool WebContentsPermissionHelper::CheckDevicePermission(
|
|||
}
|
||||
|
||||
void WebContentsPermissionHelper::GrantDevicePermission(
|
||||
content::PermissionType permission,
|
||||
blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
|
@ -110,7 +110,7 @@ void WebContentsPermissionHelper::GrantDevicePermission(
|
|||
void WebContentsPermissionHelper::RequestFullscreenPermission(
|
||||
base::OnceCallback<void(bool)> callback) {
|
||||
RequestPermission(
|
||||
static_cast<content::PermissionType>(PermissionType::FULLSCREEN),
|
||||
static_cast<blink::PermissionType>(PermissionType::FULLSCREEN),
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
|
@ -135,14 +135,13 @@ void WebContentsPermissionHelper::RequestMediaAccessPermission(
|
|||
|
||||
// The permission type doesn't matter here, AUDIO_CAPTURE/VIDEO_CAPTURE
|
||||
// are presented as same type in content_converter.h.
|
||||
RequestPermission(content::PermissionType::AUDIO_CAPTURE, std::move(callback),
|
||||
RequestPermission(blink::PermissionType::AUDIO_CAPTURE, std::move(callback),
|
||||
false, &details);
|
||||
}
|
||||
|
||||
void WebContentsPermissionHelper::RequestWebNotificationPermission(
|
||||
base::OnceCallback<void(bool)> callback) {
|
||||
RequestPermission(content::PermissionType::NOTIFICATIONS,
|
||||
std::move(callback));
|
||||
RequestPermission(blink::PermissionType::NOTIFICATIONS, std::move(callback));
|
||||
}
|
||||
|
||||
void WebContentsPermissionHelper::RequestPointerLockPermission(
|
||||
|
@ -151,7 +150,7 @@ void WebContentsPermissionHelper::RequestPointerLockPermission(
|
|||
base::OnceCallback<void(content::WebContents*, bool, bool, bool)>
|
||||
callback) {
|
||||
RequestPermission(
|
||||
static_cast<content::PermissionType>(PermissionType::POINTER_LOCK),
|
||||
static_cast<blink::PermissionType>(PermissionType::POINTER_LOCK),
|
||||
base::BindOnce(std::move(callback), web_contents_, user_gesture,
|
||||
last_unlocked_by_target),
|
||||
user_gesture);
|
||||
|
@ -164,7 +163,7 @@ void WebContentsPermissionHelper::RequestOpenExternalPermission(
|
|||
base::DictionaryValue details;
|
||||
details.SetString("externalURL", url.spec());
|
||||
RequestPermission(
|
||||
static_cast<content::PermissionType>(PermissionType::OPEN_EXTERNAL),
|
||||
static_cast<blink::PermissionType>(PermissionType::OPEN_EXTERNAL),
|
||||
std::move(callback), user_gesture, &details);
|
||||
}
|
||||
|
||||
|
@ -176,7 +175,7 @@ bool WebContentsPermissionHelper::CheckMediaAccessPermission(
|
|||
details.SetString("mediaType", MediaStreamTypeToString(type));
|
||||
// The permission type doesn't matter here, AUDIO_CAPTURE/VIDEO_CAPTURE
|
||||
// are presented as same type in content_converter.h.
|
||||
return CheckPermission(content::PermissionType::AUDIO_CAPTURE, &details);
|
||||
return CheckPermission(blink::PermissionType::AUDIO_CAPTURE, &details);
|
||||
}
|
||||
|
||||
bool WebContentsPermissionHelper::CheckSerialAccessPermission(
|
||||
|
@ -184,7 +183,7 @@ bool WebContentsPermissionHelper::CheckSerialAccessPermission(
|
|||
base::DictionaryValue details;
|
||||
details.SetString("securityOrigin", embedding_origin.GetURL().spec());
|
||||
return CheckPermission(
|
||||
static_cast<content::PermissionType>(PermissionType::SERIAL), &details);
|
||||
static_cast<blink::PermissionType>(PermissionType::SERIAL), &details);
|
||||
}
|
||||
|
||||
bool WebContentsPermissionHelper::CheckSerialPortPermission(
|
||||
|
@ -192,7 +191,7 @@ bool WebContentsPermissionHelper::CheckSerialPortPermission(
|
|||
base::Value device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
return CheckDevicePermission(
|
||||
static_cast<content::PermissionType>(PermissionType::SERIAL), origin,
|
||||
static_cast<blink::PermissionType>(PermissionType::SERIAL), origin,
|
||||
&device, render_frame_host);
|
||||
}
|
||||
|
||||
|
@ -201,7 +200,7 @@ void WebContentsPermissionHelper::GrantSerialPortPermission(
|
|||
base::Value device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
return GrantDevicePermission(
|
||||
static_cast<content::PermissionType>(PermissionType::SERIAL), origin,
|
||||
static_cast<blink::PermissionType>(PermissionType::SERIAL), origin,
|
||||
&device, render_frame_host);
|
||||
}
|
||||
|
||||
|
@ -210,7 +209,7 @@ bool WebContentsPermissionHelper::CheckHIDAccessPermission(
|
|||
base::DictionaryValue details;
|
||||
details.SetString("securityOrigin", embedding_origin.GetURL().spec());
|
||||
return CheckPermission(
|
||||
static_cast<content::PermissionType>(PermissionType::HID), &details);
|
||||
static_cast<blink::PermissionType>(PermissionType::HID), &details);
|
||||
}
|
||||
|
||||
bool WebContentsPermissionHelper::CheckHIDDevicePermission(
|
||||
|
@ -218,8 +217,8 @@ bool WebContentsPermissionHelper::CheckHIDDevicePermission(
|
|||
base::Value device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
return CheckDevicePermission(
|
||||
static_cast<content::PermissionType>(PermissionType::HID), origin,
|
||||
&device, render_frame_host);
|
||||
static_cast<blink::PermissionType>(PermissionType::HID), origin, &device,
|
||||
render_frame_host);
|
||||
}
|
||||
|
||||
void WebContentsPermissionHelper::GrantHIDDevicePermission(
|
||||
|
@ -227,8 +226,8 @@ void WebContentsPermissionHelper::GrantHIDDevicePermission(
|
|||
base::Value device,
|
||||
content::RenderFrameHost* render_frame_host) const {
|
||||
return GrantDevicePermission(
|
||||
static_cast<content::PermissionType>(PermissionType::HID), origin,
|
||||
&device, render_frame_host);
|
||||
static_cast<blink::PermissionType>(PermissionType::HID), origin, &device,
|
||||
render_frame_host);
|
||||
}
|
||||
|
||||
WEB_CONTENTS_USER_DATA_KEY_IMPL(WebContentsPermissionHelper);
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
#include "base/values.h"
|
||||
#include "content/public/browser/media_stream_request.h"
|
||||
#include "content/public/browser/permission_type.h"
|
||||
#include "content/public/browser/web_contents_user_data.h"
|
||||
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
|
||||
#include "third_party/blink/public/common/permissions/permission_utils.h"
|
||||
|
||||
namespace electron {
|
||||
|
||||
|
@ -25,7 +25,7 @@ class WebContentsPermissionHelper
|
|||
delete;
|
||||
|
||||
enum class PermissionType {
|
||||
POINTER_LOCK = static_cast<int>(content::PermissionType::NUM) + 1,
|
||||
POINTER_LOCK = static_cast<int>(blink::PermissionType::NUM) + 1,
|
||||
FULLSCREEN,
|
||||
OPEN_EXTERNAL,
|
||||
SERIAL,
|
||||
|
@ -73,20 +73,20 @@ class WebContentsPermissionHelper
|
|||
explicit WebContentsPermissionHelper(content::WebContents* web_contents);
|
||||
friend class content::WebContentsUserData<WebContentsPermissionHelper>;
|
||||
|
||||
void RequestPermission(content::PermissionType permission,
|
||||
void RequestPermission(blink::PermissionType permission,
|
||||
base::OnceCallback<void(bool)> callback,
|
||||
bool user_gesture = false,
|
||||
const base::DictionaryValue* details = nullptr);
|
||||
|
||||
bool CheckPermission(content::PermissionType permission,
|
||||
bool CheckPermission(blink::PermissionType permission,
|
||||
const base::DictionaryValue* details) const;
|
||||
|
||||
bool CheckDevicePermission(content::PermissionType permission,
|
||||
bool CheckDevicePermission(blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const;
|
||||
|
||||
void GrantDevicePermission(content::PermissionType permission,
|
||||
void GrantDevicePermission(blink::PermissionType permission,
|
||||
const url::Origin& origin,
|
||||
const base::Value* device,
|
||||
content::RenderFrameHost* render_frame_host) const;
|
||||
|
|
|
@ -46,7 +46,7 @@ void WebContentsZoomController::SetEmbedderZoomController(
|
|||
}
|
||||
|
||||
void WebContentsZoomController::SetZoomLevel(double level) {
|
||||
if (!web_contents()->GetRenderViewHost()->IsRenderViewLive() ||
|
||||
if (!web_contents()->GetMainFrame()->IsRenderFrameLive() ||
|
||||
blink::PageZoomValuesEqual(GetZoomLevel(), level) ||
|
||||
zoom_mode_ == ZoomMode::kDisabled)
|
||||
return;
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include "base/logging.h"
|
||||
#include "base/pickle.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "base/values.h"
|
||||
#include "electron/fuses.h"
|
||||
|
|
|
@ -134,67 +134,67 @@ bool Converter<blink::mojom::PermissionStatus>::FromV8(
|
|||
}
|
||||
|
||||
// static
|
||||
v8::Local<v8::Value> Converter<content::PermissionType>::ToV8(
|
||||
v8::Local<v8::Value> Converter<blink::PermissionType>::ToV8(
|
||||
v8::Isolate* isolate,
|
||||
const content::PermissionType& val) {
|
||||
const blink::PermissionType& val) {
|
||||
using PermissionType = electron::WebContentsPermissionHelper::PermissionType;
|
||||
// Based on mappings from content/browser/devtools/protocol/browser_handler.cc
|
||||
// Not all permissions are currently used by Electron but this will future
|
||||
// proof these conversions.
|
||||
switch (val) {
|
||||
case content::PermissionType::ACCESSIBILITY_EVENTS:
|
||||
case blink::PermissionType::ACCESSIBILITY_EVENTS:
|
||||
return StringToV8(isolate, "accessibility-events");
|
||||
case content::PermissionType::AR:
|
||||
case blink::PermissionType::AR:
|
||||
return StringToV8(isolate, "ar");
|
||||
case content::PermissionType::BACKGROUND_FETCH:
|
||||
case blink::PermissionType::BACKGROUND_FETCH:
|
||||
return StringToV8(isolate, "background-fetch");
|
||||
case content::PermissionType::BACKGROUND_SYNC:
|
||||
case blink::PermissionType::BACKGROUND_SYNC:
|
||||
return StringToV8(isolate, "background-sync");
|
||||
case content::PermissionType::CLIPBOARD_READ_WRITE:
|
||||
case blink::PermissionType::CLIPBOARD_READ_WRITE:
|
||||
return StringToV8(isolate, "clipboard-read");
|
||||
case content::PermissionType::CLIPBOARD_SANITIZED_WRITE:
|
||||
case blink::PermissionType::CLIPBOARD_SANITIZED_WRITE:
|
||||
return StringToV8(isolate, "clipboard-sanitized-write");
|
||||
case content::PermissionType::LOCAL_FONTS:
|
||||
case blink::PermissionType::LOCAL_FONTS:
|
||||
return StringToV8(isolate, "local-fonts");
|
||||
case content::PermissionType::IDLE_DETECTION:
|
||||
case blink::PermissionType::IDLE_DETECTION:
|
||||
return StringToV8(isolate, "idle-detection");
|
||||
case content::PermissionType::MIDI_SYSEX:
|
||||
case blink::PermissionType::MIDI_SYSEX:
|
||||
return StringToV8(isolate, "midiSysex");
|
||||
case content::PermissionType::NFC:
|
||||
case blink::PermissionType::NFC:
|
||||
return StringToV8(isolate, "nfc");
|
||||
case content::PermissionType::NOTIFICATIONS:
|
||||
case blink::PermissionType::NOTIFICATIONS:
|
||||
return StringToV8(isolate, "notifications");
|
||||
case content::PermissionType::PAYMENT_HANDLER:
|
||||
case blink::PermissionType::PAYMENT_HANDLER:
|
||||
return StringToV8(isolate, "payment-handler");
|
||||
case content::PermissionType::PERIODIC_BACKGROUND_SYNC:
|
||||
case blink::PermissionType::PERIODIC_BACKGROUND_SYNC:
|
||||
return StringToV8(isolate, "periodic-background-sync");
|
||||
case content::PermissionType::DURABLE_STORAGE:
|
||||
case blink::PermissionType::DURABLE_STORAGE:
|
||||
return StringToV8(isolate, "persistent-storage");
|
||||
case content::PermissionType::GEOLOCATION:
|
||||
case blink::PermissionType::GEOLOCATION:
|
||||
return StringToV8(isolate, "geolocation");
|
||||
case content::PermissionType::CAMERA_PAN_TILT_ZOOM:
|
||||
case content::PermissionType::AUDIO_CAPTURE:
|
||||
case content::PermissionType::VIDEO_CAPTURE:
|
||||
case blink::PermissionType::CAMERA_PAN_TILT_ZOOM:
|
||||
case blink::PermissionType::AUDIO_CAPTURE:
|
||||
case blink::PermissionType::VIDEO_CAPTURE:
|
||||
return StringToV8(isolate, "media");
|
||||
case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
|
||||
case blink::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
|
||||
return StringToV8(isolate, "mediaKeySystem");
|
||||
case content::PermissionType::MIDI:
|
||||
case blink::PermissionType::MIDI:
|
||||
return StringToV8(isolate, "midi");
|
||||
case content::PermissionType::WAKE_LOCK_SCREEN:
|
||||
case blink::PermissionType::WAKE_LOCK_SCREEN:
|
||||
return StringToV8(isolate, "screen-wake-lock");
|
||||
case content::PermissionType::SENSORS:
|
||||
case blink::PermissionType::SENSORS:
|
||||
return StringToV8(isolate, "sensors");
|
||||
case content::PermissionType::STORAGE_ACCESS_GRANT:
|
||||
case blink::PermissionType::STORAGE_ACCESS_GRANT:
|
||||
return StringToV8(isolate, "storage-access");
|
||||
case content::PermissionType::VR:
|
||||
case blink::PermissionType::VR:
|
||||
return StringToV8(isolate, "vr");
|
||||
case content::PermissionType::WAKE_LOCK_SYSTEM:
|
||||
case blink::PermissionType::WAKE_LOCK_SYSTEM:
|
||||
return StringToV8(isolate, "system-wake-lock");
|
||||
case content::PermissionType::WINDOW_PLACEMENT:
|
||||
case blink::PermissionType::WINDOW_PLACEMENT:
|
||||
return StringToV8(isolate, "window-placement");
|
||||
case content::PermissionType::DISPLAY_CAPTURE:
|
||||
case blink::PermissionType::DISPLAY_CAPTURE:
|
||||
return StringToV8(isolate, "display-capture");
|
||||
case content::PermissionType::NUM:
|
||||
case blink::PermissionType::NUM:
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
#include <utility>
|
||||
|
||||
#include "content/public/browser/permission_type.h"
|
||||
#include "content/public/common/referrer.h"
|
||||
#include "content/public/common/stop_find_action.h"
|
||||
#include "gin/converter.h"
|
||||
#include "third_party/blink/public/common/permissions/permission_utils.h"
|
||||
#include "third_party/blink/public/mojom/choosers/popup_menu.mojom.h"
|
||||
#include "third_party/blink/public/mojom/permissions/permission_status.mojom.h"
|
||||
|
||||
|
@ -47,9 +47,9 @@ struct Converter<blink::mojom::PermissionStatus> {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct Converter<content::PermissionType> {
|
||||
struct Converter<blink::PermissionType> {
|
||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||
const content::PermissionType& val);
|
||||
const blink::PermissionType& val);
|
||||
};
|
||||
|
||||
template <>
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace {
|
|||
struct TranslaterHolder {
|
||||
explicit TranslaterHolder(v8::Isolate* isolate)
|
||||
: handle(isolate, v8::External::New(isolate, this)) {
|
||||
handle.SetWeak(this, &GC, v8::WeakCallbackType::kFinalizer);
|
||||
handle.SetWeak(this, &GC, v8::WeakCallbackType::kParameter);
|
||||
}
|
||||
~TranslaterHolder() {
|
||||
if (!handle.IsEmpty()) {
|
||||
|
|
|
@ -13,4 +13,10 @@ Locker::Locker(v8::Isolate* isolate) {
|
|||
|
||||
Locker::~Locker() = default;
|
||||
|
||||
void Locker::SetIsBrowserProcess(bool is_browser_process) {
|
||||
g_is_browser_process = is_browser_process;
|
||||
}
|
||||
|
||||
bool Locker::g_is_browser_process = false;
|
||||
|
||||
} // namespace gin_helper
|
||||
|
|
|
@ -23,13 +23,17 @@ class Locker {
|
|||
|
||||
// Returns whether current process is browser process, currently we detect it
|
||||
// by checking whether current has used V8 Lock, but it might be a bad idea.
|
||||
static inline bool IsBrowserProcess() { return v8::Locker::WasEverUsed(); }
|
||||
static inline bool IsBrowserProcess() { return g_is_browser_process; }
|
||||
|
||||
static void SetIsBrowserProcess(bool is_browser_process);
|
||||
|
||||
private:
|
||||
void* operator new(size_t size);
|
||||
void operator delete(void*, size_t);
|
||||
|
||||
std::unique_ptr<v8::Locker> locker_;
|
||||
|
||||
static bool g_is_browser_process;
|
||||
};
|
||||
|
||||
} // namespace gin_helper
|
||||
|
|
|
@ -65,8 +65,8 @@ v8::Local<v8::Promise::Resolver> PromiseBase::GetInner() const {
|
|||
void Promise<void>::ResolvePromise(Promise<void> promise) {
|
||||
if (gin_helper::Locker::IsBrowserProcess() &&
|
||||
!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce([](Promise<void> promise) { promise.Resolve(); },
|
||||
std::move(promise)));
|
||||
} else {
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include <utility>
|
||||
|
||||
#include "base/strings/string_piece.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "shell/common/gin_converters/std_converter.h"
|
||||
|
@ -48,8 +47,8 @@ class PromiseBase {
|
|||
static void RejectPromise(PromiseBase&& promise, base::StringPiece errmsg) {
|
||||
if (gin_helper::Locker::IsBrowserProcess() &&
|
||||
!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
||||
base::PostTask(
|
||||
FROM_HERE, {content::BrowserThread::UI},
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(
|
||||
// Note that this callback can not take StringPiece,
|
||||
// as StringPiece only references string internally and
|
||||
|
@ -91,8 +90,8 @@ class Promise : public PromiseBase {
|
|||
static void ResolvePromise(Promise<RT> promise, RT result) {
|
||||
if (gin_helper::Locker::IsBrowserProcess() &&
|
||||
!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
||||
base::PostTask(FROM_HERE, {content::BrowserThread::UI},
|
||||
base::BindOnce([](Promise<RT> promise,
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce([](Promise<RT> promise,
|
||||
RT result) { promise.Resolve(result); },
|
||||
std::move(promise), std::move(result)));
|
||||
} else {
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#include "base/files/file_util.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/stl_util.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
#include "base/threading/scoped_blocking_call.h"
|
||||
#include "base/win/registry.h"
|
||||
|
@ -32,7 +32,6 @@
|
|||
#include "base/win/windows_version.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "net/base/escape.h"
|
||||
#include "shell/common/electron_paths.h"
|
||||
#include "ui/base/win/shell.h"
|
||||
#include "url/gurl.h"
|
||||
|
@ -243,7 +242,7 @@ std::string OpenExternalOnWorkerThread(
|
|||
// parameters unexpected by the external program. This url should already
|
||||
// have been escaped.
|
||||
std::wstring escaped_url =
|
||||
L"\"" + base::UTF8ToWide(net::EscapeExternalHandlerValue(url.spec())) +
|
||||
L"\"" + base::UTF8ToWide(base::EscapeExternalHandlerValue(url.spec())) +
|
||||
L"\"";
|
||||
std::wstring working_dir = options.working_dir.value();
|
||||
|
||||
|
|
|
@ -389,9 +389,10 @@ std::unique_ptr<base::Value> V8ValueConverter::FromV8Array(
|
|||
std::unique_ptr<v8::Context::Scope> scope;
|
||||
// If val was created in a different context than our current one, change to
|
||||
// that context, but change back after val is converted.
|
||||
if (!val->CreationContext().IsEmpty() &&
|
||||
val->CreationContext() != isolate->GetCurrentContext())
|
||||
scope = std::make_unique<v8::Context::Scope>(val->CreationContext());
|
||||
if (!val->GetCreationContextChecked().IsEmpty() &&
|
||||
val->GetCreationContextChecked() != isolate->GetCurrentContext())
|
||||
scope =
|
||||
std::make_unique<v8::Context::Scope>(val->GetCreationContextChecked());
|
||||
|
||||
auto result = std::make_unique<base::ListValue>();
|
||||
|
||||
|
@ -445,9 +446,10 @@ std::unique_ptr<base::Value> V8ValueConverter::FromV8Object(
|
|||
std::unique_ptr<v8::Context::Scope> scope;
|
||||
// If val was created in a different context than our current one, change to
|
||||
// that context, but change back after val is converted.
|
||||
if (!val->CreationContext().IsEmpty() &&
|
||||
val->CreationContext() != isolate->GetCurrentContext())
|
||||
scope = std::make_unique<v8::Context::Scope>(val->CreationContext());
|
||||
if (!val->GetCreationContextChecked().IsEmpty() &&
|
||||
val->GetCreationContextChecked() != isolate->GetCurrentContext())
|
||||
scope =
|
||||
std::make_unique<v8::Context::Scope>(val->GetCreationContextChecked());
|
||||
|
||||
auto result = std::make_unique<base::DictionaryValue>();
|
||||
v8::Local<v8::Array> property_names;
|
||||
|
|
|
@ -188,7 +188,7 @@ v8::MaybeLocal<v8::Value> PassValueToOtherContext(
|
|||
// creation context of the original method. If it's not we proceed
|
||||
// with the proxy logic
|
||||
if (maybe_original_fn.ToLocal(&proxy_func) && proxy_func->IsFunction() &&
|
||||
proxy_func.As<v8::Object>()->CreationContext() ==
|
||||
proxy_func.As<v8::Object>()->GetCreationContextChecked() ==
|
||||
destination_context) {
|
||||
return v8::MaybeLocal<v8::Value>(proxy_func);
|
||||
}
|
||||
|
@ -408,7 +408,8 @@ void ProxyFunctionWrapper(const v8::FunctionCallbackInfo<v8::Value>& info) {
|
|||
return;
|
||||
|
||||
v8::Local<v8::Function> func = func_value.As<v8::Function>();
|
||||
v8::Local<v8::Context> func_owning_context = func->CreationContext();
|
||||
v8::Local<v8::Context> func_owning_context =
|
||||
func->GetCreationContextChecked();
|
||||
|
||||
{
|
||||
v8::Context::Scope func_owning_context_scope(func_owning_context);
|
||||
|
@ -636,9 +637,9 @@ void OverrideGlobalValueFromIsolatedWorld(
|
|||
{
|
||||
v8::Context::Scope main_context_scope(main_context);
|
||||
context_bridge::ObjectCache object_cache;
|
||||
v8::MaybeLocal<v8::Value> maybe_proxy =
|
||||
PassValueToOtherContext(value->CreationContext(), main_context, value,
|
||||
&object_cache, support_dynamic_properties, 1);
|
||||
v8::MaybeLocal<v8::Value> maybe_proxy = PassValueToOtherContext(
|
||||
value->GetCreationContextChecked(), main_context, value, &object_cache,
|
||||
support_dynamic_properties, 1);
|
||||
DCHECK(!maybe_proxy.IsEmpty());
|
||||
auto proxy = maybe_proxy.ToLocalChecked();
|
||||
|
||||
|
@ -672,16 +673,16 @@ bool OverrideGlobalPropertyFromIsolatedWorld(
|
|||
v8::Local<v8::Value> getter_proxy;
|
||||
v8::Local<v8::Value> setter_proxy;
|
||||
if (!getter->IsNullOrUndefined()) {
|
||||
v8::MaybeLocal<v8::Value> maybe_getter_proxy =
|
||||
PassValueToOtherContext(getter->CreationContext(), main_context,
|
||||
getter, &object_cache, false, 1);
|
||||
v8::MaybeLocal<v8::Value> maybe_getter_proxy = PassValueToOtherContext(
|
||||
getter->GetCreationContextChecked(), main_context, getter,
|
||||
&object_cache, false, 1);
|
||||
DCHECK(!maybe_getter_proxy.IsEmpty());
|
||||
getter_proxy = maybe_getter_proxy.ToLocalChecked();
|
||||
}
|
||||
if (!setter->IsNullOrUndefined() && setter->IsObject()) {
|
||||
v8::MaybeLocal<v8::Value> maybe_setter_proxy =
|
||||
PassValueToOtherContext(getter->CreationContext(), main_context,
|
||||
setter, &object_cache, false, 1);
|
||||
v8::MaybeLocal<v8::Value> maybe_setter_proxy = PassValueToOtherContext(
|
||||
getter->GetCreationContextChecked(), main_context, setter,
|
||||
&object_cache, false, 1);
|
||||
DCHECK(!maybe_setter_proxy.IsEmpty());
|
||||
setter_proxy = maybe_setter_proxy.ToLocalChecked();
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/values.h"
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "content/public/renderer/render_frame_observer.h"
|
||||
|
|
|
@ -102,7 +102,7 @@ struct Converter<blink::WebCssOrigin> {
|
|||
namespace electron {
|
||||
|
||||
content::RenderFrame* GetRenderFrame(v8::Local<v8::Object> value) {
|
||||
v8::Local<v8::Context> context = value->CreationContext();
|
||||
v8::Local<v8::Context> context = value->GetCreationContextChecked();
|
||||
if (context.IsEmpty())
|
||||
return nullptr;
|
||||
blink::WebLocalFrame* frame = blink::WebLocalFrame::FrameForContext(context);
|
||||
|
@ -161,9 +161,9 @@ class ScriptExecutionCallback : public blink::WebScriptExecutionCallback {
|
|||
{
|
||||
v8::TryCatch try_catch(isolate);
|
||||
context_bridge::ObjectCache object_cache;
|
||||
maybe_result = PassValueToOtherContext(result->CreationContext(),
|
||||
promise_.GetContext(), result,
|
||||
&object_cache, false, 0);
|
||||
maybe_result = PassValueToOtherContext(
|
||||
result->GetCreationContextChecked(), promise_.GetContext(), result,
|
||||
&object_cache, false, 0);
|
||||
if (maybe_result.IsEmpty() || try_catch.HasCaught()) {
|
||||
success = false;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ class ScriptExecutionCallback : public blink::WebScriptExecutionCallback {
|
|||
bool should_clone_value =
|
||||
!(value->IsObject() &&
|
||||
promise_.GetContext() ==
|
||||
value.As<v8::Object>()->CreationContext()) &&
|
||||
value.As<v8::Object>()->GetCreationContextChecked()) &&
|
||||
value->IsObject();
|
||||
if (should_clone_value) {
|
||||
CopyResultToCallingContextAndFinalize(isolate,
|
||||
|
|
|
@ -601,7 +601,7 @@ void RendererClientBase::AllowGuestViewElementDefinition(
|
|||
v8::Local<v8::Object> context,
|
||||
v8::Local<v8::Function> register_cb) {
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
v8::Context::Scope context_scope(context->CreationContext());
|
||||
v8::Context::Scope context_scope(context->GetCreationContextChecked());
|
||||
blink::WebCustomElement::EmbedderNamesAllowedScope embedder_names_scope;
|
||||
|
||||
content::RenderFrame* render_frame = GetRenderFrame(context);
|
||||
|
@ -609,8 +609,8 @@ void RendererClientBase::AllowGuestViewElementDefinition(
|
|||
return;
|
||||
|
||||
render_frame->GetWebFrame()->RequestExecuteV8Function(
|
||||
context->CreationContext(), register_cb, v8::Null(isolate), 0, nullptr,
|
||||
nullptr);
|
||||
context->GetCreationContextChecked(), register_cb, v8::Null(isolate), 0,
|
||||
nullptr, nullptr);
|
||||
}
|
||||
|
||||
} // namespace electron
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue