New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 597481 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
inactive
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Black flicker when Chrome is relaunched after killing

Project Member Reported by xing...@intel.com, Mar 24 2016

Issue description

Steps to reproduce the problem:
1. Launch chrome_public or google chrome, type a url. navigate to it. Kill chrome_public or google chrome.
2. Re-launch chrome_public or google chrome, see if screen flickers.
3. Re-run steps 2 many times. For chrome_public or google chrome, you will see screen flicker at a low rate. 

What is the expected behavior?
No screen flicker at all.

What went wrong?
Screen flicker at a low rate, the rate maybe about 5%~10%.

Did this work before? N/A 

Chrome version: 49.0.2623.91  Channel: stable
OS Version: 4.4.4
Flash Version: 

Detail User agent of chrome public:

  1 Chromium    49.0.2623.91 (Developer Build) unknown (32-bit)

  2 Revision    30291bb2a90d4cfd0ef22fbca036020345d4a7d0

  3 OS  Android 4.4.4; MI 4LTE Build/KTU84P

  4 Blink   537.36 (@b10fce996f8c1632db1fa864ef8e2aa26b47704e)

  5 JavaScript  V8 4.9.385.28

  6 User Agent  Mozilla/5.0 (Linux; Android 4.4.4; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.91 Mobile Safari/    537.36

  7 Command Line    chrome --flags --single-process --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --    use-mobile-user-agent --enable-begin-frame-scheduling --enable-pinch --enable-overlay-scrollbar --validate-input-event-stream --disable-gpu-pr    ocess-crash-limit --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --profiler-tim    ing=0 --prerender-from-omnibox=enabled --enable-dom-distiller --flag-switches-begin --flag-switches-end --disable-gpu-watchdog --supports-dual    -gpus=false --gpu-driver-bug-workarounds=3,8,10,13,21,27,33,38,44,54,66,68,69 --disable-gl-extensions=EGL_KHR_fence_sync EGL_KHR_wait_sync GL_    OES_depth_texture --disable-accelerated-video-decode --disable-webrtc-hw-encoding --gpu-vendor-id=0x0000 --gpu-device-id=0x0000 --gpu-driver-v    endor --gpu-driver-version=66.0 --lang=en-US --num-raster-threads=1 --enable-gpu-rasterization --gpu-rasterization-msaa-sample-count=4 --conte    nt-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553

  8 Executable Path No such file or directory

  9 Profile Path    /data/data/org.chromium.chrome/app_chrome/Default

10 Variations  a8b45008-3f4a17df

11 236d5d9e-fecfffa1

Detail User agent of google chrome:

  1 Google Chrome   49.0.2623.91 (Official Build) (32-bit)

  2 Revision    b10fce996f8c1632db1fa864ef8e2aa26b47704e-refs/branch-heads/2623@{#600}

  3 OS  Android 4.4.4; MI 4LTE Build/KTU84P

  4 Blink   537.36 (@b10fce996f8c1632db1fa864ef8e2aa26b47704e)

  5 JavaScript  V8 4.9.385.28

  6 User Agent  Mozilla/5.0 (Linux; Android 4.4.4; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.91 Mobile Safari/    537.36

  7 Command Line    chrome --flags --single-process --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --    use-mobile-user-agent --enable-begin-frame-scheduling --enable-pinch --enable-overlay-scrollbar --validate-input-event-stream --disable-gpu-pr    ocess-crash-limit --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --profiler-tim    ing=0 --prerender-from-omnibox=enabled --enable-dom-distiller --flag-switches-begin --flag-switches-end --disable-gpu-watchdog --supports-dual    -gpus=false --gpu-driver-bug-workarounds=3,8,10,13,21,27,33,38,44,54,66,68,69 --disable-gl-extensions=EGL_KHR_fence_sync EGL_KHR_wait_sync GL_    OES_depth_texture --disable-accelerated-video-decode --disable-webrtc-hw-encoding --gpu-vendor-id=0x0000 --gpu-device-id=0x0000 --gpu-driver-v    endor --gpu-driver-version=66.0 --lang=en-US --num-raster-threads=1 --enable-gpu-rasterization --gpu-rasterization-msaa-sample-count=4 --conte    nt-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553

 8 Executable Path No such file or directory

  9 Profile Path    /data/data/com.android.chrome/app_chrome/Default

10 Build ID    312c1fc4-0f82-49c6-***********
 

Comment 1 Deleted

Comment 2 by xing...@intel.com, Mar 24 2016

This also happens on chrome public: 50.0.2652.0.
One comments, this only happens on startup. So need to kill it and re-launch.
Cc: tedc...@chromium.org
Owner: aelias@chromium.org
Status: Assigned (was: Unconfirmed)
Slight flickering is observed as mentioned in #1 

Comment 4 by xing...@intel.com, Aug 4 2016

I tried comment out InternalSwapCompositorFrame at enderWidgetHostViewAndroid::OnSwapCompositorFrame. Flick still happens.
Version is: Chromium 54.0.2801.0.
void RenderWidgetHostViewAndroid::OnSwapCompositorFrame(
    uint32_t output_surface_id,
    cc::CompositorFrame frame) {
  //InternalSwapCompositorFrame(output_surface_id, std::move(frame));
}
Is this exclusive to Xiaomi 4 LTE?  And can you attach a video of the symptom?

Comment 6 by xing...@intel.com, Aug 4 2016

Trid two xiaomi devices, both have. And also  rsgav...@chromium.org said he reproduced this.
BTW, the video is 24M. And the maximum attachment is 10M.  And indeed, its really easy to reproduce, at least on xiaomi devices.

Comment 7 by xing...@intel.com, Aug 4 2016

On Huawei mate 7(Android 5.1.1), this also happens. Attached VID_20160804_133113.mp4 is Chrome public runs on Huawei mate 7. The happens very frequently on mate 7, almost 50%.
VID_20160804_133113.mp4
6.9 MB View Download

Comment 8 by xing...@intel.com, Aug 4 2016

Is there any exist tools to dump every output frame as a picture of chrome public? So that we can know which frame is black. I know getContentBitmapAsync can be used to capture the output frames, but I am not sure if it maintains the same frame order as GLRender.
Cc: aelias@chromium.org siev...@chromium.org khushals...@chromium.org
Components: UI>Browser>Mobile
Summary: Black flicker when Chrome is relaunched after killing (was: Screen flicker on chrome_public and google chrome)
OK, I can repro the symptom on my personal Moto X 2nd gen, about 25% repro rate.  I assume it reproes on all phones.  Similar problem space as  http://crbug.com/618987 , cc'ing some folks interested in that one.
I have a patch up that should fix this, https://codereview.chromium.org/2133873004/
Owner: khushals...@chromium.org
Sounds good, please double-check following the repro steps in #0 that your patch fixes it (try 10 times to be safe, since it's racy).

Comment 12 by xing...@intel.com, Aug 8 2016

I tried your patch partially, manually append a SolidColorLayer, it doesn't work.
@@ -344,11 +345,15 @@ RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
       frame_evictor_(new DelegatedFrameEvictor(this)),
       locks_on_frame_count_(0),
       observing_root_window_(false),
+      background_layer_(cc::SolidColorLayer::Create()),
       weak_ptr_factory_(this) {
   if (CompositorImpl::GetSurfaceManager())
     id_allocator_ = CompositorImpl::CreateSurfaceIdAllocator();
   host_->SetView(this);
   SetContentViewCore(content_view_core);
+  view_.SetLayer(cc::Layer::Create());
+  background_layer_->SetBackgroundColor(SK_ColorWHITE);
+  view_.GetLayer()->AddChild(background_layer_);
 }

BTW, I doubt that add a SolidColorLayer::Create here can resolve the flicker issue.
Because in CompositorView, it used SolidColorLayer::Create as the root layer too. And this SolidColorLayer::Create of CompositorView(https://chromium.googlesource.com/chromium/src.git/+/master/chrome/browser/android/compositor/compositor_view.cc, in CompositorView::CompositorView, line 82)
is the root layer of ViewAndroid.GetLayer
Owner: aelias@chromium.org
Ah sorry, my comment was intended for  http://crbug.com/618987 . The change was moving showing the background when there is no content from the renderer, or when we are waiting for a frame after a resize to the DelegatedFrameHostAndroid itself, which should always set the background color correctly.

I don't have enough context for this bug though. Alex, do you mind taking this one back?

Comment 14 by xing...@intel.com, Aug 30 2016

Verified with version: 54.0.2840.0. Issue can not reproduce. Not sure if this related to patch https://codereview.chromium.org/2133873004/.

Comment 15 by xing...@intel.com, Sep 26 2016

Any one know the root cause for this issue? Did you add a splash screen on Chrome public?
55.0.2859.0 can not reproduce.
Status: Fixed (was: Assigned)

Sign in to add a comment