
#Word program for windows update#
Whew! Now we post a task to the UI thread to update the visibility of the Chrome windows.
#Word program for windows windows#
:max_bytes(150000):strip_icc()/ms-word-5aa0180ceb97de0036612567-f356870fe73d4c71857a9e534f6ce331.png)
So, we compute occlusion on a separate thread, as follows: We also don’t want to block the UI thread while doing the occlusion calculation, because that could reduce the responsiveness of Chrome and degrade the user experience. This needs to be done with great care, because if we decide that a window is occluded when in fact it is visible to the user, then the area where the user expects to see web contents will be white. In practice, however, there are lots of complications, such as multi-monitor setups, virtual desktops, non-opaque windows, and even cloaked windows(!). (The location information is discarded immediately after it is used in the occlusion calculation.)Ĭalculating Occlusion In theory, figuring out which windows are occluded is fairly simple. We called this project Native Window Occlusion, because we had to know about the location of native, non-Chrome windows on the user’s screen.
:max_bytes(150000):strip_icc()/textmaker-93bbf58ad104443393622291b0238335.png)
So, around three years ago, we started working on a project to track the occlusion state of each Chrome window in real time, and lower the priority of tabs in occluded windows. If these occluded windows were treated like background tabs, our hypothesis was that we would see significant performance benefits. Through experiments, we found that nearly 20% of Chrome windows are completely covered by other windows, i.e., occluded. However, the logic was limited to tabs that weren't focused in their window, or windows that were minimized or otherwise moved offscreen. This reduces CPU, GPU and memory usage, which leaves more memory, CPU and GPU for foreground tabs that the user actually sees. For example, JavaScript is throttled in background tabs, and these tabs don’t render web content. BackgroundFor several years, to improve the user experience, Chrome has lowered the priority of background tabs.
