summaryrefslogtreecommitdiffstats
path: root/components/devtools_service/devtools_http_server.cc
diff options
context:
space:
mode:
authorccameron <ccameron@chromium.org>2016-02-09 16:14:08 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-10 00:15:33 +0000
commit3756dcea2132ee864484660e521ed8149ff31763 (patch)
treeabc8d3b288d263fd510257e73e312b7fe0cb0aa0 /components/devtools_service/devtools_http_server.cc
parent9fa59e8809740d5364b46e81f5503d1c7c90dd57 (diff)
downloadchromium_src-3756dcea2132ee864484660e521ed8149ff31763.zip
chromium_src-3756dcea2132ee864484660e521ed8149ff31763.tar.gz
chromium_src-3756dcea2132ee864484660e521ed8149ff31763.tar.bz2
Mac Overlays: Fix blank white hangs
The issue is as follows: We rebuild the CALayerTree based on the previous frame's CALayerTree, trying to change as few properties as possible (cause redundant updates waste CPU time). Among the things we assume is that the root of previous frame's CALayerTree is attached to the ImageTransportSurfaceMac::ca_root_layer_. So, if we re-use the previous frame's CALayerTree, we will not re-attach it to ImageTransportSurfaceMac::ca_root_layer_. There is a bug where, if ImageTransportSurfaceMac gets no CALayerOverlays and no OverlayPlanes, it will just leave the previous frame's CALayerTree hanging out in ImageTransportSurfaceMac::current_ca_layer_tree_, but it will disconnect it from ImageTransportSurfaceMac::ca_root_layer_. As a consequence, the next frame that has a CALayerOverlay will go and build its tree off of ImageTransportSurfaceMac::current_ca_layer_tree_, assuming that it is still connected to ImageTransportSurfaceMac::ca_root_layer_, which it isn't. And then we never see any new frames. The same bug also exists for ImageTransportSurfaceMac::current_partial_damage_tree_. The fix is to blow away ImageTransportSurfaceMac::current_partial_damage_tree_ and ImageTransportSurfaceMac::current_ca_layer_tree when we get a blank frame. BUG=583805 Review URL: https://codereview.chromium.org/1684713003 Cr-Commit-Position: refs/heads/master@{#374542}
Diffstat (limited to 'components/devtools_service/devtools_http_server.cc')
0 files changed, 0 insertions, 0 deletions