electron/shell/browser/mac/electron_application.mm

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

260 lines
8.2 KiB
Text
Raw Normal View History

// Copyright (c) 2013 GitHub, Inc.
2014-04-25 17:49:37 +08:00
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#import "shell/browser/mac/electron_application.h"
#include <string>
#include <utility>
#include "base/auto_reset.h"
#include "base/observer_list.h"
#include "base/strings/sys_string_conversions.h"
#include "content/public/browser/browser_accessibility_state.h"
#include "content/public/browser/native_event_processor_mac.h"
#include "content/public/browser/native_event_processor_observer_mac.h"
#include "shell/browser/browser.h"
#include "shell/browser/mac/dict_util.h"
#import "shell/browser/mac/electron_application_delegate.h"
2017-09-14 16:12:34 +09:00
namespace {
inline void dispatch_sync_main(dispatch_block_t block) {
if ([NSThread isMainThread])
block();
else
dispatch_sync(dispatch_get_main_queue(), block);
}
2017-09-14 16:12:34 +09:00
} // namespace
@interface AtomApplication () <NativeEventProcessor> {
base::ObserverList<content::NativeEventProcessorObserver>::Unchecked
observers_;
}
@end
@implementation AtomApplication
+ (AtomApplication*)sharedApplication {
return (AtomApplication*)[super sharedApplication];
}
- (void)willPowerOff:(NSNotification*)notify {
userStoppedShutdown_ = shouldShutdown_ && !shouldShutdown_.Run();
}
2018-01-11 14:50:35 -08:00
- (void)terminate:(id)sender {
// User will call Quit later.
if (userStoppedShutdown_)
return;
// We simply try to close the browser, which in turn will try to close the
// windows. Termination can proceed if all windows are closed or window close
// can be cancelled which will abort termination.
electron::Browser::Get()->Quit();
2018-01-11 14:50:35 -08:00
}
- (void)setShutdownHandler:(base::RepeatingCallback<bool()>)handler {
2018-02-05 16:13:35 +09:00
shouldShutdown_ = std::move(handler);
}
- (BOOL)isHandlingSendEvent {
return handlingSendEvent_;
}
- (void)sendEvent:(NSEvent*)event {
base::AutoReset<BOOL> scoper(&handlingSendEvent_, YES);
content::ScopedNotifyNativeEventProcessorObserver scopedObserverNotifier(
&observers_, event);
[super sendEvent:event];
}
- (void)setHandlingSendEvent:(BOOL)handlingSendEvent {
handlingSendEvent_ = handlingSendEvent;
}
- (void)setCurrentActivity:(NSString*)type
2016-05-23 11:49:46 -04:00
withUserInfo:(NSDictionary*)userInfo
withWebpageURL:(NSURL*)webpageURL {
chore: bump chromium to 117.0.5892.0 (main) (#39118) * chore: bump chromium in DEPS to 117.0.5892.0 * 4670267: Don't send javascript: or empty URLs to browser in CreateNewWindow. https://chromium-review.googlesource.com/c/chromium/src/+/4670267 * 4662090: Add metrics for WebGPU support https://chromium-review.googlesource.com/c/chromium/src/+/4662090 * 4672599: Use set_defaults for mac_app_bundle https://chromium-review.googlesource.com/c/chromium/src/+/4672599 * 4663771: usb: Add connection count tracking methods for UsbDelegate https://chromium-review.googlesource.com/c/chromium/src/+/4663771 * 4664578: Remove unused parameter from ExtensionsGuestViewManagerDelegate ctor https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * 4622253: usb: Create classes for usb system tray icon https://chromium-review.googlesource.com/c/chromium/src/+/4622253 * 4678263: Remove ARC support from scoped_nsobject https://chromium-review.googlesource.com/c/chromium/src/+/4678263 * chore: follow-up ARC changes and missing guard corrections * chore: don't mark 0-param ctor explicit Follow up to https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * chore: fixup patch indices * 4670865: Merge ObjectProxy::CallMethodAndBlock{,WithErrorDetails}. https://chromium-review.googlesource.com/c/chromium/src/+/4670865 * chore: follow-up ARC changes and missing guard corrections * fixup: retain ElectronApplicationDelegate * fix: correct rustc binary --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2023-07-19 00:26:27 +02:00
currentActivity_ = [[NSUserActivity alloc] initWithActivityType:type];
[currentActivity_ setUserInfo:userInfo];
[currentActivity_ setWebpageURL:webpageURL];
[currentActivity_ setDelegate:self];
[currentActivity_ becomeCurrent];
[currentActivity_ setNeedsSave:YES];
}
- (NSUserActivity*)getCurrentActivity {
chore: bump chromium to 117.0.5892.0 (main) (#39118) * chore: bump chromium in DEPS to 117.0.5892.0 * 4670267: Don't send javascript: or empty URLs to browser in CreateNewWindow. https://chromium-review.googlesource.com/c/chromium/src/+/4670267 * 4662090: Add metrics for WebGPU support https://chromium-review.googlesource.com/c/chromium/src/+/4662090 * 4672599: Use set_defaults for mac_app_bundle https://chromium-review.googlesource.com/c/chromium/src/+/4672599 * 4663771: usb: Add connection count tracking methods for UsbDelegate https://chromium-review.googlesource.com/c/chromium/src/+/4663771 * 4664578: Remove unused parameter from ExtensionsGuestViewManagerDelegate ctor https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * 4622253: usb: Create classes for usb system tray icon https://chromium-review.googlesource.com/c/chromium/src/+/4622253 * 4678263: Remove ARC support from scoped_nsobject https://chromium-review.googlesource.com/c/chromium/src/+/4678263 * chore: follow-up ARC changes and missing guard corrections * chore: don't mark 0-param ctor explicit Follow up to https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * chore: fixup patch indices * 4670865: Merge ObjectProxy::CallMethodAndBlock{,WithErrorDetails}. https://chromium-review.googlesource.com/c/chromium/src/+/4670865 * chore: follow-up ARC changes and missing guard corrections * fixup: retain ElectronApplicationDelegate * fix: correct rustc binary --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2023-07-19 00:26:27 +02:00
return currentActivity_;
}
- (void)invalidateCurrentActivity {
2017-09-14 16:12:34 +09:00
if (currentActivity_) {
[currentActivity_ invalidate];
chore: bump chromium to 117.0.5892.0 (main) (#39118) * chore: bump chromium in DEPS to 117.0.5892.0 * 4670267: Don't send javascript: or empty URLs to browser in CreateNewWindow. https://chromium-review.googlesource.com/c/chromium/src/+/4670267 * 4662090: Add metrics for WebGPU support https://chromium-review.googlesource.com/c/chromium/src/+/4662090 * 4672599: Use set_defaults for mac_app_bundle https://chromium-review.googlesource.com/c/chromium/src/+/4672599 * 4663771: usb: Add connection count tracking methods for UsbDelegate https://chromium-review.googlesource.com/c/chromium/src/+/4663771 * 4664578: Remove unused parameter from ExtensionsGuestViewManagerDelegate ctor https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * 4622253: usb: Create classes for usb system tray icon https://chromium-review.googlesource.com/c/chromium/src/+/4622253 * 4678263: Remove ARC support from scoped_nsobject https://chromium-review.googlesource.com/c/chromium/src/+/4678263 * chore: follow-up ARC changes and missing guard corrections * chore: don't mark 0-param ctor explicit Follow up to https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * chore: fixup patch indices * 4670865: Merge ObjectProxy::CallMethodAndBlock{,WithErrorDetails}. https://chromium-review.googlesource.com/c/chromium/src/+/4670865 * chore: follow-up ARC changes and missing guard corrections * fixup: retain ElectronApplicationDelegate * fix: correct rustc binary --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2023-07-19 00:26:27 +02:00
currentActivity_ = nil;
}
}
- (void)resignCurrentActivity {
if (currentActivity_)
[currentActivity_ resignCurrent];
}
2017-09-14 16:12:34 +09:00
- (void)updateCurrentActivity:(NSString*)type
withUserInfo:(NSDictionary*)userInfo {
2017-09-14 16:12:34 +09:00
if (currentActivity_) {
[currentActivity_ addUserInfoEntriesFromDictionary:userInfo];
}
[handoffLock_ lock];
updateReceived_ = YES;
[handoffLock_ signal];
[handoffLock_ unlock];
}
- (void)userActivityWillSave:(NSUserActivity*)userActivity {
__block BOOL shouldWait = NO;
dispatch_sync_main(^{
2018-04-20 14:47:04 -04:00
std::string activity_type(
base::SysNSStringToUTF8(userActivity.activityType));
base::Value::Dict user_info =
electron::NSDictionaryToValue(userActivity.userInfo);
electron::Browser* browser = electron::Browser::Get();
2018-04-20 14:47:04 -04:00
shouldWait =
browser->UpdateUserActivityState(activity_type, std::move(user_info))
? YES
: NO;
});
if (shouldWait) {
[handoffLock_ lock];
updateReceived_ = NO;
while (!updateReceived_) {
2018-04-20 14:47:04 -04:00
BOOL isSignaled =
[handoffLock_ waitUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
if (!isSignaled)
break;
}
[handoffLock_ unlock];
}
[userActivity setNeedsSave:YES];
}
- (void)userActivityWasContinued:(NSUserActivity*)userActivity {
dispatch_async(dispatch_get_main_queue(), ^{
2018-04-20 14:47:04 -04:00
std::string activity_type(
base::SysNSStringToUTF8(userActivity.activityType));
base::Value::Dict user_info =
electron::NSDictionaryToValue(userActivity.userInfo);
electron::Browser* browser = electron::Browser::Get();
browser->UserActivityWasContinued(activity_type, std::move(user_info));
});
[userActivity setNeedsSave:YES];
}
- (void)registerURLHandler {
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler:self
andSelector:@selector(handleURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass
andEventID:kAEGetURL];
handoffLock_ = [NSCondition new];
}
- (void)handleURLEvent:(NSAppleEventDescriptor*)event
withReplyEvent:(NSAppleEventDescriptor*)replyEvent {
2018-04-20 14:47:04 -04:00
NSString* url =
[[event paramDescriptorForKeyword:keyDirectObject] stringValue];
electron::Browser::Get()->OpenURL(base::SysNSStringToUTF8(url));
}
// Returns the list of accessibility attributes that this object supports.
- (NSArray*)accessibilityAttributeNames {
NSMutableArray* attributes =
[[super accessibilityAttributeNames] mutableCopy];
[attributes addObject:@"AXManualAccessibility"];
return attributes;
}
// Returns whether or not the specified attribute can be set by the
// accessibility API via |accessibilitySetValue:forAttribute:|.
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute {
bool is_manual_ax = [attribute isEqualToString:@"AXManualAccessibility"];
return is_manual_ax || [super accessibilityIsAttributeSettable:attribute];
}
// Returns the accessibility value for the given attribute. If the value isn't
// supported this will return nil.
- (id)accessibilityAttributeValue:(NSString*)attribute {
if ([attribute isEqualToString:@"AXManualAccessibility"]) {
auto* ax_state = content::BrowserAccessibilityState::GetInstance();
chore: bump chromium to 136.0.7095.0 (main) (#46118) * chore: bump chromium in DEPS to 136.0.7076.0 * chore: bump chromium in DEPS to 136.0.7077.0 * 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | https://chromium-review.googlesource.com/c/chromium/src/+/6368856 * 6356528: Clean up LegacyRenderWidgetHostHWND code | https://chromium-review.googlesource.com/c/chromium/src/+/6356528 * chore: export patches * 6339113: [Viewport Segments] Add CDP commands to override Viewport Segments without overriding other device properties. | https://chromium-review.googlesource.com/c/chromium/src/+/6339113 * 6352169: [DevTools][MultiInstance] Support new tab in another window on Android | https://chromium-review.googlesource.com/c/chromium/src/+/6352169 * 6368856: Migrate absl variant.h and utility.h in content (part 2/2) | https://chromium-review.googlesource.com/c/chromium/src/+/6368856 * 6360858:Clickiness: Wire response from URLLoader to DB, add e2e tests| https://chromium-review.googlesource.com/c/chromium/src/+/6360858 * chore: bump chromium in DEPS to 136.0.7079.0 * chore: export patches * chore: bump chromium in DEPS to 136.0.7081.0 * chore: export patches * chore: bump chromium in DEPS to 136.0.7083.0 * 6361987: Remove double-declaration with gfx::NativeView and gfx::NativeWindow | https://chromium-review.googlesource.com/c/chromium/src/+/6361987 * chore: export patches * chore: bump chromium in DEPS to 136.0.7087.0 * chore: export patches * fix: include node patch for missing AtomicsWaitEvent https://chromium-review.googlesource.com/c/chromium/src/+/6385540 * build: add depot_tools python to path * fix: cppgc init and unregistering v8 isolate https://chromium-review.googlesource.com/c/v8/v8/+/6333562 CppGc is now initialized earlier so Node can skip reinitializing it. Additionally, gin::IsolateHandle was attempting to destruct an already destructed v8::Isolate upon electron::JavaScriptEnvironment destruction. By removing the call to NodePlatform::UnregisterIsolate, this fixes the crash on app shutdown. * fix: unregister isolate after destruction See code comment. * chore: bump chromium in DEPS to 136.0.7095.0 * chore: sync patches * fix: add script_parsing::ContentScriptType parameter https://chromium-review.googlesource.com/c/chromium/src/+/6298395 * fix: migrate content::BrowserAccessibilityState methods https://chromium-review.googlesource.com/c/chromium/src/+/6401437 https://chromium-review.googlesource.com/c/chromium/src/+/6383275 * feat: enableHappyEyeballs option for host resolver https://chromium-review.googlesource.com/c/chromium/src/+/6332599 * fix: add new cookie exclusion reason https://chromium-review.googlesource.com/c/chromium/src/+/6343479 * fix: add new url loader method https://chromium-review.googlesource.com/c/chromium/src/+/6337340 * fix: add new cppgc header file for electron_node headers https://chromium-review.googlesource.com/c/v8/v8/+/6348644 * fix: disable CREL on Linux ARM64 https://chromium-review.googlesource.com/q/I3a62f02f564f07be63173b0773b4ecaffbe939b9 * fixup! fix: add new cppgc header file for electron_node headers https://chromium-review.googlesource.com/c/v8/v8/+/6348644 * chore: update corner smoothing patch * fixup! chore: update corner smoothing patch * chore: disable NAN weak tests These two tests are incompatible with a V8 change that disallows running JS code from a weak finalizer callback. Ref: https://chromium-review.googlesource.com/c/v8/v8/+/4733273 * test: fix task starvation in node test A V8 change makes these contexts get collected in a task that is posted and run asynchronously. The tests were synchronously GC'ing in an infinite loop, preventing the task loop from running the task that would GC these contexts. This change should be upstreamed in some way. Ref: https://chromium-review.googlesource.com/c/v8/v8/+/4733273 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: alice <alice@makenotion.com> Co-authored-by: Samuel Maddock <smaddock@slack-corp.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: clavin <clavin@electronjs.org>
2025-04-03 19:02:49 -05:00
bool is_accessible_browser =
ax_state->GetAccessibilityMode() == ui::kAXModeComplete;
return [NSNumber numberWithBool:is_accessible_browser];
}
return [super accessibilityAttributeValue:attribute];
}
// Sets the value for an accessibility attribute via the accessibility API.
// AXEnhancedUserInterface is an undocumented attribute that screen reader
// related functionality sets when running, and AXManualAccessibility is an
// attribute Electron specifically allows third-party apps to use to enable
// a11y features in Electron.
2018-04-20 14:47:04 -04:00
- (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute {
bool is_manual_ax = [attribute isEqualToString:@"AXManualAccessibility"];
if ([attribute isEqualToString:@"AXEnhancedUserInterface"] || is_manual_ax) {
auto* ax_state = content::BrowserAccessibilityState::GetInstance();
chore: bump chromium to 137.0.7128.1 (main) (#46482) * chore: bump chromium in DEPS to 137.0.7107.0 * chore: bump chromium in DEPS to 137.0.7109.0 * chore: bump chromium in DEPS to 137.0.7111.0 * chore: bump chromium in DEPS to 137.0.7113.0 * 6384240: Remove double-declaration for accessibility on macOS | https://chromium-review.googlesource.com/c/chromium/src/+/6384240 * 6422872: Remove unused includes in isolation_info_mojom_traits.h | https://chromium-review.googlesource.com/c/chromium/src/+/6422872 * chore: update patches * 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | https://chromium-review.googlesource.com/c/chromium/src/+/6400733 * chore: update patches * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: iwyu * refactor: prefer value initialization over memset() From the looks up upstream commits in base/, it looks like memset() could trigger `-Wunsafe-buffer-usage` warnings soon? Value initialization is more C++ish and less error-prone anyway, due to memset()'s easily swappable parameters. * refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA This follows F.20 in the C++ Core Guidelines and also removes the need for memset() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - strcmp() * fixup! 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: bump chromium in DEPS to 137.0.7115.0 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: update patches * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: bump chromium in DEPS to 137.0.7117.0 * chore: update patches * chore: update filesnames.libcxx.gni * 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. | https://chromium-review.googlesource.com/c/chromium/src/+/6431756 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/6428345 * 6384315: Migrate extensions_enabled from ExtensionService to Registrar | https://chromium-review.googlesource.com/c/chromium/src/+/6384315 * 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | https://chromium-review.googlesource.com/c/chromium/src/+/6428749 * chore: bump chromium in DEPS to 137.0.7119.0 * 6440290: corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * 6429230: FSA: Move blocked paths to the PermissionContext class | https://chromium-review.googlesource.com/c/chromium/src/+/6429230 * chore: update patches * chore: bump chromium in DEPS to 137.0.7121.0 * chore: update patches * fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain | https://chromium-review.googlesource.com/c/chromium/src/+/6443473 * fix: update filenames.libcxx.gni * chore: bump chromium in DEPS to 137.0.7123.0 * chore: update patches * chore: "grandfather in" electron views too Lock further access to View::set_owned_by_client() | https://chromium-review.googlesource.com/c/chromium/src/+/6448510 * chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView Add a PassKey for std::make_unique<WidgetDelegateView>() | https://chromium-review.googlesource.com/c/chromium/src/+/6442265 * Provide dbus appmenu information on Wayland | https://chromium-review.googlesource.com/c/chromium/src/+/6405535 * [extensions] Move OnExtensionInstalled out of ExtensionService. | https://chromium-review.googlesource.com/c/chromium/src/+/6443325 * refactor: grandfather in NativeWindowViews for delete callbacks 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: merge the four "grandfather" patches into one * [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | https://chromium-review.googlesource.com/c/chromium/src/+/6404386 NB: the changes here are copied from the upstream changes in chrome/browser/ui/webui/accessibility/accessibility_ui.cc * 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController | https://chromium-review.googlesource.com/c/chromium/src/+/6420753 * 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | https://chromium-review.googlesource.com/c/chromium/src/+/6429573 * chore: e patches all * 6419936: [win] Change ScreenWin public static methods to virtual | https://chromium-review.googlesource.com/c/chromium/src/+/6419936 * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - fprintf() - fputs() - snprintf() - vsnprintf() * fix: size conversion FTBFS on Win * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcscpy_s() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcsncpy_s() * chore: update mas_avoid_private_macos_api_usage.patch.patch 6394283: Remove double-declaration for accessibility on iOS | https://chromium-review.googlesource.com/c/chromium/src/+/6394283 Lots of context shear in this commit but the only interesting part is: -+ return nullptr; ++ return {}; Which is needed because the return type is sometimes not a pointer. * chore: e patches all * chore: disable -Wmacro-redefined warning in electron_main_win.cc * chore: bump chromium in DEPS to 137.0.7123.5 * refactor: patch electron PermissionTypes into blink 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: e patches all * chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370 * test: enable window-smaller-than-64x64 test on Linux * chore: bump chromium in DEPS to 137.0.7124.1 * chore: bump chromium in DEPS to 137.0.7125.1 * chore: bump chromium in DEPS to 137.0.7127.3 * 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() | https://chromium-review.googlesource.com/c/chromium/src/+/6459201 * 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | https://chromium-review.googlesource.com/c/chromium/src/+/6454796 * chore: bump chromium in DEPS to 137.0.7128.1 * chore: e patches all * chore: node ./script/gen-libc++-filenames.js * [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag Refs https://chromium-review.googlesource.com/c/chromium/src/+/6428649 * feat: allow opt-out animated_content_sampler. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6438681 * Trigger CI --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-04-22 15:53:29 -04:00
// TODO(wg-upgrades): crbug.com/1470199 remove use of deprecated
// AddAccessibilityModeFlags() and RemoveAccessibilityModeFlags()
if ([value boolValue]) {
chore: bump chromium to 137.0.7128.1 (main) (#46482) * chore: bump chromium in DEPS to 137.0.7107.0 * chore: bump chromium in DEPS to 137.0.7109.0 * chore: bump chromium in DEPS to 137.0.7111.0 * chore: bump chromium in DEPS to 137.0.7113.0 * 6384240: Remove double-declaration for accessibility on macOS | https://chromium-review.googlesource.com/c/chromium/src/+/6384240 * 6422872: Remove unused includes in isolation_info_mojom_traits.h | https://chromium-review.googlesource.com/c/chromium/src/+/6422872 * chore: update patches * 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | https://chromium-review.googlesource.com/c/chromium/src/+/6400733 * chore: update patches * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: iwyu * refactor: prefer value initialization over memset() From the looks up upstream commits in base/, it looks like memset() could trigger `-Wunsafe-buffer-usage` warnings soon? Value initialization is more C++ish and less error-prone anyway, due to memset()'s easily swappable parameters. * refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA This follows F.20 in the C++ Core Guidelines and also removes the need for memset() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - strcmp() * fixup! 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: bump chromium in DEPS to 137.0.7115.0 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: update patches * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: bump chromium in DEPS to 137.0.7117.0 * chore: update patches * chore: update filesnames.libcxx.gni * 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. | https://chromium-review.googlesource.com/c/chromium/src/+/6431756 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/6428345 * 6384315: Migrate extensions_enabled from ExtensionService to Registrar | https://chromium-review.googlesource.com/c/chromium/src/+/6384315 * 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | https://chromium-review.googlesource.com/c/chromium/src/+/6428749 * chore: bump chromium in DEPS to 137.0.7119.0 * 6440290: corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * 6429230: FSA: Move blocked paths to the PermissionContext class | https://chromium-review.googlesource.com/c/chromium/src/+/6429230 * chore: update patches * chore: bump chromium in DEPS to 137.0.7121.0 * chore: update patches * fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain | https://chromium-review.googlesource.com/c/chromium/src/+/6443473 * fix: update filenames.libcxx.gni * chore: bump chromium in DEPS to 137.0.7123.0 * chore: update patches * chore: "grandfather in" electron views too Lock further access to View::set_owned_by_client() | https://chromium-review.googlesource.com/c/chromium/src/+/6448510 * chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView Add a PassKey for std::make_unique<WidgetDelegateView>() | https://chromium-review.googlesource.com/c/chromium/src/+/6442265 * Provide dbus appmenu information on Wayland | https://chromium-review.googlesource.com/c/chromium/src/+/6405535 * [extensions] Move OnExtensionInstalled out of ExtensionService. | https://chromium-review.googlesource.com/c/chromium/src/+/6443325 * refactor: grandfather in NativeWindowViews for delete callbacks 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: merge the four "grandfather" patches into one * [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | https://chromium-review.googlesource.com/c/chromium/src/+/6404386 NB: the changes here are copied from the upstream changes in chrome/browser/ui/webui/accessibility/accessibility_ui.cc * 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController | https://chromium-review.googlesource.com/c/chromium/src/+/6420753 * 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | https://chromium-review.googlesource.com/c/chromium/src/+/6429573 * chore: e patches all * 6419936: [win] Change ScreenWin public static methods to virtual | https://chromium-review.googlesource.com/c/chromium/src/+/6419936 * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - fprintf() - fputs() - snprintf() - vsnprintf() * fix: size conversion FTBFS on Win * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcscpy_s() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcsncpy_s() * chore: update mas_avoid_private_macos_api_usage.patch.patch 6394283: Remove double-declaration for accessibility on iOS | https://chromium-review.googlesource.com/c/chromium/src/+/6394283 Lots of context shear in this commit but the only interesting part is: -+ return nullptr; ++ return {}; Which is needed because the return type is sometimes not a pointer. * chore: e patches all * chore: disable -Wmacro-redefined warning in electron_main_win.cc * chore: bump chromium in DEPS to 137.0.7123.5 * refactor: patch electron PermissionTypes into blink 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: e patches all * chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370 * test: enable window-smaller-than-64x64 test on Linux * chore: bump chromium in DEPS to 137.0.7124.1 * chore: bump chromium in DEPS to 137.0.7125.1 * chore: bump chromium in DEPS to 137.0.7127.3 * 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() | https://chromium-review.googlesource.com/c/chromium/src/+/6459201 * 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | https://chromium-review.googlesource.com/c/chromium/src/+/6454796 * chore: bump chromium in DEPS to 137.0.7128.1 * chore: e patches all * chore: node ./script/gen-libc++-filenames.js * [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag Refs https://chromium-review.googlesource.com/c/chromium/src/+/6428649 * feat: allow opt-out animated_content_sampler. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6438681 * Trigger CI --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-04-22 15:53:29 -04:00
ax_state->AddAccessibilityModeFlags(ui::kAXModeComplete);
} else {
chore: bump chromium to 137.0.7128.1 (main) (#46482) * chore: bump chromium in DEPS to 137.0.7107.0 * chore: bump chromium in DEPS to 137.0.7109.0 * chore: bump chromium in DEPS to 137.0.7111.0 * chore: bump chromium in DEPS to 137.0.7113.0 * 6384240: Remove double-declaration for accessibility on macOS | https://chromium-review.googlesource.com/c/chromium/src/+/6384240 * 6422872: Remove unused includes in isolation_info_mojom_traits.h | https://chromium-review.googlesource.com/c/chromium/src/+/6422872 * chore: update patches * 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files | https://chromium-review.googlesource.com/c/chromium/src/+/6400733 * chore: update patches * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: iwyu * refactor: prefer value initialization over memset() From the looks up upstream commits in base/, it looks like memset() could trigger `-Wunsafe-buffer-usage` warnings soon? Value initialization is more C++ish and less error-prone anyway, due to memset()'s easily swappable parameters. * refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA This follows F.20 in the C++ Core Guidelines and also removes the need for memset() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - strcmp() * fixup! 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: bump chromium in DEPS to 137.0.7115.0 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: update patches * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 * chore: bump chromium in DEPS to 137.0.7117.0 * chore: update patches * chore: update filesnames.libcxx.gni * 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. | https://chromium-review.googlesource.com/c/chromium/src/+/6431756 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate | https://chromium-review.googlesource.com/c/chromium/src/+/6428345 * 6384315: Migrate extensions_enabled from ExtensionService to Registrar | https://chromium-review.googlesource.com/c/chromium/src/+/6384315 * 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. | https://chromium-review.googlesource.com/c/chromium/src/+/6428749 * chore: bump chromium in DEPS to 137.0.7119.0 * 6440290: corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * 6429230: FSA: Move blocked paths to the PermissionContext class | https://chromium-review.googlesource.com/c/chromium/src/+/6429230 * chore: update patches * chore: bump chromium in DEPS to 137.0.7121.0 * chore: update patches * fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain | https://chromium-review.googlesource.com/c/chromium/src/+/6443473 * fix: update filenames.libcxx.gni * chore: bump chromium in DEPS to 137.0.7123.0 * chore: update patches * chore: "grandfather in" electron views too Lock further access to View::set_owned_by_client() | https://chromium-review.googlesource.com/c/chromium/src/+/6448510 * chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch corner-shape: support inset shadow | https://chromium-review.googlesource.com/c/chromium/src/+/6440290 * refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView Add a PassKey for std::make_unique<WidgetDelegateView>() | https://chromium-review.googlesource.com/c/chromium/src/+/6442265 * Provide dbus appmenu information on Wayland | https://chromium-review.googlesource.com/c/chromium/src/+/6405535 * [extensions] Move OnExtensionInstalled out of ExtensionService. | https://chromium-review.googlesource.com/c/chromium/src/+/6443325 * refactor: grandfather in NativeWindowViews for delete callbacks 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). | https://chromium-review.googlesource.com/c/chromium/src/+/6433203 * chore: merge the four "grandfather" patches into one * [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() | https://chromium-review.googlesource.com/c/chromium/src/+/6404386 NB: the changes here are copied from the upstream changes in chrome/browser/ui/webui/accessibility/accessibility_ui.cc * 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController | https://chromium-review.googlesource.com/c/chromium/src/+/6420753 * 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter | https://chromium-review.googlesource.com/c/chromium/src/+/6429573 * chore: e patches all * 6419936: [win] Change ScreenWin public static methods to virtual | https://chromium-review.googlesource.com/c/chromium/src/+/6419936 * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - fprintf() - fputs() - snprintf() - vsnprintf() * fix: size conversion FTBFS on Win * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcscpy_s() * 6423410: Enable unsafe buffer warnings for chromium, try #3. | https://chromium-review.googlesource.com/c/chromium/src/+/6423410 remove all uses of: - wcsncpy_s() * chore: update mas_avoid_private_macos_api_usage.patch.patch 6394283: Remove double-declaration for accessibility on iOS | https://chromium-review.googlesource.com/c/chromium/src/+/6394283 Lots of context shear in this commit but the only interesting part is: -+ return nullptr; ++ return {}; Which is needed because the return type is sometimes not a pointer. * chore: e patches all * chore: disable -Wmacro-redefined warning in electron_main_win.cc * chore: bump chromium in DEPS to 137.0.7123.5 * refactor: patch electron PermissionTypes into blink 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 * chore: e patches all * chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370 * test: enable window-smaller-than-64x64 test on Linux * chore: bump chromium in DEPS to 137.0.7124.1 * chore: bump chromium in DEPS to 137.0.7125.1 * chore: bump chromium in DEPS to 137.0.7127.3 * 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() | https://chromium-review.googlesource.com/c/chromium/src/+/6459201 * 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions | https://chromium-review.googlesource.com/c/chromium/src/+/6454796 * chore: bump chromium in DEPS to 137.0.7128.1 * chore: e patches all * chore: node ./script/gen-libc++-filenames.js * [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag Refs https://chromium-review.googlesource.com/c/chromium/src/+/6428649 * feat: allow opt-out animated_content_sampler. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6438681 * Trigger CI --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-04-22 15:53:29 -04:00
ax_state->RemoveAccessibilityModeFlags(ui::kAXModeComplete);
}
electron::Browser::Get()->OnAccessibilitySupportChanged();
// Don't call the superclass function for AXManualAccessibility,
// as it will log an AXError and make it appear as though the attribute
// failed to take effect.
if (is_manual_ax)
return;
}
return [super accessibilitySetValue:value forAttribute:attribute];
}
- (NSAccessibilityRole)accessibilityRole {
// For non-VoiceOver AT, such as Voice Control, Apple recommends turning on
// a11y when an AT accesses the 'accessibilityRole' property. This function
// is accessed frequently so we only change the accessibility state when
// accessibility is disabled.
auto* ax_state = content::BrowserAccessibilityState::GetInstance();
if (!ax_state->GetAccessibilityMode().has_mode(ui::kAXModeBasic.flags())) {
ax_state->AddAccessibilityModeFlags(ui::kAXModeBasic);
}
return [super accessibilityRole];
}
2016-10-10 13:30:58 -07:00
- (void)orderFrontStandardAboutPanel:(id)sender {
electron::Browser::Get()->ShowAboutPanel();
}
- (void)addNativeEventProcessorObserver:
(content::NativeEventProcessorObserver*)observer {
observers_.AddObserver(observer);
}
- (void)removeNativeEventProcessorObserver:
(content::NativeEventProcessorObserver*)observer {
observers_.RemoveObserver(observer);
}
@end