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

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

Issue 2835393003: Reject frames with invalid BeginFrameAck in CompositorFrameSinkSupport (Closed)
Patch Set: Fixed header Created 3 years, 7 months 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <unordered_map> 7 #include <unordered_map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "cc/surfaces/compositor_frame_sink_support.h" 11 #include "cc/surfaces/compositor_frame_sink_support.h"
12 #include "cc/surfaces/surface.h" 12 #include "cc/surfaces/surface.h"
13 #include "cc/surfaces/surface_id.h" 13 #include "cc/surfaces/surface_id.h"
14 #include "cc/surfaces/surface_manager.h" 14 #include "cc/surfaces/surface_manager.h"
15 #include "cc/test/compositor_frame_helpers.h"
15 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 using testing::ElementsAre; 19 using testing::ElementsAre;
19 using testing::IsEmpty; 20 using testing::IsEmpty;
20 using testing::SizeIs; 21 using testing::SizeIs;
21 using testing::UnorderedElementsAre; 22 using testing::UnorderedElementsAre;
22 23
23 namespace cc { 24 namespace cc {
24
25 namespace { 25 namespace {
26 26
27 constexpr FrameSinkId kFrameSink1(1, 0); 27 constexpr FrameSinkId kFrameSink1(1, 0);
28 constexpr FrameSinkId kFrameSink2(2, 0); 28 constexpr FrameSinkId kFrameSink2(2, 0);
29 constexpr FrameSinkId kFrameSink3(3, 0); 29 constexpr FrameSinkId kFrameSink3(3, 0);
30 30
31 } // namespace 31 } // namespace
32 32
33 // Tests for reference tracking in SurfaceManager. 33 // Tests for reference tracking in SurfaceManager.
34 class SurfaceManagerRefTest : public testing::Test { 34 class SurfaceManagerRefTest : public testing::Test {
35 public: 35 public:
36 SurfaceManager& manager() { return *manager_; } 36 SurfaceManager& manager() { return *manager_; }
37 37
38 // Creates a new Surface with the provided |frame_sink_id| and |local_id|. 38 // Creates a new Surface with the provided |frame_sink_id| and |local_id|.
39 // Will first create a Surfacesupport for |frame_sink_id| if necessary. 39 // Will first create a Surfacesupport for |frame_sink_id| if necessary.
40 SurfaceId CreateSurface(const FrameSinkId& frame_sink_id, uint32_t local_id) { 40 SurfaceId CreateSurface(const FrameSinkId& frame_sink_id, uint32_t local_id) {
41 LocalSurfaceId local_surface_id(local_id, 41 LocalSurfaceId local_surface_id(local_id,
42 base::UnguessableToken::Deserialize(0, 1u)); 42 base::UnguessableToken::Deserialize(0, 1u));
43 GetCompositorFrameSinkSupport(frame_sink_id) 43 GetCompositorFrameSinkSupport(frame_sink_id)
44 .SubmitCompositorFrame(local_surface_id, CompositorFrame()); 44 .SubmitCompositorFrame(local_surface_id, test::MakeCompositorFrame());
45 return SurfaceId(frame_sink_id, local_surface_id); 45 return SurfaceId(frame_sink_id, local_surface_id);
46 } 46 }
47 47
48 // Destroy Surface with |surface_id|. 48 // Destroy Surface with |surface_id|.
49 void DestroySurface(const SurfaceId& surface_id) { 49 void DestroySurface(const SurfaceId& surface_id) {
50 GetCompositorFrameSinkSupport(surface_id.frame_sink_id()).EvictFrame(); 50 GetCompositorFrameSinkSupport(surface_id.frame_sink_id()).EvictFrame();
51 } 51 }
52 52
53 CompositorFrameSinkSupport& GetCompositorFrameSinkSupport( 53 CompositorFrameSinkSupport& GetCompositorFrameSinkSupport(
54 const FrameSinkId& frame_sink_id) { 54 const FrameSinkId& frame_sink_id) {
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 ASSERT_THAT(GetAllTempReferences(), UnorderedElementsAre(id1b)); 506 ASSERT_THAT(GetAllTempReferences(), UnorderedElementsAre(id1b));
507 507
508 // If the parent has crashed then the window server will have already removed 508 // If the parent has crashed then the window server will have already removed
509 // it from the ServerWindow hierarchy and won't have an owner for |id2b|. The 509 // it from the ServerWindow hierarchy and won't have an owner for |id2b|. The
510 // window server will ask to drop the reference instead. 510 // window server will ask to drop the reference instead.
511 manager().DropTemporaryReference(id1b); 511 manager().DropTemporaryReference(id1b);
512 ASSERT_THAT(GetAllTempReferences(), IsEmpty()); 512 ASSERT_THAT(GetAllTempReferences(), IsEmpty());
513 } 513 }
514 514
515 } // namespace cc 515 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698