tree: 63e21f5daca94fbfbda6676d98922abb870f069e [path history] [tgz]
  1. actions/
  2. android/
  3. app_list/
  4. apps/
  5. ash/
  6. aura/
  7. autofill/
  8. blocked_content/
  9. bluetooth/
  10. bookmarks/
  11. browser_window/
  12. chromeos/
  13. cocoa/
  14. color/
  15. commerce/
  16. content_settings/
  17. cookie_controls/
  18. device_signals_consent/
  19. dialogs/
  20. docs/
  21. download/
  22. exclusive_access/
  23. extensions/
  24. fast_checkout/
  25. find_bar/
  26. frame/
  27. global_error/
  28. global_media_controls/
  29. hats/
  30. hid/
  31. hung_renderer/
  32. interventions/
  33. javascript_dialogs/
  34. lacros/
  35. lens/
  36. location_bar/
  37. login/
  38. media_router/
  39. messages/
  40. omnibox/
  41. page_action/
  42. page_info/
  43. passwords/
  44. pdf/
  45. performance_controls/
  46. permission_bubble/
  47. plus_addresses/
  48. prefs/
  49. privacy_sandbox/
  50. profiles/
  51. qrcode_generator/
  52. quick_answers/
  53. safety_hub/
  54. search/
  55. search_engine_choice/
  56. search_engines/
  57. send_tab_to_self/
  58. serial/
  59. shared_highlighting/
  60. sharing_hub/
  61. shortcuts/
  62. side_panel/
  63. side_search/
  64. signin/
  65. startup/
  66. supervised_user/
  67. sync/
  68. tab_contents/
  69. tab_sharing/
  70. tabs/
  71. task_manager/
  72. test/
  73. thumbnails/
  74. toolbar/
  75. translate/
  76. user_education/
  77. views/
  78. web_applications/
  79. webauthn/
  80. webid/
  81. webui/
  82. window_name_prompt/
  83. window_sizer/
  84. zoom/
  85. accelerator_utils.h
  86. accessibility_util.h
  87. app_icon_loader.cc
  88. app_icon_loader.h
  89. app_icon_loader_delegate.h
  90. ask_google_for_suggestions_dialog_browsertest.cc
  91. breadcrumb_manager_browser_agent.cc
  92. breadcrumb_manager_browser_agent.h
  93. breadcrumb_manager_browser_agent_unittest.cc
  94. browser.cc
  95. browser.h
  96. browser_actions.cc
  97. browser_actions.h
  98. browser_actions_unittest.cc
  99. browser_browsertest.cc
  100. browser_close_unittest.cc
  101. browser_command_controller.cc
  102. browser_command_controller.h
  103. browser_command_controller_browsertest.cc
  104. browser_command_controller_interactive_browsertest.cc
  105. browser_command_controller_unittest.cc
  106. browser_commands.cc
  107. browser_commands.h
  108. browser_commands_browsertest.cc
  109. browser_commands_chromeos.cc
  110. browser_commands_chromeos.h
  111. browser_commands_mac.h
  112. browser_commands_mac.mm
  113. browser_content_setting_bubble_model_delegate.cc
  114. browser_content_setting_bubble_model_delegate.h
  115. browser_dialogs.cc
  116. browser_dialogs.h
  117. browser_element_identifiers.cc
  118. browser_element_identifiers.h
  119. browser_finder.cc
  120. browser_finder.h
  121. browser_finder_chromeos_browsertest.cc
  122. browser_finder_chromeos_unittest.cc
  123. browser_finder_unittest.cc
  124. browser_focus_uitest.cc
  125. browser_instant_controller.cc
  126. browser_instant_controller.h
  127. browser_instant_controller_unittest.cc
  128. browser_list.cc
  129. browser_list.h
  130. browser_list_observer.h
  131. browser_list_unittest.cc
  132. browser_live_tab_context.cc
  133. browser_live_tab_context.h
  134. browser_location_bar_model_delegate.cc
  135. browser_location_bar_model_delegate.h
  136. browser_mac.cc
  137. browser_mac.h
  138. browser_navigator.cc
  139. browser_navigator.h
  140. browser_navigator_browsertest.cc
  141. browser_navigator_browsertest.h
  142. browser_navigator_browsertest_chromeos.cc
  143. browser_navigator_iwa_browsertest.cc
  144. browser_navigator_params.cc
  145. browser_navigator_params.h
  146. browser_navigator_unittest.cc
  147. browser_otr_state.cc
  148. browser_otr_state.h
  149. browser_otr_state_android.cc
  150. browser_tab_menu_model_delegate.cc
  151. browser_tab_menu_model_delegate.h
  152. browser_tab_restorer.cc
  153. browser_tab_strip_model_delegate.cc
  154. browser_tab_strip_model_delegate.h
  155. browser_tab_strip_model_delegate_browsertest.cc
  156. browser_tab_strip_tracker.cc
  157. browser_tab_strip_tracker.h
  158. browser_tab_strip_tracker_delegate.h
  159. browser_tabrestore.cc
  160. browser_tabrestore.h
  161. browser_tabrestore_browsertest.cc
  162. browser_tabstrip.cc
  163. browser_tabstrip.h
  164. browser_tabstrip_browsertest_chromeos.cc
  165. browser_ui_prefs.cc
  166. browser_ui_prefs.h
  167. browser_unittest.cc
  168. browser_user_data.h
  169. browser_view_prefs.cc
  170. browser_view_prefs.h
  171. browser_window.h
  172. browser_window_features.cc
  173. browser_window_features.h
  174. browser_window_state.cc
  175. browser_window_state.h
  176. browser_window_state_unittest.cc
  177. bubble_anchor_util.h
  178. BUILD.gn
  179. certificate_dialogs.cc
  180. certificate_dialogs.h
  181. chooser_bubble_testapi.h
  182. chrome_pages.cc
  183. chrome_pages.h
  184. chrome_select_file_policy.cc
  185. chrome_select_file_policy.h
  186. chrome_select_file_policy_unittest.cc
  187. chrome_web_modal_dialog_manager_delegate.cc
  188. chrome_web_modal_dialog_manager_delegate.h
  189. collected_cookies_browsertest.cc
  190. collected_cookies_infobar_delegate.cc
  191. collected_cookies_infobar_delegate.h
  192. confirm_bubble.h
  193. confirm_bubble_model.cc
  194. confirm_bubble_model.h
  195. crypto_module_delegate_nss.cc
  196. crypto_module_delegate_nss.h
  197. crypto_module_password_dialog.h
  198. crypto_module_password_dialog_nss.cc
  199. crypto_module_password_dialog_nss.h
  200. cryptuiapi_shim.h
  201. DEPS
  202. enterprise_startup_dialog.h
  203. file_system_access_dialogs.cc
  204. file_system_access_dialogs.h
  205. focus_tab_after_navigation_helper.cc
  206. focus_tab_after_navigation_helper.h
  207. fullscreen_keyboard_browsertest_base.cc
  208. fullscreen_keyboard_browsertest_base.h
  209. fullscreen_util_mac.cc
  210. fullscreen_util_mac.h
  211. fullscreen_util_mac_browsertest.cc
  212. hung_plugin_tab_helper.cc
  213. hung_plugin_tab_helper.h
  214. idle_bubble.h
  215. idle_dialog.h
  216. incognito_clear_browsing_data_dialog_interface.h
  217. intent_picker_tab_helper.cc
  218. intent_picker_tab_helper.h
  219. intent_picker_tab_helper_unittest.cc
  220. keyboard_lock_interactive_browsertest.cc
  221. layout_constants.cc
  222. layout_constants.h
  223. managed_ui.cc
  224. managed_ui.h
  225. managed_ui_browsertest.cc
  226. monogram_utils.cc
  227. monogram_utils.h
  228. native_window_tracker_browsertest.cc
  229. network_profile_bubble.cc
  230. network_profile_bubble.h
  231. overscroll_pref_manager.cc
  232. overscroll_pref_manager.h
  233. overscroll_pref_manager_unittest.cc
  234. OWNERS
  235. platform_keys_certificate_selector_chromeos.h
  236. process_singleton_dialog_linux.h
  237. README.md
  238. recently_audible_helper.cc
  239. recently_audible_helper.h
  240. recently_audible_helper_unittest.cc
  241. renderer_event_injection_browsertest.cc
  242. sad_tab.cc
  243. sad_tab.h
  244. sad_tab_helper.cc
  245. sad_tab_helper.h
  246. sad_tab_types.h
  247. scoped_tabbed_browser_displayer.cc
  248. scoped_tabbed_browser_displayer.h
  249. screen_capture_notification_ui.h
  250. screen_capture_notification_ui_browsertest.cc
  251. screen_capture_notification_ui_stub.cc
  252. send_mouse_move_uitest_win.cc
  253. session_crashed_bubble.h
  254. settings_window_manager_browsertest_chromeos.cc
  255. settings_window_manager_chromeos.cc
  256. settings_window_manager_chromeos.h
  257. settings_window_manager_observer_chromeos.h
  258. simple_message_box.h
  259. simple_message_box_internal.cc
  260. simple_message_box_internal.h
  261. singleton_tabs.cc
  262. singleton_tabs.h
  263. singleton_tabs_unittest.cc
  264. status_bubble.h
  265. storage_pressure_bubble.h
  266. tab_dialogs.cc
  267. tab_dialogs.h
  268. tab_helpers.cc
  269. tab_helpers.h
  270. tab_modal_confirm_dialog.h
  271. tab_modal_confirm_dialog_browsertest.cc
  272. tab_modal_confirm_dialog_browsertest.h
  273. tab_modal_confirm_dialog_delegate.cc
  274. tab_modal_confirm_dialog_delegate.h
  275. tab_ui_helper.cc
  276. tab_ui_helper.h
  277. tab_ui_helper_browsertest.cc
  278. toolbar_controller_util.cc
  279. toolbar_controller_util.h
  280. ui_features.cc
  281. ui_features.h
  282. uma_browsing_activity_observer.cc
  283. uma_browsing_activity_observer.h
  284. uninstall_browser_prompt.h
  285. unload_controller.cc
  286. unload_controller.h
  287. unload_controller_browsertest.cc
  288. update_chrome_dialog_browsertest.cc
  289. url_identity.cc
  290. url_identity.h
  291. url_identity_unittest.cc
  292. view_ids.h
chrome/browser/ui/README.md

This directory contains the implementation of the Chromium UI. There are subdirectories with implementations for specific toolkits and OSes.

This directory is often referred to in conversation as “cbui” or “c/b/ui”, pronounced “sea bee you eye”.

Important subdirectories:

  • views - the Views implementation of the UI, used on Windows, Mac, Linux, and ChromeOS/Lacros. This includes features like Omnibox, downloads.
  • cocoa - the remaining Cocoa UI, used only on Mac. This directory used to contain a separate full implementation of the UI, parallel to the Views implementation.
  • android - part of the Android implementation of the UI. See also //chrome/browser/android.
  • webui - the WebUI parts of the browser UI. This includes things like the chrome://settings page and other WebUI pages.

Historically, the goal of this directory was to be platform agnostic, with platform-specific logic in the above sub-directories. This didn‘t work and attempting to maintain this structure was causing more problems than it was solving, so we’ve removed this requirement.

In the event that a feature does need platform-specific implementations, use the following structure:

//chrome/browser/ui/browser_dialogs.h: void ShowMyDialog(...);

//chrome/browser/ui/views/my_dialog_views.cc: void ShowMyDialog(...) { ... }

//chrome/browser/ui/android/my_dialog_android.cc: void ShowMyDialog(...) { ... }

Because “Chromium UI” is such a large surface area, do not add new files directly to this directory; instead, add subdirectories with more specific OWNERS and place new features and files in them. Cleanup of existing scattered files is also welcome.