![electron-roller[bot]](/assets/img/avatar_default.png) 75eac86506
			
		
	
	
	
	
	75eac86506* chore: bump chromium in DEPS to 134.0.6948.0 * chore: update can_create_window.patch https://chromium-review.googlesource.com/c/chromium/src/+/6151982 no patch code changes, but had to manually apply due to upstream context shear * chore: update proxy_config_monitor.patch no manual changes; patch applied with fuzz 2 Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6126219 * chore: update build_add_electron_tracing_category.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6149256 * chore: update adjust_accessibility_ui_for_electron.patch https://chromium-review.googlesource.com/c/chromium/src/+/6105650 no patch code changes, but had to manually apply due to upstream context shear * chore: e patches all * chore: use fully-qualified path for all.gn Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6154997 * chore: do not use a variable when assigning rtc_use_h264 Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6154997 * Move GlobalShortcutListenerLinux to //ui/base Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6097375 * [MPArch Guest View] Make WebPreferences queried per frame tree root Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6096390 * [Status Icons] Allow vector resources https://chromium-review.googlesource.com/c/chromium/src/+/6139403 * [Extensions] Move MatchOriginAsFallbackBehavior to Mojom Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6141793 * Remove StrongAlias::Hasher Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6132291 * Rename text-change and select-change methods and related stuff Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6148816 * [Code Health] Remove stale feature EnableWebUsbOnExtensionServiceWorker https://chromium-review.googlesource.com/c/chromium/src/+/6115161 * [Extensions Cleanup] Move creation of tab-based ports to factory method https://chromium-review.googlesource.com/c/chromium/src/+/6143725 * refactor: add StatusIconGtk::SetIcon() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6139403 copied from chrome/browser/status_icons/status_icon.cc * refactor: add TrayIconLinux::GetIcon() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/6139403 * chore: update feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch remove unused filter_ field * chore: bump chromium in DEPS to 134.0.6950.0 * chore: bump chromium in DEPS to 134.0.6952.0 * chore: bump chromium in DEPS to 134.0.6954.0 * chore: bump chromium in DEPS to 134.0.6956.0 * chore: update Chromium patches * 6165749: Check scanout support in RenderableGpuMemoryBufferPool | https://chromium-review.googlesource.com/c/chromium/src/+/6165749 * 6106730: [Win] Use DXGI swapchains and DCOMP visuals in software mode | https://chromium-review.googlesource.com/c/chromium/src/+/6106730 * chore: update patches * chore: bump chromium in DEPS to 134.0.6958.0 * chore: bump chromium in DEPS to 134.0.6960.0 * chore: update chromium patches * 6168371: Remove extensions GlobalShortcutListener wrapper | https://chromium-review.googlesource.com/c/chromium/src/+/6168371 * chore: update patches * 6161637: WebUI: Leverage build_webui() in chrome://translate-internals | https://chromium-review.googlesource.com/c/chromium/src/+/6161637 * chore: bump chromium in DEPS to 134.0.6962.0 * 6177329: Remove policy.used_policy_certificates pref on ChromeOS | https://chromium-review.googlesource.com/c/chromium/src/+/6177329 * 6180524: Simplify logic in components/os_crypt/sync/BUILD.gn | https://chromium-review.googlesource.com/c/chromium/src/+/6180524 * 6144831: Enforce --disallow-v8-feature-flag-overrides in the renderer | https://chromium-review.googlesource.com/c/chromium/src/+/6144831 * chore: update patches * chore: bump chromium in DEPS to 134.0.6964.0 * 6181010: Ensure busy cursor does not show via LaunchWithoutSandbox | https://chromium-review.googlesource.com/c/chromium/src/+/6181010 * chore: update patches * chore: bump chromium in DEPS to 134.0.6966.0 * 6180598: [api] Remove Reallocate | https://chromium-review.googlesource.com/c/v8/v8/+/6180598 * 6170781: [Refactor] Move UninstallExtension to ExtensionRegistrar. | https://chromium-review.googlesource.com/c/chromium/src/+/6170781 * chore: update filenames.libcxx.gni * 6168207: cdm: Remove widevine_cdm_version.h | https://chromium-review.googlesource.com/c/chromium/src/+/6168207 * chore: bump chromium in DEPS to 134.0.6968.0 * 6030552: [macOS] Allow using vibrancy with NativeWidgetNSWindowBridge | https://chromium-review.googlesource.com/c/chromium/src/+/6030552 * fix: use explicit copy to replace realloc impl https://chromium-review.googlesource.com/c/v8/v8/+/6180598 https://issues.chromium.org/issues/331326406 As per recommendation, "File an issue with Node to explicitly copy,because they copy under the hood anyway" * fixup! 6106730: [Win] Use DXGI swapchains and DCOMP visuals in software mode | https://chromium-review.googlesource.com/c/chromium/src/+/6106730 * fix: undefine win32 StrCat https://chromium-review.googlesource.com/c/chromium/src/+/6172292 * fix: //device/vr:directx_helpers breaking the build https://chromium-review.googlesource.com/c/chromium/src/+/6064548 Upstreamed in https://chromium-review.googlesource.com/c/chromium/src/+/6186102 * fix: avoid calling ui::Layer::SetFillsBoundsOpaquely https://chromium-review.googlesource.com/c/chromium/src/+/6175787 The layer opacity is determined by the background color's alpha value * fix: build with proprietary_codecs The explicit setting of rtc_use_h264 is no longer needed since https://webrtc-review.googlesource.com/c/src/+/62380 * fix: increase empty trace file size threshold https://chromium-review.googlesource.com/c/chromium/src/+/6176642 Traces now contain a net-constants property to allow them to be converted to a net log. These contain ~1240 new properties with formatted JSON data. * fix: node tests missing resource management globals https://chromium-review.googlesource.com/c/chromium/src/+/6174695 * fixup! fix: use explicit copy to replace realloc impl * chore: disable focus handling test due to win32/ia32 regression --------- 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: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: Samuel Maddock <smaddock@slack-corp.com> Co-authored-by: Samuel Maddock <samuelmaddock@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 9e860989fc3196599ebb181b17e356c3ac991d08..232f89902c4c3f839d8dfc1101a0e52f72c80da5 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);
 |