| Index: cc/trees/layer_tree_host_unittest.cc | 
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc | 
| index 53eadb83a2a4f758aebc0b952707010b9b0acc6a..3a7caa666ee348755b6c2b3edf7afdd139b90238 100644 | 
| --- a/cc/trees/layer_tree_host_unittest.cc | 
| +++ b/cc/trees/layer_tree_host_unittest.cc | 
| @@ -47,6 +47,8 @@ | 
| #include "cc/test/geometry_test_utils.h" | 
| #include "cc/test/layer_internals_for_test.h" | 
| #include "cc/test/layer_tree_test.h" | 
| +#include "cc/test/push_properties_counting_layer.h" | 
| +#include "cc/test/push_properties_counting_layer_impl.h" | 
| #include "cc/test/render_pass_test_utils.h" | 
| #include "cc/test/skia_common.h" | 
| #include "cc/test/test_compositor_frame_sink.h" | 
| @@ -286,10 +288,7 @@ class LayerTreeHostTestReadyToActivateNonEmpty | 
|  | 
| // No single thread test because the commit goes directly to the active tree in | 
| // single thread mode, so notify ready to activate is skipped. | 
| -// No remote test because we currently don't deserialize FakePictureLayer, | 
| -// so on the impl side, PictureLayerImpl is created instead of | 
| -// FakePictureLayerImpl, see crbug/657871. | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestReadyToActivateNonEmpty); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestReadyToActivateNonEmpty); | 
|  | 
| // Test if the LTHI receives ReadyToDraw notifications from the TileManager when | 
| // no raster tasks get scheduled. | 
| @@ -1623,7 +1622,7 @@ class LayerTreeHostTestGpuRasterDeviceSizeChanged : public LayerTreeHostTest { | 
|  | 
| // As there's no pending tree in single-threaded case, this test should run | 
| // only for multi-threaded case. | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterDeviceSizeChanged); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterDeviceSizeChanged); | 
|  | 
| class LayerTreeHostTestNoExtraCommitFromInvalidate : public LayerTreeHostTest { | 
| public: | 
| @@ -1673,7 +1672,7 @@ class LayerTreeHostTestNoExtraCommitFromInvalidate : public LayerTreeHostTest { | 
| scoped_refptr<Layer> scaled_layer_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNoExtraCommitFromInvalidate); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestNoExtraCommitFromInvalidate); | 
|  | 
| class LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate | 
| : public LayerTreeHostTest { | 
| @@ -1730,6 +1729,8 @@ class LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate | 
| scoped_refptr<FakePaintedScrollbarLayer> scrollbar_; | 
| }; | 
|  | 
| +// No remote test here because PaintedScrollbarLayer is not supported by LTH | 
| +// remote. | 
| SINGLE_AND_MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate); | 
|  | 
| @@ -1797,7 +1798,7 @@ class LayerTreeHostTestDeviceScaleFactorChange : public LayerTreeHostTest { | 
| scoped_refptr<Layer> child_layer_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeviceScaleFactorChange); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestDeviceScaleFactorChange); | 
|  | 
| class LayerTreeHostTestDeviceColorSpaceChange : public LayerTreeHostTest { | 
| public: | 
| @@ -1920,6 +1921,9 @@ class LayerTreeHostTestDeviceColorSpaceChange : public LayerTreeHostTest { | 
| scoped_refptr<Layer> child_layer_; | 
| }; | 
|  | 
| +// No remote test because LTH remote doesn't serialize device_color_space, so | 
| +// LTH in process will always use the default color space here. | 
| +// see crbug/658786. | 
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeviceColorSpaceChange); | 
|  | 
| class LayerTreeHostTestSetNextCommitForcesRedraw : public LayerTreeHostTest { | 
| @@ -2010,6 +2014,7 @@ class LayerTreeHostTestSetNextCommitForcesRedraw : public LayerTreeHostTest { | 
|  | 
| // This test blocks activation which is not supported for single thread mode. | 
| MULTI_THREAD_BLOCKNOTIFY_TEST_F(LayerTreeHostTestSetNextCommitForcesRedraw); | 
| +REMOTE_TEST_F(LayerTreeHostTestSetNextCommitForcesRedraw); | 
|  | 
| // Tests that if a layer is not drawn because of some reason in the parent then | 
| // its damage is preserved until the next time it is drawn. | 
| @@ -2106,7 +2111,7 @@ class LayerTreeHostTestUndrawnLayersDamageLater : public LayerTreeHostTest { | 
| scoped_refptr<FakePictureLayer> child_layer_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestUndrawnLayersDamageLater); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestUndrawnLayersDamageLater); | 
|  | 
| // Tests that if a layer is not drawn because of some reason in the parent then | 
| // its damage is preserved until the next time it is drawn. | 
| @@ -2211,7 +2216,7 @@ class LayerTreeHostTestDamageWithScale : public LayerTreeHostTest { | 
| scoped_refptr<Layer> child_layer_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDamageWithScale); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestDamageWithScale); | 
|  | 
| // This test verifies that properties on the layer tree host are commited | 
| // to the impl side. | 
| @@ -2255,7 +2260,7 @@ class LayerTreeHostTestCommit : public LayerTreeHostTest { | 
| void AfterTest() override {} | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestCommit); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestCommit); | 
|  | 
| // This test verifies that LayerTreeHostImpl's current frame time gets | 
| // updated in consecutive frames when it doesn't draw due to tree | 
| @@ -2313,6 +2318,7 @@ class LayerTreeHostTestFrameTimeUpdatesAfterActivationFails | 
| // This test blocks activation which is not supported for single thread mode. | 
| MULTI_THREAD_BLOCKNOTIFY_TEST_F( | 
| LayerTreeHostTestFrameTimeUpdatesAfterActivationFails); | 
| +REMOTE_TEST_F(LayerTreeHostTestFrameTimeUpdatesAfterActivationFails); | 
|  | 
| // This test verifies that LayerTreeHostImpl's current frame time gets | 
| // updated in consecutive frames when it draws in each frame. | 
| @@ -2361,7 +2367,7 @@ class LayerTreeHostTestFrameTimeUpdatesAfterDraw : public LayerTreeHostTest { | 
| base::TimeTicks first_frame_time_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestFrameTimeUpdatesAfterDraw); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestFrameTimeUpdatesAfterDraw); | 
|  | 
| // Verifies that StartPageScaleAnimation events propagate correctly | 
| // from LayerTreeHost to LayerTreeHostImpl in the MT compositor. | 
| @@ -2439,6 +2445,7 @@ class LayerTreeHostTestStartPageScaleAnimation : public LayerTreeHostTest { | 
| }; | 
|  | 
| // Single thread proxy does not support impl-side page scale changes. | 
| +// Remote test does not support page scale animation. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestStartPageScaleAnimation); | 
|  | 
| class LayerTreeHostTestSetVisible : public LayerTreeHostTest { | 
| @@ -2469,7 +2476,7 @@ class LayerTreeHostTestSetVisible : public LayerTreeHostTest { | 
| int num_draws_; | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestSetVisible); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetVisible); | 
|  | 
| class LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers | 
| : public LayerTreeHostTest { | 
| @@ -2571,7 +2578,8 @@ class LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers | 
| scoped_refptr<FakePictureLayer> child_layer_; | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| +    LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers); | 
|  | 
| class LayerTreeHostTestContinuousInvalidate : public LayerTreeHostTest { | 
| public: | 
| @@ -2621,7 +2629,7 @@ class LayerTreeHostTestContinuousInvalidate : public LayerTreeHostTest { | 
| int num_draw_layers_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestContinuousInvalidate); | 
|  | 
| class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { | 
| public: | 
| @@ -2679,7 +2687,7 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { | 
| int num_send_begin_main_frame_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestDeferCommits); | 
|  | 
| class LayerTreeHostTestCompositeImmediatelyStateTransitions | 
| : public LayerTreeHostTest { | 
| @@ -2838,7 +2846,7 @@ class LayerTreeHostTestLCDChange : public LayerTreeHostTest { | 
| int num_tiles_rastered_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestLCDChange); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestLCDChange); | 
|  | 
| class LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled | 
| : public LayerTreeHostTest { | 
| @@ -2860,6 +2868,8 @@ class LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled | 
| void AfterTest() override {} | 
| }; | 
|  | 
| +// No remote test since synchronous renderer compositor is not supported for LTH | 
| +// remote. | 
| MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestBeginFrameNotificationShutdownWhileEnabled); | 
|  | 
| @@ -2984,6 +2994,8 @@ class LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor | 
| OnDrawCompositorFrameSink* compositor_frame_sink_ = nullptr; | 
| }; | 
|  | 
| +// No remote test since synchronous renderer compositor is not supported for LTH | 
| +// remote. | 
| MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor); | 
|  | 
| @@ -3011,7 +3023,7 @@ class LayerTreeHostTestUninvertibleTransformDoesNotBlockActivation | 
| FakeContentLayerClient client_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F( | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F( | 
| LayerTreeHostTestUninvertibleTransformDoesNotBlockActivation); | 
|  | 
| class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { | 
| @@ -3060,7 +3072,7 @@ class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { | 
| int frame_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNumFramesPending); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestNumFramesPending); | 
|  | 
| class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest { | 
| protected: | 
| @@ -3166,6 +3178,8 @@ class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest { | 
| }; | 
|  | 
| // Resourceless is not used for SingleThreadProxy, so it is unimplemented. | 
| +// No remote test since synchronous renderer compositor is not supported for LTH | 
| +// remote. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestResourcelessSoftwareDraw); | 
|  | 
| // Test for UI Resource management. | 
| @@ -3262,85 +3276,10 @@ class LayerTreeHostTestUIResource : public LayerTreeHostTest { | 
| int num_ui_resources_; | 
| }; | 
|  | 
| +// No remote test since LTH remote does not support UIResourceLayers and | 
| +// PaintedScrollbarLayers, which uses UIResourceManager. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestUIResource); | 
|  | 
| -class PushPropertiesCountingLayerImpl : public LayerImpl { | 
| - public: | 
| -  static std::unique_ptr<PushPropertiesCountingLayerImpl> Create( | 
| -      LayerTreeImpl* tree_impl, | 
| -      int id) { | 
| -    return base::WrapUnique(new PushPropertiesCountingLayerImpl(tree_impl, id)); | 
| -  } | 
| - | 
| -  ~PushPropertiesCountingLayerImpl() override {} | 
| - | 
| -  void PushPropertiesTo(LayerImpl* layer) override { | 
| -    LayerImpl::PushPropertiesTo(layer); | 
| -    push_properties_count_++; | 
| -    // Push state to the active tree because we can only access it from there. | 
| -    static_cast<PushPropertiesCountingLayerImpl*>(layer) | 
| -        ->push_properties_count_ = push_properties_count_; | 
| -  } | 
| - | 
| -  std::unique_ptr<LayerImpl> CreateLayerImpl( | 
| -      LayerTreeImpl* tree_impl) override { | 
| -    return PushPropertiesCountingLayerImpl::Create(tree_impl, id()); | 
| -  } | 
| - | 
| -  size_t push_properties_count() const { return push_properties_count_; } | 
| -  void reset_push_properties_count() { push_properties_count_ = 0; } | 
| - | 
| - private: | 
| -  size_t push_properties_count_; | 
| - | 
| -  PushPropertiesCountingLayerImpl(LayerTreeImpl* tree_impl, int id) | 
| -      : LayerImpl(tree_impl, id), push_properties_count_(0) { | 
| -    SetBounds(gfx::Size(1, 1)); | 
| -  } | 
| -}; | 
| - | 
| -class PushPropertiesCountingLayer : public Layer { | 
| - public: | 
| -  static scoped_refptr<PushPropertiesCountingLayer> Create() { | 
| -    return new PushPropertiesCountingLayer(); | 
| -  } | 
| - | 
| -  void PushPropertiesTo(LayerImpl* layer) override { | 
| -    Layer::PushPropertiesTo(layer); | 
| -    push_properties_count_++; | 
| -    if (persist_needs_push_properties_) { | 
| -      GetLayerTree()->AddLayerShouldPushProperties(this); | 
| -    } | 
| -  } | 
| - | 
| -  // Something to make this layer push properties, but no other layer. | 
| -  void MakePushProperties() { SetContentsOpaque(!contents_opaque()); } | 
| - | 
| -  std::unique_ptr<LayerImpl> CreateLayerImpl( | 
| -      LayerTreeImpl* tree_impl) override { | 
| -    return PushPropertiesCountingLayerImpl::Create(tree_impl, id()); | 
| -  } | 
| - | 
| -  void SetDrawsContent(bool draws_content) { SetIsDrawable(draws_content); } | 
| - | 
| -  size_t push_properties_count() const { return push_properties_count_; } | 
| -  void reset_push_properties_count() { push_properties_count_ = 0; } | 
| - | 
| -  void set_persist_needs_push_properties(bool persist) { | 
| -    persist_needs_push_properties_ = persist; | 
| -  } | 
| - | 
| - private: | 
| -  PushPropertiesCountingLayer() | 
| -      : push_properties_count_(0), persist_needs_push_properties_(false) { | 
| -    SetBounds(gfx::Size(1, 1)); | 
| -  } | 
| -  ~PushPropertiesCountingLayer() override {} | 
| - | 
| -  size_t push_properties_count_; | 
| -  bool persist_needs_push_properties_; | 
| -}; | 
| - | 
| class LayerTreeHostTestLayersPushProperties : public LayerTreeHostTest { | 
| protected: | 
| void BeginTest() override { | 
| @@ -3541,6 +3480,9 @@ class LayerTreeHostTestLayersPushProperties : public LayerTreeHostTest { | 
| size_t expected_push_properties_leaf_layer_; | 
| }; | 
|  | 
| +// No remote test because LTH remote does not build property trees, so layers | 
| +// to push properties are different between engine and client. | 
| +// See crbug/655795. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestLayersPushProperties); | 
|  | 
| class LayerTreeHostTestImplLayersPushProperties | 
| @@ -3737,7 +3679,9 @@ class LayerTreeHostTestImplLayersPushProperties | 
| size_t expected_push_properties_grandchild2_impl_; | 
| }; | 
|  | 
| -// In single thread there's no pending tree to push properties from. | 
| +// No remote test because LTH remote does not build property trees, so layers | 
| +// to push properties are different between engine and client. | 
| +// See crbug/655795. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestImplLayersPushProperties); | 
|  | 
| class LayerTreeHostTestPropertyChangesDuringUpdateArePushed | 
| @@ -3795,6 +3739,7 @@ class LayerTreeHostTestPropertyChangesDuringUpdateArePushed | 
| scoped_refptr<FakePaintedScrollbarLayer> scrollbar_layer_; | 
| }; | 
|  | 
| +// No remote test since remote LTH does not support PaintedScrollbarLayer. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestPropertyChangesDuringUpdateArePushed); | 
|  | 
| class LayerTreeHostTestSetDrawableCausesCommit : public LayerTreeHostTest { | 
| @@ -3826,7 +3771,7 @@ class LayerTreeHostTestSetDrawableCausesCommit : public LayerTreeHostTest { | 
| EXPECT_EQ(0, root_->NumDescendantsThatDrawContent()); | 
| root_->reset_push_properties_count(); | 
| child_->reset_push_properties_count(); | 
| -        child_->SetDrawsContent(true); | 
| +        child_->SetIsDrawable(true); | 
| EXPECT_EQ(1, root_->NumDescendantsThatDrawContent()); | 
| EXPECT_EQ(0u, root_->push_properties_count()); | 
| EXPECT_EQ(0u, child_->push_properties_count()); | 
| @@ -3855,7 +3800,7 @@ class LayerTreeHostTestSetDrawableCausesCommit : public LayerTreeHostTest { | 
| scoped_refptr<PushPropertiesCountingLayer> child_; | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestSetDrawableCausesCommit); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetDrawableCausesCommit); | 
|  | 
| class LayerTreeHostTestCasePushPropertiesThreeGrandChildren | 
| : public LayerTreeHostTest { | 
| @@ -3928,7 +3873,8 @@ class LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| +    LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush); | 
|  | 
| class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion | 
| : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 
| @@ -4011,7 +3957,8 @@ class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| +    LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion); | 
|  | 
| class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence | 
| : public LayerTreeHostTestCasePushPropertiesThreeGrandChildren { | 
| @@ -4059,7 +4006,7 @@ class LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F( | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence); | 
|  | 
| class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree | 
| @@ -4128,7 +4075,7 @@ class LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F( | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree); | 
|  | 
| class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild | 
| @@ -4193,7 +4140,7 @@ class LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F( | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild); | 
|  | 
| class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent | 
| @@ -4258,7 +4205,7 @@ class LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent | 
| } | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F( | 
| +REMOTE_AND_MULTI_THREAD_TEST_F( | 
| LayerTreeHostTestPushPropertiesSetPropertyInChildThenParent); | 
|  | 
| // This test verifies that the tree activation callback is invoked correctly. | 
| @@ -4317,7 +4264,7 @@ class LayerTreeHostTestTreeActivationCallback : public LayerTreeHostTest { | 
| int callback_count_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestTreeActivationCallback); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestTreeActivationCallback); | 
|  | 
| class LayerInvalidateCausesDraw : public LayerTreeHostTest { | 
| public: | 
| @@ -4380,6 +4327,7 @@ class LayerTreeHostTestVideoLayerInvalidate : public LayerInvalidateCausesDraw { | 
| FakeVideoFrameProvider provider_; | 
| }; | 
|  | 
| +// LTH remote does not support VideoLayer. | 
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestVideoLayerInvalidate); | 
|  | 
| class LayerTreeHostTestPushHiddenLayer : public LayerTreeHostTest { | 
| @@ -4447,7 +4395,7 @@ class LayerTreeHostTestPushHiddenLayer : public LayerTreeHostTest { | 
| scoped_refptr<SolidColorLayer> child_layer_; | 
| }; | 
|  | 
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPushHiddenLayer); | 
| +SINGLE_MULTI_AND_REMOTE_TEST_F(LayerTreeHostTestPushHiddenLayer); | 
|  | 
| class LayerTreeHostTestUpdateLayerInEmptyViewport : public LayerTreeHostTest { | 
| protected: | 
| @@ -4480,7 +4428,7 @@ class LayerTreeHostTestUpdateLayerInEmptyViewport : public LayerTreeHostTest { | 
| scoped_refptr<FakePictureLayer> root_layer_; | 
| }; | 
|  | 
| -MULTI_THREAD_TEST_F(LayerTreeHostTestUpdateLayerInEmptyViewport); | 
| +REMOTE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestUpdateLayerInEmptyViewport); | 
|  | 
| class LayerTreeHostTestElasticOverscroll : public LayerTreeHostTest { | 
| public: | 
| @@ -4575,6 +4523,7 @@ class LayerTreeHostTestElasticOverscroll : public LayerTreeHostTest { | 
| int num_draws_; | 
| }; | 
|  | 
| +// Remote test does not support enable_elastic_overscroll. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestElasticOverscroll); | 
|  | 
| struct TestSwapPromiseResult { | 
| @@ -4679,6 +4628,9 @@ class PinnedLayerTreeSwapPromise : public LayerTreeHostTest { | 
| TestSwapPromiseResult pinned_active_swap_promise_result_; | 
| }; | 
|  | 
| +// No remote test because this test compares the swap promises result between | 
| +// LTH in process and LTH impl. LTH remote runs its own swap promise, and we | 
| +// don't send swap promises to the client. | 
| MULTI_THREAD_TEST_F(PinnedLayerTreeSwapPromise); | 
|  | 
| class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest { | 
| @@ -4776,6 +4728,8 @@ class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest { | 
| TestSwapPromiseResult swap_promise_result_[3]; | 
| }; | 
|  | 
| +// No remote test because LTH remote runs its own swap promises, and we | 
| +// don't send swap promises to the LTH in process on the client side. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise); | 
|  | 
| class LayerTreeHostTestKeepSwapPromise : public LayerTreeHostTest { | 
| @@ -4867,6 +4821,8 @@ class LayerTreeHostTestKeepSwapPromise : public LayerTreeHostTest { | 
| TestSwapPromiseResult swap_promise_result_; | 
| }; | 
|  | 
| +// No remote test because LTH remote runs its own swap promises, and we | 
| +// don't send swap promises to the LTH in process on the client side. | 
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromise); | 
|  | 
| class LayerTreeHostTestKeepSwapPromiseMFBA : public LayerTreeHostTest { | 
| @@ -4981,6 +4937,8 @@ class LayerTreeHostTestKeepSwapPromiseMFBA : public LayerTreeHostTest { | 
| TestSwapPromiseResult swap_promise_result_; | 
| }; | 
|  | 
| +// No remote test because LTH remote runs its own swap promises, and we | 
| +// don't send swap promises to the LTH in process on the client side. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromiseMFBA); | 
|  | 
| class LayerTreeHostTestBreakSwapPromiseForVisibility | 
| @@ -5023,6 +4981,8 @@ class LayerTreeHostTestBreakSwapPromiseForVisibility | 
| TestSwapPromiseResult swap_promise_result_; | 
| }; | 
|  | 
| +// No remote test because LTH remote runs its own swap promises, and we | 
| +// don't send swap promises to the LTH in process on the client side. | 
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromiseForVisibility); | 
|  | 
| class SimpleSwapPromiseMonitor : public SwapPromiseMonitor { | 
| @@ -5106,6 +5066,8 @@ class LayerTreeHostTestSimpleSwapPromiseMonitor : public LayerTreeHostTest { | 
| void AfterTest() override {} | 
| }; | 
|  | 
| +// No remote test because LTH remote runs its own swap promises, and we | 
| +// don't send swap promises to the LTH in process on the client side. | 
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSimpleSwapPromiseMonitor); | 
|  | 
| class LayerTreeHostTestHighResRequiredAfterEvictingUIResources | 
| @@ -5327,6 +5289,8 @@ class LayerTreeHostTestGpuRasterizationEnabled : public LayerTreeHostTest { | 
| FakeRecordingSource* recording_source_; | 
| }; | 
|  | 
| +// No remote test since we does not send gpu rasterization flag to the client. | 
| +// See crbug/650431. | 
| MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationEnabled); | 
|  | 
| class LayerTreeHostTestGpuRasterizationReenabled : public LayerTreeHostTest { | 
|  |