
* chore: bump chromium to 135.0.7049.7 (main) (#45900) chore: bump chromium in DEPS to 135.0.7049.7 (cherry picked from commitbb1c3dff21
) * chore: bump chromium to 136.0.7053.1 (main) (#45906) * chore: bump chromium in DEPS to 136.0.7052.0 * chore: update mas_avoid_private_macos_api_usage.patch.patch6318359
patch applied manually due to context shear * chore: update preconnect_manager.patch Xref:6318420
patch applied manually due to context shear * chore: e patches all * chore: bump chromium to 136.0.7053.1 * chore: update fix_remove_profiles_from_spellcheck_service.patch Xref:6326575
patch applied manually due to context shear * chore: e patches all * chore: revert removal of v8 API used by Node.js * devtools: Remove DevToolsUIBindings::SendJsonRequest() |6326236
* 6244461: Merge //content/common/user_agent.cc into //components/embedder_support:user_agent |6244461
* 6313744: Migrate views::Background factory methods to ColorVariant |6313744
* 6314545: Remove multiple argument support from base::ToString() |6314545
* 6317362: [Extensions] Inline MessagingDelegate::CreateReceiverForTab() |6317362
* 6308998: Add SettingAccess structured metrics event for DevTools |6308998
* 6295214: Remove redundant state field in per-extension preferences |6295214
NB: this change is copied from the upstream change to extensions/shell/browser/shell_extension_loader.cc * fix: ui/ linter error This is showing up in an eslint build step in Electron: > /__w/electron/electron/src/out/Default/gen/ui/webui/resources/cr_elements/preprocessed/cr_menu_selector/cr_menu_selector.ts > 77:23 error This assertion is unnecessary since the receiver accepts the original type of the expression @typescript-eslint/no-unnecessary-type-assertion > > ✖ 1 problem (1 error, 0 warnings) > 1 error and 0 warnings potentially fixable with the `--fix` option. However, removing the assertion causes a typescript build failure: > gen/ui/webui/resources/cr_elements/preprocessed/cr_menu_selector/cr_menu_selector.ts:77:23 - error TS2345: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. > Type 'null' is not assignable to type 'HTMLElement'. > > 77 items.indexOf(this.querySelector<HTMLElement>(':focus')); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ So I think the two different steps may be picking up typescript definitions. This patch should be removed after the issue is tracked down and fixed in a followup task. * fix: -Wnonnull warning Fixes this warning: > 2025-03-07T01:05:01.8637705Z ../../third_party/electron_node/src/debug_utils.cc(257,12): error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull] > 2025-03-07T01:05:01.8638267Z 257 | return nullptr; > 2025-03-07T01:05:01.8638481Z | ^~~~~~~ > 2025-03-07T01:05:01.8638700Z 1 error generated. Not sure why this warning was never triggered before; `git blame` indicates this code hasn't changed in ages: > c40a8273ef2 (Michaël Zasso 2024-05-10 09:50:20 +0200 255) #endif // DEBUG > 8e2d33f1562 (Anna Henningsen 2018-06-07 16:54:29 +0200 256) } > 247b5130595 (Refael Ackermann 2018-10-22 15:07:00 -0400 257) return nullptr; > 247b5130595 (Refael Ackermann 2018-10-22 15:07:00 -0400 258) } Presumably this is failing in this Chromium roll due to a clang version bump. We should remove this patch after upstreaming it. * docs: add upstream pr link for Node patch --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> (cherry picked from commit458b14b8ed
) * chore!: bump chromium to 136.0.7054.0 (main) (#45923) * chore: bump chromium in DEPS to 136.0.7054.0 * chore: update allow_in-process_windows_to_have_different_web_prefs.patch Xref:5906158
patch applied manually due to context shear * chore: e patches all * refactor!: Session.clearStorageData(syncable) Xref:6309405
Remove syncable type from opts.quota in Session.clearStorageData(opts) because it that category has been removed upstream. BREAKING CHANGE: Removed ses.clearDataStorage({ quota: 'syncable' }) * docs: deprecate Session.clearDataStorage({ quota }) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> (cherry picked from commit20414f66ca
) * chore: bump chromium to 136.0.7058.1 (main) (#45928) * chore: bump chromium in DEPS to 136.0.7056.0 * chore: update mas_avoid_private_macos_api_usage.patch.patch no manual changes; patch applied with fuzz * chore: update fix_adapt_exclusive_access_for_electron_needs.patch patch applied manually due to context shear 6319958: [FS] Replace GURL with url::Origin for Excluisve Access Bubble |6319958
* chore: update feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch no manual changes; patch applied with fuzz 6311876: Expose captured surface resolution for MacOS |6311876
* chore: e patches all * 6319958: [FS] Replace GURL with url::Origin for Excluisve Access Bubble |6319958
* 6326673: views: Delete the single-parameter Widget::InitParams constructor. |6326673
*6331102
* 6331102: [A11yPerformance] Rename AXMode::kScreenReader to kExtendedProperties |6331102
Sync with shell/browser/ui/webui/accessibility_ui.cc to upstream chrome/browser/accessibility/accessibility_ui.cc changes in 4af8657 * chore: bump Chromium 136.0.7058.1 (#45933) chore: bump chromium in DEPS to 136.0.7058.1 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> (cherry picked from commitb0c11371e0
) * chore: bump chromium to 136.0.7062.0 (main) (#45957) * chore: bump chromium in DEPS to 136.0.7059.0 * chore: bump chromium in DEPS to 136.0.7060.0 * chore: bump chromium in DEPS to 136.0.7062.0 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> (cherry picked from commit2de8fd7d93
) * fixup! chore: bump chromium to 136.0.7053.1 (main) (#45906) chore: fix patch shear * chore: remove cherry-pick-521faebc8a7c.patch fixed upstream @ 521faeb 6334632: Disable setting primtive restart for WebGL in the cmd decoder. |6334632
* chore: remove cherry-pick-9dacf5694dfd.patch fixed upstream @ 9dacf56 6330188: Move WebGL primitive restart state setting to the GPU process. |6330188
* chore: e patches all --------- Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
151 lines
6.9 KiB
Diff
151 lines
6.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
Date: Mon, 6 Jul 2020 13:46:06 -0700
|
|
Subject: Adjust accessibility_ui for Electron
|
|
|
|
This tweaks Chrome's Accessibility support at chrome://accessibility
|
|
to make it usable from Electron by replacing use of the Profile PrefService
|
|
with Electron's own PrefService in ElectronBrowserContext. It also removes
|
|
usage of BrowserList and Browser as we subclass related methods and use our
|
|
WindowList.
|
|
|
|
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
|
index 230c9cb619498f315fc0913da54837b725fc9024..0fa1120ab952864e53085e7746608bb491ec14b2 100644
|
|
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
|
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
|
@@ -48,6 +48,7 @@
|
|
#include "content/public/browser/web_contents_observer.h"
|
|
#include "content/public/browser/web_contents_user_data.h"
|
|
#include "content/public/browser/web_ui_data_source.h"
|
|
+#include "electron/shell/browser/electron_browser_context.h"
|
|
#include "ui/accessibility/accessibility_features.h"
|
|
#include "ui/accessibility/ax_updates_and_events.h"
|
|
#include "ui/accessibility/platform/ax_platform_node.h"
|
|
@@ -171,7 +172,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
|
|
rvh->GetRoutingID(), accessibility_mode);
|
|
}
|
|
|
|
-#if !BUILDFLAG(IS_ANDROID)
|
|
+#if 0
|
|
base::Value::Dict BuildTargetDescriptor(Browser* browser) {
|
|
base::Value::Dict target_data;
|
|
target_data.Set(kSessionIdField, browser->session_id().id());
|
|
@@ -192,7 +193,7 @@ void HandleAccessibilityRequestCallback(
|
|
DCHECK(ShouldHandleAccessibilityRequestCallback(path));
|
|
|
|
base::Value::Dict data;
|
|
- PrefService* pref = Profile::FromBrowserContext(current_context)->GetPrefs();
|
|
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(current_context)->prefs();
|
|
ui::AXMode mode =
|
|
content::BrowserAccessibilityState::GetInstance()->GetAccessibilityMode();
|
|
bool is_native_enabled = content::BrowserAccessibilityState::GetInstance()
|
|
@@ -221,7 +222,7 @@ void HandleAccessibilityRequestCallback(
|
|
data.Set(kPDFPrinting, pdf_printing ? kOn : kOff);
|
|
|
|
std::string pref_api_type =
|
|
- pref->GetString(prefs::kShownAccessibilityApiType);
|
|
+ std::string(pref->GetString(prefs::kShownAccessibilityApiType));
|
|
bool pref_api_type_supported = false;
|
|
|
|
std::vector<ui::AXApiType::Type> supported_api_types =
|
|
@@ -288,11 +289,11 @@ void HandleAccessibilityRequestCallback(
|
|
data.Set(kPagesField, std::move(page_list));
|
|
|
|
base::Value::List browser_list;
|
|
-#if !BUILDFLAG(IS_ANDROID)
|
|
+#if 0
|
|
for (Browser* browser : *BrowserList::GetInstance()) {
|
|
browser_list.Append(BuildTargetDescriptor(browser));
|
|
}
|
|
-#endif // !BUILDFLAG(IS_ANDROID)
|
|
+#endif
|
|
data.Set(kBrowsersField, std::move(browser_list));
|
|
|
|
std::string json_string;
|
|
@@ -762,7 +763,8 @@ void AccessibilityUIMessageHandler::SetGlobalString(
|
|
const std::string value = CheckJSValue(data.FindString(kValueField));
|
|
|
|
if (string_name == kApiTypeField) {
|
|
- PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
|
|
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(
|
|
+ web_ui()->GetWebContents()->GetBrowserContext())->prefs();
|
|
pref->SetString(prefs::kShownAccessibilityApiType, value);
|
|
}
|
|
}
|
|
@@ -816,7 +818,8 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
|
|
AXPropertyFilter::ALLOW_EMPTY);
|
|
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
|
|
|
|
- PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
|
|
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(
|
|
+ web_contents->GetBrowserContext())->prefs();
|
|
ui::AXApiType::Type api_type =
|
|
ui::AXApiType::From(pref->GetString(prefs::kShownAccessibilityApiType));
|
|
std::string accessibility_contents =
|
|
@@ -843,6 +846,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
|
AXPropertyFilter::ALLOW_EMPTY);
|
|
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
|
|
|
|
+#if 0
|
|
for (Browser* browser : *BrowserList::GetInstance()) {
|
|
if (browser->session_id().id() == session_id) {
|
|
base::Value::Dict result = BuildTargetDescriptor(browser);
|
|
@@ -855,6 +859,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
|
return;
|
|
}
|
|
}
|
|
+#endif
|
|
#endif // !BUILDFLAG(IS_ANDROID)
|
|
// No browser with the specified |session_id| was found.
|
|
base::Value::Dict result;
|
|
@@ -898,11 +903,13 @@ void AccessibilityUIMessageHandler::StopRecording(
|
|
}
|
|
|
|
ui::AXApiType::Type AccessibilityUIMessageHandler::GetRecordingApiType() {
|
|
- PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
|
|
- const std::vector<ui::AXApiType::Type> supported_types =
|
|
- content::AXInspectFactory::SupportedApis();
|
|
+ PrefService* pref = static_cast<electron::ElectronBrowserContext*>(
|
|
+ web_ui()->GetWebContents()->GetBrowserContext())->prefs();
|
|
ui::AXApiType::Type api_type =
|
|
ui::AXApiType::From(pref->GetString(prefs::kShownAccessibilityApiType));
|
|
+
|
|
+ const std::vector<ui::AXApiType::Type> supported_types =
|
|
+ content::AXInspectFactory::SupportedApis();
|
|
// Check to see if it is in the supported types list.
|
|
if (std::find(supported_types.begin(), supported_types.end(), api_type) ==
|
|
supported_types.end()) {
|
|
@@ -972,8 +979,11 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
|
|
// static
|
|
void AccessibilityUIMessageHandler::RegisterProfilePrefs(
|
|
user_prefs::PrefRegistrySyncable* registry) {
|
|
+#if 0
|
|
const std::string_view default_api_type =
|
|
std::string_view(ui::AXApiType::Type(ui::AXApiType::kBlink));
|
|
registry->RegisterStringPref(prefs::kShownAccessibilityApiType,
|
|
std::string(default_api_type));
|
|
+ registry->RegisterBooleanPref(prefs::kShowInternalAccessibilityTree, false);
|
|
+#endif
|
|
}
|
|
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.h b/chrome/browser/ui/webui/accessibility/accessibility_ui.h
|
|
index b171afc941b2b3ef4aeba04a2b1c6eef2774d442..8f431aae69365bc8756e515c603332a7f1648148 100644
|
|
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.h
|
|
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.h
|
|
@@ -27,6 +27,8 @@ namespace content {
|
|
class WebContents;
|
|
} // namespace content
|
|
|
|
+class ElectronAccessibilityUIMessageHandler;
|
|
+
|
|
namespace user_prefs {
|
|
class PrefRegistrySyncable;
|
|
} // namespace user_prefs
|
|
@@ -77,6 +79,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler {
|
|
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
|
|
|
|
private:
|
|
+ friend class ElectronAccessibilityUIMessageHandler;
|
|
+
|
|
void ToggleAccessibilityForWebContents(const base::Value::List& args);
|
|
void SetGlobalFlag(const base::Value::List& args);
|
|
void SetGlobalString(const base::Value::List& args);
|