9b0409f7c9
* chore: bump chromium in DEPS to 125.0.6421.0 * chore: bump chromium in DEPS to 125.0.6422.0 * Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows https://chromium-review.googlesource.com/c/chromium/src/+/5434658 * chore: update patches * fixup: Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows * chore: bump chromium in DEPS to 126.0.6423.0 * chore: update patches * 5426599: Next generation control of unsafe-buffers-usage plugin https://chromium-review.googlesource.com/c/chromium/src/+/5426599 * chore: bump chromium in DEPS to 126.0.6425.0 * chore: update patches * Roll clang+rust llvmorg-19-init-7229-g315c88c5-2 : llvmorg-19-init-8091-gab037c4f-1 / ceab6128fa48a616bfd3e3adf4bc80133b8ee223-1 : ab71ee7a9214c2793108a41efb065aa77aeb7326-1 https://chromium-review.googlesource.com/c/chromium/src/+/5444328 Also see https://issues.chromium.org/issues/332931387 * 5445074: [Views AX] Move AXEventNotificationDetails to ui/accessibility/ https://chromium-review.googlesource.com/c/chromium/src/+/5445074 Also 5455993: [Views AX] Rename AXEventNotificationDetails to AXUpdatesAndEvents | https://chromium-review.googlesource.com/c/chromium/src/+/5455993 * Pass IsolationInfo to ContentBrowserClient::WillCreateURLLoaderFactory() https://chromium-review.googlesource.com/c/chromium/src/+/5405301 * chore: bump chromium in DEPS to 126.0.6427.0 * chore: update patches * chore: remove no longer needed patch perfetto is now turned on so this patch is no longer needed. * chore: bump chromium in DEPS to 126.0.6429.0 * chore: bump chromium in DEPS to 126.0.6431.0 * chore: bump chromium in DEPS to 126.0.6433.0 * 5466654: Do not create a console if logging to a handle https://chromium-review.googlesource.com/c/chromium/src/+/5466654 * chore: fixup patch indices * Address Linux NonClientFrameView Changes - https://chromium-review.googlesource.com/c/chromium/src/+/5180720 - https://chromium-review.googlesource.com/c/chromium/src/+/5367794 * chore: bump chromium in DEPS to 126.0.6435.0 * chore: bump chromium in DEPS to 126.0.6437.0 * chore: update patches * chore: bump chromium in DEPS to 126.0.6439.0 * chore: bump chromium in DEPS to 126.0.6441.0 * 5477689: components/crash/content/tools: Format with yapf | https://chromium-review.googlesource.com/c/chromium/src/+/5477689 * 5485006: Remove enable_print_content_analysis GN flag | https://chromium-review.googlesource.com/c/chromium/src/+/5485006 * chore: update chromium patches * chore: bump chromium in DEPS to 126.0.6443.0 * 5465608: Convert DCHECKs near RenderWidgetHost, DelegatedFrameHost to CHECK | https://chromium-review.googlesource.com/c/chromium/src/+/5465608 * 5492605: Migrate TODOs referencing old crbug IDs to the new issue tracker IDs | https://chromium-review.googlesource.com/c/chromium/src/+/5492605 * chore: update patches * chore: bump chromium in DEPS to 126.0.6445.0 * chore: update patches * 5468588: Fullscreen: Encapsulate ExclusiveAccessBubble params in a struct | https://chromium-review.googlesource.com/c/chromium/src/+/5468588 * fixup! 5485006: Remove enable_print_content_analysis GN flag | https://chromium-review.googlesource.com/c/chromium/src/+/5485006 * 5461340: `size_t` in `mojo::DataPipe[Consumer|Producer]Handle`: /components. | https://chromium-review.googlesource.com/c/chromium/src/+/5461340 * 5480213: Add an EvictIds struct to FrameEvictorClient | https://chromium-review.googlesource.com/c/chromium/src/+/5480213 * 4341506: [api] Deprecate Isolate::IdleNotificationDeadline | https://chromium-review.googlesource.com/c/v8/v8/+/4341506 * 5300826: [v8-tasks] Add source location to v8::TaskRunner, step 4/4. | https://chromium-review.googlesource.com/c/v8/v8/+/5300826 * partially revert is_newly_created to allow for browser initiated about:blank loads * add dep on app_launch_prefetch Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5420149 * install sysroots from electron not from chrome We should add a new var upstream for `download_sysroots` so that we can skip downloading chromes at all. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5462469 * refactor: make UpdateFrameHints an override Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5473548 * fix ppapi * refactor: update namespace for pwm switches Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5444617 * 5459367: WebSQL: Restrict WebSQL service creation to Android only | https://chromium-review.googlesource.com/c/chromium/src/+/5459367 * 5455853: Revert "[Clipboard] Don't add meta charset tag for async write() method on Mac." | https://chromium-review.googlesource.com/c/chromium/src/+/5455853 * fixup! refactor: update namespace for pwm switches edd9e26 Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5444617 * 5147611: [heap] Add checks for ensuring position info slow path is not used in heap snapshot | https://chromium-review.googlesource.com/c/v8/v8/+/5147611 * fixup! 5412666: [heap] Also avoid heap allocation for allocation tracked functions | https://chromium-review.googlesource.com/c/v8/v8/+/5412666 * chore: add websql removal to breaking-changes.md --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
1728 lines
60 KiB
Diff
1728 lines
60 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Attard <samuel.r.attard@gmail.com>
|
|
Date: Thu, 20 Sep 2018 17:48:49 -0700
|
|
Subject: mas: avoid private macOS API usage
|
|
|
|
* Use the stub killring file when building blink
|
|
* Remove usage of the following private APIs
|
|
* abort_report_np
|
|
* pthread_fchdir_np
|
|
* pthread_chdir_np
|
|
* SetApplicationIsDaemon
|
|
* _LSSetApplicationLaunchServicesServerConnectionStatus
|
|
* AreDeviceAndUserJoinedToDomain
|
|
* _CFIsObjC
|
|
* AudioDeviceDuck
|
|
* NSNextStepFrame
|
|
* NSThemeFrame
|
|
* NSTextInputReplacementRangeAttributeName
|
|
* NSAccessibilityRemoteUIElement is unnecessary for Electron's use-case. We use it
|
|
for progressive web apps (where the AXTree is in the browser process, but macOS
|
|
needs to think it's coming from the PWA process). I think it can just be chopped
|
|
out -- if there are any side-effects, we should be able to work around them.
|
|
* CAContext removal
|
|
* For apps that spend a lot of time watching video (especially fullscreen video),
|
|
the power/battery usage will likely increase 1.5x to 2x. For something that is,
|
|
e.g, scrolling, it'll be smaller, more like 1.15x or 1.25x.
|
|
|
|
In terms of performance, the impact will likely be fairly small -- any app that
|
|
could hit 60fps before will likely still be able to hit 60fps. There may even be
|
|
cases where performance improves when disabling remote CoreAnimation (remote
|
|
CoreAnimation is really only about battery usage).
|
|
* CTFontDescriptorIsSystemUIFont is a private API, we're using an
|
|
_interesting_ technique in the MAS build to determine if the font is a
|
|
system font by checking if it's kCTFontPriorityAttribute is set to
|
|
system priority.
|
|
|
|
diff --git a/base/BUILD.gn b/base/BUILD.gn
|
|
index ac5832a8bf15b872b80fe1f4c1dc1eaf6151f3cb..5a06229211841b620b0b399447dc8701dcad0a6b 100644
|
|
--- a/base/BUILD.gn
|
|
+++ b/base/BUILD.gn
|
|
@@ -1068,6 +1068,7 @@ component("base") {
|
|
"//build/config/compiler:prevent_unsafe_narrowing",
|
|
"//build/config/compiler:wexit_time_destructors",
|
|
"//build/config/compiler:wglobal_constructors",
|
|
+ "//electron/build/config:mas_build",
|
|
]
|
|
|
|
deps = [
|
|
diff --git a/base/enterprise_util_mac.mm b/base/enterprise_util_mac.mm
|
|
index 4bf9a3c27e05c6635b2beb8e880b5b43dbed61b5..57d4756c0d87b9313e8566b3083c0132966fcd78 100644
|
|
--- a/base/enterprise_util_mac.mm
|
|
+++ b/base/enterprise_util_mac.mm
|
|
@@ -116,6 +116,14 @@ DeviceUserDomainJoinState AreDeviceAndUserJoinedToDomain() {
|
|
DeviceUserDomainJoinState state{.device_joined = false,
|
|
.user_joined = false};
|
|
|
|
+#if IS_MAS_BUILD()
|
|
+ return state;
|
|
+ }();
|
|
+
|
|
+ return state;
|
|
+}
|
|
+#else
|
|
+
|
|
@autoreleasepool {
|
|
ODSession* session = [ODSession defaultSession];
|
|
if (session == nil) {
|
|
@@ -219,5 +227,6 @@ DeviceUserDomainJoinState AreDeviceAndUserJoinedToDomain() {
|
|
|
|
return state;
|
|
}
|
|
+#endif
|
|
|
|
} // namespace base
|
|
diff --git a/base/process/launch_mac.cc b/base/process/launch_mac.cc
|
|
index 99d801d0fe89804bd87851c87f1ce76acff9f894..327c93478f491d098464f40dac7b936492f6e6fa 100644
|
|
--- a/base/process/launch_mac.cc
|
|
+++ b/base/process/launch_mac.cc
|
|
@@ -21,13 +21,18 @@
|
|
#include "base/threading/scoped_blocking_call.h"
|
|
#include "base/threading/thread_restrictions.h"
|
|
#include "base/trace_event/base_tracing.h"
|
|
+#if IS_MAS_BUILD()
|
|
+#include <sys/syscall.h>
|
|
+#endif
|
|
|
|
extern "C" {
|
|
// Changes the current thread's directory to a path or directory file
|
|
// descriptor.
|
|
+#if !IS_MAS_BUILD()
|
|
int pthread_chdir_np(const char* dir);
|
|
|
|
int pthread_fchdir_np(int fd);
|
|
+#endif
|
|
|
|
int responsibility_spawnattrs_setdisclaim(posix_spawnattr_t attrs,
|
|
int disclaim);
|
|
@@ -99,13 +104,27 @@ class PosixSpawnFileActions {
|
|
|
|
#if !BUILDFLAG(IS_MAC)
|
|
int ChangeCurrentThreadDirectory(const char* path) {
|
|
+#if IS_MAS_BUILD()
|
|
+ #pragma clang diagnostic push
|
|
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
+ return syscall(SYS___pthread_chdir, path);
|
|
+ #pragma clang diagnostic pop
|
|
+#else
|
|
return pthread_chdir_np(path);
|
|
+#endif
|
|
}
|
|
|
|
// The recommended way to unset a per-thread cwd is to set a new value to an
|
|
// invalid file descriptor, per libpthread-218.1.3/private/private.h.
|
|
int ResetCurrentThreadDirectory() {
|
|
+#if IS_MAS_BUILD()
|
|
+ #pragma clang diagnostic push
|
|
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
+ return syscall(SYS___pthread_fchdir, -1);
|
|
+ #pragma clang diagnostic pop
|
|
+#else
|
|
return pthread_fchdir_np(-1);
|
|
+#endif
|
|
}
|
|
#endif
|
|
|
|
@@ -226,7 +245,7 @@ Process LaunchProcess(const std::vector<std::string>& argv,
|
|
file_actions.Inherit(STDERR_FILENO);
|
|
}
|
|
|
|
-#if BUILDFLAG(IS_MAC)
|
|
+#if 0
|
|
if (options.disclaim_responsibility) {
|
|
DPSXCHECK(responsibility_spawnattrs_setdisclaim(attr.get(), 1));
|
|
}
|
|
diff --git a/base/process/process_info_mac.cc b/base/process/process_info_mac.cc
|
|
index 94a028be3c315edc0056408ab9ab41b6b001a1c1..0d830234edb5621f57e39f4a951d357a23f677c1 100644
|
|
--- a/base/process/process_info_mac.cc
|
|
+++ b/base/process/process_info_mac.cc
|
|
@@ -8,15 +8,21 @@
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
pid_t responsibility_get_pid_responsible_for_pid(pid_t);
|
|
}
|
|
+#endif
|
|
|
|
namespace base {
|
|
|
|
bool IsProcessSelfResponsible() {
|
|
+#if !IS_MAS_BUILD()
|
|
const pid_t pid = getpid();
|
|
return responsibility_get_pid_responsible_for_pid(pid) == pid;
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
} // namespace base
|
|
diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn
|
|
index 4fe7a0bfaa5b3398372f55c6454e738f140efe6b..b1c70281c45aaca4ae483f1f28e9d21929d17815 100644
|
|
--- a/components/os_crypt/sync/BUILD.gn
|
|
+++ b/components/os_crypt/sync/BUILD.gn
|
|
@@ -46,6 +46,7 @@ component("os_crypt") {
|
|
"os_crypt_mac.mm",
|
|
]
|
|
deps += [ "//crypto:mock_apple_keychain" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_win) {
|
|
diff --git a/components/remote_cocoa/app_shim/BUILD.gn b/components/remote_cocoa/app_shim/BUILD.gn
|
|
index f8e3adb59709757bbf6cd777c66588f961a01656..53e3039ab30620cf398b8abc6d1ce8820fd4859c 100644
|
|
--- a/components/remote_cocoa/app_shim/BUILD.gn
|
|
+++ b/components/remote_cocoa/app_shim/BUILD.gn
|
|
@@ -16,6 +16,7 @@ component("app_shim") {
|
|
assert(is_mac)
|
|
|
|
configs += [ ":app_shim_warnings" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
sources = [
|
|
"NSToolbar+Private.h",
|
|
"NSToolbar+Private.mm",
|
|
diff --git a/components/remote_cocoa/app_shim/application_bridge.mm b/components/remote_cocoa/app_shim/application_bridge.mm
|
|
index ee110fe82749fe69808f7c53f2e028d7033e1f54..55c2d643004a5acf9297693d28c3f71b43acc570 100644
|
|
--- a/components/remote_cocoa/app_shim/application_bridge.mm
|
|
+++ b/components/remote_cocoa/app_shim/application_bridge.mm
|
|
@@ -51,6 +51,7 @@
|
|
|
|
// NativeWidgetNSWindowHostHelper:
|
|
id GetNativeViewAccessible() override {
|
|
+#if !IS_MAS_BUILD()
|
|
if (!remote_accessibility_element_) {
|
|
base::ProcessId browser_pid = base::kNullProcessId;
|
|
std::vector<uint8_t> element_token;
|
|
@@ -61,6 +62,9 @@ id GetNativeViewAccessible() override {
|
|
ui::RemoteAccessibility::GetRemoteElementFromToken(element_token);
|
|
}
|
|
return remote_accessibility_element_;
|
|
+#else
|
|
+ return nil;
|
|
+#endif
|
|
}
|
|
void DispatchKeyEvent(ui::KeyEvent* event) override {
|
|
bool event_handled = false;
|
|
@@ -99,7 +103,9 @@ void GetWordAt(const gfx::Point& location_in_content,
|
|
mojo::AssociatedRemote<mojom::TextInputHost> text_input_host_remote_;
|
|
|
|
std::unique_ptr<NativeWidgetNSWindowBridge> bridge_;
|
|
+#if !IS_MAS_BUILD()
|
|
NSAccessibilityRemoteUIElement* __strong remote_accessibility_element_;
|
|
+#endif
|
|
};
|
|
|
|
} // namespace
|
|
diff --git a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
|
index 53553a707a646012c50b0bd2d0ffd8d4dbd67e11..e9df78b2cf8ca8cb4cb8321769e9a56b96d368b6 100644
|
|
--- a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
|
+++ b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
|
@@ -9,6 +9,7 @@
|
|
#include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h"
|
|
#include "components/remote_cocoa/common/native_widget_ns_window_host.mojom.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
@interface NSWindow (PrivateBrowserNativeWidgetAPI)
|
|
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle;
|
|
@end
|
|
@@ -65,10 +66,13 @@ - (BOOL)_shouldCenterTrafficLights {
|
|
|
|
@end
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
@implementation BrowserNativeWidgetWindow
|
|
|
|
// NSWindow (PrivateAPI) overrides.
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle {
|
|
// - NSThemeFrame and its subclasses will be nil if it's missing at runtime.
|
|
if ([BrowserWindowFrame class])
|
|
@@ -115,6 +119,8 @@ - (BOOL)_usesCustomDrawing {
|
|
return NO;
|
|
}
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
// Handle "Move focus to the window toolbar" configured in System Preferences ->
|
|
// Keyboard -> Shortcuts -> Keyboard. Usually Ctrl+F5. The argument (|unknown|)
|
|
// tends to just be nil.
|
|
diff --git a/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
|
|
index 3a815ebf505bd95fa7f6b61ba433d98fbfe20225..dbbebbdc1735bc14224dfcde0b7fe3a6fd9f9e40 100644
|
|
--- a/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
|
|
+++ b/components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.mm
|
|
@@ -4,6 +4,8 @@
|
|
|
|
#import "components/remote_cocoa/app_shim/native_widget_mac_frameless_nswindow.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+
|
|
@interface NSWindow (PrivateAPI)
|
|
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle;
|
|
@end
|
|
@@ -18,8 +20,12 @@ - (CGFloat)_titlebarHeight {
|
|
}
|
|
@end
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
@implementation NativeWidgetMacFramelessNSWindow
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+
|
|
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle {
|
|
if ([NativeWidgetMacFramelessNSWindowFrame class]) {
|
|
return [NativeWidgetMacFramelessNSWindowFrame class];
|
|
@@ -27,4 +33,6 @@ + (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle {
|
|
return [super frameViewClassForStyleMask:windowStyle];
|
|
}
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
@end
|
|
diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
|
|
index 945b01f2132547fa0f6a97ee4895994c500d1410..c01b2fdecf9b54fa01e5be9f45eaa234fc42d06b 100644
|
|
--- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
|
|
+++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h
|
|
@@ -17,6 +17,7 @@ class NativeWidgetNSWindowBridge;
|
|
|
|
@protocol WindowTouchBarDelegate;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// Weak lets Chrome launch even if a future macOS doesn't have the below classes
|
|
WEAK_IMPORT_ATTRIBUTE
|
|
@interface NSNextStepFrame : NSView
|
|
@@ -33,6 +34,7 @@ REMOTE_COCOA_APP_SHIM_EXPORT
|
|
REMOTE_COCOA_APP_SHIM_EXPORT
|
|
@interface NativeWidgetMacNSWindowTitledFrame : NSThemeFrame
|
|
@end
|
|
+#endif
|
|
|
|
// The NSWindow used by BridgedNativeWidget. Provides hooks into AppKit that
|
|
// can only be accomplished by overriding methods.
|
|
diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
|
|
index 6ebc4754ef986f5ae966ff7a3217ab77df78edf9..91147b8a42f731c645c318776933b4c139ca606d 100644
|
|
--- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
|
|
+++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
|
|
@@ -104,7 +104,9 @@ void OrderChildWindow(NSWindow* child_window,
|
|
} // namespace
|
|
|
|
@interface NSWindow (Private)
|
|
+#if !IS_MAS_BUILD()
|
|
+ (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle;
|
|
+#endif
|
|
- (BOOL)hasKeyAppearance;
|
|
- (long long)_resizeDirectionForMouseLocation:(CGPoint)location;
|
|
- (BOOL)_isConsideredOpenForPersistentState;
|
|
@@ -143,6 +145,8 @@ - (void)cr_mouseDownOnFrameView:(NSEvent*)event {
|
|
}
|
|
@end
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+
|
|
@implementation NativeWidgetMacNSWindowTitledFrame
|
|
- (void)mouseDown:(NSEvent*)event {
|
|
if (self.window.isMovable)
|
|
@@ -169,6 +173,8 @@ - (BOOL)usesCustomDrawing {
|
|
}
|
|
@end
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
@implementation NativeWidgetMacNSWindow {
|
|
@private
|
|
CommandDispatcher* __strong _commandDispatcher;
|
|
@@ -357,6 +363,8 @@ - (NSAccessibilityRole)accessibilityRole {
|
|
|
|
// NSWindow overrides.
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+
|
|
+ (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle {
|
|
if (windowStyle & NSWindowStyleMaskTitled) {
|
|
if (Class customFrame = [NativeWidgetMacNSWindowTitledFrame class])
|
|
@@ -368,6 +376,8 @@ + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle {
|
|
return [super frameViewClassForStyleMask:windowStyle];
|
|
}
|
|
|
|
+#endif
|
|
+
|
|
- (BOOL)_isTitleHidden {
|
|
bool shouldShowWindowTitle = YES;
|
|
if (_bridge)
|
|
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
|
|
index e0cd6c1956cc5ac96067c3626370ceb14903f5b1..ac6834030abad73e2e7fec0c2c8e4d5f45896997 100644
|
|
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
|
|
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
|
|
@@ -627,10 +627,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
|
|
// this should be treated as an error and caught early.
|
|
CHECK(bridged_view_);
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// Send the accessibility tokens for the NSView now that it exists.
|
|
host_->SetRemoteAccessibilityTokens(
|
|
ui::RemoteAccessibility::GetTokenForLocalElement(window_),
|
|
ui::RemoteAccessibility::GetTokenForLocalElement(bridged_view_));
|
|
+#endif
|
|
|
|
// Beware: This view was briefly removed (in favor of a bare CALayer) in
|
|
// https://crrev.com/c/1236675. The ordering of unassociated layers relative
|
|
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
|
|
index 1a6fed8fa26058343d711d38833d0c6b675224f6..6354ce53aab6ba907606e578a1df0b8df9c84f58 100644
|
|
--- a/components/viz/service/BUILD.gn
|
|
+++ b/components/viz/service/BUILD.gn
|
|
@@ -360,6 +360,7 @@ viz_component("service") {
|
|
"frame_sinks/external_begin_frame_source_mac.h",
|
|
]
|
|
}
|
|
+ configs = ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_android || use_ozone) {
|
|
@@ -632,6 +633,7 @@ viz_source_set("unit_tests") {
|
|
"display_embedder/software_output_device_mac_unittest.mm",
|
|
]
|
|
frameworks = [ "IOSurface.framework" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_win) {
|
|
diff --git a/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm b/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
|
|
index 0181e431874fcd9949be755e840af5afa32fdffa..2d9598de81977c7107e5f45d321e390f89cffa25 100644
|
|
--- a/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
|
|
+++ b/content/app_shim_remote_cocoa/ns_view_bridge_factory_impl.mm
|
|
@@ -64,7 +64,9 @@ explicit RenderWidgetHostNSViewBridgeOwner(
|
|
const RenderWidgetHostNSViewBridgeOwner&) = delete;
|
|
|
|
private:
|
|
+#if !IS_MAS_BUILD()
|
|
NSAccessibilityRemoteUIElement* __strong remote_accessibility_element_;
|
|
+#endif
|
|
void OnMojoDisconnect() { delete this; }
|
|
|
|
std::unique_ptr<blink::WebCoalescedInputEvent> TranslateEvent(
|
|
@@ -76,6 +78,7 @@ explicit RenderWidgetHostNSViewBridgeOwner(
|
|
}
|
|
|
|
id GetAccessibilityElement() override {
|
|
+#if !IS_MAS_BUILD()
|
|
if (!remote_accessibility_element_) {
|
|
base::ProcessId browser_pid = base::kNullProcessId;
|
|
std::vector<uint8_t> element_token;
|
|
@@ -86,6 +89,9 @@ id GetAccessibilityElement() override {
|
|
ui::RemoteAccessibility::GetRemoteElementFromToken(element_token);
|
|
}
|
|
return remote_accessibility_element_;
|
|
+#else
|
|
+ return nil;
|
|
+#endif
|
|
}
|
|
|
|
// RenderWidgetHostNSViewHostHelper implementation.
|
|
@@ -104,8 +110,10 @@ id GetFocusedBrowserAccessibilityElement() override {
|
|
return [bridgedContentView accessibilityFocusedUIElement];
|
|
}
|
|
void SetAccessibilityWindow(NSWindow* window) override {
|
|
+#if !IS_MAS_BUILD()
|
|
host_->SetRemoteAccessibilityWindowToken(
|
|
ui::RemoteAccessibility::GetTokenForLocalElement(window));
|
|
+#endif
|
|
}
|
|
|
|
void ForwardKeyboardEvent(const content::NativeWebKeyboardEvent& key_event,
|
|
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
|
index 53818b1885ccc5f7ba2e281b002b6e9ab4112b9d..9e088821c9164c9224605dc7ddc1ff0c2863ec84 100644
|
|
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
|
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
|
@@ -2041,15 +2041,21 @@ - (NSAccessibilityRole)accessibilityRole {
|
|
// Since this implementation doesn't have to wait any IPC calls, this doesn't
|
|
// make any key-typing jank. --hbono 7/23/09
|
|
//
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
extern NSString* NSTextInputReplacementRangeAttributeName;
|
|
}
|
|
+#endif
|
|
|
|
- (NSArray*)validAttributesForMarkedText {
|
|
// This code is just copied from WebKit except renaming variables.
|
|
static NSArray* const kAttributes = @[
|
|
NSUnderlineStyleAttributeName, NSUnderlineColorAttributeName,
|
|
+#if !IS_MAS_BUILD()
|
|
NSMarkedClauseSegmentAttributeName, NSTextInputReplacementRangeAttributeName
|
|
+#else
|
|
+ NSMarkedClauseSegmentAttributeName
|
|
+#endif
|
|
];
|
|
return kAttributes;
|
|
}
|
|
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
|
index b1f559fad9229c5822918e14cbf6f5ec96c9ff4a..3b33b098d4617eef7dd0a8084e27a00c0d02449c 100644
|
|
--- a/content/browser/BUILD.gn
|
|
+++ b/content/browser/BUILD.gn
|
|
@@ -54,6 +54,7 @@ source_set("browser") {
|
|
"//content:content_implementation",
|
|
"//v8:external_startup_data",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
defines = []
|
|
libs = []
|
|
frameworks = []
|
|
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
|
|
index ec784e17cead72eceea0f91a4cad89db6fab8d8e..8732d375388521ee99785da9df5b6cf6840ac2ea 100644
|
|
--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
|
|
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
|
|
@@ -21,7 +21,9 @@
|
|
#include "ui/accessibility/ax_role_properties.h"
|
|
#include "ui/accessibility/platform/ax_platform_tree_manager_delegate.h"
|
|
#include "ui/accessibility/platform/ax_private_webkit_constants_mac.h"
|
|
+#if !IS_MAS_BUILD()
|
|
#include "ui/base/cocoa/remote_accessibility_api.h"
|
|
+#endif
|
|
|
|
namespace {
|
|
|
|
@@ -225,6 +227,7 @@ void PostAnnouncementNotification(NSString* announcement,
|
|
return;
|
|
}
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
BrowserAccessibilityManager* root_manager = GetManagerForRootFrame();
|
|
if (root_manager) {
|
|
BrowserAccessibilityManagerMac* root_manager_mac =
|
|
@@ -247,6 +250,7 @@ void PostAnnouncementNotification(NSString* announcement,
|
|
return;
|
|
}
|
|
}
|
|
+#endif
|
|
|
|
// Use native VoiceOver support for live regions.
|
|
BrowserAccessibilityCocoa* retained_node = native_node;
|
|
@@ -650,6 +654,7 @@ void PostAnnouncementNotification(NSString* announcement,
|
|
return window == [NSApp accessibilityFocusedWindow];
|
|
}
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// TODO(accessibility): We need a solution to the problem described below.
|
|
// If the window is NSAccessibilityRemoteUIElement, there are some challenges:
|
|
// 1. NSApp is the browser which spawned the PWA, and what it considers the
|
|
@@ -678,6 +683,7 @@ void PostAnnouncementNotification(NSString* announcement,
|
|
if ([window isKindOfClass:[NSAccessibilityRemoteUIElement class]]) {
|
|
return true;
|
|
}
|
|
+#endif
|
|
|
|
return false;
|
|
}
|
|
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
|
|
index 5497f4e3faa66cc0a78d449e92d54c1da0cb041c..a768ff0ad1fd0aebc14f0432b9f4b88b8a42e34a 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
|
|
@@ -49,7 +49,9 @@ class ScopedPasswordInputEnabler;
|
|
|
|
@protocol RenderWidgetHostViewMacDelegate;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
@class NSAccessibilityRemoteUIElement;
|
|
+#endif
|
|
@class RenderWidgetHostViewCocoa;
|
|
@class CursorAccessibilityScaleFactorObserver;
|
|
|
|
@@ -682,9 +684,11 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
|
|
// EnsureSurfaceSynchronizedForWebTest().
|
|
uint32_t latest_capture_sequence_number_ = 0u;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// Remote accessibility objects corresponding to the NSWindow that this is
|
|
// displayed to the user in.
|
|
NSAccessibilityRemoteUIElement* __strong remote_window_accessible_;
|
|
+#endif
|
|
|
|
// Used to force the NSApplication's focused accessibility element to be the
|
|
// content::BrowserAccessibilityCocoa accessibility tree when the NSView for
|
|
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
index 984286e99767e06a501fa4be409e35e39c0a2d59..bc878e003e17247f2255f28d41b6419034e58cae 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
@@ -272,8 +272,10 @@
|
|
void RenderWidgetHostViewMac::MigrateNSViewBridge(
|
|
remote_cocoa::mojom::Application* remote_cocoa_application,
|
|
uint64_t parent_ns_view_id) {
|
|
+#if !IS_MAS_BUILD()
|
|
// Destroy the previous remote accessibility element.
|
|
remote_window_accessible_ = nil;
|
|
+#endif
|
|
|
|
// Reset `ns_view_` before resetting `remote_ns_view_` to avoid dangling
|
|
// pointers. `ns_view_` gets reinitialized later in this method.
|
|
@@ -1654,8 +1656,10 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
|
|
|
|
gfx::NativeViewAccessible
|
|
RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() {
|
|
+#if !IS_MAS_BUILD()
|
|
if (remote_window_accessible_)
|
|
return remote_window_accessible_;
|
|
+#endif
|
|
return [GetInProcessNSView() window];
|
|
}
|
|
|
|
@@ -1704,9 +1708,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
|
|
}
|
|
|
|
void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) {
|
|
+#if !IS_MAS_BUILD()
|
|
// When running in-process, just use the NSView's NSWindow as its own
|
|
// accessibility element.
|
|
remote_window_accessible_ = nil;
|
|
+#endif
|
|
}
|
|
|
|
bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame(
|
|
@@ -2230,20 +2236,26 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
|
|
void RenderWidgetHostViewMac::GetRenderWidgetAccessibilityToken(
|
|
GetRenderWidgetAccessibilityTokenCallback callback) {
|
|
base::ProcessId pid = getpid();
|
|
+#if !IS_MAS_BUILD()
|
|
id element_id = GetNativeViewAccessible();
|
|
std::vector<uint8_t> token =
|
|
ui::RemoteAccessibility::GetTokenForLocalElement(element_id);
|
|
std::move(callback).Run(pid, token);
|
|
+#else
|
|
+ std::move(callback).Run(pid, std::vector<uint8_t>());
|
|
+#endif
|
|
}
|
|
|
|
void RenderWidgetHostViewMac::SetRemoteAccessibilityWindowToken(
|
|
const std::vector<uint8_t>& window_token) {
|
|
+#if !IS_MAS_BUILD()
|
|
if (window_token.empty()) {
|
|
remote_window_accessible_ = nil;
|
|
} else {
|
|
remote_window_accessible_ =
|
|
ui::RemoteAccessibility::GetRemoteElementFromToken(window_token);
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
|
|
index f50b1f7c18ef9802b6bdfac09c30a0a42cfbcd4c..f820ff64a63e65b52f513ba5ab826b5bb40137d1 100644
|
|
--- a/content/common/BUILD.gn
|
|
+++ b/content/common/BUILD.gn
|
|
@@ -243,6 +243,7 @@ source_set("common") {
|
|
"//content:content_implementation",
|
|
"//build/config:precompiled_headers",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
|
|
public_deps = [
|
|
":mojo_bindings",
|
|
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
|
|
index d80cdfcc88d89155825c085558772617cf33ad7e..c48d2fa394ab2c39d15ff70ebbf5d3cd5046d804 100644
|
|
--- a/content/renderer/BUILD.gn
|
|
+++ b/content/renderer/BUILD.gn
|
|
@@ -228,6 +228,7 @@ target(link_target_type, "renderer") {
|
|
}
|
|
|
|
configs += [ "//content:content_implementation" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
defines = []
|
|
|
|
public_deps = [
|
|
diff --git a/content/renderer/renderer_main_platform_delegate_mac.mm b/content/renderer/renderer_main_platform_delegate_mac.mm
|
|
index d4db3b179725cb96bcbd0f73db7d52ef8b7522db..6afbf1defb0591d9fe59a81e6c74746d3e15f081 100644
|
|
--- a/content/renderer/renderer_main_platform_delegate_mac.mm
|
|
+++ b/content/renderer/renderer_main_platform_delegate_mac.mm
|
|
@@ -10,9 +10,11 @@
|
|
#include "sandbox/mac/seatbelt.h"
|
|
#include "sandbox/mac/system_services.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
CGError CGSSetDenyWindowServerConnections(bool);
|
|
}
|
|
+#endif
|
|
|
|
namespace content {
|
|
|
|
@@ -22,6 +24,7 @@
|
|
// verifies there are no existing open connections), and then indicates that
|
|
// Chrome should continue execution without access to launchservicesd.
|
|
void DisableSystemServices() {
|
|
+#if !IS_MAS_BUILD()
|
|
// Tell the WindowServer that we don't want to make any future connections.
|
|
// This will return Success as long as there are no open connections, which
|
|
// is what we want.
|
|
@@ -30,6 +33,7 @@ void DisableSystemServices() {
|
|
|
|
sandbox::DisableLaunchServices();
|
|
sandbox::DisableCoreServicesCheckFix();
|
|
+#endif
|
|
}
|
|
|
|
} // namespace
|
|
diff --git a/content/renderer/theme_helper_mac.mm b/content/renderer/theme_helper_mac.mm
|
|
index a119b4439bfb9218c7aaf09dca8e78527da7f20d..faa813b003940280c6eeb87e70173019bdd5280c 100644
|
|
--- a/content/renderer/theme_helper_mac.mm
|
|
+++ b/content/renderer/theme_helper_mac.mm
|
|
@@ -8,10 +8,11 @@
|
|
|
|
#include "base/strings/sys_string_conversions.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
bool CGFontRenderingGetFontSmoothingDisabled(void);
|
|
}
|
|
-
|
|
+#endif
|
|
namespace content {
|
|
|
|
void SystemColorsDidChange(int aqua_color_variant) {
|
|
@@ -24,8 +25,18 @@ void SystemColorsDidChange(int aqua_color_variant) {
|
|
}
|
|
|
|
bool IsSubpixelAntialiasingAvailable() {
|
|
+#if !IS_MAS_BUILD()
|
|
// See https://trac.webkit.org/changeset/239306/webkit for more info.
|
|
return !CGFontRenderingGetFontSmoothingDisabled();
|
|
+#else
|
|
+ NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
|
+ NSString *default_key = @"CGFontRenderingGetFontSmoothingDisabled";
|
|
+ // Check that key exists since boolForKey defaults to NO when the
|
|
+ // key is missing and this key in fact defaults to YES;
|
|
+ if ([defaults objectForKey:default_key] == nil)
|
|
+ return false;
|
|
+ return ![defaults boolForKey:default_key];
|
|
+#endif
|
|
}
|
|
|
|
} // namespace content
|
|
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
|
index 0cf74caf8aeecf49fdc0a3a6fcc1f4964bb97cbb..dc46b42dbbceb17ce601dbd9653eace2b0faffd9 100644
|
|
--- a/content/test/BUILD.gn
|
|
+++ b/content/test/BUILD.gn
|
|
@@ -496,6 +496,7 @@ static_library("test_support") {
|
|
configs += [
|
|
"//build/config:precompiled_headers",
|
|
"//v8:external_startup_data",
|
|
+ "//electron/build/config:mas_build",
|
|
]
|
|
|
|
public_deps = [
|
|
@@ -1102,6 +1103,7 @@ static_library("browsertest_support") {
|
|
}
|
|
|
|
configs += [ "//v8:external_startup_data" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
mojom("content_test_mojo_bindings") {
|
|
@@ -1715,6 +1717,7 @@ test("content_browsertests") {
|
|
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
|
|
|
|
configs += [ "//build/config:precompiled_headers" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
|
|
public_deps = [
|
|
":test_interfaces",
|
|
@@ -2953,6 +2956,7 @@ test("content_unittests") {
|
|
}
|
|
|
|
configs += [ "//build/config:precompiled_headers" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
|
|
public_deps = [ "//content:content_resources" ]
|
|
|
|
diff --git a/content/web_test/BUILD.gn b/content/web_test/BUILD.gn
|
|
index 84d0f2cd2b7366e37876ed80eef9461afedd6385..ae498eb3b2cade9729806e2be04c5a2570f5de5f 100644
|
|
--- a/content/web_test/BUILD.gn
|
|
+++ b/content/web_test/BUILD.gn
|
|
@@ -151,6 +151,8 @@ static_library("web_test_browser") {
|
|
"browser/web_test_tts_platform.h",
|
|
]
|
|
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
+
|
|
if (is_mac) {
|
|
sources += [ "browser/web_test_shell_platform_delegate_mac.mm" ]
|
|
} else if (toolkit_views && !is_castos) {
|
|
diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn
|
|
index 05cce11f233e04e22bf9166ee107661900686bea..70268a1ff7c59a03903072fafe8b62acc3454287 100644
|
|
--- a/device/bluetooth/BUILD.gn
|
|
+++ b/device/bluetooth/BUILD.gn
|
|
@@ -248,6 +248,7 @@ component("bluetooth") {
|
|
"IOKit.framework",
|
|
"Foundation.framework",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_mac) {
|
|
diff --git a/device/bluetooth/bluetooth_adapter_mac.mm b/device/bluetooth/bluetooth_adapter_mac.mm
|
|
index cda4f747099492c306db22c6dba98249e443cd74..f63dbbe7149010efa06c9cbb215399eb9e882cb9 100644
|
|
--- a/device/bluetooth/bluetooth_adapter_mac.mm
|
|
+++ b/device/bluetooth/bluetooth_adapter_mac.mm
|
|
@@ -39,6 +39,7 @@
|
|
#include "device/bluetooth/bluetooth_socket_mac.h"
|
|
#include "device/bluetooth/public/cpp/bluetooth_address.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
// Undocumented IOBluetooth Preference API [1]. Used by `blueutil` [2] and
|
|
// `Karabiner` [3] to programmatically control the Bluetooth state. Calling the
|
|
@@ -52,6 +53,7 @@
|
|
// [4] https://support.apple.com/kb/PH25091
|
|
void IOBluetoothPreferenceSetControllerPowerState(int state);
|
|
}
|
|
+#endif
|
|
|
|
namespace {
|
|
|
|
@@ -103,8 +105,10 @@ bool IsDeviceSystemPaired(const std::string& device_address) {
|
|
: controller_state_function_(
|
|
base::BindRepeating(&BluetoothAdapterMac::GetHostControllerState,
|
|
base::Unretained(this))),
|
|
+#if !IS_MAS_BUILD()
|
|
power_state_function_(
|
|
base::BindRepeating(IOBluetoothPreferenceSetControllerPowerState)),
|
|
+#endif
|
|
device_paired_status_callback_(
|
|
base::BindRepeating(&IsDeviceSystemPaired)) {
|
|
}
|
|
@@ -252,8 +256,12 @@ bool IsDeviceSystemPaired(const std::string& device_address) {
|
|
}
|
|
|
|
bool BluetoothAdapterMac::SetPoweredImpl(bool powered) {
|
|
+#if !IS_MAS_BUILD()
|
|
power_state_function_.Run(base::strict_cast<int>(powered));
|
|
return true;
|
|
+#else
|
|
+ return false;
|
|
+#endif
|
|
}
|
|
|
|
base::WeakPtr<BluetoothLowEnergyAdapterApple>
|
|
diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn
|
|
index 592487f13c5c7806cf59b6653c3c4cdc7bf0a144..a96169c8861287940d55a9aabcdbfcfd23dc6056 100644
|
|
--- a/gpu/ipc/service/BUILD.gn
|
|
+++ b/gpu/ipc/service/BUILD.gn
|
|
@@ -133,6 +133,7 @@ component("service") {
|
|
"QuartzCore.framework",
|
|
]
|
|
defines += [ "GL_SILENCE_DEPRECATION" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
if (is_ios) {
|
|
sources += [ "image_transport_surface_ios.mm" ]
|
|
diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.h b/gpu/ipc/service/image_transport_surface_overlay_mac.h
|
|
index 0cc98a9a797286f077b9bfa404f0f547e9966593..947baedbb6159fedd4ad38dcd03b2b6b769ebec9 100644
|
|
--- a/gpu/ipc/service/image_transport_surface_overlay_mac.h
|
|
+++ b/gpu/ipc/service/image_transport_surface_overlay_mac.h
|
|
@@ -23,7 +23,9 @@
|
|
#include "ui/display/types/display_constants.h"
|
|
#endif
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
@class CAContext;
|
|
+#endif
|
|
@class CALayer;
|
|
|
|
namespace ui {
|
|
diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
|
|
index 90e093cd2d499ba0f37f3246bab288c758b51e19..6027134a4de53e6fe39fdbfdb67885e0b5f56e40 100644
|
|
--- a/media/audio/BUILD.gn
|
|
+++ b/media/audio/BUILD.gn
|
|
@@ -199,6 +199,7 @@ source_set("audio") {
|
|
"CoreMedia.framework",
|
|
]
|
|
weak_frameworks = [ "ScreenCaptureKit.framework" ] # macOS 13.0
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_ios) {
|
|
diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc
|
|
index 808f4e1c7beb03cc5377465882940eea94ad61a7..d001436c3a5a8a0fc25995519772478f04ddb35f 100644
|
|
--- a/media/audio/apple/audio_low_latency_input.cc
|
|
+++ b/media/audio/apple/audio_low_latency_input.cc
|
|
@@ -34,19 +34,23 @@
|
|
|
|
namespace {
|
|
extern "C" {
|
|
+#if !IS_MAS_BUILD()
|
|
// See:
|
|
// https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/PAL/pal/spi/cf/CoreAudioSPI.h?rev=228264
|
|
OSStatus AudioDeviceDuck(AudioDeviceID inDevice,
|
|
Float32 inDuckedLevel,
|
|
const AudioTimeStamp* __nullable inStartTime,
|
|
Float32 inRampDuration) __attribute__((weak_import));
|
|
+#endif
|
|
}
|
|
|
|
void UndoDucking(AudioDeviceID output_device_id) {
|
|
+#if !IS_MAS_BUILD()
|
|
if (AudioDeviceDuck != nullptr) {
|
|
// Ramp the volume back up over half a second.
|
|
AudioDeviceDuck(output_device_id, 1.0, nullptr, 0.5);
|
|
}
|
|
+#endif
|
|
}
|
|
} // namespace
|
|
#endif
|
|
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
|
|
index 6ec6a5b008faec2a381a85c8771f4e4d92488a1f..17c56fb2d296445440a7403ca73f1a647fd18e7c 100644
|
|
--- a/media/audio/mac/audio_manager_mac.cc
|
|
+++ b/media/audio/mac/audio_manager_mac.cc
|
|
@@ -970,7 +970,7 @@ AudioParameters AudioManagerMac::GetPreferredOutputStreamParameters(
|
|
|
|
void AudioManagerMac::InitializeOnAudioThread() {
|
|
DCHECK(GetTaskRunner()->BelongsToCurrentThread());
|
|
- InitializeCoreAudioDispatchOverride();
|
|
+ // InitializeCoreAudioDispatchOverride();
|
|
power_observer_ = std::make_unique<AudioPowerObserver>();
|
|
}
|
|
|
|
diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
|
|
index 63414d8db326c0fdd44ed59f99400d5c16cfc93c..d80a104451c66017750d04c776355cfa4691d2a3 100644
|
|
--- a/net/dns/BUILD.gn
|
|
+++ b/net/dns/BUILD.gn
|
|
@@ -187,6 +187,8 @@ source_set("dns") {
|
|
":host_resolver_manager",
|
|
":mdns_client",
|
|
]
|
|
+
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
# The standard API of net/dns.
|
|
diff --git a/net/dns/dns_config_service_posix.cc b/net/dns/dns_config_service_posix.cc
|
|
index 04c2079aac882cb2913583d4692302fdf564a74d..2a03be8bb4b089473e61601323646d257da5e39e 100644
|
|
--- a/net/dns/dns_config_service_posix.cc
|
|
+++ b/net/dns/dns_config_service_posix.cc
|
|
@@ -130,8 +130,8 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher {
|
|
|
|
bool Watch() override {
|
|
CheckOnCorrectSequence();
|
|
-
|
|
bool success = true;
|
|
+#if !IS_MAS_BUILD()
|
|
if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged,
|
|
base::Unretained(this)))) {
|
|
LOG(ERROR) << "DNS config watch failed to start.";
|
|
@@ -148,6 +148,7 @@ class DnsConfigServicePosix::Watcher : public DnsConfigService::Watcher {
|
|
success = false;
|
|
}
|
|
#endif // !BUILDFLAG(IS_IOS)
|
|
+#endif
|
|
return success;
|
|
}
|
|
|
|
diff --git a/sandbox/mac/BUILD.gn b/sandbox/mac/BUILD.gn
|
|
index 299a028f23314f479d2da8f914a5bdf34698d854..672dcb04dd3cf4e3cc71403f727a1dde91ad4402 100644
|
|
--- a/sandbox/mac/BUILD.gn
|
|
+++ b/sandbox/mac/BUILD.gn
|
|
@@ -39,6 +39,7 @@ component("seatbelt") {
|
|
]
|
|
public_deps = [ "//third_party/protobuf:protobuf_lite" ]
|
|
defines = [ "SEATBELT_IMPLEMENTATION" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
component("seatbelt_extension") {
|
|
@@ -52,6 +53,7 @@ component("seatbelt_extension") {
|
|
libs = [ "sandbox" ]
|
|
public_deps = [ "//base" ]
|
|
defines = [ "SEATBELT_IMPLEMENTATION" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
component("system_services") {
|
|
@@ -66,6 +68,7 @@ component("system_services") {
|
|
deps = [ ":seatbelt_export" ]
|
|
public_deps = [ "//base" ]
|
|
defines = [ "SEATBELT_IMPLEMENTATION" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
source_set("sandbox_unittests") {
|
|
diff --git a/sandbox/mac/sandbox_compiler.cc b/sandbox/mac/sandbox_compiler.cc
|
|
index f35d9ef2a2df3db8ecbf1d7b909c7b1cf33f3cd9..a710b8b4f851666fd65bb37f69ec2fa70259697b 100644
|
|
--- a/sandbox/mac/sandbox_compiler.cc
|
|
+++ b/sandbox/mac/sandbox_compiler.cc
|
|
@@ -47,6 +47,7 @@ bool SandboxCompiler::SetParameter(const std::string& key,
|
|
}
|
|
|
|
bool SandboxCompiler::CompileAndApplyProfile(std::string& error) {
|
|
+#if !IS_MAS_BUILD()
|
|
if (mode_ == Target::kSource) {
|
|
std::vector<const char*> params;
|
|
|
|
@@ -67,6 +68,9 @@ bool SandboxCompiler::CompileAndApplyProfile(std::string& error) {
|
|
}
|
|
}
|
|
return false;
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
bool SandboxCompiler::CompilePolicyToProto(mac::SandboxPolicy& policy,
|
|
diff --git a/sandbox/mac/sandbox_logging.cc b/sandbox/mac/sandbox_logging.cc
|
|
index 095c639b9893e885d8937e29ed7d47a7c28bc6b6..cfa5e307de8326fbc335996feaf9595d1572cd3d 100644
|
|
--- a/sandbox/mac/sandbox_logging.cc
|
|
+++ b/sandbox/mac/sandbox_logging.cc
|
|
@@ -33,9 +33,11 @@
|
|
}
|
|
#endif
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
void abort_report_np(const char*, ...);
|
|
}
|
|
+#endif
|
|
|
|
namespace sandbox::logging {
|
|
|
|
@@ -76,9 +78,11 @@ void SendOsLog(Level level, const char* message) {
|
|
sandbox::crash_message::SetCrashMessage(message);
|
|
}
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
if (level == Level::FATAL) {
|
|
abort_report_np(message);
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
// |error| is strerror(errno) when a P* logging function is called. Pass
|
|
diff --git a/sandbox/mac/seatbelt.cc b/sandbox/mac/seatbelt.cc
|
|
index 15c835e118456394c0a00ac98c11241c14ca75bd..83759e5fbc252fa57ca2fa122873dfac3d61d46d 100644
|
|
--- a/sandbox/mac/seatbelt.cc
|
|
+++ b/sandbox/mac/seatbelt.cc
|
|
@@ -9,7 +9,7 @@
|
|
|
|
extern "C" {
|
|
#include <sandbox.h>
|
|
-
|
|
+#if !IS_MAS_BUILD()
|
|
int sandbox_init_with_parameters(const char* profile,
|
|
uint64_t flags,
|
|
const char* const parameters[],
|
|
@@ -40,13 +40,13 @@ sandbox_profile_t* sandbox_compile_string(const char* data,
|
|
char** error);
|
|
int sandbox_apply(sandbox_profile_t*);
|
|
void sandbox_free_profile(sandbox_profile_t*);
|
|
-
|
|
+#endif
|
|
} // extern "C"
|
|
|
|
namespace sandbox {
|
|
|
|
namespace {
|
|
-
|
|
+#if !IS_MAS_BUILD()
|
|
bool HandleSandboxResult(int rv, char* errorbuf, std::string* error) {
|
|
if (rv == 0) {
|
|
if (error)
|
|
@@ -74,36 +74,48 @@ bool HandleSandboxErrno(int rv, const char* message, std::string* error) {
|
|
}
|
|
return false;
|
|
}
|
|
-
|
|
+#endif
|
|
} // namespace
|
|
|
|
// static
|
|
Seatbelt::Parameters Seatbelt::Parameters::Create() {
|
|
Parameters params;
|
|
+#if !IS_MAS_BUILD()
|
|
params.params_ = ::sandbox_create_params();
|
|
+#endif
|
|
return params;
|
|
}
|
|
|
|
Seatbelt::Parameters::Parameters() = default;
|
|
|
|
Seatbelt::Parameters::Parameters(Seatbelt::Parameters&& other) {
|
|
+#if !IS_MAS_BUILD()
|
|
params_ = std::exchange(other.params_, nullptr);
|
|
+#endif
|
|
}
|
|
|
|
Seatbelt::Parameters& Seatbelt::Parameters::operator=(
|
|
Seatbelt::Parameters&& other) {
|
|
+#if !IS_MAS_BUILD()
|
|
params_ = std::exchange(other.params_, nullptr);
|
|
+#endif
|
|
return *this;
|
|
}
|
|
|
|
bool Seatbelt::Parameters::Set(const char* key, const char* value) {
|
|
+#if !IS_MAS_BUILD()
|
|
return ::sandbox_set_param(params_, key, value) == 0;
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
Seatbelt::Parameters::~Parameters() {
|
|
+#if !IS_MAS_BUILD()
|
|
if (params_) {
|
|
::sandbox_free_params(params_);
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
// Initialize the static member variables.
|
|
@@ -114,6 +126,7 @@ const char* Seatbelt::kProfilePureComputation = kSBXProfilePureComputation;
|
|
|
|
// static
|
|
bool Seatbelt::Init(const char* profile, uint64_t flags, std::string* error) {
|
|
+#if !IS_MAS_BUILD()
|
|
// OS X deprecated these functions, but did not provide a suitable replacement,
|
|
// so ignore the deprecation warning.
|
|
#pragma clang diagnostic push
|
|
@@ -122,6 +135,9 @@ bool Seatbelt::Init(const char* profile, uint64_t flags, std::string* error) {
|
|
int rv = ::sandbox_init(profile, flags, &errorbuf);
|
|
return HandleSandboxResult(rv, errorbuf, error);
|
|
#pragma clang diagnostic pop
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
// static
|
|
@@ -129,10 +145,14 @@ bool Seatbelt::InitWithParams(const char* profile,
|
|
uint64_t flags,
|
|
const char* const parameters[],
|
|
std::string* error) {
|
|
+#if !IS_MAS_BUILD()
|
|
char* errorbuf = nullptr;
|
|
int rv =
|
|
::sandbox_init_with_parameters(profile, flags, parameters, &errorbuf);
|
|
return HandleSandboxResult(rv, errorbuf, error);
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
// static
|
|
@@ -140,6 +160,7 @@ bool Seatbelt::Compile(const char* profile,
|
|
const Seatbelt::Parameters& params,
|
|
std::string& compiled_profile,
|
|
std::string* error) {
|
|
+#if !IS_MAS_BUILD()
|
|
char* errorbuf = nullptr;
|
|
sandbox_profile_t* sandbox_profile =
|
|
::sandbox_compile_string(profile, params.params(), &errorbuf);
|
|
@@ -149,33 +170,44 @@ bool Seatbelt::Compile(const char* profile,
|
|
compiled_profile.assign(reinterpret_cast<const char*>(sandbox_profile->data),
|
|
sandbox_profile->size);
|
|
::sandbox_free_profile(sandbox_profile);
|
|
+#endif
|
|
return true;
|
|
}
|
|
|
|
// static
|
|
bool Seatbelt::ApplyCompiledProfile(const std::string& profile,
|
|
std::string* error) {
|
|
+#if !IS_MAS_BUILD()
|
|
sandbox_profile_t sbox_profile = {
|
|
.builtin = nullptr,
|
|
.data = reinterpret_cast<const uint8_t*>(profile.data()),
|
|
.size = profile.size()};
|
|
return HandleSandboxErrno(::sandbox_apply(&sbox_profile),
|
|
"sandbox_apply: ", error);
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
// static
|
|
void Seatbelt::FreeError(char* errorbuf) {
|
|
+#if !IS_MAS_BUILD()
|
|
// OS X deprecated these functions, but did not provide a suitable replacement,
|
|
// so ignore the deprecation warning.
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
return ::sandbox_free_error(errorbuf);
|
|
#pragma clang diagnostic pop
|
|
+#endif
|
|
}
|
|
|
|
// static
|
|
bool Seatbelt::IsSandboxed() {
|
|
+#if !IS_MAS_BUILD()
|
|
return ::sandbox_check(getpid(), NULL, 0);
|
|
+#else
|
|
+ return true;
|
|
+#endif
|
|
}
|
|
|
|
} // namespace sandbox
|
|
diff --git a/sandbox/mac/seatbelt_extension.cc b/sandbox/mac/seatbelt_extension.cc
|
|
index 18479382a277cb2b25626ec8d31442bfd1377ee6..7d80d7fa8337523c3a70f317f883f0cc26c6f40b 100644
|
|
--- a/sandbox/mac/seatbelt_extension.cc
|
|
+++ b/sandbox/mac/seatbelt_extension.cc
|
|
@@ -11,6 +11,7 @@
|
|
#include "base/notreached.h"
|
|
#include "sandbox/mac/seatbelt_extension_token.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// libsandbox private API.
|
|
extern "C" {
|
|
extern const char* APP_SANDBOX_READ;
|
|
@@ -22,6 +23,7 @@ char* sandbox_extension_issue_file(const char* type,
|
|
const char* path,
|
|
uint32_t flags);
|
|
}
|
|
+#endif
|
|
|
|
namespace sandbox {
|
|
|
|
@@ -50,7 +52,11 @@ std::unique_ptr<SeatbeltExtension> SeatbeltExtension::FromToken(
|
|
|
|
bool SeatbeltExtension::Consume() {
|
|
DCHECK(!token_.empty());
|
|
+#if !IS_MAS_BUILD()
|
|
handle_ = sandbox_extension_consume(token_.c_str());
|
|
+#else
|
|
+ handle_ = -1;
|
|
+#endif
|
|
return handle_ > 0;
|
|
}
|
|
|
|
@@ -62,7 +68,11 @@ bool SeatbeltExtension::ConsumePermanently() {
|
|
}
|
|
|
|
bool SeatbeltExtension::Revoke() {
|
|
+#if !IS_MAS_BUILD()
|
|
int rv = sandbox_extension_release(handle_);
|
|
+#else
|
|
+ int rv = -1;
|
|
+#endif
|
|
handle_ = 0;
|
|
token_.clear();
|
|
return rv == 0;
|
|
@@ -80,12 +90,14 @@ SeatbeltExtension::SeatbeltExtension(const std::string& token)
|
|
char* SeatbeltExtension::IssueToken(SeatbeltExtension::Type type,
|
|
const std::string& resource) {
|
|
switch (type) {
|
|
+#if !IS_MAS_BUILD()
|
|
case FILE_READ:
|
|
return sandbox_extension_issue_file(APP_SANDBOX_READ, resource.c_str(),
|
|
0);
|
|
case FILE_READ_WRITE:
|
|
return sandbox_extension_issue_file(APP_SANDBOX_READ_WRITE,
|
|
resource.c_str(), 0);
|
|
+#endif
|
|
default:
|
|
NOTREACHED();
|
|
return nullptr;
|
|
diff --git a/sandbox/mac/system_services.cc b/sandbox/mac/system_services.cc
|
|
index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..dc30306f2c5d20503399fc3a8860773aa0044352 100644
|
|
--- a/sandbox/mac/system_services.cc
|
|
+++ b/sandbox/mac/system_services.cc
|
|
@@ -9,6 +9,7 @@
|
|
|
|
#include "base/apple/osstatus_logging.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
OSStatus SetApplicationIsDaemon(Boolean isDaemon);
|
|
void _LSSetApplicationLaunchServicesServerConnectionStatus(
|
|
@@ -19,10 +20,12 @@ void _LSSetApplicationLaunchServicesServerConnectionStatus(
|
|
// https://github.com/WebKit/WebKit/blob/24aaedc770d192d03a07ba4a71727274aaa8fc07/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm#L840
|
|
void _CSCheckFixDisable();
|
|
} // extern "C"
|
|
+#endif
|
|
|
|
namespace sandbox {
|
|
|
|
void DisableLaunchServices() {
|
|
+ #if !IS_MAS_BUILD()
|
|
// Allow the process to continue without a LaunchServices ASN. The
|
|
// INIT_Process function in HIServices will abort if it cannot connect to
|
|
// launchservicesd to get an ASN. By setting this flag, HIServices skips
|
|
@@ -36,10 +39,13 @@ void DisableLaunchServices() {
|
|
0, ^bool(CFDictionaryRef options) {
|
|
return false;
|
|
});
|
|
+ #endif
|
|
}
|
|
|
|
void DisableCoreServicesCheckFix() {
|
|
+#if !IS_MAS_BUILD()
|
|
_CSCheckFixDisable();
|
|
+#endif
|
|
}
|
|
|
|
} // namespace sandbox
|
|
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
|
|
index 9f1346108a24fdc93147eb31411d94c1f9064a44..238405c2f811d80ab58673d69b7a16e201e51818 100644
|
|
--- a/third_party/blink/renderer/core/BUILD.gn
|
|
+++ b/third_party/blink/renderer/core/BUILD.gn
|
|
@@ -317,6 +317,7 @@ component("core") {
|
|
configs -= core_config_remove
|
|
configs += core_config_add
|
|
configs += [ "//v8:external_startup_data" ]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
|
|
public_deps = [
|
|
":buildflags",
|
|
diff --git a/third_party/blink/renderer/core/editing/build.gni b/third_party/blink/renderer/core/editing/build.gni
|
|
index f12dd0a759fd8a79e648e14711274ccc40642a3d..63ae0ca4f63e68913c809b9440a922a95e914dcd 100644
|
|
--- a/third_party/blink/renderer/core/editing/build.gni
|
|
+++ b/third_party/blink/renderer/core/editing/build.gni
|
|
@@ -354,10 +354,14 @@ blink_core_sources_editing = [
|
|
if (is_mac) {
|
|
blink_core_sources_editing += [
|
|
"commands/smart_replace_cf.cc",
|
|
- "kill_ring_mac.mm",
|
|
"substring_util.h",
|
|
"substring_util.mm",
|
|
]
|
|
+ if (is_mas_build) {
|
|
+ blink_core_sources_editing += [ "kill_ring_mac.mm" ]
|
|
+ } else {
|
|
+ blink_core_sources_editing += [ "kill_ring_none.cc" ]
|
|
+ }
|
|
} else {
|
|
blink_core_sources_editing += [ "kill_ring_none.cc" ]
|
|
}
|
|
diff --git a/ui/accelerated_widget_mac/BUILD.gn b/ui/accelerated_widget_mac/BUILD.gn
|
|
index 3ead42e14ad9d41a30c5637678a3ac49296ce2a6..8dec61ee6a62e54ec3c8c5dd5e08601c28d04dfe 100644
|
|
--- a/ui/accelerated_widget_mac/BUILD.gn
|
|
+++ b/ui/accelerated_widget_mac/BUILD.gn
|
|
@@ -33,6 +33,8 @@ component("accelerated_widget_mac") {
|
|
"QuartzCore.framework",
|
|
]
|
|
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
+
|
|
if (is_ios) {
|
|
sources += [ "ca_layer_frame_sink_provider.h" ]
|
|
}
|
|
diff --git a/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h b/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h
|
|
index b11c365f42dd1ddc363de0d94c387b13ac65bef3..c274340cac7aaf22321b9cd35a8fad2c6eeae5ce 100644
|
|
--- a/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h
|
|
+++ b/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h
|
|
@@ -14,7 +14,9 @@
|
|
#include "ui/gl/gl_surface.h"
|
|
#include "ui/gl/presenter.h"
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
@class CAContext;
|
|
+#endif
|
|
@class CALayer;
|
|
|
|
namespace ui {
|
|
@@ -110,7 +112,9 @@ class ACCELERATED_WIDGET_MAC_EXPORT CALayerTreeCoordinator {
|
|
// both the current tree and the pending trees.
|
|
size_t presented_ca_layer_trees_max_length_ = 2;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
CAContext* __strong ca_context_;
|
|
+#endif
|
|
|
|
// The root CALayer to display the current frame. This does not change
|
|
// over the lifetime of the object.
|
|
diff --git a/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm b/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm
|
|
index 4efcff17f550fc245ad13a1c80cecb40a1596f6d..d4862996b99662ca7f29d87d122a4e91f523692b 100644
|
|
--- a/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm
|
|
+++ b/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm
|
|
@@ -33,6 +33,7 @@
|
|
new_presentation_feedback_timestamps_(
|
|
new_presentation_feedback_timestamps),
|
|
buffer_presented_callback_(buffer_presented_callback) {
|
|
+#if !IS_MAS_BUILD()
|
|
if (allow_remote_layers_) {
|
|
root_ca_layer_ = [[CALayer alloc] init];
|
|
#if BUILDFLAG(IS_MAC)
|
|
@@ -61,6 +62,7 @@
|
|
#endif
|
|
ca_context_.layer = root_ca_layer_;
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
CALayerTreeCoordinator::~CALayerTreeCoordinator() = default;
|
|
@@ -164,9 +166,13 @@
|
|
TRACE_EVENT_INSTANT2("test_gpu", "SwapBuffers", TRACE_EVENT_SCOPE_THREAD,
|
|
"GLImpl", static_cast<int>(gl::GetGLImplementation()),
|
|
"width", pixel_size_.width());
|
|
+#if !IS_MAS_BUILD()
|
|
if (allow_remote_layers_) {
|
|
params.ca_context_id = [ca_context_ contextId];
|
|
} else {
|
|
+#else
|
|
+ if (true) {
|
|
+#endif
|
|
IOSurfaceRef io_surface = frame->layer_tree->GetContentIOSurface();
|
|
if (io_surface) {
|
|
DCHECK(!allow_remote_layers_);
|
|
diff --git a/ui/accelerated_widget_mac/display_ca_layer_tree.mm b/ui/accelerated_widget_mac/display_ca_layer_tree.mm
|
|
index dcf493d62990018040a3f84b6f875af737bd2214..6ffffe8b3946e0427aead8be19878c537c841294 100644
|
|
--- a/ui/accelerated_widget_mac/display_ca_layer_tree.mm
|
|
+++ b/ui/accelerated_widget_mac/display_ca_layer_tree.mm
|
|
@@ -121,6 +121,7 @@ - (void)setContentsChanged;
|
|
}
|
|
|
|
void DisplayCALayerTree::GotCALayerFrame(uint32_t ca_context_id) {
|
|
+#if !IS_MAS_BUILD()
|
|
// Early-out if the remote layer has not changed.
|
|
if (remote_layer_.contextId == ca_context_id) {
|
|
return;
|
|
@@ -150,6 +151,9 @@ - (void)setContentsChanged;
|
|
[io_surface_layer_ removeFromSuperlayer];
|
|
io_surface_layer_ = nil;
|
|
}
|
|
+#else
|
|
+ NOTREACHED() << "Remote layer is being used in MAS build";
|
|
+#endif
|
|
}
|
|
|
|
void DisplayCALayerTree::GotIOSurfaceFrame(
|
|
diff --git a/ui/accessibility/platform/BUILD.gn b/ui/accessibility/platform/BUILD.gn
|
|
index fc99800e70eb29b94ac356b55caef81a25518896..e9fe9be7f737372b0111e113bd120b520fb4568a 100644
|
|
--- a/ui/accessibility/platform/BUILD.gn
|
|
+++ b/ui/accessibility/platform/BUILD.gn
|
|
@@ -254,6 +254,7 @@ component("platform") {
|
|
weak_frameworks = [
|
|
"Accessibility.framework", # macOS 11
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (use_atk) {
|
|
diff --git a/ui/accessibility/platform/inspect/ax_transform_mac.mm b/ui/accessibility/platform/inspect/ax_transform_mac.mm
|
|
index 84e156b7ff28abc2071dde155e56a2a92a53b142..bd73dac7fe3ed256cab805a0815d31d4f5e7dffc 100644
|
|
--- a/ui/accessibility/platform/inspect/ax_transform_mac.mm
|
|
+++ b/ui/accessibility/platform/inspect/ax_transform_mac.mm
|
|
@@ -108,6 +108,7 @@
|
|
}
|
|
}
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// AXTextMarker
|
|
if (IsAXTextMarker(value)) {
|
|
return AXTextMarkerToBaseValue(value, indexer);
|
|
@@ -117,6 +118,7 @@
|
|
if (IsAXTextMarkerRange(value)) {
|
|
return AXTextMarkerRangeToBaseValue(value, indexer);
|
|
}
|
|
+#endif
|
|
|
|
// Accessible object
|
|
if (AXElementWrapper::IsValidElement(value)) {
|
|
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
|
|
index fa7f03026c5299f113d340728ae72991c9401bc1..806acccd8f42771f016c4167886371378e2649ca 100644
|
|
--- a/ui/base/BUILD.gn
|
|
+++ b/ui/base/BUILD.gn
|
|
@@ -361,6 +361,7 @@ component("base") {
|
|
"interaction/element_tracker_mac.mm",
|
|
"resource/resource_bundle_mac.mm",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_apple) {
|
|
@@ -378,6 +379,13 @@ component("base") {
|
|
sources += [ "resource/resource_bundle_lacros.cc" ]
|
|
}
|
|
|
|
+ if (is_mas_build) {
|
|
+ sources -= [
|
|
+ "cocoa/remote_accessibility_api.h",
|
|
+ "cocoa/remote_accessibility_api.mm",
|
|
+ ]
|
|
+ }
|
|
+
|
|
if (is_ios) {
|
|
sources += [
|
|
"device_form_factor_ios.mm",
|
|
diff --git a/ui/base/cocoa/remote_accessibility_api.h b/ui/base/cocoa/remote_accessibility_api.h
|
|
index 3182458838aa96d34911280ab4c6c3aa4aa22d6d..17b57f54492421743a0d69106eefce2c9beb8e87 100644
|
|
--- a/ui/base/cocoa/remote_accessibility_api.h
|
|
+++ b/ui/base/cocoa/remote_accessibility_api.h
|
|
@@ -13,6 +13,8 @@
|
|
|
|
// NSAccessibilityRemoteUIElement is a private class in AppKit.
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
+
|
|
@interface NSAccessibilityRemoteUIElement : NSObject
|
|
+ (void)setRemoteUIApp:(BOOL)flag;
|
|
+ (BOOL)isRemoteUIApp;
|
|
@@ -38,4 +40,6 @@ class COMPONENT_EXPORT(UI_BASE) RemoteAccessibility {
|
|
|
|
} // namespace ui
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
#endif // UI_BASE_COCOA_REMOTE_ACCESSIBILITY_API_H_
|
|
diff --git a/ui/base/cocoa/remote_layer_api.h b/ui/base/cocoa/remote_layer_api.h
|
|
index 59dc2f82214cfd883b6ebef3b0fb25af6387a9cd..d585ba14b34021a93c878d0d9f9d9ef70eed32ca 100644
|
|
--- a/ui/base/cocoa/remote_layer_api.h
|
|
+++ b/ui/base/cocoa/remote_layer_api.h
|
|
@@ -17,6 +17,7 @@
|
|
|
|
#if BUILDFLAG(IS_MAC)
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// The CGSConnectionID is used to create the CAContext in the process that is
|
|
// going to share the CALayers that it is rendering to another process to
|
|
// display.
|
|
@@ -68,6 +69,8 @@ extern NSString* const kCAContextIgnoresHitTest;
|
|
|
|
#endif // __OBJC__
|
|
|
|
+#endif // MAS_BUILD
|
|
+
|
|
namespace ui {
|
|
|
|
// This function will check if all of the interfaces listed above are supported
|
|
diff --git a/ui/base/cocoa/remote_layer_api.mm b/ui/base/cocoa/remote_layer_api.mm
|
|
index fc25ba79d2b0e1acdb7ba54b89e7d6e16f94771b..962df2d65d61ec0836cf465d847eb666033846f2 100644
|
|
--- a/ui/base/cocoa/remote_layer_api.mm
|
|
+++ b/ui/base/cocoa/remote_layer_api.mm
|
|
@@ -10,6 +10,7 @@
|
|
|
|
namespace ui {
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
namespace {
|
|
// Control use of cross-process CALayers to display content directly from the
|
|
// GPU process on Mac.
|
|
@@ -17,8 +18,10 @@
|
|
"RemoteCoreAnimationAPI",
|
|
base::FEATURE_ENABLED_BY_DEFAULT);
|
|
} // namespace
|
|
+#endif
|
|
|
|
bool RemoteLayerAPISupported() {
|
|
+#if !IS_MAS_BUILD()
|
|
if (!base::FeatureList::IsEnabled(kRemoteCoreAnimationAPI))
|
|
return false;
|
|
|
|
@@ -55,6 +58,9 @@ bool RemoteLayerAPISupported() {
|
|
|
|
// If everything is there, we should be able to use the API.
|
|
return true;
|
|
+#else
|
|
+ return false;
|
|
+#endif // MAS_BUILD
|
|
}
|
|
|
|
} // namespace
|
|
diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn
|
|
index 96f0d3a75a639a69eab6ef12f27c7b23df99d508..d89c075498c060379d42f6089cddb41999f7220e 100644
|
|
--- a/ui/display/BUILD.gn
|
|
+++ b/ui/display/BUILD.gn
|
|
@@ -69,6 +69,10 @@ component("display") {
|
|
"mac/display_link_mac.h",
|
|
"mac/screen_mac.mm",
|
|
]
|
|
+
|
|
+ configs += [
|
|
+ "//electron/build/config:mas_build"
|
|
+ ]
|
|
}
|
|
|
|
if (is_win) {
|
|
diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm
|
|
index 268934b96daccacd1cbd0a441d60ceb9043d7c15..6889b083f5aa314417832210f76e110cf5eb45a6 100644
|
|
--- a/ui/display/mac/screen_mac.mm
|
|
+++ b/ui/display/mac/screen_mac.mm
|
|
@@ -171,7 +171,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) {
|
|
display.set_color_depth(Display::kDefaultBitsPerPixel);
|
|
display.set_depth_per_component(Display::kDefaultBitsPerComponent);
|
|
}
|
|
+#if IS_MAS_BUILD()
|
|
+ // This is equivalent to the CGDisplayUsesForceToGray() API as at 2018-08-06,
|
|
+ // but avoids usage of the private API.
|
|
+ CFStringRef app = CFSTR("com.apple.CoreGraphics");
|
|
+ CFStringRef key = CFSTR("DisplayUseForcedGray");
|
|
+ Boolean key_valid = false;
|
|
+ display.set_is_monochrome(
|
|
+ CFPreferencesGetAppBooleanValue(key, app, &key_valid));
|
|
+#else
|
|
display.set_is_monochrome(CGDisplayUsesForceToGray());
|
|
+#endif
|
|
|
|
// Query the display's refresh rate.
|
|
{
|
|
diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn
|
|
index 5ad5e8313d93b970f4b140d074b6aa319be23b26..fee30feaa460f9a14d0e28ff55ca595c8782f56e 100644
|
|
--- a/ui/gfx/BUILD.gn
|
|
+++ b/ui/gfx/BUILD.gn
|
|
@@ -204,6 +204,7 @@ component("gfx") {
|
|
"scoped_ns_graphics_context_save_gstate_mac.h",
|
|
"scoped_ns_graphics_context_save_gstate_mac.mm",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
if (is_win) {
|
|
sources += [
|
|
diff --git a/ui/gfx/platform_font_mac.mm b/ui/gfx/platform_font_mac.mm
|
|
index 0ab5fbd2a81d8860c73f29c08896f6755b5ca5fa..9400c6c7698258ff2834c550fb8901b49ced35bd 100644
|
|
--- a/ui/gfx/platform_font_mac.mm
|
|
+++ b/ui/gfx/platform_font_mac.mm
|
|
@@ -28,9 +28,11 @@
|
|
|
|
using Weight = Font::Weight;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
extern "C" {
|
|
bool CTFontDescriptorIsSystemUIFont(CTFontDescriptorRef);
|
|
}
|
|
+#endif
|
|
|
|
namespace {
|
|
|
|
@@ -245,7 +247,13 @@ CTFontRef SystemFontForConstructorOfType(PlatformFontMac::SystemFontType type) {
|
|
// TODO(avi, etienneb): Figure out this font stuff.
|
|
base::apple::ScopedCFTypeRef<CTFontDescriptorRef> descriptor(
|
|
CTFontCopyFontDescriptor(font));
|
|
+#if IS_MAS_BUILD()
|
|
+ CFNumberRef priority = (CFNumberRef)CTFontDescriptorCopyAttribute(descriptor.get(), (CFStringRef)kCTFontPriorityAttribute);
|
|
+ SInt64 v;
|
|
+ if (CFNumberGetValue(priority, kCFNumberSInt64Type, &v) && v == kCTFontPrioritySystem) {
|
|
+#else
|
|
if (CTFontDescriptorIsSystemUIFont(descriptor.get())) {
|
|
+#endif
|
|
// Assume it's the standard system font. The fact that this much is known is
|
|
// enough.
|
|
return PlatformFontMac::SystemFontType::kGeneral;
|
|
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
|
|
index dfb51c3303312a6fc98330896ac28f67790e6867..ea1d656585d1cd6f2ccdb7d3845791f46bdb1816 100644
|
|
--- a/ui/views/BUILD.gn
|
|
+++ b/ui/views/BUILD.gn
|
|
@@ -716,6 +716,7 @@ component("views") {
|
|
"IOSurface.framework",
|
|
"QuartzCore.framework",
|
|
]
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
}
|
|
|
|
if (is_win) {
|
|
@@ -1148,6 +1149,8 @@ source_set("test_support") {
|
|
"//testing/gtest",
|
|
]
|
|
|
|
+ configs += ["//electron/build/config:mas_build"]
|
|
+
|
|
if (is_win) {
|
|
sources += [
|
|
"test/desktop_window_tree_host_win_test_api.cc",
|
|
diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h
|
|
index 06cb52062e66fc27c00941e703b909cf42cfa322..309f7a351b8a2aa2ccc42a084a5af086ddb8691d 100644
|
|
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.h
|
|
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h
|
|
@@ -30,7 +30,9 @@
|
|
#include "ui/views/window/dialog_observer.h"
|
|
|
|
@class NativeWidgetMacNSWindow;
|
|
+#if !IS_MAS_BUILD()
|
|
@class NSAccessibilityRemoteUIElement;
|
|
+#endif
|
|
@class NSView;
|
|
|
|
namespace remote_cocoa {
|
|
@@ -465,10 +467,12 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost
|
|
mojo::AssociatedRemote<remote_cocoa::mojom::NativeWidgetNSWindow>
|
|
remote_ns_window_remote_;
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
// Remote accessibility objects corresponding to the NSWindow and its root
|
|
// NSView.
|
|
NSAccessibilityRemoteUIElement* __strong remote_window_accessible_;
|
|
NSAccessibilityRemoteUIElement* __strong remote_view_accessible_;
|
|
+#endif
|
|
|
|
// Used to force the NSApplication's focused accessibility element to be the
|
|
// views::Views accessibility tree when the NSView for this is focused.
|
|
diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
|
|
index b50e6f05254ea9e12985fa18b5468c3c020cf3cf..43051bb6a54ed56b2f920555f096494e1a5a65a8 100644
|
|
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm
|
|
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
|
|
@@ -345,7 +345,11 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
|
|
NativeWidgetMacNSWindowHost::GetNativeViewAccessibleForNSView() const {
|
|
if (in_process_ns_window_bridge_)
|
|
return in_process_ns_window_bridge_->ns_view();
|
|
+#if !IS_MAS_BUILD()
|
|
return remote_view_accessible_;
|
|
+#else
|
|
+ return nullptr;
|
|
+#endif
|
|
}
|
|
|
|
gfx::NativeViewAccessible
|
|
@@ -360,7 +364,11 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
|
|
return [in_process_ns_window_bridge_->ns_view() window];
|
|
}
|
|
|
|
+#if !IS_MAS_BUILD()
|
|
return remote_window_accessible_;
|
|
+#else
|
|
+ return nullptr;
|
|
+#endif
|
|
}
|
|
|
|
remote_cocoa::mojom::NativeWidgetNSWindow*
|
|
@@ -1265,9 +1273,11 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
|
|
// for PWAs. However this breaks accessibility on in-process windows,
|
|
// so set it back to NO when a local window gains focus. See
|
|
// https://crbug.com/41485830.
|
|
+#if !IS_MAS_BUILD()
|
|
if (is_key && features::IsAccessibilityRemoteUIAppEnabled()) {
|
|
[NSAccessibilityRemoteUIElement setRemoteUIApp:!!application_host_];
|
|
}
|
|
+#endif
|
|
// Explicitly set the keyboard accessibility state on regaining key
|
|
// window status.
|
|
if (is_key && is_content_first_responder)
|
|
@@ -1420,17 +1430,20 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
|
|
void NativeWidgetMacNSWindowHost::SetRemoteAccessibilityTokens(
|
|
const std::vector<uint8_t>& window_token,
|
|
const std::vector<uint8_t>& view_token) {
|
|
+#if !IS_MAS_BUILD()
|
|
remote_window_accessible_ =
|
|
ui::RemoteAccessibility::GetRemoteElementFromToken(window_token);
|
|
remote_view_accessible_ =
|
|
ui::RemoteAccessibility::GetRemoteElementFromToken(view_token);
|
|
[remote_view_accessible_ setWindowUIElement:remote_window_accessible_];
|
|
[remote_view_accessible_ setTopLevelUIElement:remote_window_accessible_];
|
|
+#endif
|
|
}
|
|
|
|
bool NativeWidgetMacNSWindowHost::GetRootViewAccessibilityToken(
|
|
base::ProcessId* pid,
|
|
std::vector<uint8_t>* token) {
|
|
+#if !IS_MAS_BUILD()
|
|
*pid = getpid();
|
|
id element_id = GetNativeViewAccessible();
|
|
|
|
@@ -1443,6 +1456,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
|
|
}
|
|
|
|
*token = ui::RemoteAccessibility::GetTokenForLocalElement(element_id);
|
|
+#endif
|
|
return true;
|
|
}
|
|
|
|
diff --git a/ui/views/controls/webview/BUILD.gn b/ui/views/controls/webview/BUILD.gn
|
|
index fabfde10ab21d62b0cefd6f53bd22bbb6784035f..1560165dff9f77dd77ec7d656f0613472f9e24b8 100644
|
|
--- a/ui/views/controls/webview/BUILD.gn
|
|
+++ b/ui/views/controls/webview/BUILD.gn
|
|
@@ -19,6 +19,9 @@ component("webview") {
|
|
|
|
if (is_mac) {
|
|
sources += [ "unhandled_keyboard_event_handler_mac.mm" ]
|
|
+ configs += [
|
|
+ "//electron/build/config:mas_build",
|
|
+ ]
|
|
}
|
|
|
|
if (is_win) {
|