tree: cff43558c793ff4a9f20724a7c778e62490129e0
  1. csp/
  2. deprecation/
  3. animation_frame_timing_monitor.cc
  4. animation_frame_timing_monitor.h
  5. animation_frame_timing_monitor_test.cc
  6. attribution_src_loader.cc
  7. attribution_src_loader.h
  8. attribution_src_loader_test.cc
  9. bar_prop.cc
  10. bar_prop.h
  11. bar_prop.idl
  12. browser_controls.cc
  13. browser_controls.h
  14. browser_controls_test.cc
  15. build.gni
  16. cached_permission_status.cc
  17. cached_permission_status.h
  18. cached_permission_status_test.cc
  19. child_frame_compositing_helper.cc
  20. child_frame_compositing_helper.h
  21. child_frame_compositing_helper_test.cc
  22. child_frame_compositor.h
  23. connection_allowlist_sim_test.cc
  24. connection_allowlist_violation_report_body.cc
  25. connection_allowlist_violation_report_body.h
  26. connection_allowlist_violation_report_body.idl
  27. connection_allowlist_violation_report_body_test.cc
  28. coop_access_violation_report_body.cc
  29. coop_access_violation_report_body.h
  30. coop_access_violation_report_body.idl
  31. crash_report_context.cc
  32. crash_report_context.h
  33. crash_report_context.idl
  34. DEPS
  35. device_single_window_event_controller.cc
  36. device_single_window_event_controller.h
  37. DIR_METADATA
  38. directive.cc
  39. directive.h
  40. directive.idl
  41. display_cutout_client_impl.cc
  42. display_cutout_client_impl.h
  43. document_loading_rendering_test.cc
  44. document_policy_violation_report_body.cc
  45. document_policy_violation_report_body.h
  46. document_policy_violation_report_body.idl
  47. document_policy_violation_report_body_test.cc
  48. dom_viewport.cc
  49. dom_viewport.h
  50. dom_visual_viewport.cc
  51. dom_visual_viewport.h
  52. dom_window.cc
  53. dom_window.h
  54. embedded_content_view.cc
  55. embedded_content_view.h
  56. event_handler_registry.cc
  57. event_handler_registry.h
  58. external.h
  59. external.idl
  60. find_in_page.cc
  61. find_in_page.h
  62. find_in_page_test.cc
  63. frame.cc
  64. frame.h
  65. frame_client.h
  66. frame_console.cc
  67. frame_console.h
  68. frame_content_as_text.cc
  69. frame_content_as_text.h
  70. frame_content_as_text_test.cc
  71. frame_lifecycle.cc
  72. frame_lifecycle.h
  73. frame_overlay.cc
  74. frame_overlay.h
  75. frame_overlay_test.cc
  76. frame_owner.h
  77. frame_serializer.cc
  78. frame_serializer.h
  79. frame_serializer_test.cc
  80. frame_test.cc
  81. frame_test_helpers.cc
  82. frame_test_helpers.h
  83. frame_types.h
  84. frame_view.cc
  85. frame_view.h
  86. frame_view_auto_size_info.cc
  87. frame_view_auto_size_info.h
  88. frame_visibility_observer.cc
  89. frame_visibility_observer.h
  90. fullscreen_controller.cc
  91. fullscreen_controller.h
  92. history.cc
  93. history.h
  94. history.idl
  95. history_util.cc
  96. history_util.h
  97. history_util_test.cc
  98. integrity_policy.cc
  99. integrity_policy.h
  100. integrity_policy_test.cc
  101. integrity_violation_report_body.cc
  102. integrity_violation_report_body.h
  103. integrity_violation_report_body.idl
  104. intervention.cc
  105. intervention.h
  106. intervention_report_body.cc
  107. intervention_report_body.h
  108. intervention_report_body.idl
  109. is_input_pending_options.idl
  110. layout_subtree_root_list.cc
  111. layout_subtree_root_list.h
  112. local_dom_window.cc
  113. local_dom_window.h
  114. local_dom_window_test.cc
  115. local_frame.cc
  116. local_frame.h
  117. local_frame_back_forward_cache_test.cc
  118. local_frame_client.h
  119. local_frame_client_impl.cc
  120. local_frame_client_impl.h
  121. local_frame_client_impl_test.cc
  122. local_frame_full_content_spell_check_test.cc
  123. local_frame_mojo_handler.cc
  124. local_frame_mojo_handler.h
  125. local_frame_test.cc
  126. local_frame_ukm_aggregator.cc
  127. local_frame_ukm_aggregator.h
  128. local_frame_ukm_aggregator_test.cc
  129. local_frame_view.cc
  130. local_frame_view.h
  131. local_frame_view_test.cc
  132. location.cc
  133. location.h
  134. location.idl
  135. location_report_body.cc
  136. location_report_body.h
  137. location_report_body_test.cc
  138. mhtml_archive_test.cc
  139. mhtml_loading_test.cc
  140. navigation_rate_limiter.cc
  141. navigation_rate_limiter.h
  142. navigator.cc
  143. navigator.h
  144. navigator.idl
  145. navigator_automation_information.idl
  146. navigator_concurrent_hardware.cc
  147. navigator_concurrent_hardware.h
  148. navigator_concurrent_hardware.idl
  149. navigator_cookies.idl
  150. navigator_cpu_performance.cc
  151. navigator_cpu_performance.h
  152. navigator_cpu_performance.idl
  153. navigator_device_memory.cc
  154. navigator_device_memory.h
  155. navigator_device_memory.idl
  156. navigator_id.cc
  157. navigator_id.h
  158. navigator_id.idl
  159. navigator_language.cc
  160. navigator_language.h
  161. navigator_language.idl
  162. navigator_on_line.h
  163. navigator_on_line.idl
  164. navigator_scheduling.idl
  165. navigator_ua.cc
  166. navigator_ua.h
  167. navigator_ua.idl
  168. navigator_ua_brand_version.idl
  169. navigator_ua_data.cc
  170. navigator_ua_data.h
  171. navigator_ua_data.idl
  172. navigator_user_activation.cc
  173. navigator_user_activation.h
  174. navigator_user_activation.idl
  175. opened_frame_tracker.cc
  176. opened_frame_tracker.h
  177. OWNERS
  178. page_dismissal_scope.cc
  179. page_dismissal_scope.h
  180. page_scale_constraints.cc
  181. page_scale_constraints.h
  182. page_scale_constraints_set.cc
  183. page_scale_constraints_set.h
  184. pagination_state.cc
  185. pagination_state.h
  186. pausable_script_executor.cc
  187. pausable_script_executor.h
  188. performance_monitor.cc
  189. performance_monitor.h
  190. performance_monitor_test.cc
  191. permissions_policy_violation_report_body.cc
  192. permissions_policy_violation_report_body.h
  193. permissions_policy_violation_report_body.idl
  194. picture_in_picture_controller.cc
  195. picture_in_picture_controller.h
  196. platform_event_controller.cc
  197. platform_event_controller.h
  198. platform_event_dispatcher.cc
  199. platform_event_dispatcher.h
  200. policy_container.cc
  201. policy_container.h
  202. policy_container_test.cc
  203. post_layout_snapshot_client.cc
  204. post_layout_snapshot_client.h
  205. README.md
  206. remote_dom_window.cc
  207. remote_dom_window.h
  208. remote_frame.cc
  209. remote_frame.h
  210. remote_frame_client.h
  211. remote_frame_client_impl.cc
  212. remote_frame_client_impl.h
  213. remote_frame_owner.cc
  214. remote_frame_owner.h
  215. remote_frame_view.cc
  216. remote_frame_view.h
  217. report.cc
  218. report.h
  219. report.idl
  220. report_body.cc
  221. report_body.h
  222. report_body.idl
  223. report_test.cc
  224. reporting_context.cc
  225. reporting_context.h
  226. reporting_context_test.cc
  227. reporting_observer.cc
  228. reporting_observer.h
  229. reporting_observer.idl
  230. reporting_observer_options.idl
  231. resize_viewport_anchor.cc
  232. resize_viewport_anchor.h
  233. root_frame_viewport.cc
  234. root_frame_viewport.h
  235. root_frame_viewport_test.cc
  236. rotation_viewport_anchor.cc
  237. rotation_viewport_anchor.h
  238. rotation_viewport_anchor_test.cc
  239. savable_resources.cc
  240. savable_resources.h
  241. scheduling.cc
  242. scheduling.h
  243. scheduling.idl
  244. screen.cc
  245. screen.h
  246. screen.idl
  247. screen_metrics_emulator.cc
  248. screen_metrics_emulator.h
  249. scroll_into_view_options.idl
  250. scroll_options.idl
  251. scroll_result.idl
  252. scroll_to_options.idl
  253. selector_directive.cc
  254. selector_directive.h
  255. selector_directive.idl
  256. settings.cc
  257. settings.h
  258. settings.json5
  259. settings_delegate.cc
  260. settings_delegate.h
  261. settings_string_converter.h
  262. smart_clip.cc
  263. smart_clip.h
  264. test_report_body.cc
  265. test_report_body.h
  266. test_report_body.idl
  267. ua_data_values.idl
  268. universal_global_scope.cc
  269. universal_global_scope.h
  270. universal_global_scope.idl
  271. use_counter_impl.cc
  272. use_counter_impl.h
  273. use_counter_impl_test.cc
  274. user_activation.cc
  275. user_activation.h
  276. user_activation.idl
  277. viewport.idl
  278. viewport_data.cc
  279. viewport_data.h
  280. virtual_keyboard_overlay_changed_observer.cc
  281. virtual_keyboard_overlay_changed_observer.h
  282. visual_viewport.cc
  283. visual_viewport.h
  284. visual_viewport.idl
  285. visual_viewport_test.cc
  286. web_feature.h
  287. web_feature_forward.h
  288. web_frame.cc
  289. web_frame_serializer_impl.cc
  290. web_frame_serializer_impl.h
  291. web_frame_test.cc
  292. web_frame_widget_impl.cc
  293. web_frame_widget_impl.h
  294. web_frame_widget_test.cc
  295. web_local_frame_client.cc
  296. web_local_frame_client_test.cc
  297. web_local_frame_impl.cc
  298. web_local_frame_impl.h
  299. web_local_frame_observer.cc
  300. web_remote_frame_impl.cc
  301. web_remote_frame_impl.h
  302. webdx_feature_tracing.cc
  303. webdx_feature_tracing.h
  304. webdx_feature_tracing_test.cc
  305. widget_creation_observer.h
  306. window.idl
  307. window_controls_overlay_changed_delegate.cc
  308. window_controls_overlay_changed_delegate.h
  309. window_event_handlers.h
  310. window_event_handlers.idl
  311. window_or_worker_global_scope.cc
  312. window_or_worker_global_scope.h
  313. window_or_worker_global_scope.idl
  314. window_post_message_options.idl
  315. window_properties.cc
  316. window_properties.h
  317. window_properties.idl
third_party/blink/renderer/core/frame/README.md

renderer/core/frame

The code in this directory implements the Frame concept in Blink, which is the fundamental container for a web document and its associated properties.

Throttling

Blink employs throttling mechanisms to reduce resource consumption for out-of-viewport and background frames, improving performance and battery life for the foreground content. There are two primary forms of throttling, both triggered when a frame's viewport intersection becomes empty.

Render Throttling

Render throttling aims to reduce rendering work for cross-origin iframes that are outside of the viewport. When a cross-origin iframe is scrolled out of view, Blink stops running requestAnimationFrame, style, layout, and paint for that frame on every BeginMainFrame. Same-origin iframes are not subject to this throttling. Script execution continues in a render-throttled frame. The implementation details can be found in FrameView::UpdateRenderThrottlingStatus and are further explained in the Render Throttling design doc.

Timer Throttling

Timer throttling is a mechanism that reduces the frequency of timers for out-of-viewport frames. This affects setTimeout and setInterval timers, limiting their execution to save resources. While related to a frame's visibility status, the specifics of timer throttling are part of a broader set of scheduling policies. You can find more information about timer throttling and other scheduling behaviors in Task Scheduling in Blink. The visibility update that triggers this is in FrameView::UpdateFrameVisibility.