fix_patch_out_profile_refs_in_accessibility_ui.patch 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Shelley Vohr <[email protected]>
  3. Date: Mon, 6 Jul 2020 13:46:06 -0700
  4. Subject: fix: patch out Profile refs in accessibility_ui
  5. This tweaks Chrome's Accessibility support at chrome://accessibility
  6. to make it usable from Electron by removing Profile references.
  7. diff --git a/chrome/browser/accessibility/accessibility_ui.cc b/chrome/browser/accessibility/accessibility_ui.cc
  8. index 2c8687d0df72572b8c628519b370d21d5390df56..ef5f7f226ce4b8dc7fd0923255b13040dca65a99 100644
  9. --- a/chrome/browser/accessibility/accessibility_ui.cc
  10. +++ b/chrome/browser/accessibility/accessibility_ui.cc
  11. @@ -21,7 +21,10 @@
  12. #include "base/trace_event/trace_event.h"
  13. #include "build/build_config.h"
  14. #include "build/chromeos_buildflags.h"
  15. +#if 0
  16. #include "chrome/browser/profiles/profile.h"
  17. +#endif
  18. +#include "chrome/common/chrome_features.h"
  19. #include "chrome/common/pref_names.h"
  20. #include "chrome/common/webui_url_constants.h"
  21. #include "chrome/grit/accessibility_resources.h"
  22. @@ -50,9 +53,11 @@
  23. #include "ui/views/accessibility/view_accessibility.h"
  24. #if !BUILDFLAG(IS_ANDROID)
  25. +#if 0
  26. #include "chrome/browser/ui/browser.h"
  27. #include "chrome/browser/ui/browser_list.h"
  28. #include "chrome/browser/ui/browser_window.h"
  29. +#endif
  30. #include "ui/views/accessibility/widget_ax_tree_id_map.h"
  31. #include "ui/views/widget/widget.h"
  32. #include "ui/views/widget/widget_delegate.h"
  33. @@ -163,7 +168,7 @@ base::Value::Dict BuildTargetDescriptor(content::RenderViewHost* rvh) {
  34. accessibility_mode);
  35. }
  36. -#if !BUILDFLAG(IS_ANDROID)
  37. +#if 0
  38. base::Value::Dict BuildTargetDescriptor(Browser* browser) {
  39. base::Value::Dict target_data;
  40. target_data.Set(kSessionIdField, browser->session_id().id());
  41. @@ -197,7 +202,9 @@ void HandleAccessibilityRequestCallback(
  42. DCHECK(ShouldHandleAccessibilityRequestCallback(path));
  43. base::Value::Dict data;
  44. +#if 0
  45. PrefService* pref = Profile::FromBrowserContext(current_context)->GetPrefs();
  46. +#endif
  47. ui::AXMode mode =
  48. content::BrowserAccessibilityState::GetInstance()->GetAccessibilityMode();
  49. bool is_native_enabled = content::BrowserAccessibilityState::GetInstance()
  50. @@ -229,7 +236,7 @@ void HandleAccessibilityRequestCallback(
  51. // enabled.
  52. data.Set(kViewsAccessibility, features::IsAccessibilityTreeForViewsEnabled());
  53. - bool show_internal = pref->GetBoolean(prefs::kShowInternalAccessibilityTree);
  54. + bool show_internal = true;
  55. data.Set(kInternal, show_internal ? kOn : kOff);
  56. base::Value::List page_list;
  57. @@ -265,11 +272,11 @@ void HandleAccessibilityRequestCallback(
  58. data.Set(kPagesField, std::move(page_list));
  59. base::Value::List browser_list;
  60. -#if !BUILDFLAG(IS_ANDROID)
  61. +#if 0
  62. for (Browser* browser : *BrowserList::GetInstance()) {
  63. browser_list.Append(BuildTargetDescriptor(browser));
  64. }
  65. -#endif // !BUILDFLAG(IS_ANDROID)
  66. +#endif // !BUILDFLAG(IS_ANDROID)
  67. data.Set(kBrowsersField, std::move(browser_list));
  68. base::Value::List widgets_list;
  69. @@ -486,8 +493,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag(
  70. AllowJavascript();
  71. if (flag_name_str == kInternal) {
  72. +#if 0
  73. PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
  74. pref->SetBoolean(prefs::kShowInternalAccessibilityTree, enabled);
  75. +#endif
  76. return;
  77. }
  78. @@ -591,8 +600,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
  79. AXPropertyFilter::ALLOW_EMPTY);
  80. AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
  81. +#if 0
  82. PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
  83. bool internal = pref->GetBoolean(prefs::kShowInternalAccessibilityTree);
  84. +#else
  85. + bool internal = true;
  86. +#endif
  87. std::string accessibility_contents =
  88. web_contents->DumpAccessibilityTree(internal, property_filters);
  89. result.Set(kTreeField, accessibility_contents);
  90. @@ -617,6 +630,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
  91. AXPropertyFilter::ALLOW_EMPTY);
  92. AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
  93. +#if 0
  94. for (Browser* browser : *BrowserList::GetInstance()) {
  95. if (browser->session_id().id() == session_id) {
  96. base::Value::Dict result = BuildTargetDescriptor(browser);
  97. @@ -629,6 +643,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
  98. return;
  99. }
  100. }
  101. +#endif
  102. #endif // !BUILDFLAG(IS_ANDROID)
  103. // No browser with the specified |session_id| was found.
  104. base::Value::Dict result;
  105. @@ -741,5 +756,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
  106. // static
  107. void AccessibilityUIMessageHandler::RegisterProfilePrefs(
  108. user_prefs::PrefRegistrySyncable* registry) {
  109. +#if 0
  110. registry->RegisterBooleanPref(prefs::kShowInternalAccessibilityTree, false);
  111. +#endif
  112. }
  113. diff --git a/chrome/browser/accessibility/accessibility_ui.h b/chrome/browser/accessibility/accessibility_ui.h
  114. index 94fdbf91a5f6e03a259eb970f1d402a6d3cc12e4..2be0cbce1090b7dccad7ef483baa68fbc4235964 100644
  115. --- a/chrome/browser/accessibility/accessibility_ui.h
  116. +++ b/chrome/browser/accessibility/accessibility_ui.h
  117. @@ -22,6 +22,8 @@ struct AXEventNotificationDetails;
  118. class WebContents;
  119. } // namespace content
  120. +class ElectronAccessibilityUIMessageHandler;
  121. +
  122. namespace user_prefs {
  123. class PrefRegistrySyncable;
  124. } // namespace user_prefs
  125. @@ -63,6 +65,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler {
  126. static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
  127. private:
  128. + friend class ElectronAccessibilityUIMessageHandler;
  129. +
  130. std::vector<std::string> event_logs_;
  131. std::unique_ptr<AccessibilityUIObserver> observer_;