[go: nahoru, domu]

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

This directory contains the implementation of the Chromium UI. Code in the root of this directory is toolkit- and platform-independent. There are subdirectories with implementations for specific toolkits and OSes. Code in the root of this directory should not be aware of platform-specific implementation details or reach into the platform implementation subdirectories. This directory also should not contain browser-process-scoped items that are not UI-specific, such as parts of the startup logic; these sorts of things belong elsewhere in chrome/browser/.

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. This includes things like the browser window itself, tabs, dialogs, etc.
  • 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.

A common pattern is for code in //chrome/browser/ui to define a platform-independent interface which then has implementations in //chrome/browser/ui/views and //chrome/browser/ui/android. This pattern is often followed even for features that don't exist on Android, in which case the Android implementation is often a stub.

This pattern often looks like this:

//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.