c2939ef9af
* chore: bump chromium to 128.0.6558.0 32-x-y * chore: bump chromium in DEPS to 127.0.6526.0 * chore: update network_service_allow_remote_certificate_verification_logic.patch manually apply patch due to minor upstream shear Xref: https://chromium-review.googlesource.com/c/chromium/src/+/5598454 * chore: update fix_move_autopipsettingshelper_behind_branding_buildflag.patch No manual changes; patch applied with fuzz 1 * chore: update refactor_expose_file_system_access_blocklist.patch No manual changes; patch applied with fuzz 2 * chore: update revert_heap_add_checks_position_info.patch No manual changes; patch applied with fuzz 1 * chore: e patches all * chore: bump chromium in DEPS to 127.0.6527.0 * chore: update patches * chore: bump chromium in DEPS to 127.0.6529.0 * chore: bump chromium in DEPS to 127.0.6531.0 * chore: update patches * 5596349: Remove PDF OCR toggle from settings. https://chromium-review.googlesource.com/c/chromium/src/+/5596349 * 5585932: [video-pip] Add minimize button to video picture-in-picture window https://chromium-review.googlesource.com/c/chromium/src/+/5585932 * 5604487: Reland "[api] Deprecate v8::FunctionCallbackInfo::Holder() for real" https://chromium-review.googlesource.com/c/v8/v8/+/5604487 * 5581721: [DEPS] Update clang-format location https://chromium-review.googlesource.com/c/chromium/src/+/5581721 * 5597904: [Windows] Remove ConvertToLongPath from Sandbox Utilities. https://chromium-review.googlesource.com/c/chromium/src/+/5597904 ResolveNTFunctionPtr was removed in this CL. * fix: visibility state specs on macOS Refs https://chromium-review.googlesource.com/c/chromium/src/+/5605407 * Revert "fix: visibility state specs on macOS" This reverts commit 1eee30a33dfafeec86cdd09526a07b01abca2ed6. * temp: disable occlusion checker on macOS * chore: bump chromium in DEPS to 128.0.6535.0 * chore: update patches * [Extensions] Move some scriptings files out of the API directory. Refs https://chromium-review.googlesource.com/c/chromium/src/+/5606682 * fix[node]: do not use soon-to-be-deprecated V8 API * fix: update api_remove_allcan_read_write.patch * chore: update patches * chore: update patches * chore: fix lf mismatch in api_remove_allcan_read_write.patch * chore: update patches * chore: bump chromium in DEPS to 128.0.6538.0 * chore: update v8 patches * chore: update patches * ui/gl/features.gni: Set use_egl=true unconditionally. Refs https://chromium-review.googlesource.com/c/chromium/src/+/5569748 Refs https://issues.chromium.org/issues/344606399 * chore: bump chromium in DEPS to 128.0.6540.0 * chore: bump chromium in DEPS to 128.0.6541.0 * chore: update patches * chore: fix nan read/write patch * chore: bump chromium in DEPS to 128.0.6543.0 * 5626254: Use sandbox_type instead of process_type | https://chromium-review.googlesource.com/c/chromium/src/+/5626254 * chore: update patches * rework nan patches * 5621488: Apply consistent naming conventions to zoom values | https://chromium-review.googlesource.com/c/chromium/src/+/5621488 * chore: bump chromium in DEPS to 128.0.6544.0 * 5605693: Remove files from third_party/ninja | https://chromium-review.googlesource.com/c/chromium/src/+/5605693 * chore: update patches * chore: maybe fix nan patch, part 3 * chore: delete nan patch * chore: re-add nan patch (attempt 2) * chore: add test patch * fixup! add test patch * chore: bump chromium in DEPS to 128.0.6549.0 * chore: bump chromium in DEPS to 128.0.6551.0 * 5637699: Add command line to ASAN Additional Info section | https://chromium-review.googlesource.com/c/chromium/src/+/5637699 * chore: update patches * chore: bump chromium in DEPS to 128.0.6553.0 * chore: bump chromium in DEPS to 128.0.6555.0 * fix: add property query interceptors * chore: bump chromium in DEPS to 128.0.6557.0 * 5583182: Automatic Fullscreen: Prototype Permissions API query support | https://chromium-review.googlesource.com/c/chromium/src/+/5583182 * 5613297: Move render input router and related dependencies to //components/input | https://chromium-review.googlesource.com/c/chromium/src/+/5613297 * chore: update patches * test: skip methodswithdata-test.js nan test * chore: bump chromium in DEPS to 128.0.6558.0 * chore: update patches * build: reference correct ninja cipd ref Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5605693 * update libcxx filenames * refactor: CursorManager moved to //components/input Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5613297 * refactor: spanify mojo Read/WriteData methods Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5619291 * refactor: remove constexpr from KeyboardCodeFromKeyIdentifier Ref: unknown Added TODO to investigate after * chore: update patches * refactor: improve type safety of a11y ids Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5614590 * chore: disable tls node tests that don't apply given boringssl tls configuration Ref: https://boringssl-review.googlesource.com/c/boringssl/+/68487 * chore: add patch to fix nan v8 incompat with NamedPropertyHandlerConfiguration and IndexedPropertyHandlerConfiguration Ref: https://chromium-review.googlesource.com/c/v8/v8/+/5630388 * fix: limit subspan length per feedback * Fix incorrect CalculateInsetsInDIP check * 5645742: Reland "Reland "Add toolchains without PartitionAlloc-Everywhere for dump_syms et al"" https://chromium-review.googlesource.com/c/chromium/src/+/5645742 * chore: more Windows logging * 5617471: Add NPU blocking to chromium blocklist https://chromium-review.googlesource.com/c/chromium/src/+/5617471 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Alice Zhao <alice@makenotion.com> Co-authored-by: Samuel Attard <marshallofsound@electronjs.org> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> * chore: cleanup .patches after trop --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
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 8bf96dc519e1479d8986ff81c3c81641e5e7c58b..a2b70a26febcebedc125c4c83b662b3c77cb428b 100644
|
|
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
|
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
|
|
@@ -43,6 +43,7 @@
|
|
#include "content/public/browser/web_contents.h"
|
|
#include "content/public/browser/web_contents_delegate.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"
|
|
@@ -169,7 +170,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
|
|
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());
|
|
@@ -203,7 +204,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()
|
|
@@ -236,7 +237,7 @@ void HandleAccessibilityRequestCallback(
|
|
data.Set(kViewsAccessibility, features::IsAccessibilityTreeForViewsEnabled());
|
|
|
|
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 =
|
|
@@ -303,11 +304,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));
|
|
|
|
base::Value::List widgets_list;
|
|
@@ -647,7 +648,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);
|
|
}
|
|
}
|
|
@@ -700,7 +702,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 =
|
|
@@ -727,6 +730,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);
|
|
@@ -739,6 +743,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
|
return;
|
|
}
|
|
}
|
|
+#endif
|
|
#endif // !BUILDFLAG(IS_ANDROID)
|
|
// No browser with the specified |session_id| was found.
|
|
base::Value::Dict result;
|
|
@@ -807,11 +812,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()) {
|
|
@@ -881,8 +888,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 45dead36d71f1c91e1be607180e548854083304c..79a2742e6b95e9ab8257c0f1af75eeebce8566e9 100644
|
|
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.h
|
|
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.h
|
|
@@ -30,6 +30,8 @@ class ScopedAccessibilityMode;
|
|
class WebContents;
|
|
} // namespace content
|
|
|
|
+class ElectronAccessibilityUIMessageHandler;
|
|
+
|
|
namespace user_prefs {
|
|
class PrefRegistrySyncable;
|
|
} // namespace user_prefs
|
|
@@ -82,6 +84,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler {
|
|
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
|
|
|
|
private:
|
|
+ friend class ElectronAccessibilityUIMessageHandler;
|
|
+
|
|
// Applies `mode` to `web_contents` for the lifetime of the accessibility
|
|
// UI page.
|
|
void SetAccessibilityModeForWebContents(content::WebContents* web_contents,
|