[MacOS] Move relauchOnMac out of WebUI.
When building tests the following error happens: 17:40:57 gen/chrome/test/data/webui/settings/preprocessed/test_lifetime_browser_proxy.ts:11:14 - error TS2420: Class 'TestLifetimeBrowserProxy' incorrectly implements interface 'LifetimeBrowserProxy'. 17:40:57 Property 'relaunchOnMac' is missing in type 'TestLifetimeBrowserProxy' but required in type 'LifetimeBrowserProxy'. 17:40:57 17:40:57 11 export class TestLifetimeBrowserProxy extends TestBrowserProxy implements 17:40:57 ~~~~~~~~~~~~~~~~~~~~~~~~ 17:40:57 17:40:57 gen/chrome/browser/resources/settings/tsc/lifetime_browser_proxy.d.ts:4:5 17:40:57 4 relaunchOnMac(): void; 17:40:57 ~~~~~~~~~~~~~~~~~~~~~~ 17:40:57 'relaunchOnMac' is declared here. which means we'd have to add a patch to test_lifetime_proxy.ts to add our relaunchOnMac functionality. Instead, this change removes all relaunchOnMac functionality from WebUI and moves it into the BrowserLifetimeHandler.
This commit is contained in:
@@ -11,7 +11,6 @@
|
||||
#include "brave/browser/ntp_background_images/view_counter_service_factory.h"
|
||||
#include "brave/browser/resources/settings/grit/brave_settings_resources.h"
|
||||
#include "brave/browser/resources/settings/grit/brave_settings_resources_map.h"
|
||||
#include "brave/browser/sparkle_buildflags.h"
|
||||
#include "brave/browser/ui/webui/navigation_bar_data_provider.h"
|
||||
#include "brave/browser/ui/webui/settings/brave_appearance_handler.h"
|
||||
#include "brave/browser/ui/webui/settings/brave_default_extensions_handler.h"
|
||||
@@ -31,10 +30,6 @@
|
||||
#include "content/public/browser/web_ui_data_source.h"
|
||||
#include "content/public/common/content_features.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_SPARKLE)
|
||||
#include "brave/browser/ui/webui/settings/brave_relaunch_handler_mac.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_SIDEBAR)
|
||||
#include "brave/browser/ui/sidebar/sidebar_utils.h"
|
||||
#endif
|
||||
@@ -64,10 +59,6 @@ BraveSettingsUI::BraveSettingsUI(content::WebUI* web_ui,
|
||||
web_ui->AddMessageHandler(std::make_unique<BraveAppearanceHandler>());
|
||||
web_ui->AddMessageHandler(std::make_unique<BraveSyncHandler>());
|
||||
web_ui->AddMessageHandler(std::make_unique<BraveWalletHandler>());
|
||||
#if BUILDFLAG(ENABLE_SPARKLE)
|
||||
// Use sparkle's relaunch api for browser relaunch on update.
|
||||
web_ui->AddMessageHandler(std::make_unique<BraveRelaunchHandler>());
|
||||
#endif
|
||||
#if defined(OS_WIN)
|
||||
if (MSEdgeProtocolMessageHandler::CanSetDefaultMSEdgeProtocolHandler())
|
||||
web_ui->AddMessageHandler(std::make_unique<MSEdgeProtocolMessageHandler>());
|
||||
|
||||
@@ -6,24 +6,10 @@
|
||||
#ifndef BRAVE_BROWSER_UI_WEBUI_SETTINGS_BRAVE_RELAUNCH_HANDLER_MAC_H_
|
||||
#define BRAVE_BROWSER_UI_WEBUI_SETTINGS_BRAVE_RELAUNCH_HANDLER_MAC_H_
|
||||
|
||||
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
|
||||
namespace brave_relaunch_handler {
|
||||
|
||||
class Profile;
|
||||
void RelaunchOnMac();
|
||||
|
||||
class BraveRelaunchHandler : public settings::SettingsPageUIHandler {
|
||||
public:
|
||||
BraveRelaunchHandler() = default;
|
||||
~BraveRelaunchHandler() override = default;
|
||||
|
||||
private:
|
||||
// SettingsPageUIHandler overrides:
|
||||
void RegisterMessages() override;
|
||||
void OnJavascriptAllowed() override {}
|
||||
void OnJavascriptDisallowed() override {}
|
||||
|
||||
void Relaunch(base::Value::ConstListView args);
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(BraveRelaunchHandler);
|
||||
};
|
||||
} // namespace brave_relaunch_handler
|
||||
|
||||
#endif // BRAVE_BROWSER_UI_WEBUI_SETTINGS_BRAVE_RELAUNCH_HANDLER_MAC_H_
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "brave/browser/ui/webui/settings/brave_relaunch_handler_mac.h"
|
||||
|
||||
#include "base/bind.h"
|
||||
#import "brave/browser/mac/sparkle_glue.h"
|
||||
|
||||
void BraveRelaunchHandler::RegisterMessages() {
|
||||
web_ui()->RegisterMessageCallback(
|
||||
"relaunchOnMac", base::BindRepeating(&BraveRelaunchHandler::Relaunch,
|
||||
base::Unretained(this)));
|
||||
}
|
||||
namespace brave_relaunch_handler {
|
||||
|
||||
void BraveRelaunchHandler::Relaunch(base::Value::ConstListView args) {
|
||||
void RelaunchOnMac() {
|
||||
[[SparkleGlue sharedSparkleGlue] relaunch];
|
||||
}
|
||||
|
||||
} // namespace brave_relaunch_handler
|
||||
@@ -0,0 +1,30 @@
|
||||
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "chrome/browser/ui/webui/settings/browser_lifetime_handler.h"
|
||||
|
||||
#include "brave/browser/sparkle_buildflags.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_SPARKLE)
|
||||
#include "brave/browser/ui/webui/settings/brave_relaunch_handler_mac.h"
|
||||
#endif
|
||||
|
||||
#define BrowserLifetimeHandler BrowserLifetimeHandler_ChromiumImpl
|
||||
#include "../../../../../../../chrome/browser/ui/webui/settings/browser_lifetime_handler.cc"
|
||||
#undef BrowserLifetimeHandler
|
||||
|
||||
namespace settings {
|
||||
|
||||
BrowserLifetimeHandler::~BrowserLifetimeHandler() {}
|
||||
|
||||
void BrowserLifetimeHandler::HandleRelaunch(const base::ListValue* args) {
|
||||
#if BUILDFLAG(ENABLE_SPARKLE)
|
||||
brave_relaunch_handler::RelaunchOnMac();
|
||||
return;
|
||||
#endif
|
||||
BrowserLifetimeHandler_ChromiumImpl::HandleRelaunch(args);
|
||||
}
|
||||
|
||||
} // namespace settings
|
||||
@@ -0,0 +1,38 @@
|
||||
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_WEBUI_SETTINGS_BROWSER_LIFETIME_HANDLER_H_
|
||||
#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_WEBUI_SETTINGS_BROWSER_LIFETIME_HANDLER_H_
|
||||
|
||||
#define BrowserLifetimeHandler BrowserLifetimeHandler_ChromiumImpl
|
||||
#define HandleRelaunch \
|
||||
Dummy(); \
|
||||
\
|
||||
protected: \
|
||||
virtual void HandleRelaunch
|
||||
|
||||
#include "../../../../../../../chrome/browser/ui/webui/settings/browser_lifetime_handler.h"
|
||||
#undef HandleRelaunch
|
||||
#undef BrowserLifetimeHandler
|
||||
|
||||
namespace settings {
|
||||
|
||||
class BrowserLifetimeHandler : public BrowserLifetimeHandler_ChromiumImpl {
|
||||
public:
|
||||
using BrowserLifetimeHandler_ChromiumImpl::
|
||||
BrowserLifetimeHandler_ChromiumImpl;
|
||||
|
||||
BrowserLifetimeHandler(const BrowserLifetimeHandler&) = delete;
|
||||
BrowserLifetimeHandler& operator=(const BrowserLifetimeHandler&) = delete;
|
||||
|
||||
~BrowserLifetimeHandler() override;
|
||||
|
||||
private:
|
||||
void HandleRelaunch(const base::ListValue* /*args*/) override;
|
||||
};
|
||||
|
||||
} // namespace settings
|
||||
|
||||
#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_WEBUI_SETTINGS_BROWSER_LIFETIME_HANDLER_H_
|
||||
@@ -1,19 +0,0 @@
|
||||
diff --git a/chrome/browser/resources/settings/about_page/about_page.ts b/chrome/browser/resources/settings/about_page/about_page.ts
|
||||
index a5dcbb3ee70a59be9e4d269e62f88c0cf2d16160..d54d233e4ad0c4a92d845d87e2c59b8c816e7347 100644
|
||||
--- a/chrome/browser/resources/settings/about_page/about_page.ts
|
||||
+++ b/chrome/browser/resources/settings/about_page/about_page.ts
|
||||
@@ -190,7 +190,14 @@ export class SettingsAboutPageElement extends SettingsAboutPageElementBase {
|
||||
}
|
||||
|
||||
private onRelaunchTap_() {
|
||||
+ // <if expr="is_macosx">
|
||||
+ // Sparkle framework's relaunch api is used.
|
||||
+ LifetimeBrowserProxyImpl.getInstance().relaunchOnMac();
|
||||
+ // </if>
|
||||
+
|
||||
+ // <if expr="not is_macosx">
|
||||
LifetimeBrowserProxyImpl.getInstance().relaunch();
|
||||
+ // </if>
|
||||
}
|
||||
|
||||
// <if expr="not chromeos">
|
||||
@@ -1,32 +0,0 @@
|
||||
diff --git a/chrome/browser/resources/settings/lifetime_browser_proxy.ts b/chrome/browser/resources/settings/lifetime_browser_proxy.ts
|
||||
index 88d9caa34016bcf9d87a908303e77bb89df48b81..a2827a32a3885c05da3722ce99328e1033fe9461 100644
|
||||
--- a/chrome/browser/resources/settings/lifetime_browser_proxy.ts
|
||||
+++ b/chrome/browser/resources/settings/lifetime_browser_proxy.ts
|
||||
@@ -9,6 +9,13 @@ export interface LifetimeBrowserProxy {
|
||||
// Triggers a browser relaunch.
|
||||
relaunch(): void;
|
||||
|
||||
+ // <if expr="is_macosx">
|
||||
+ // Use separate api for relaunch after update on Mac.
|
||||
+ // Chromium's relaunch api isn't compatible with sparkle framework.
|
||||
+ // So, sparkle framework's relaunch api is used on Mac.
|
||||
+ relaunchOnMac(): void;
|
||||
+ // </if>
|
||||
+
|
||||
// <if expr="chromeos">
|
||||
// First signs out current user and then performs a restart.
|
||||
signOutAndRestart(): void;
|
||||
@@ -30,6 +37,13 @@ export class LifetimeBrowserProxyImpl implements LifetimeBrowserProxy {
|
||||
chrome.send('relaunch');
|
||||
}
|
||||
|
||||
+ // <if expr="is_macosx">
|
||||
+ /** @override */
|
||||
+ relaunchOnMac() {
|
||||
+ chrome.send('relaunchOnMac');
|
||||
+ }
|
||||
+ // </if>
|
||||
+
|
||||
// <if expr="chromeos">
|
||||
signOutAndRestart() {
|
||||
chrome.send('signOutAndRestart');
|
||||
Reference in New Issue
Block a user