| Index: cc/trees/layer_tree_host_unittest_context.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc
|
| index 879e5347e311078e380b072780e3c6ff6f393cd9..548ff36029ec9d518bb8765b9cfe31e2475b6158 100644
|
| --- a/cc/trees/layer_tree_host_unittest_context.cc
|
| +++ b/cc/trees/layer_tree_host_unittest_context.cc
|
| @@ -65,6 +65,9 @@ class LayerTreeHostContextTest : public LayerTreeTest {
|
| }
|
|
|
| void LoseContext() {
|
| + // For sanity-checking tests, they should only call this when the
|
| + // context is not lost.
|
| + CHECK(context3d_);
|
| context3d_->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB,
|
| GL_INNOCENT_CONTEXT_RESET_ARB);
|
| context3d_ = NULL;
|
| @@ -200,45 +203,53 @@ class LayerTreeHostContextTestLostContextSucceeds
|
| static const TestCase kTests[] = {
|
| // Losing the context and failing to recreate it (or losing it again
|
| // immediately) a small number of times should succeed.
|
| - {1, // times_to_lose_during_commit
|
| + {
|
| + 1, // times_to_lose_during_commit
|
| 0, // times_to_lose_during_draw
|
| 0, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| - {0, // times_to_lose_during_commit
|
| + {
|
| + 0, // times_to_lose_during_commit
|
| 1, // times_to_lose_during_draw
|
| 0, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| - {1, // times_to_lose_during_commit
|
| + {
|
| + 1, // times_to_lose_during_commit
|
| 0, // times_to_lose_during_draw
|
| 3, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| - {0, // times_to_lose_during_commit
|
| + {
|
| + 0, // times_to_lose_during_commit
|
| 1, // times_to_lose_during_draw
|
| 3, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| // Losing the context and recreating it any number of times should
|
| // succeed.
|
| - {10, // times_to_lose_during_commit
|
| + {
|
| + 10, // times_to_lose_during_commit
|
| 0, // times_to_lose_during_draw
|
| 0, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| - {0, // times_to_lose_during_commit
|
| + {
|
| + 0, // times_to_lose_during_commit
|
| 10, // times_to_lose_during_draw
|
| 0, // times_to_fail_recreate
|
| false, // fallback_context_works
|
| },
|
| // Losing the context, failing to reinitialize it, and making a fallback
|
| // context should work.
|
| - {0, // times_to_lose_during_commit
|
| + {
|
| + 0, // times_to_lose_during_commit
|
| 1, // times_to_lose_during_draw
|
| 0, // times_to_fail_recreate
|
| true, // fallback_context_works
|
| - }, };
|
| + },
|
| + };
|
|
|
| if (test_case_ >= arraysize(kTests))
|
| return false;
|
| @@ -300,7 +311,8 @@ class LayerTreeHostClientNotReadyDoesNotCreateOutputSurface
|
| }
|
| };
|
|
|
| -MULTI_THREAD_TEST_F(LayerTreeHostClientNotReadyDoesNotCreateOutputSurface);
|
| +SINGLE_AND_MULTI_THREAD_TEST_F(
|
| + LayerTreeHostClientNotReadyDoesNotCreateOutputSurface);
|
|
|
| class LayerTreeHostContextTestLostContextSucceedsWithContent
|
| : public LayerTreeHostContextTestLostContextSucceeds {
|
| @@ -358,10 +370,11 @@ class LayerTreeHostContextTestCreateOutputSurfaceFails
|
| : times_to_fail_(times_to_fail),
|
| expect_fallback_attempt_(expect_fallback_attempt),
|
| did_attempt_fallback_(false),
|
| - times_initialized_(0) {}
|
| + times_initialized_(0) {
|
| + times_to_fail_create_ = times_to_fail_;
|
| + }
|
|
|
| virtual void BeginTest() OVERRIDE {
|
| - times_to_fail_create_ = times_to_fail_;
|
| PostSetNeedsCommitToMainThread();
|
| }
|
|
|
| @@ -975,12 +988,6 @@ class ScrollbarLayerLostContext : public LayerTreeHostContextTest {
|
| EXPECT_EQ(2, scrollbar_layer_->update_count());
|
| EndTest();
|
| break;
|
| - case 3:
|
| - // Single thread proxy issues extra commits after context lost.
|
| - // http://crbug.com/287250
|
| - if (HasImplThread())
|
| - NOTREACHED();
|
| - break;
|
| default:
|
| NOTREACHED();
|
| }
|
| @@ -1024,12 +1031,10 @@ class UIResourceLostTest : public LayerTreeHostContextTest {
|
|
|
| void PostLoseContextToImplThread() {
|
| EXPECT_TRUE(layer_tree_host()->proxy()->IsMainThread());
|
| - base::SingleThreadTaskRunner* task_runner =
|
| - HasImplThread() ? ImplThreadTaskRunner()
|
| - : base::MessageLoopProxy::current();
|
| - task_runner->PostTask(FROM_HERE,
|
| - base::Bind(&LayerTreeHostContextTest::LoseContext,
|
| - base::Unretained(this)));
|
| + ImplThreadTaskRunner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&LayerTreeHostContextTest::LoseContext,
|
| + base::Unretained(this)));
|
| }
|
|
|
| protected:
|
| @@ -1084,13 +1089,8 @@ class UIResourceLostAfterCommit : public UIResourceLostTestSimple {
|
| EndTest();
|
| break;
|
| case 5:
|
| - // Single thread proxy issues extra commits after context lost.
|
| - // http://crbug.com/287250
|
| - if (HasImplThread())
|
| - NOTREACHED();
|
| - break;
|
| - case 6:
|
| NOTREACHED();
|
| + break;
|
| }
|
| }
|
|
|
| @@ -1178,13 +1178,8 @@ class UIResourceLostBeforeCommit : public UIResourceLostTestSimple {
|
| EndTest();
|
| break;
|
| case 6:
|
| - // Single thread proxy issues extra commits after context lost.
|
| - // http://crbug.com/287250
|
| - if (HasImplThread())
|
| - NOTREACHED();
|
| - break;
|
| - case 8:
|
| NOTREACHED();
|
| + break;
|
| }
|
| }
|
|
|
| @@ -1205,15 +1200,8 @@ class UIResourceLostBeforeCommit : public UIResourceLostTestSimple {
|
| // Sequence 2 (continued):
|
| // The previous resource should have been deleted.
|
| EXPECT_EQ(0u, impl->ResourceIdForUIResource(test_id0_));
|
| - if (HasImplThread()) {
|
| - // The second resource should have been created.
|
| - EXPECT_NE(0u, impl->ResourceIdForUIResource(test_id1_));
|
| - } else {
|
| - // The extra commit that happens at context lost in the single thread
|
| - // proxy changes the timing so that the resource has been destroyed.
|
| - // http://crbug.com/287250
|
| - EXPECT_EQ(0u, impl->ResourceIdForUIResource(test_id1_));
|
| - }
|
| + // The second resource should have been created.
|
| + EXPECT_NE(0u, impl->ResourceIdForUIResource(test_id1_));
|
| // The second resource called the resource callback once and since the
|
| // context is lost, a "resource lost" callback was also issued.
|
| EXPECT_EQ(2, ui_resource_->resource_create_count);
|
| @@ -1529,8 +1517,8 @@ class LayerTreeHostContextTestLoseAfterSendingBeginMainFrame
|
| bool deferred_;
|
| };
|
|
|
| -// TODO(danakj): We don't use scheduler with SingleThreadProxy yet.
|
| -MULTI_THREAD_TEST_F(LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
|
| +SINGLE_AND_MULTI_THREAD_TEST_F(
|
| + LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
|
|
|
| } // namespace
|
| } // namespace cc
|
|
|