Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: cc/surfaces/surface_factory_unittest.cc

Issue 2449853004: Getting rid of DelegatedFrameData (Closed)
Patch Set: nit Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/surfaces/surface_factory.cc ('k') | cc/surfaces/surface_hittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/surfaces/surface_factory.h" 5 #include "cc/surfaces/surface_factory.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "cc/output/compositor_frame.h" 14 #include "cc/output/compositor_frame.h"
15 #include "cc/output/copy_output_request.h" 15 #include "cc/output/copy_output_request.h"
16 #include "cc/output/copy_output_result.h" 16 #include "cc/output/copy_output_result.h"
17 #include "cc/output/delegated_frame_data.h"
18 #include "cc/resources/resource_provider.h" 17 #include "cc/resources/resource_provider.h"
19 #include "cc/surfaces/surface.h" 18 #include "cc/surfaces/surface.h"
20 #include "cc/surfaces/surface_factory_client.h" 19 #include "cc/surfaces/surface_factory_client.h"
21 #include "cc/surfaces/surface_manager.h" 20 #include "cc/surfaces/surface_manager.h"
22 #include "cc/test/scheduler_test_common.h" 21 #include "cc/test/scheduler_test_common.h"
23 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
24 #include "ui/gfx/geometry/size.h" 23 #include "ui/gfx/geometry/size.h"
25 24
26 namespace cc { 25 namespace cc {
27 namespace { 26 namespace {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 95 }
97 96
98 ~SurfaceFactoryTest() override { 97 ~SurfaceFactoryTest() override {
99 if (local_frame_id_.is_valid()) 98 if (local_frame_id_.is_valid())
100 factory_->Destroy(local_frame_id_); 99 factory_->Destroy(local_frame_id_);
101 manager_.RemoveObserver(this); 100 manager_.RemoveObserver(this);
102 } 101 }
103 102
104 void SubmitCompositorFrameWithResources(ResourceId* resource_ids, 103 void SubmitCompositorFrameWithResources(ResourceId* resource_ids,
105 size_t num_resource_ids) { 104 size_t num_resource_ids) {
106 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 105 CompositorFrame frame;
107 for (size_t i = 0u; i < num_resource_ids; ++i) { 106 for (size_t i = 0u; i < num_resource_ids; ++i) {
108 TransferableResource resource; 107 TransferableResource resource;
109 resource.id = resource_ids[i]; 108 resource.id = resource_ids[i];
110 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; 109 resource.mailbox_holder.texture_target = GL_TEXTURE_2D;
111 resource.mailbox_holder.sync_token = frame_sync_token_; 110 resource.mailbox_holder.sync_token = frame_sync_token_;
112 frame_data->resource_list.push_back(resource); 111 frame.resource_list.push_back(resource);
113 } 112 }
114 CompositorFrame frame;
115 frame.delegated_frame_data = std::move(frame_data);
116 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame), 113 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
117 SurfaceFactory::DrawCallback()); 114 SurfaceFactory::DrawCallback());
118 EXPECT_EQ(last_created_surface_id_.local_frame_id(), local_frame_id_); 115 EXPECT_EQ(last_created_surface_id_.local_frame_id(), local_frame_id_);
119 } 116 }
120 117
121 void UnrefResources(ResourceId* ids_to_unref, 118 void UnrefResources(ResourceId* ids_to_unref,
122 int* counts_to_unref, 119 int* counts_to_unref,
123 size_t num_ids_to_unref) { 120 size_t num_ids_to_unref) {
124 ReturnedResourceArray unref_array; 121 ReturnedResourceArray unref_array;
125 for (size_t i = 0; i < num_ids_to_unref; ++i) { 122 for (size_t i = 0; i < num_ids_to_unref; ++i) {
(...skipping 18 matching lines...) Expand all
144 EXPECT_EQ(expected_sync_token, resource.sync_token); 141 EXPECT_EQ(expected_sync_token, resource.sync_token);
145 EXPECT_EQ(expected_returned_ids[i], resource.id); 142 EXPECT_EQ(expected_returned_ids[i], resource.id);
146 EXPECT_EQ(expected_returned_counts[i], resource.count); 143 EXPECT_EQ(expected_returned_counts[i], resource.count);
147 } 144 }
148 client_.clear_returned_resources(); 145 client_.clear_returned_resources();
149 } 146 }
150 147
151 void RefCurrentFrameResources() { 148 void RefCurrentFrameResources() {
152 Surface* surface = manager_.GetSurfaceForId( 149 Surface* surface = manager_.GetSurfaceForId(
153 SurfaceId(factory_->frame_sink_id(), local_frame_id_)); 150 SurfaceId(factory_->frame_sink_id(), local_frame_id_));
154 factory_->RefResources( 151 factory_->RefResources(surface->GetEligibleFrame().resource_list);
155 surface->GetEligibleFrame().delegated_frame_data->resource_list);
156 } 152 }
157 153
158 protected: 154 protected:
159 SurfaceManager manager_; 155 SurfaceManager manager_;
160 TestSurfaceFactoryClient client_; 156 TestSurfaceFactoryClient client_;
161 std::unique_ptr<SurfaceFactory> factory_; 157 std::unique_ptr<SurfaceFactory> factory_;
162 LocalFrameId local_frame_id_; 158 LocalFrameId local_frame_id_;
163 SurfaceId last_created_surface_id_; 159 SurfaceId last_created_surface_id_;
164 160
165 // This is the sync token submitted with the frame. It should never be 161 // This is the sync token submitted with the frame. It should never be
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 } 434 }
439 } 435 }
440 436
441 TEST_F(SurfaceFactoryTest, BlankNoIndexIncrement) { 437 TEST_F(SurfaceFactoryTest, BlankNoIndexIncrement) {
442 LocalFrameId local_frame_id(6, kArbitraryToken); 438 LocalFrameId local_frame_id(6, kArbitraryToken);
443 SurfaceId surface_id(kArbitraryFrameSinkId, local_frame_id); 439 SurfaceId surface_id(kArbitraryFrameSinkId, local_frame_id);
444 factory_->Create(local_frame_id); 440 factory_->Create(local_frame_id);
445 Surface* surface = manager_.GetSurfaceForId(surface_id); 441 Surface* surface = manager_.GetSurfaceForId(surface_id);
446 ASSERT_NE(nullptr, surface); 442 ASSERT_NE(nullptr, surface);
447 EXPECT_EQ(2, surface->frame_index()); 443 EXPECT_EQ(2, surface->frame_index());
448 CompositorFrame frame;
449 frame.delegated_frame_data.reset(new DelegatedFrameData);
450 444
451 factory_->SubmitCompositorFrame(local_frame_id, std::move(frame), 445 factory_->SubmitCompositorFrame(local_frame_id, CompositorFrame(),
452 SurfaceFactory::DrawCallback()); 446 SurfaceFactory::DrawCallback());
453 EXPECT_EQ(2, surface->frame_index()); 447 EXPECT_EQ(2, surface->frame_index());
454 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id); 448 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id);
455 factory_->Destroy(local_frame_id); 449 factory_->Destroy(local_frame_id);
456 } 450 }
457 451
458 void CreateSurfaceDrawCallback(SurfaceFactory* factory, 452 void CreateSurfaceDrawCallback(SurfaceFactory* factory,
459 uint32_t* execute_count) { 453 uint32_t* execute_count) {
460 LocalFrameId new_id(7, base::UnguessableToken::Create()); 454 LocalFrameId new_id(7, base::UnguessableToken::Create());
461 factory->Create(new_id); 455 factory->Create(new_id);
462 factory->Destroy(new_id); 456 factory->Destroy(new_id);
463 *execute_count += 1; 457 *execute_count += 1;
464 } 458 }
465 459
466 TEST_F(SurfaceFactoryTest, AddDuringDestroy) { 460 TEST_F(SurfaceFactoryTest, AddDuringDestroy) {
467 LocalFrameId local_frame_id(6, kArbitraryToken); 461 LocalFrameId local_frame_id(6, kArbitraryToken);
468 factory_->Create(local_frame_id); 462 factory_->Create(local_frame_id);
469 CompositorFrame frame;
470 frame.delegated_frame_data.reset(new DelegatedFrameData);
471 463
472 uint32_t execute_count = 0; 464 uint32_t execute_count = 0;
473 factory_->SubmitCompositorFrame( 465 factory_->SubmitCompositorFrame(
474 local_frame_id, std::move(frame), 466 local_frame_id, CompositorFrame(),
475 base::Bind(&CreateSurfaceDrawCallback, base::Unretained(factory_.get()), 467 base::Bind(&CreateSurfaceDrawCallback, base::Unretained(factory_.get()),
476 &execute_count)); 468 &execute_count));
477 EXPECT_EQ(0u, execute_count); 469 EXPECT_EQ(0u, execute_count);
478 factory_->Destroy(local_frame_id); 470 factory_->Destroy(local_frame_id);
479 EXPECT_EQ(1u, execute_count); 471 EXPECT_EQ(1u, execute_count);
480 } 472 }
481 473
482 void DrawCallback(uint32_t* execute_count) { 474 void DrawCallback(uint32_t* execute_count) {
483 *execute_count += 1; 475 *execute_count += 1;
484 } 476 }
485 477
486 // Tests doing a DestroyAll before shutting down the factory; 478 // Tests doing a DestroyAll before shutting down the factory;
487 TEST_F(SurfaceFactoryTest, DestroyAll) { 479 TEST_F(SurfaceFactoryTest, DestroyAll) {
488 LocalFrameId id(7, kArbitraryToken); 480 LocalFrameId id(7, kArbitraryToken);
489 factory_->Create(id); 481 factory_->Create(id);
490 482
491 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
492 TransferableResource resource; 483 TransferableResource resource;
493 resource.id = 1; 484 resource.id = 1;
494 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; 485 resource.mailbox_holder.texture_target = GL_TEXTURE_2D;
495 frame_data->resource_list.push_back(resource);
496 CompositorFrame frame; 486 CompositorFrame frame;
497 frame.delegated_frame_data = std::move(frame_data); 487 frame.resource_list.push_back(resource);
498 uint32_t execute_count = 0; 488 uint32_t execute_count = 0;
499 factory_->SubmitCompositorFrame(id, std::move(frame), 489 factory_->SubmitCompositorFrame(id, std::move(frame),
500 base::Bind(&DrawCallback, &execute_count)); 490 base::Bind(&DrawCallback, &execute_count));
501 EXPECT_EQ(last_created_surface_id().local_frame_id(), id); 491 EXPECT_EQ(last_created_surface_id().local_frame_id(), id);
502 local_frame_id_ = LocalFrameId(); 492 local_frame_id_ = LocalFrameId();
503 factory_->DestroyAll(); 493 factory_->DestroyAll();
504 EXPECT_EQ(1u, execute_count); 494 EXPECT_EQ(1u, execute_count);
505 } 495 }
506 496
507 // Tests that SurfaceFactory doesn't return resources after Reset(). 497 // Tests that SurfaceFactory doesn't return resources after Reset().
508 TEST_F(SurfaceFactoryTest, Reset) { 498 TEST_F(SurfaceFactoryTest, Reset) {
509 LocalFrameId id(7, kArbitraryToken); 499 LocalFrameId id(7, kArbitraryToken);
510 factory_->Create(id); 500 factory_->Create(id);
511 501
512 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
513 TransferableResource resource; 502 TransferableResource resource;
514 resource.id = 1; 503 resource.id = 1;
515 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; 504 resource.mailbox_holder.texture_target = GL_TEXTURE_2D;
516 frame_data->resource_list.push_back(resource);
517 CompositorFrame frame; 505 CompositorFrame frame;
518 frame.delegated_frame_data = std::move(frame_data); 506 frame.resource_list.push_back(resource);
519 uint32_t execute_count = 0; 507 uint32_t execute_count = 0;
520 factory_->SubmitCompositorFrame(id, std::move(frame), 508 factory_->SubmitCompositorFrame(id, std::move(frame),
521 base::Bind(&DrawCallback, &execute_count)); 509 base::Bind(&DrawCallback, &execute_count));
522 EXPECT_EQ(last_created_surface_id().local_frame_id(), id); 510 EXPECT_EQ(last_created_surface_id().local_frame_id(), id);
523 511
524 SurfaceId surface_id(kArbitraryFrameSinkId, id); 512 SurfaceId surface_id(kArbitraryFrameSinkId, id);
525 manager_.AddSurfaceReference(manager_.GetRootSurfaceId(), surface_id); 513 manager_.AddSurfaceReference(manager_.GetRootSurfaceId(), surface_id);
526 factory_->Reset(); 514 factory_->Reset();
527 EXPECT_TRUE(client_.returned_resources().empty()); 515 EXPECT_TRUE(client_.returned_resources().empty());
528 manager_.RemoveSurfaceReference(manager_.GetRootSurfaceId(), surface_id); 516 manager_.RemoveSurfaceReference(manager_.GetRootSurfaceId(), surface_id);
529 EXPECT_TRUE(client_.returned_resources().empty()); 517 EXPECT_TRUE(client_.returned_resources().empty());
530 local_frame_id_ = LocalFrameId(); 518 local_frame_id_ = LocalFrameId();
531 } 519 }
532 520
533 TEST_F(SurfaceFactoryTest, DestroySequence) { 521 TEST_F(SurfaceFactoryTest, DestroySequence) {
534 LocalFrameId local_frame_id2(5, kArbitraryToken); 522 LocalFrameId local_frame_id2(5, kArbitraryToken);
535 SurfaceId id2(kArbitraryFrameSinkId, local_frame_id2); 523 SurfaceId id2(kArbitraryFrameSinkId, local_frame_id2);
536 factory_->Create(local_frame_id2); 524 factory_->Create(local_frame_id2);
537 525
538 manager_.RegisterFrameSinkId(kArbitraryFrameSinkId); 526 manager_.RegisterFrameSinkId(kArbitraryFrameSinkId);
539 527
540 // Check that waiting before the sequence is satisfied works. 528 // Check that waiting before the sequence is satisfied works.
541 manager_.GetSurfaceForId(id2)->AddDestructionDependency( 529 manager_.GetSurfaceForId(id2)->AddDestructionDependency(
542 SurfaceSequence(kArbitraryFrameSinkId, 4)); 530 SurfaceSequence(kArbitraryFrameSinkId, 4));
543 factory_->Destroy(local_frame_id2); 531 factory_->Destroy(local_frame_id2);
544 532
545 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
546 CompositorFrame frame; 533 CompositorFrame frame;
547 frame.metadata.satisfies_sequences.push_back(6); 534 frame.metadata.satisfies_sequences.push_back(6);
548 frame.metadata.satisfies_sequences.push_back(4); 535 frame.metadata.satisfies_sequences.push_back(4);
549 frame.delegated_frame_data = std::move(frame_data);
550 DCHECK(manager_.GetSurfaceForId(id2)); 536 DCHECK(manager_.GetSurfaceForId(id2));
551 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame), 537 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
552 SurfaceFactory::DrawCallback()); 538 SurfaceFactory::DrawCallback());
553 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_); 539 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_);
554 DCHECK(!manager_.GetSurfaceForId(id2)); 540 DCHECK(!manager_.GetSurfaceForId(id2));
555 541
556 // Check that waiting after the sequence is satisfied works. 542 // Check that waiting after the sequence is satisfied works.
557 factory_->Create(local_frame_id2); 543 factory_->Create(local_frame_id2);
558 DCHECK(manager_.GetSurfaceForId(id2)); 544 DCHECK(manager_.GetSurfaceForId(id2));
559 manager_.GetSurfaceForId(id2)->AddDestructionDependency( 545 manager_.GetSurfaceForId(id2)->AddDestructionDependency(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 factory_->Create(local_frame_id2); 578 factory_->Create(local_frame_id2);
593 579
594 manager_.RegisterFrameSinkId(kAnotherArbitraryFrameSinkId); 580 manager_.RegisterFrameSinkId(kAnotherArbitraryFrameSinkId);
595 581
596 manager_.GetSurfaceForId(id2)->AddDestructionDependency( 582 manager_.GetSurfaceForId(id2)->AddDestructionDependency(
597 SurfaceSequence(kAnotherArbitraryFrameSinkId, 4)); 583 SurfaceSequence(kAnotherArbitraryFrameSinkId, 4));
598 584
599 // Give id2 a frame that references local_frame_id_. 585 // Give id2 a frame that references local_frame_id_.
600 { 586 {
601 std::unique_ptr<RenderPass> render_pass(RenderPass::Create()); 587 std::unique_ptr<RenderPass> render_pass(RenderPass::Create());
602 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
603 frame_data->render_pass_list.push_back(std::move(render_pass));
604 CompositorFrame frame; 588 CompositorFrame frame;
589 frame.render_pass_list.push_back(std::move(render_pass));
605 frame.metadata.referenced_surfaces.push_back( 590 frame.metadata.referenced_surfaces.push_back(
606 SurfaceId(factory_->frame_sink_id(), local_frame_id_)); 591 SurfaceId(factory_->frame_sink_id(), local_frame_id_));
607 frame.delegated_frame_data = std::move(frame_data);
608 factory_->SubmitCompositorFrame(local_frame_id2, std::move(frame), 592 factory_->SubmitCompositorFrame(local_frame_id2, std::move(frame),
609 SurfaceFactory::DrawCallback()); 593 SurfaceFactory::DrawCallback());
610 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id2); 594 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id2);
611 } 595 }
612 factory_->Destroy(local_frame_id2); 596 factory_->Destroy(local_frame_id2);
613 597
614 // Give local_frame_id_ a frame that references id2. 598 // Give local_frame_id_ a frame that references id2.
615 { 599 {
616 std::unique_ptr<RenderPass> render_pass(RenderPass::Create()); 600 std::unique_ptr<RenderPass> render_pass(RenderPass::Create());
617 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
618 frame_data->render_pass_list.push_back(std::move(render_pass));
619 CompositorFrame frame; 601 CompositorFrame frame;
602 frame.render_pass_list.push_back(std::move(render_pass));
620 frame.metadata.referenced_surfaces.push_back(id2); 603 frame.metadata.referenced_surfaces.push_back(id2);
621 frame.delegated_frame_data = std::move(frame_data);
622 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame), 604 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
623 SurfaceFactory::DrawCallback()); 605 SurfaceFactory::DrawCallback());
624 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_); 606 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_);
625 } 607 }
626 factory_->Destroy(local_frame_id_); 608 factory_->Destroy(local_frame_id_);
627 EXPECT_TRUE(manager_.GetSurfaceForId(id2)); 609 EXPECT_TRUE(manager_.GetSurfaceForId(id2));
628 // local_frame_id_ should be retained by reference from id2. 610 // local_frame_id_ should be retained by reference from id2.
629 EXPECT_TRUE(manager_.GetSurfaceForId( 611 EXPECT_TRUE(manager_.GetSurfaceForId(
630 SurfaceId(factory_->frame_sink_id(), local_frame_id_))); 612 SurfaceId(factory_->frame_sink_id(), local_frame_id_)));
631 613
(...skipping 12 matching lines...) Expand all
644 } 626 }
645 627
646 void CopyRequestTestCallback(bool* called, 628 void CopyRequestTestCallback(bool* called,
647 std::unique_ptr<CopyOutputResult> result) { 629 std::unique_ptr<CopyOutputResult> result) {
648 *called = true; 630 *called = true;
649 } 631 }
650 632
651 TEST_F(SurfaceFactoryTest, DuplicateCopyRequest) { 633 TEST_F(SurfaceFactoryTest, DuplicateCopyRequest) {
652 { 634 {
653 std::unique_ptr<RenderPass> render_pass(RenderPass::Create()); 635 std::unique_ptr<RenderPass> render_pass(RenderPass::Create());
654 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
655 frame_data->render_pass_list.push_back(std::move(render_pass));
656 CompositorFrame frame; 636 CompositorFrame frame;
637 frame.render_pass_list.push_back(std::move(render_pass));
657 frame.metadata.referenced_surfaces.push_back( 638 frame.metadata.referenced_surfaces.push_back(
658 SurfaceId(factory_->frame_sink_id(), local_frame_id_)); 639 SurfaceId(factory_->frame_sink_id(), local_frame_id_));
659 frame.delegated_frame_data = std::move(frame_data);
660 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame), 640 factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
661 SurfaceFactory::DrawCallback()); 641 SurfaceFactory::DrawCallback());
662 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_); 642 EXPECT_EQ(last_created_surface_id().local_frame_id(), local_frame_id_);
663 } 643 }
664 void* source1 = &source1; 644 void* source1 = &source1;
665 void* source2 = &source2; 645 void* source2 = &source2;
666 646
667 bool called1 = false; 647 bool called1 = false;
668 std::unique_ptr<CopyOutputRequest> request; 648 std::unique_ptr<CopyOutputRequest> request;
669 request = CopyOutputRequest::CreateRequest( 649 request = CopyOutputRequest::CreateRequest(
(...skipping 26 matching lines...) Expand all
696 676
697 factory_->Destroy(local_frame_id_); 677 factory_->Destroy(local_frame_id_);
698 local_frame_id_ = LocalFrameId(); 678 local_frame_id_ = LocalFrameId();
699 EXPECT_TRUE(called1); 679 EXPECT_TRUE(called1);
700 EXPECT_TRUE(called2); 680 EXPECT_TRUE(called2);
701 EXPECT_TRUE(called3); 681 EXPECT_TRUE(called3);
702 } 682 }
703 683
704 } // namespace 684 } // namespace
705 } // namespace cc 685 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/surface_factory.cc ('k') | cc/surfaces/surface_hittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698