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

Issue 871777 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 24
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Surface Synchronization: Pixel Test Failures

Project Member Reported by ericrk@chromium.org, Aug 7

Issue description

A large number of tests which produce pixel output appear to be failing with Surface Synchronization. We should investigate. This includes:
screenshot_sync_tests
pixel_test
maps_pixel_test
 
Owner: fsam...@chromium.org
Status: Assigned (was: Available)
It looks like the request to capture the screen doesn't even make it to C++

I see this stack trace in logcat:

08-22 18:36:41.080  6126  6127 I chromium: [0822/183641.080489:INFO:device_controller.cc(121)] Unmapping port 36249
08-22 18:36:41.080  6126  6129 I chromium: [0822/183641.080730:INFO:device_listener.cc(89)] Received exit notification, stopped accepting clients.
08-22 18:36:43.586 22699 25499 I ActivityManager: Force stopping org.chromium.chrome appid=10147 user=0: from pid 7405
08-22 18:36:43.586 22699 25499 I ActivityManager: Killing 7202:org.chromium.chrome/u0a147 (adj 0): stop org.chromium.chrome
08-22 18:36:43.610 22699 22713 W WindowManager: Force-removing child win Window{b047726 u0 SurfaceView} from container Window{d1b5f48 u0 org.chromium.chrome/org.chromium.chrome.browser.ChromeTabbedActivity}
08-22 18:36:43.628 22699 25501 W WindowManager: Failed looking up window
08-22 18:36:43.628 22699 25501 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@2029763 does not exist
08-22 18:36:43.628 22699 25501 W WindowManager:         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8743)
08-22 18:36:43.628 22699 25501 W WindowManager:         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8734)
08-22 18:36:43.628 22699 25501 W WindowManager:         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1209)
08-22 18:36:43.628 22699 25501 W WindowManager:         at android.os.BinderProxy.sendDeathNotice(Binder.java:558)
08-22 18:36:43.682 22699 25499 D ActivityManager: cleanUpApplicationRecord -- 7202
08-22 18:36:43.683 22699 25499 W ActivityManager: Exception when unbinding service org.chromium.chrome/org.chromium.content.app.PrivilegedProcessService0
08-22 18:36:43.683 22699 25499 W ActivityManager: android.os.DeadObjectException
08-22 18:36:43.683 22699 25499 W ActivityManager:       at android.os.BinderProxy.transactNative(Native Method)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at android.os.BinderProxy.transact(Binder.java:503)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at android.app.ApplicationThreadProxy.scheduleUnbindService(ApplicationThreadNative.java:956)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:1874)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2237)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:15559)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:4577)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.removeProcessLocked(ActivityManagerService.java:5960)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.killPackageProcessesLocked(ActivityManagerService.java:5619)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5768)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5526)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackage(ActivityManagerService.java:5336)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1513)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2484)
08-22 18:36:43.683 22699 25499 W ActivityManager:       at android.os.Binder.execTransact(Binder.java:453)
08-22 18:36:43.686 22699 25499 W ActivityManager: Exception when unbinding service org.chromium.chrome/org.chromium.content.app.SandboxedProcessService0
08-22 18:36:43.686 22699 25499 W ActivityManager: android.os.DeadObjectException
08-22 18:36:43.686 22699 25499 W ActivityManager:       at android.os.BinderProxy.transactNative(Native Method)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at android.os.BinderProxy.transact(Binder.java:503)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at android.app.ApplicationThreadProxy.scheduleUnbindService(ApplicationThreadNative.java:956)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:1874)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2237)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:15559)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:4577)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.removeProcessLocked(ActivityManagerService.java:5960)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.killPackageProcessesLocked(ActivityManagerService.java:5619)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5768)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5526)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackage(ActivityManagerService.java:5336)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1513)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2484)
08-22 18:36:43.686 22699 25499 W ActivityManager:       at android.os.Binder.execTransact(Binder.java:453)
08-22 18:36:43.687 22699 25499 W ActivityManager: Force removing ActivityRecord{8991b83 u0 org.chromium.chrome/.browser.ChromeTabbedActivity t588}: app died, no saved state
08-22 18:36:43.690 22699 25499 I ActivityManager: Killing 7230:org.chromium.chrome:sandboxed_process0/u0a147i363 (adj 9): isolated not needed
08-22 18:36:43.695 22699 25499 I ActivityManager: Killing 7257:org.chromium.chrome:privileged_process0/u0a147 (adj 10): stop org.chromium.chrome
08-22 18:36:43.712 22699 25499 D ActivityManager: cleanUpApplicationRecord -- 7257
08-22 18:36:43.715 22699 24830 W ActivityManager: Spurious death for ProcessRecord{55fb1e1 0:org.chromium.chrome/u0a147}, curProc for 7202: null
08-22 18:36:43.715 22699 22712 D ActivityManager: cleanUpApplicationRecord -- 7230

Cc: kbr@chromium.org
I see the callstack even when surface sync is off so this might be a red herring:

08-22 18:40:16.377 22699 23601 I ActivityManager: Force stopping org.chromium.chrome appid=10147 user=0: from pid 8558
08-22 18:40:16.377 22699 23601 I ActivityManager: Killing 8364:org.chromium.chrome/u0a147 (adj 0): stop org.chromium.chrome
08-22 18:40:16.400 22699 23639 W WindowManager: Force-removing child win Window{2ed7463 u0 SurfaceView} from container Window{b60ce41 u0 org.chromium.chrome/org.chromium.chrome.browser.ChromeTabbedActivity}
08-22 18:40:16.407 22699 22713 W WindowManager: Failed looking up window
08-22 18:40:16.407 22699 22713 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@8e57d40 does not exist
08-22 18:40:16.407 22699 22713 W WindowManager:         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8743)
08-22 18:40:16.407 22699 22713 W WindowManager:         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8734)
08-22 18:40:16.407 22699 22713 W WindowManager:         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1209)
08-22 18:40:16.407 22699 22713 W WindowManager:         at android.os.BinderProxy.sendDeathNotice(Binder.java:558)
08-22 18:40:16.472 22699 23601 D ActivityManager: cleanUpApplicationRecord -- 8364
08-22 18:40:16.473 22699 23601 W ActivityManager: Exception when unbinding service org.chromium.chrome/org.chromium.content.app.SandboxedProcessService0
08-22 18:40:16.473 22699 23601 W ActivityManager: android.os.DeadObjectException
08-22 18:40:16.473 22699 23601 W ActivityManager:       at android.os.BinderProxy.transactNative(Native Method)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at android.os.BinderProxy.transact(Binder.java:503)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at android.app.ApplicationThreadProxy.scheduleUnbindService(ApplicationThreadNative.java:956)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:1874)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2237)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:15559)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:4577)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.removeProcessLocked(ActivityManagerService.java:5960)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.killPackageProcessesLocked(ActivityManagerService.java:5619)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5768)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5526)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackage(ActivityManagerService.java:5336)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1513)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2484)
08-22 18:40:16.473 22699 23601 W ActivityManager:       at android.os.Binder.execTransact(Binder.java:453)
08-22 18:40:16.476 22699 23601 W ActivityManager: Exception when unbinding service org.chromium.chrome/org.chromium.content.app.PrivilegedProcessService0
08-22 18:40:16.476 22699 23601 W ActivityManager: android.os.DeadObjectException
08-22 18:40:16.476 22699 23601 W ActivityManager:       at android.os.BinderProxy.transactNative(Native Method)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at android.os.BinderProxy.transact(Binder.java:503)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at android.app.ApplicationThreadProxy.scheduleUnbindService(ApplicationThreadNative.java:956)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:1874)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:2237)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:15559)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:4577)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.removeProcessLocked(ActivityManagerService.java:5960)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.killPackageProcessesLocked(ActivityManagerService.java:5619)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5768)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackageLocked(ActivityManagerService.java:5526)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.forceStopPackage(ActivityManagerService.java:5336)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1513)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2484)
08-22 18:40:16.476 22699 23601 W ActivityManager:       at android.os.Binder.execTransact(Binder.java:453)
08-22 18:40:16.476 22699 23601 I ActivityManager: Killing 8391:org.chromium.chrome:sandboxed_process0/u0a147i366 (adj 9): isolated not needed
08-22 18:40:16.485 22699 23601 W ActivityManager: Force removing ActivityRecord{ec90ee0 u0 org.chromium.chrome/.browser.ChromeTabbedActivity t594}: app died, no saved state
08-22 18:40:16.491 22699 23601 I ActivityManager: Killing 8417:org.chromium.chrome:privileged_process0/u0a147 (adj 9): stop org.chromium.chrome
08-22 18:40:16.491 22699 23601 D ActivityManager: cleanUpApplicationRecord -- 8417
08-22 18:40:16.493 22699 23675 W ActivityManager: Spurious death for ProcessRecord{e55cfe6 0:org.chromium.chrome/u0a147}, curProc for 8364: null

With surface sync off, I see the following LOG(INFO)s (none of which show up with surface sync on):

08-22 18:40:12.671  8364  8364 I chromium: [INFO:page_handler.cc(600)] CaptureScreenShot
08-22 18:40:12.671  8364  8364 I chromium: [INFO:page_handler.cc(613)] [1] GetSnapshotFromBrowser
08-22 18:40:12.671  8364  8364 I chromium: [INFO:render_widget_host_impl.cc(1781)] GetSnapshotFromBrowser 1
08-22 18:40:12.699  8364  8364 I chromium: [INFO:render_widget_host_impl.cc(1888)] OnForceRedrawComplete 1
08-22 18:40:12.699  8364  8364 I chromium: [INFO:render_widget_host_impl.cc(2689)] WindowSnapshotReachedScreen
08-22 18:40:12.699  8364  8364 I chromium: [INFO:compositor_impl_android.cc(1170)] RequestCopyOfOutputOnRootLayer
08-22 18:40:12.850  8364  8364 I chromium: [INFO:render_widget_host_impl.cc(2756)] OnSnapshotReceived
08-22 18:40:12.850  8364  8364 I chromium: [INFO:page_handler.cc(1045)] PageHandler::ScreenshotCaptured

Cc: ericrk@chromium.org khushals...@chromium.org
It sounds plausible that some sub-process – like the browser or renderer – might be crashing. What's the symptom on the Telemetry side when this happens? Does the call to tab.Screenshot() time out?

Are there any tombstones on the device after the test runs?

There don't appear to be any tombstones as a result of the test. I see older tombstones running this

build/android/tombstones.py --output-directory out/android_default > test

VERY slow but steady progress:

I've started printing out commands sent to devtools. Both surface sync on and off see this:

08-23 13:54:30.622 24884 24884 I chromium: [INFO:devtools_session.cc(142)] HandleCommand message: {"method": "SystemInfo.getInfo", "id": 0}
08-23 13:54:30.622 24884 24884 I chromium: [INFO:devtools_session.cc(149)] HandleCommand method: SystemInfo.getInfo
08-23 13:54:30.658 24884 24884 I chromium: [INFO:devtools_session.cc(142)] HandleCommand message: {"method": "Page.enable", "id": 0}
08-23 13:54:30.658 24884 24884 I chromium: [INFO:devtools_session.cc(149)] HandleCommand method: Page.enable
08-23 13:54:30.662 24884 24884 I chromium: [INFO:devtools_session.cc(142)] HandleCommand message: {"method": "ServiceWorker.enable", "id": 1}
08-23 13:54:30.663 24884 24884 I chromium: [INFO:devtools_session.cc(149)] HandleCommand method: ServiceWorker.enable

When surface sync is on, things just stop there.

When surface sync is off, a lot more commands pass through:

Page.addScriptToEvaluateOnLoad
Page.navigate
Runtime.evaluate (many many times)
..
Page.captureScreenshot

My current guess is navigation stalls for some reason. Surface sync does impact navigation, so maybe that could be it... We will defer commits if we don't get a valid LocalSurfaceId. 

I will continue investigating.

Aha, yes, that sounds likely. There's a lot of handshaking between Telemetry and DevTools to get scripts injected into the target web page at just the right time.

I'm not so convinced it's a navigation issue anymore.

According to these printouts, we allocate a LocalSurfaceId for navigation and pass it to the renderer which then submits a CompositorFrame to the LocalSurfaceId and activates.


08-23 14:26:20.675 32063 32063 I chromium: [INFO:delegated_frame_host_android.cc(258)] EmbedSurface LocalSurfaceId(4, 1, D827...) enable_surface_synchronization: 1
08-23 14:26:20.675 32063 32063 I chromium: [INFO:delegated_frame_host_android.cc(489)] First LocalSurfaceId after navigation LocalSurfaceId(4, 1, D827...)
08-23 14:26:20.826 32090 32105 I chromium: [INFO:render_widget.cc(1934)] UpdateSurfaceAndScreenInfo LocalSurfaceId(2, 1, D827...) 0x0
08-23 14:26:20.844 32090 32105 I chromium: [INFO:render_widget.cc(1934)] UpdateSurfaceAndScreenInfo LocalSurfaceId(3, 1, D827...) 0x0
08-23 14:26:20.851 32090 32105 I chromium: [INFO:render_widget.cc(1934)] UpdateSurfaceAndScreenInfo LocalSurfaceId(4, 1, D827...) 1080x1704
08-23 14:26:21.096 32063 32063 I chromium: [INFO:delegated_frame_host_android.cc(258)] EmbedSurface LocalSurfaceId(4, 1, D827...) enable_surface_synchronization: 1
08-23 14:26:21.098 32063 32063 I chromium: [INFO:delegated_frame_host_android.cc(367)] OnFirstSurfaceActivation SurfaceInfo(SurfaceId(FrameSinkId(3, 2), LocalSurfaceId(4, 1, D827...)), DeviceScaleFactor(3.000000
), Size(1080x1704))

I'll check how many activations we get without surface sync next.
We only get one activation without surface sync as well. I'm stumped...
Try dumping all the DevTools protocol messages going back and forth from Telemetry to the browser. Here's an example to do so for one pixel test:

./content/test/gpu/run_gpu_integration_test.py pixel --test-filter=Pixel_WebGL2_BlitFramebuffer_Result_Displayed --browser=release -v -v --passthrough

(The code which does this is in _SendRequest in src/third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket.py .)

Hopefully by watching all the back-and-forth messages you can see where things get hung up with surface sync turned on.

Thanks Ken! Looks like I was maybe on a wild goose chase. Page.captureScreenshot is getting sent and we get a reply with an image. I think my LOG(INFO)s weren't showing up for some reason with surface sync on. Trying LOG(ERROR) now.


I put an IMMEDIATE_CRASH() in PageHandler::CaptureScreenshot and verified it crashes with surface sync on. Somehow LOGs are getting swallowed when surface sync is on. I'm continuing to investigate.

This is a really nasty bug :(
Progress! 08-23 19:24:17.336 30505 30563 I chromium: [INFO:async_layer_tree_frame_sink.cc(263)] OnMojoConnectionError

The LayerTreeFrameSink mojo connection is getting dropped! I'm investigating why now!
So I tried printing out the description, but there is none, which means it's not caused by surface invariants violations. I'm not sure why the mojo connection is getting dropped yet.
Looks like we're requesting a new CompositorFrameSink...it seems we are replacing the existing one in DelegatedFrameHostAndroid...why this is happening...I do not know yet. 

 03999a93  viz::CompositorFrameSinkSupport::~CompositorFrameSinkSupport()                                                                                                                                         
  03999ddb  viz::CompositorFrameSinkSupport::~CompositorFrameSinkSupport()                                                                                                                                         
  v------>  std::__ndk1::default_delete<viz::CompositorFrameSinkSupport>::operator()(viz::CompositorFrameSinkSupport*) const                                                                                       
  v------>  std::__ndk1::unique_ptr<viz::CompositorFrameSinkSupport, std::__ndk1::default_delete<viz::CompositorFrameSinkSupport> >::reset(viz::CompositorFrameSinkSupport*)                                       
  03a1ebb3  ui::DelegatedFrameHostAndroid::CreateNewCompositorFrameSinkSupport()                                                                                                                                   
  03a1f2eb  ui::DelegatedFrameHostAndroid::CompositorFrameSinkChanged()                                                                                                                                            
  01c38e4b  content::RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink(viz::mojom::CompositorFrameSinkClient*)                                                                                  
  01b7b5db  content::RenderWidgetHostImpl::RequestCompositorFrameSink(mojo::InterfaceRequest<viz::mojom::CompositorFrameSink>, mojo::InterfacePtr<viz::mojom::CompositorFrameSinkClient>)                          
  01b2d707  content::FrameSinkProviderImpl::CreateForWidget(int, mojo::InterfaceRequest<viz::mojom::CompositorFrameSink>, mojo::InterfacePtr<viz::mojom::CompositorFrameSinkClient>)                               
  0174ea95  content::mojom::FrameSinkProviderStubDispatch::Accept(content::mojom::FrameSinkProvider*, mojo::Message*)                                                                                              
  02d0775b  mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*)                                                                                                                                  
  02d0754b  mojo::FilterChain::Accept(mojo::Message*)                                                                                  
This happens because we create a throwaway CompositorFrameSinkSupport in the DelegatedFrameHost(Android) constructor. That is easily fixable.

I think the Mojo connection error is a red herring because I occasionally see it without surface sync too and it seems to be at tear down time and doesn't affect the test.
We could also verify if the OnMojoConnectionError is a red herring by using a ConnectionErrorWithReasonCallback instead of the closure version that has no details.
I don't quite understand – shouldn't this bug have been fixed before https://chromium-review.googlesource.com/1162438 landed?

Oops that CL fixes this bug too! I forgot to include this bug as a reference!
Status: Fixed (was: Assigned)
Marking as FIXED.

Sign in to add a comment