123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Samuel Attard <[email protected]>
- 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 e80597587f9afc01bc5b3e9f2a1dc9a5d9c4d4e0..5cf0e7276cdc167b42a45d680e7ba5fc58979e22 100644
- --- a/base/BUILD.gn
- +++ b/base/BUILD.gn
- @@ -1048,6 +1048,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 d1b09cb1a75000cf41f31bddcdcb739f776920aa..825a6ecd65bc4e3412db83413d6de34ea997ddd0 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 459f14da45419a2a0340199d9cf311e3bba437e6..3b7908c559ddd3d6101801f8de256aa80a9411a2 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 c8682418893584aaf61eb6db859b30c99b064698..5d1550030b519f3599dcb855007b25180f0606e9 100644
- --- a/components/remote_cocoa/app_shim/application_bridge.mm
- +++ b/components/remote_cocoa/app_shim/application_bridge.mm
- @@ -50,6 +50,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;
- @@ -60,6 +61,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;
- @@ -98,7 +102,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 5df3e394a693939e021be4e9e3222989ae6e5122..06ec9f081f22afbda243bb69759dd1972dff8dd0 100644
- --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
- +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm
- @@ -106,14 +106,18 @@ void OrderChildWindow(NSWindow* child_window,
-
- } // namespace
-
- +#if !IS_MAS_BUILD()
- @interface NSNextStepFrame (Private)
- - (instancetype)initWithFrame:(NSRect)frame
- styleMask:(NSUInteger)styleMask
- owner:(id)owner;
- @end
- +#endif
-
- @interface NSWindow (Private)
- +#if !IS_MAS_BUILD()
- + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle;
- +#endif
- - (BOOL)hasKeyAppearance;
- - (long long)_resizeDirectionForMouseLocation:(CGPoint)location;
- - (BOOL)_isConsideredOpenForPersistentState;
- @@ -152,6 +156,8 @@ - (void)cr_mouseDownOnFrameView:(NSEvent*)event {
- }
- @end
-
- +#if !IS_MAS_BUILD()
- +
- @implementation NativeWidgetMacNSWindowTitledFrame
- - (void)mouseDown:(NSEvent*)event {
- if (self.window.isMovable)
- @@ -214,6 +220,8 @@ - (BOOL)usesCustomDrawing {
- }
- @end
-
- +#endif // MAS_BUILD
- +
- @implementation NativeWidgetMacNSWindow {
- @private
- CommandDispatcher* __strong _commandDispatcher;
- @@ -402,6 +410,8 @@ - (NSAccessibilityRole)accessibilityRole {
-
- // NSWindow overrides.
-
- +#if !IS_MAS_BUILD()
- +
- + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle {
- if (windowStyle & NSWindowStyleMaskTitled) {
- if (Class customFrame = [NativeWidgetMacNSWindowTitledFrame class])
- @@ -413,6 +423,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 b3c087eda0561d94d205ef0cbbb341a7e2a34638..035202378209e32e6f7c630140367cda7a34e483 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 2ce093d0818f52433670e889847fbf00b7d398cc..3c5ab7a6e6608b3f5e35f8b46a59880100b2a627 100644
- --- a/components/viz/service/BUILD.gn
- +++ b/components/viz/service/BUILD.gn
- @@ -364,6 +364,7 @@ viz_component("service") {
- "frame_sinks/external_begin_frame_source_mac.h",
- ]
- }
- + configs = ["//electron/build/config:mas_build"]
- }
-
- if (is_android || use_ozone) {
- @@ -635,6 +636,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 dbf334caa3a6d10017b69ad76802e389a011436b..0cdb0def975e457651771b43fd5432610481c7d0 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
- @@ -63,7 +63,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(
- @@ -75,6 +77,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;
- @@ -85,6 +88,9 @@ id GetAccessibilityElement() override {
- ui::RemoteAccessibility::GetRemoteElementFromToken(element_token);
- }
- return remote_accessibility_element_;
- +#else
- + return nil;
- +#endif
- }
-
- // RenderWidgetHostNSViewHostHelper implementation.
- @@ -103,8 +109,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 input::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 00493dc6c3f0229438b440a6fb2438ca668aba6b..6ce251058868529551cd6f008f840e06baa52bb7 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
- @@ -2062,15 +2062,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 6b8d614f08dfe2e1c1b1458e70452195fb0934d6..684acd5d99dc1fa78261861870fb865a2d923c18 100644
- --- a/content/browser/BUILD.gn
- +++ b/content/browser/BUILD.gn
- @@ -70,6 +70,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 9485916338d16e11acbb56ea0b9b34e749db0281..45df87ec3bd98474513cef590b8312f8bd976947 100644
- --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
- +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
- @@ -20,7 +20,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 {
-
- @@ -224,6 +226,7 @@ void PostAnnouncementNotification(NSString* announcement,
- return;
- }
-
- +#if !IS_MAS_BUILD()
- BrowserAccessibilityManager* root_manager = GetManagerForRootFrame();
- if (root_manager) {
- BrowserAccessibilityManagerMac* root_manager_mac =
- @@ -246,6 +249,7 @@ void PostAnnouncementNotification(NSString* announcement,
- return;
- }
- }
- +#endif
-
- // Use native VoiceOver support for live regions.
- BrowserAccessibilityCocoa* retained_node = native_node;
- @@ -646,6 +650,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
- @@ -674,6 +679,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 940adeedcd38062b44afdeda1b41c89394e5e420..0809615a9818da6c6b5fd8363b168336a8f2e1ed 100644
- --- a/content/browser/renderer_host/render_widget_host_view_mac.h
- +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
- @@ -53,7 +53,9 @@ class CursorManager;
-
- @protocol RenderWidgetHostViewMacDelegate;
-
- +#if !IS_MAS_BUILD()
- @class NSAccessibilityRemoteUIElement;
- +#endif
- @class RenderWidgetHostViewCocoa;
- @class CursorAccessibilityScaleFactorObserver;
-
- @@ -685,9 +687,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 078f33c9c4b628b4427bb152912bf2a221e29efb..222a9cd87290efb0e30b503f9b6aaba122019bbe 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.
- @@ -1656,8 +1658,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];
- }
-
- @@ -1706,9 +1710,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(
- @@ -2232,20 +2238,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 0738636a7462fd973c12d0e26e298c3b767f0c53..977e90c5dc3d8ff48ba9674c1c7d5eb6b6bab662 100644
- --- a/content/common/BUILD.gn
- +++ b/content/common/BUILD.gn
- @@ -200,6 +200,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 0208430b12c02be61bebee51a81f5a103d1f8e96..e1123d00068e6c007f869a6eb90d55fa66a84bdf 100644
- --- a/content/renderer/BUILD.gn
- +++ b/content/renderer/BUILD.gn
- @@ -230,6 +230,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 9be91de90914c3da214982e128ab3b506196232f..e0698a2ba0d23fd39702d19e34e1ef64c5cef0d4 100644
- --- a/content/test/BUILD.gn
- +++ b/content/test/BUILD.gn
- @@ -502,6 +502,7 @@ static_library("test_support") {
- configs += [
- "//build/config:precompiled_headers",
- "//v8:external_startup_data",
- + "//electron/build/config:mas_build",
- ]
-
- public_deps = [
- @@ -1103,6 +1104,7 @@ static_library("browsertest_support") {
- }
-
- configs += [ "//v8:external_startup_data" ]
- + configs += ["//electron/build/config:mas_build"]
- }
-
- mojom("content_test_mojo_bindings") {
- @@ -1718,6 +1720,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",
- @@ -2974,6 +2977,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 c28458b5ddc8ef74e82125a983344b1daf65dda6..48e6d48962a2228d26444dbdbcfa1637e67a8c56 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 2e53ca913d9b4380792df82f73dcfdd5177c0214..edb1e1a3283ee1978d64527c29ad207e9f06153a 100644
- --- a/device/bluetooth/BUILD.gn
- +++ b/device/bluetooth/BUILD.gn
- @@ -249,6 +249,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 4244e70c523d584fb796f4ce741376c6f72531cd..25db1e83fefecd01820923e5d182b882426eebfd 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
-
- // A simple helper class that forwards any Bluetooth device connect notification
- // to its wrapped |_adapter|.
- @@ -150,8 +152,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)) {
- }
- @@ -297,8 +301,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 a4f541e3f4095a0f537137ae371555adc80c0023..f93f0b5bf8c47efbc67039d50e3bcd29e099459c 100644
- --- a/gpu/ipc/service/BUILD.gn
- +++ b/gpu/ipc/service/BUILD.gn
- @@ -135,6 +135,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 36322ddd3047f96569f35807541a37d3c6672b09..3162cb6e3dce2c44e5b1e5f33f9177da832d26aa 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 a5070091785d80a47d1d9d9977803cd1de8b2054..b280a0d58fc03257aa1763cd15791db4ddede7c1 100644
- --- a/media/audio/mac/audio_manager_mac.cc
- +++ b/media/audio/mac/audio_manager_mac.cc
- @@ -971,7 +971,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 5f4ff9ff8172d4ad282cc9c781f85118b8ba7d1a..6a542c8f0d7afad876ab2739a1a2576a64cb6be9 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 70d5665ad7b9ef62370497636af919ede2508ad4..3f6816de14f4bd19422a2b04830649d1d12e9179 100644
- --- a/net/dns/dns_config_service_posix.cc
- +++ b/net/dns/dns_config_service_posix.cc
- @@ -135,8 +135,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.";
- @@ -153,6 +153,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 b3f017a8be25209a78ed6a1221abcdeeb7904752..506d520e41f321e02b227e07b7b41a4bbfec8d4d 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_IN_MIGRATION();
- 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 fb1e7f7238358ca9d505f76a158b88f4412412f7..3340e675bed474cba55d78b249c4658dcf91f990 100644
- --- a/third_party/blink/renderer/core/BUILD.gn
- +++ b/third_party/blink/renderer/core/BUILD.gn
- @@ -332,6 +332,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 b99461d52e3a62b58330691e65f9956748cfbf02..09abf39af3e7115744778c7260a68f13a080b162 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 b7f86265ef2c79ce7a0c3eda2443a01a0242af89..96b8b4976ada0fcb2fd322e2ea42429a3c0757db 100644
- --- a/ui/accessibility/platform/BUILD.gn
- +++ b/ui/accessibility/platform/BUILD.gn
- @@ -255,6 +255,7 @@ component("platform") {
- weak_frameworks = [
- "Accessibility.framework", # macOS 11
- ]
- + configs += ["//electron/build/config:mas_build"]
- }
-
- if (is_ios) {
- 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 381ecc15e5cd3ef6275ce36335e95fc745788c32..08438eb0ed184c2afa1bf2501a5cccf77056cbed 100644
- --- a/ui/base/BUILD.gn
- +++ b/ui/base/BUILD.gn
- @@ -363,6 +363,7 @@ component("base") {
- "interaction/element_tracker_mac.mm",
- "resource/resource_bundle_mac.mm",
- ]
- + configs += ["//electron/build/config:mas_build"]
- }
-
- if (is_apple) {
- @@ -380,6 +381,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 9fb3bee897513d262ac44dccfe6662cc145a8df7..5b7592d7f739b5e580429a69575e6df5ee7e4695 100644
- --- a/ui/display/BUILD.gn
- +++ b/ui/display/BUILD.gn
- @@ -72,6 +72,10 @@ component("display") {
- "mac/display_link_mac.mm",
- "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 cd08cb3b7c95a8fd418524652bb345945291112a..13c6cc142262781450d1075fe85f86ada3f9f60f 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 5255116a8e8f897607e5c5df2875dbaf275ec919..0a28b2832470f3c9d45f70499be29c2b29cb1b25 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 cd6c9a924dce762ff935ef722c8873c974772225..b162795219e0fac3d9caa6bbfead126c033534cc 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) {
- @@ -1145,6 +1146,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 3911cb0691cb74c855c8edc9402cfd5a7fa7ddf3..8014af9cb95cdcb976c2f070b5a158c0947cc6ce 100644
- --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h
- +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h
- @@ -31,7 +31,9 @@
- #include "ui/views/window/dialog_observer.h"
-
- @class NativeWidgetMacNSWindow;
- +#if !IS_MAS_BUILD()
- @class NSAccessibilityRemoteUIElement;
- +#endif
- @class NSView;
-
- namespace remote_cocoa {
- @@ -479,10 +481,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 5d03d63d5ac0f114269b03098364ee3ab2620daa..7200b48bd63e1c951d51781c92a7995ad80c26bb 100644
- --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm
- +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
- @@ -349,7 +349,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
- @@ -364,7 +368,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*
- @@ -1316,9 +1324,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)
- @@ -1481,17 +1491,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();
-
- @@ -1504,6 +1517,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 111d6432586f47833dde50678b908c76ad88d37a..45601d06f85ba618fe38c96ae28c47d306784e53 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) {
|