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.4670267
* 4662090: Add metrics for WebGPU support4662090
* 4672599: Use set_defaults for mac_app_bundle4672599
* 4663771: usb: Add connection count tracking methods for UsbDelegate4663771
* 4664578: Remove unused parameter from ExtensionsGuestViewManagerDelegate ctor4664578
* 4622253: usb: Create classes for usb system tray icon4622253
* 4678263: Remove ARC support from scoped_nsobject4678263
* chore: follow-up ARC changes and missing guard corrections * chore: don't mark 0-param ctor explicit Follow up to4664578
* chore: fixup patch indices * 4670865: Merge ObjectProxy::CallMethodAndBlock{,WithErrorDetails}.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>
This commit is contained in:
parent
ee4460ac68
commit
bbdd037219
77 changed files with 389 additions and 353 deletions
|
@ -86,13 +86,13 @@ bool MenuHasVisibleItems(const electron::ElectronMenuModel* model) {
|
|||
// Called when an empty submenu is created. This inserts a menu item labeled
|
||||
// "(empty)" into the submenu. Matches Windows behavior.
|
||||
NSMenu* MakeEmptySubmenu() {
|
||||
base::scoped_nsobject<NSMenu> submenu([[NSMenu alloc] initWithTitle:@""]);
|
||||
NSMenu* submenu = [[NSMenu alloc] initWithTitle:@""];
|
||||
NSString* empty_menu_title =
|
||||
l10n_util::GetNSString(IDS_APP_MENU_EMPTY_SUBMENU);
|
||||
|
||||
[submenu addItemWithTitle:empty_menu_title action:NULL keyEquivalent:@""];
|
||||
[[submenu itemAtIndex:0] setEnabled:NO];
|
||||
return submenu.autorelease();
|
||||
return submenu;
|
||||
}
|
||||
|
||||
// Convert an SharingItem to an array of NSObjects.
|
||||
|
@ -130,8 +130,7 @@ NSArray* ConvertSharingItemToNS(const SharingItem& item) {
|
|||
}
|
||||
|
||||
+ (instancetype)weakPtrForModel:(electron::ElectronMenuModel*)model {
|
||||
return [[[WeakPtrToElectronMenuModelAsNSObject alloc] initWithModel:model]
|
||||
autorelease];
|
||||
return [[WeakPtrToElectronMenuModelAsNSObject alloc] initWithModel:model];
|
||||
}
|
||||
|
||||
+ (electron::ElectronMenuModel*)getFrom:(id)instance {
|
||||
|
@ -153,12 +152,6 @@ NSArray* ConvertSharingItemToNS(const SharingItem& item) {
|
|||
|
||||
@end
|
||||
|
||||
// Menu item is located for ease of removing it from the parent owner
|
||||
static base::scoped_nsobject<NSMenuItem> recentDocumentsMenuItem_;
|
||||
|
||||
// Submenu retained to be swapped back to |recentDocumentsMenuItem_|
|
||||
static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
||||
|
||||
@implementation ElectronMenuController
|
||||
|
||||
- (electron::ElectronMenuModel*)model {
|
||||
|
@ -188,7 +181,6 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
[self cancel];
|
||||
|
||||
model_ = nullptr;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)setCloseCallback:(base::OnceClosure)callback {
|
||||
|
@ -204,8 +196,8 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
std::u16string title = u"Open Recent";
|
||||
NSString* openTitle = l10n_util::FixUpWindowsStyleLabel(title);
|
||||
|
||||
recentDocumentsMenuItem_.reset([[[[[NSApp mainMenu]
|
||||
itemWithTitle:@"Electron"] submenu] itemWithTitle:openTitle] retain]);
|
||||
recentDocumentsMenuItem_ = [[[[NSApp mainMenu] itemWithTitle:@"Electron"]
|
||||
submenu] itemWithTitle:openTitle];
|
||||
}
|
||||
|
||||
model_ = model->GetWeakPtr();
|
||||
|
@ -236,7 +228,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
// Creates a NSMenu from the given model. If the model has submenus, this can
|
||||
// be invoked recursively.
|
||||
- (NSMenu*)menuFromModel:(electron::ElectronMenuModel*)model {
|
||||
NSMenu* menu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
|
||||
NSMenu* menu = [[NSMenu alloc] initWithTitle:@""];
|
||||
|
||||
const int count = model->GetItemCount();
|
||||
for (int index = 0; index < count; index++) {
|
||||
|
@ -261,7 +253,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
- (void)moveMenuItems:(NSMenu*)source to:(NSMenu*)destination {
|
||||
const NSInteger count = [source numberOfItems];
|
||||
for (NSInteger index = 0; index < count; index++) {
|
||||
NSMenuItem* removedItem = [[[source itemAtIndex:0] retain] autorelease];
|
||||
NSMenuItem* removedItem = [source itemAtIndex:0];
|
||||
[source removeItemAtIndex:0];
|
||||
[destination addItem:removedItem];
|
||||
}
|
||||
|
@ -270,8 +262,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
// Replaces the item's submenu instance with the singleton recent documents
|
||||
// menu. Previously replaced menu items will be recovered.
|
||||
- (void)replaceSubmenuShowingRecentDocuments:(NSMenuItem*)item {
|
||||
NSMenu* recentDocumentsMenu =
|
||||
[[[recentDocumentsMenuItem_ submenu] retain] autorelease];
|
||||
NSMenu* recentDocumentsMenu = [recentDocumentsMenuItem_ submenu];
|
||||
|
||||
// Remove menu items in recent documents back to swap menu
|
||||
[self moveMenuItems:recentDocumentsMenu to:recentDocumentsMenuSwap_];
|
||||
|
@ -279,7 +270,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
[recentDocumentsMenuItem_ setSubmenu:recentDocumentsMenuSwap_];
|
||||
|
||||
// Retain the item's submenu for a future recovery
|
||||
recentDocumentsMenuSwap_.reset([[item submenu] retain]);
|
||||
recentDocumentsMenuSwap_ = [item submenu];
|
||||
|
||||
// Repopulate with items from the submenu to be replaced
|
||||
[self moveMenuItems:recentDocumentsMenuSwap_ to:recentDocumentsMenu];
|
||||
|
@ -292,7 +283,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
DCHECK_EQ([item target], recentDocumentsMenu);
|
||||
|
||||
// Remember the new menu item that carries the recent documents menu
|
||||
recentDocumentsMenuItem_.reset([item retain]);
|
||||
recentDocumentsMenuItem_ = item;
|
||||
}
|
||||
|
||||
// Fill the menu with Share Menu items.
|
||||
|
@ -300,36 +291,33 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
NSArray* items = ConvertSharingItemToNS(item);
|
||||
if ([items count] == 0)
|
||||
return MakeEmptySubmenu();
|
||||
base::scoped_nsobject<NSMenu> menu([[NSMenu alloc] init]);
|
||||
NSMenu* menu = [[NSMenu alloc] init];
|
||||
NSArray* services = [NSSharingService sharingServicesForItems:items];
|
||||
for (NSSharingService* service in services)
|
||||
[menu addItem:[self menuItemForService:service withItems:items]];
|
||||
return menu.autorelease();
|
||||
return menu;
|
||||
}
|
||||
|
||||
// Creates a menu item that calls |service| when invoked.
|
||||
- (NSMenuItem*)menuItemForService:(NSSharingService*)service
|
||||
withItems:(NSArray*)items {
|
||||
base::scoped_nsobject<NSMenuItem> item([[NSMenuItem alloc]
|
||||
initWithTitle:service.menuItemTitle
|
||||
action:@selector(performShare:)
|
||||
keyEquivalent:@""]);
|
||||
NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:service.menuItemTitle
|
||||
action:@selector(performShare:)
|
||||
keyEquivalent:@""];
|
||||
[item setTarget:self];
|
||||
[item setImage:service.image];
|
||||
[item setRepresentedObject:@{@"service" : service, @"items" : items}];
|
||||
return item.autorelease();
|
||||
return item;
|
||||
}
|
||||
|
||||
- (base::scoped_nsobject<NSMenuItem>)
|
||||
makeMenuItemForIndex:(NSInteger)index
|
||||
fromModel:(electron::ElectronMenuModel*)model {
|
||||
- (NSMenuItem*)makeMenuItemForIndex:(NSInteger)index
|
||||
fromModel:(electron::ElectronMenuModel*)model {
|
||||
std::u16string label16 = model->GetLabelAt(index);
|
||||
NSString* label = l10n_util::FixUpWindowsStyleLabel(label16);
|
||||
|
||||
base::scoped_nsobject<NSMenuItem> item([[NSMenuItem alloc]
|
||||
initWithTitle:label
|
||||
action:@selector(itemSelected:)
|
||||
keyEquivalent:@""]);
|
||||
NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:label
|
||||
action:@selector(itemSelected:)
|
||||
keyEquivalent:@""];
|
||||
|
||||
// If the menu item has an icon, set it.
|
||||
ui::ImageModel icon = model->GetIconAt(index);
|
||||
|
@ -348,7 +336,7 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
|
||||
[item setTarget:nil];
|
||||
[item setAction:nil];
|
||||
NSMenu* submenu = [[[NSMenu alloc] initWithTitle:sub_label] autorelease];
|
||||
NSMenu* submenu = [[NSMenu alloc] initWithTitle:sub_label];
|
||||
[item setSubmenu:submenu];
|
||||
[NSApp setServicesMenu:submenu];
|
||||
} else if (role == u"sharemenu") {
|
||||
|
@ -504,18 +492,18 @@ static base::scoped_nsobject<NSMenu> recentDocumentsMenuSwap_;
|
|||
|
||||
- (NSMenu*)menu {
|
||||
if (menu_)
|
||||
return menu_.get();
|
||||
return menu_;
|
||||
|
||||
if (model_ && model_->GetSharingItem()) {
|
||||
NSMenu* menu = [self createShareMenuForItem:*model_->GetSharingItem()];
|
||||
menu_.reset([menu retain]);
|
||||
menu_ = menu;
|
||||
} else {
|
||||
menu_.reset([[NSMenu alloc] initWithTitle:@""]);
|
||||
menu_ = [[NSMenu alloc] initWithTitle:@""];
|
||||
if (model_)
|
||||
[self populateWithModel:model_.get()];
|
||||
}
|
||||
[menu_ setDelegate:self];
|
||||
return menu_.get();
|
||||
return menu_;
|
||||
}
|
||||
|
||||
- (BOOL)isMenuOpen {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue