![electron-roller[bot]](/assets/img/avatar_default.png)
* chore: bump chromium in DEPS to 137.0.7107.0 * chore: bump chromium in DEPS to 137.0.7109.0 * chore: bump chromium in DEPS to 137.0.7111.0 * chore: bump chromium in DEPS to 137.0.7113.0 * 6384240: Remove double-declaration for accessibility on macOS |6384240
* 6422872: Remove unused includes in isolation_info_mojom_traits.h |6422872
* chore: update patches * 6400733: Avoid ipc_message_macros.h usage in some foo_param_traits_macros.h files |6400733
* chore: update patches * 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
* chore: iwyu * refactor: prefer value initialization over memset() From the looks up upstream commits in base/, it looks like memset() could trigger `-Wunsafe-buffer-usage` warnings soon? Value initialization is more C++ish and less error-prone anyway, due to memset()'s easily swappable parameters. * refactor: NotifyIcon::InitIconData() returns a NOTIFYICONDATA This follows F.20 in the C++ Core Guidelines and also removes the need for memset() * 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
remove all uses of: - strcmp() * fixup! 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
* 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). |6433203
* chore: bump chromium in DEPS to 137.0.7115.0 * 6387077: [PermissionOptions] Generalize PermissionRequestDescription |6387077
* chore: update patches * 6387077: [PermissionOptions] Generalize PermissionRequestDescription |6387077
* fix: add pragma for MacSDK unsafe buffers | 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
* chore: bump chromium in DEPS to 137.0.7117.0 * chore: update patches * chore: update filesnames.libcxx.gni * 6431756: Replace SetOwnedByWidget() bool arg with a PassKey. |6431756
* 6387077: [PermissionOptions] Generalize PermissionRequestDescription |6387077
* 6428345: Remove ExtensionService usage from ChromeExtensionRegistrarDelegate |6428345
* 6384315: Migrate extensions_enabled from ExtensionService to Registrar |6384315
* 6428749: [extensions] Refactor ExtensionService for AddNewAndUpdateExtension. |6428749
* chore: bump chromium in DEPS to 137.0.7119.0 * 6440290: corner-shape: support inset shadow |6440290
* 6429230: FSA: Move blocked paths to the PermissionContext class |6429230
* chore: update patches * chore: bump chromium in DEPS to 137.0.7121.0 * chore: update patches * fix: partially revert 6443473: Remove ItemDelete from the Mac version of AppleKeychain |6443473
* fix: update filenames.libcxx.gni * chore: bump chromium in DEPS to 137.0.7123.0 * chore: update patches * chore: "grandfather in" electron views too Lock further access to View::set_owned_by_client() |6448510
* chore: update feat_corner_smoothing_css_rule_and_blink_painting.patch corner-shape: support inset shadow |6440290
* refactor: grandfather in AutofillPopupView as a subclass of WidgetDelegateView Add a PassKey for std::make_unique<WidgetDelegateView>() |6442265
* Provide dbus appmenu information on Wayland |6405535
* [extensions] Move OnExtensionInstalled out of ExtensionService. |6443325
* refactor: grandfather in NativeWindowViews for delete callbacks 6433203: Add a PassKey to RegisterDeleteDelegateCallback(). |6433203
* chore: merge the four "grandfather" patches into one * [A11yPerformance] Remove IsAccessibilityAllowed() | 6404386: [A11yPerformance] Remove IsAccessibilityAllowed() |6404386
NB: the changes here are copied from the upstream changes in chrome/browser/ui/webui/accessibility/accessibility_ui.cc * 6420753: [PermissionOptions] Use PermissionDescriptorPtr in PermissionController |6420753
* 6429573: [accessibility] Move mode change out of AccessibilityNotificationWaiter |6429573
* chore: e patches all * 6419936: [win] Change ScreenWin public static methods to virtual |6419936
* 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
remove all uses of: - fprintf() - fputs() - snprintf() - vsnprintf() * fix: size conversion FTBFS on Win * 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
remove all uses of: - wcscpy_s() * 6423410: Enable unsafe buffer warnings for chromium, try #3. |6423410
remove all uses of: - wcsncpy_s() * chore: update mas_avoid_private_macos_api_usage.patch.patch 6394283: Remove double-declaration for accessibility on iOS |6394283
Lots of context shear in this commit but the only interesting part is: -+ return nullptr; ++ return {}; Which is needed because the return type is sometimes not a pointer. * chore: e patches all * chore: disable -Wmacro-redefined warning in electron_main_win.cc * chore: bump chromium in DEPS to 137.0.7123.5 * refactor: patch electron PermissionTypes into blink 6387077: [PermissionOptions] Generalize PermissionRequestDescription |6387077
* chore: e patches all * chore: remove the box_painter_base.cc part of feat_corner_smoothing_css_rule_and_blink_painting.patch as per code review @ https://github.com/electron/electron/pull/46482#pullrequestreview-2777338370 * test: enable window-smaller-than-64x64 test on Linux * chore: bump chromium in DEPS to 137.0.7124.1 * chore: bump chromium in DEPS to 137.0.7125.1 * chore: bump chromium in DEPS to 137.0.7127.3 * 6459201: [Extensions] Remove ExtensionSystem::FinishDelayedInstallationIfReady() |6459201
* 6454796: [Extensions] Move (most) registrar delayed install logic to //extensions |6454796
* chore: bump chromium in DEPS to 137.0.7128.1 * chore: e patches all * chore: node ./script/gen-libc++-filenames.js * [views] Gate DesktopWindowTreeHostWin::window_enlargement_ behind flag Refs6428649
* feat: allow opt-out animated_content_sampler. Refs6438681
* Trigger CI --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
151 lines
6.8 KiB
Diff
151 lines
6.8 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 c642d01c1767847d97281da8829653ba4f223b2b..3047367449b8c21c3a065d62e70a44aa9ef8003e 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"
|
|
@@ -166,7 +167,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());
|
|
@@ -187,7 +188,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 native = mode.has_mode(ui::AXMode::kNativeAPIs);
|
|
@@ -212,7 +213,7 @@ void HandleAccessibilityRequestCallback(
|
|
data.Set(kPDFPrinting, pdf_printing);
|
|
|
|
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 =
|
|
@@ -279,11 +280,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;
|
|
@@ -753,7 +754,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);
|
|
}
|
|
}
|
|
@@ -807,7 +809,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 =
|
|
@@ -834,6 +837,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);
|
|
@@ -846,6 +850,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
|
|
return;
|
|
}
|
|
}
|
|
+#endif
|
|
#endif // !BUILDFLAG(IS_ANDROID)
|
|
// No browser with the specified |session_id| was found.
|
|
base::Value::Dict result;
|
|
@@ -889,11 +894,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()) {
|
|
@@ -963,8 +970,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);
|