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

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

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