0

Convert /ui/views_content_client to use ARC

See https://chromium.googlesource.com/chromium/src/+/main/docs/mac/arc.md
for information about this conversion.

Bug: 1280317
Change-Id: I97b0a35ac43857196f234b50a98e271be15f0b50
Include-Ci-Only-Tests: true
Validate-Test-Flakiness: skip
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4528777
Auto-Submit: Avi Drissman <avi@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1143546}
This commit is contained in:
Avi Drissman
2023-05-12 22:46:32 +00:00
committed by Chromium LUCI CQ
parent 4c8a3029c4
commit b7d725a0dc
2 changed files with 16 additions and 11 deletions

@ -25,6 +25,7 @@ component("views_content_client") {
if (is_mac) {
sources += [ "views_content_client_main_parts_mac.mm" ]
configs += [ "//build/config/compiler:enable_arc" ]
}
defines = [ "VIEWS_CONTENT_CLIENT_IMPLEMENTATION" ]

@ -9,7 +9,6 @@
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/mac/scoped_nsobject.h"
#include "base/path_service.h"
#include "content/public/browser/context_factory.h"
#include "content/public/common/content_paths.h"
@ -20,9 +19,13 @@
#include "ui/views_content_client/views_content_client.h"
#include "ui/views_content_client/views_content_client_main_parts.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
// A simple NSApplicationDelegate that provides a basic mainMenu and can
// activate a task when the application has finished loading.
@interface ViewsContentClientAppController : NSObject<NSApplicationDelegate> {
@interface ViewsContentClientAppController : NSObject <NSApplicationDelegate> {
@private
base::OnceClosure _onApplicationDidFinishLaunching;
}
@ -52,7 +55,7 @@ class ViewsContentClientMainPartsMac : public ViewsContentClientMainParts {
int PreMainMessageLoopRun() override;
private:
base::scoped_nsobject<ViewsContentClientAppController> app_controller_;
ViewsContentClientAppController* __strong app_controller_;
};
ViewsContentClientMainPartsMac::ViewsContentClientMainPartsMac(
@ -62,8 +65,8 @@ ViewsContentClientMainPartsMac::ViewsContentClientMainPartsMac(
base::FilePath child_process_exe;
base::PathService::Get(content::CHILD_PROCESS_EXE, &child_process_exe);
app_controller_.reset([[ViewsContentClientAppController alloc] init]);
[[NSApplication sharedApplication] setDelegate:app_controller_];
app_controller_ = [[ViewsContentClientAppController alloc] init];
NSApplication.sharedApplication.delegate = app_controller_;
}
int ViewsContentClientMainPartsMac::PreMainMessageLoopRun() {
@ -86,7 +89,7 @@ int ViewsContentClientMainPartsMac::PreMainMessageLoopRun() {
}
ViewsContentClientMainPartsMac::~ViewsContentClientMainPartsMac() {
[[NSApplication sharedApplication] setDelegate:nil];
NSApplication.sharedApplication.delegate = nil;
}
} // namespace
@ -121,13 +124,14 @@ void ViewsContentClientMainParts::PreBrowserMain() {
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
// Create a basic mainMenu object using the executable filename.
base::scoped_nsobject<NSMenu> mainMenu([[NSMenu alloc] initWithTitle:@""]);
NSMenuItem* appMenuItem =
[mainMenu addItemWithTitle:@"" action:NULL keyEquivalent:@""];
NSMenu* mainMenu = [[NSMenu alloc] initWithTitle:@""];
NSMenuItem* appMenuItem = [mainMenu addItemWithTitle:@""
action:nullptr
keyEquivalent:@""];
[NSApp setMainMenu:mainMenu];
base::scoped_nsobject<NSMenu> appMenu([[NSMenu alloc] initWithTitle:@""]);
NSString* appName = [[NSProcessInfo processInfo] processName];
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@""];
NSString* appName = NSProcessInfo.processInfo.processName;
// TODO(tapted): Localize "Quit" if this is ever used for a released binary.
// At the time of writing, ui_strings.grd has "Close" but not "Quit".
NSString* quitTitle = [@"Quit " stringByAppendingString:appName];