fix_patch_out_profile_refs_in_accessibility_ui.patch 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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 dff59cf394e297a42e653497b819956fee5b5d9e..cc665468b3412ff94ccf6ff90fbc1688f7eba2bf 100644
  9. --- a/chrome/browser/accessibility/accessibility_ui.cc
  10. +++ b/chrome/browser/accessibility/accessibility_ui.cc
  11. @@ -20,7 +20,10 @@
  12. #include "base/values.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/dev_ui_browser_resources.h"
  22. @@ -48,9 +51,11 @@
  23. #include "ui/views/accessibility/view_accessibility.h"
  24. #if !defined(OS_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 @@ std::unique_ptr<base::DictionaryValue> BuildTargetDescriptor(
  34. accessibility_mode);
  35. }
  36. -#if !defined(OS_ANDROID)
  37. +#if 0
  38. std::unique_ptr<base::DictionaryValue> BuildTargetDescriptor(Browser* browser) {
  39. std::unique_ptr<base::DictionaryValue> target_data(
  40. new base::DictionaryValue());
  41. @@ -202,7 +207,9 @@ void HandleAccessibilityRequestCallback(
  42. DCHECK(ShouldHandleAccessibilityRequestCallback(path));
  43. base::DictionaryValue 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. @@ -231,9 +238,7 @@ void HandleAccessibilityRequestCallback(
  51. // The "labelImages" flag works only if "web" is enabled, the current profile
  52. // has the kAccessibilityImageLabelsEnabled preference set and the appropriate
  53. // command line switch has been used.
  54. - bool are_accessibility_image_labels_enabled =
  55. - is_web_enabled &&
  56. - pref->GetBoolean(prefs::kAccessibilityImageLabelsEnabled);
  57. + bool are_accessibility_image_labels_enabled = is_web_enabled;
  58. bool label_images = mode.has_mode(ui::AXMode::kLabelImages);
  59. data.SetString(kLabelImages, are_accessibility_image_labels_enabled
  60. ? (label_images ? kOn : kOff)
  61. @@ -247,7 +252,7 @@ void HandleAccessibilityRequestCallback(
  62. data.SetBoolean(kViewsAccessibility,
  63. features::IsAccessibilityTreeForViewsEnabled());
  64. - bool show_internal = pref->GetBoolean(prefs::kShowInternalAccessibilityTree);
  65. + bool show_internal = true;
  66. data.SetString(kInternal, show_internal ? kOn : kOff);
  67. std::unique_ptr<base::ListValue> rvh_list(new base::ListValue());
  68. @@ -284,11 +289,11 @@ void HandleAccessibilityRequestCallback(
  69. data.Set(kPagesField, std::move(rvh_list));
  70. std::unique_ptr<base::ListValue> browser_list(new base::ListValue());
  71. -#if !defined(OS_ANDROID)
  72. +#if 0
  73. for (Browser* browser : *BrowserList::GetInstance()) {
  74. browser_list->Append(BuildTargetDescriptor(browser));
  75. }
  76. -#endif // !defined(OS_ANDROID)
  77. +#endif // !defined(OS_ANDROID)
  78. data.Set(kBrowsersField, std::move(browser_list));
  79. std::unique_ptr<base::ListValue> widgets_list(new base::ListValue());
  80. @@ -507,8 +512,10 @@ void AccessibilityUIMessageHandler::SetGlobalFlag(const base::ListValue* args) {
  81. AllowJavascript();
  82. if (flag_name_str == kInternal) {
  83. +#if 0
  84. PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
  85. pref->SetBoolean(prefs::kShowInternalAccessibilityTree, enabled);
  86. +#endif
  87. return;
  88. }
  89. @@ -616,10 +623,12 @@ void AccessibilityUIMessageHandler::RequestWebContentsTree(
  90. AXPropertyFilter::ALLOW_EMPTY);
  91. AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
  92. +#if 0
  93. PrefService* pref = Profile::FromWebUI(web_ui())->GetPrefs();
  94. bool internal = pref->GetBoolean(prefs::kShowInternalAccessibilityTree);
  95. +#endif
  96. std::string accessibility_contents =
  97. - web_contents->DumpAccessibilityTree(internal, property_filters);
  98. + web_contents->DumpAccessibilityTree(true, property_filters);
  99. result->SetString(kTreeField, accessibility_contents);
  100. FireWebUIListener(request_type, *(result.get()));
  101. }
  102. @@ -643,6 +652,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
  103. AXPropertyFilter::ALLOW_EMPTY);
  104. AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
  105. +#if 0
  106. for (Browser* browser : *BrowserList::GetInstance()) {
  107. if (browser->session_id().id() == session_id) {
  108. std::unique_ptr<base::DictionaryValue> result(
  109. @@ -657,6 +667,7 @@ void AccessibilityUIMessageHandler::RequestNativeUITree(
  110. return;
  111. }
  112. }
  113. +#endif
  114. #endif // !defined(OS_ANDROID)
  115. // No browser with the specified |session_id| was found.
  116. std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue());
  117. @@ -772,5 +783,7 @@ void AccessibilityUIMessageHandler::RequestAccessibilityEvents(
  118. // static
  119. void AccessibilityUIMessageHandler::RegisterProfilePrefs(
  120. user_prefs::PrefRegistrySyncable* registry) {
  121. +#if 0
  122. registry->RegisterBooleanPref(prefs::kShowInternalAccessibilityTree, false);
  123. +#endif
  124. }
  125. diff --git a/chrome/browser/accessibility/accessibility_ui.h b/chrome/browser/accessibility/accessibility_ui.h
  126. index c0453b9f8603ba99a83a747666a1b05b9c36ca14..b0c610de6322177baf5a7ba44b632a9658756ce8 100644
  127. --- a/chrome/browser/accessibility/accessibility_ui.h
  128. +++ b/chrome/browser/accessibility/accessibility_ui.h
  129. @@ -24,6 +24,8 @@ struct AXEventNotificationDetails;
  130. class WebContents;
  131. } // namespace content
  132. +class ElectronAccessibilityUIMessageHandler;
  133. +
  134. namespace user_prefs {
  135. class PrefRegistrySyncable;
  136. } // namespace user_prefs
  137. @@ -60,6 +62,8 @@ class AccessibilityUIMessageHandler : public content::WebUIMessageHandler {
  138. static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
  139. private:
  140. + friend class ElectronAccessibilityUIMessageHandler;
  141. +
  142. std::vector<std::string> event_logs_;
  143. std::unique_ptr<AccessibilityUIObserver> observer_;