diff --git a/shell/browser/native_window.cc b/shell/browser/native_window.cc index e28951a4518b..a456d6b51721 100644 --- a/shell/browser/native_window.cc +++ b/shell/browser/native_window.cc @@ -781,14 +781,6 @@ const views::Widget* NativeWindow::GetWidget() const { return widget(); } -std::u16string NativeWindow::GetAccessibleWindowTitle() const { - if (accessible_title_.empty()) { - return views::WidgetDelegate::GetAccessibleWindowTitle(); - } - - return accessible_title_; -} - std::string NativeWindow::GetTitle() const { return base::UTF16ToUTF8(WidgetDelegate::GetWindowTitle()); } @@ -802,11 +794,11 @@ void NativeWindow::SetTitle(const std::string_view title) { } void NativeWindow::SetAccessibleTitle(const std::string& title) { - accessible_title_ = base::UTF8ToUTF16(title); + WidgetDelegate::SetAccessibleTitle(base::UTF8ToUTF16(title)); } std::string NativeWindow::GetAccessibleTitle() { - return base::UTF16ToUTF8(accessible_title_); + return base::UTF16ToUTF8(GetAccessibleWindowTitle()); } void NativeWindow::HandlePendingFullscreenTransitions() { diff --git a/shell/browser/native_window.h b/shell/browser/native_window.h index 4862ca485255..5232b813f085 100644 --- a/shell/browser/native_window.h +++ b/shell/browser/native_window.h @@ -447,7 +447,6 @@ class NativeWindow : public base::SupportsUserData, // views::WidgetDelegate: views::Widget* GetWidget() override; const views::Widget* GetWidget() const override; - std::u16string GetAccessibleWindowTitle() const override; void set_content_view(views::View* view) { content_view_ = view; } @@ -532,9 +531,6 @@ class NativeWindow : public base::SupportsUserData, absl::flat_hash_set background_throttling_sources_; - // Accessible title. - std::u16string accessible_title_; - std::string vibrancy_; std::string background_material_; diff --git a/spec/api-browser-window-spec.ts b/spec/api-browser-window-spec.ts index 5d44f5281d3f..422707c751e2 100755 --- a/spec/api-browser-window-spec.ts +++ b/spec/api-browser-window-spec.ts @@ -16,6 +16,7 @@ import { setTimeout } from 'node:timers/promises'; import * as nodeUrl from 'node:url'; import { emittedUntil, emittedNTimes } from './lib/events-helpers'; +import { randomString } from './lib/net-helpers'; import { HexColors, hasCapturableScreen, ScreenCapture } from './lib/screen-helpers'; import { ifit, ifdescribe, defer, listen, waitUntil } from './lib/spec-helpers'; import { closeWindow, closeAllWindows } from './lib/window-helpers'; @@ -232,6 +233,36 @@ describe('BrowserWindow module', () => { }); }); + describe('window.accessibleTitle', () => { + const title = 'Window Title'; + let w: BrowserWindow; + beforeEach(() => { + w = new BrowserWindow({ show: false, title, webPreferences: { nodeIntegration: true, contextIsolation: false } }); + }); + afterEach(async () => { + await closeWindow(w); + w = null as unknown as BrowserWindow; + }); + + it('should default to the window title', async () => { + expect(w.accessibleTitle).to.equal(title); + }); + + it('should be mutable', async () => { + const accessibleTitle = randomString(20); + w.accessibleTitle = accessibleTitle; + expect(w.accessibleTitle).to.equal(accessibleTitle); + }); + + it('should be clearable', async () => { + const accessibleTitle = randomString(20); + w.accessibleTitle = accessibleTitle; + expect(w.accessibleTitle).to.equal(accessibleTitle); + w.accessibleTitle = ''; + expect(w.accessibleTitle).to.equal(title); + }); + }); + describe('window.close()', () => { let w: BrowserWindow; beforeEach(() => {