OLD | NEW |
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 "media/remoting/renderer_controller.h" | 5 #include "media/remoting/renderer_controller.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 PipelineMetadata EncryptedMetadata() { | 38 PipelineMetadata EncryptedMetadata() { |
39 PipelineMetadata data; | 39 PipelineMetadata data; |
40 data.has_audio = true; | 40 data.has_audio = true; |
41 data.has_video = true; | 41 data.has_video = true; |
42 data.video_decoder_config = TestVideoConfig::NormalEncrypted(); | 42 data.video_decoder_config = TestVideoConfig::NormalEncrypted(); |
43 return data; | 43 return data; |
44 } | 44 } |
45 | 45 |
46 } // namespace | 46 } // namespace |
47 | 47 |
48 class RendererControllerTest : public ::testing::Test { | 48 class RendererControllerTest : public ::testing::Test, |
| 49 public MediaObserverClient { |
49 public: | 50 public: |
50 RendererControllerTest() {} | 51 RendererControllerTest() {} |
51 ~RendererControllerTest() override {} | 52 ~RendererControllerTest() override {} |
52 | 53 |
53 void TearDown() final { RunUntilIdle(); } | 54 void TearDown() final { RunUntilIdle(); } |
54 | 55 |
55 static void RunUntilIdle() { base::RunLoop().RunUntilIdle(); } | 56 static void RunUntilIdle() { base::RunLoop().RunUntilIdle(); } |
56 | 57 |
57 void ToggleRenderer() { | 58 // MediaObserverClient implementation. |
| 59 void SwitchRenderer(bool disable_pipeline_auto_suspend) override { |
58 is_rendering_remotely_ = controller_->remote_rendering_started(); | 60 is_rendering_remotely_ = controller_->remote_rendering_started(); |
| 61 disable_pipeline_suspend_ = disable_pipeline_auto_suspend; |
| 62 } |
| 63 |
| 64 void ActivateViewportIntersectionMonitoring(bool activate) override { |
| 65 activate_viewport_intersection_monitoring_ = activate; |
59 } | 66 } |
60 | 67 |
61 void CreateCdm(bool is_remoting) { is_remoting_cdm_ = is_remoting; } | 68 void CreateCdm(bool is_remoting) { is_remoting_cdm_ = is_remoting; } |
62 | 69 |
63 base::MessageLoop message_loop_; | 70 base::MessageLoop message_loop_; |
64 | 71 |
65 protected: | 72 protected: |
66 std::unique_ptr<RendererController> controller_; | 73 std::unique_ptr<RendererController> controller_; |
67 bool is_rendering_remotely_ = false; | 74 bool is_rendering_remotely_ = false; |
68 bool is_remoting_cdm_ = false; | 75 bool is_remoting_cdm_ = false; |
| 76 bool activate_viewport_intersection_monitoring_ = false; |
| 77 bool disable_pipeline_suspend_ = false; |
69 | 78 |
70 private: | 79 private: |
71 DISALLOW_COPY_AND_ASSIGN(RendererControllerTest); | 80 DISALLOW_COPY_AND_ASSIGN(RendererControllerTest); |
72 }; | 81 }; |
73 | 82 |
74 TEST_F(RendererControllerTest, ToggleRendererOnFullscreenChange) { | 83 TEST_F(RendererControllerTest, ToggleRendererOnFullscreenChange) { |
75 EXPECT_FALSE(is_rendering_remotely_); | 84 EXPECT_FALSE(is_rendering_remotely_); |
76 const scoped_refptr<SharedSession> shared_session = | 85 const scoped_refptr<SharedSession> shared_session = |
77 FakeRemoterFactory::CreateSharedSession(false); | 86 FakeRemoterFactory::CreateSharedSession(false); |
78 controller_ = base::MakeUnique<RendererController>(shared_session); | 87 controller_ = base::MakeUnique<RendererController>(shared_session); |
79 controller_->SetSwitchRendererCallback(base::Bind( | 88 controller_->SetClient(this); |
80 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
81 RunUntilIdle(); | 89 RunUntilIdle(); |
82 EXPECT_FALSE(is_rendering_remotely_); | 90 EXPECT_FALSE(is_rendering_remotely_); |
| 91 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 92 EXPECT_FALSE(disable_pipeline_suspend_); |
83 shared_session->OnSinkAvailable(kAllCapabilities); | 93 shared_session->OnSinkAvailable(kAllCapabilities); |
84 RunUntilIdle(); | 94 RunUntilIdle(); |
85 EXPECT_FALSE(is_rendering_remotely_); | 95 EXPECT_FALSE(is_rendering_remotely_); |
| 96 EXPECT_TRUE(activate_viewport_intersection_monitoring_); |
| 97 EXPECT_FALSE(disable_pipeline_suspend_); |
86 controller_->OnEnteredFullscreen(); | 98 controller_->OnEnteredFullscreen(); |
87 RunUntilIdle(); | 99 RunUntilIdle(); |
88 EXPECT_FALSE(is_rendering_remotely_); | 100 EXPECT_FALSE(is_rendering_remotely_); |
89 controller_->OnMetadataChanged(DefaultMetadata()); | 101 controller_->OnMetadataChanged(DefaultMetadata()); |
90 RunUntilIdle(); | 102 RunUntilIdle(); |
91 EXPECT_FALSE(is_rendering_remotely_); | 103 EXPECT_FALSE(is_rendering_remotely_); |
92 controller_->OnRemotePlaybackDisabled(false); | 104 controller_->OnRemotePlaybackDisabled(false); |
93 RunUntilIdle(); | 105 RunUntilIdle(); |
94 EXPECT_FALSE(is_rendering_remotely_); | 106 EXPECT_FALSE(is_rendering_remotely_); |
95 controller_->OnPlaying(); | 107 controller_->OnPlaying(); |
96 RunUntilIdle(); | 108 RunUntilIdle(); |
97 EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. | 109 EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. |
| 110 EXPECT_TRUE(disable_pipeline_suspend_); |
98 | 111 |
99 // Leaving fullscreen should shut down remoting. | 112 // Leaving fullscreen should shut down remoting. |
100 controller_->OnExitedFullscreen(); | 113 controller_->OnExitedFullscreen(); |
101 RunUntilIdle(); | 114 RunUntilIdle(); |
102 EXPECT_FALSE(is_rendering_remotely_); | 115 EXPECT_FALSE(is_rendering_remotely_); |
| 116 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 117 EXPECT_FALSE(disable_pipeline_suspend_); |
103 } | 118 } |
104 | 119 |
105 TEST_F(RendererControllerTest, ToggleRendererOnSinkCapabilities) { | 120 TEST_F(RendererControllerTest, ToggleRendererOnSinkCapabilities) { |
106 EXPECT_FALSE(is_rendering_remotely_); | 121 EXPECT_FALSE(is_rendering_remotely_); |
107 const scoped_refptr<SharedSession> shared_session = | 122 const scoped_refptr<SharedSession> shared_session = |
108 FakeRemoterFactory::CreateSharedSession(false); | 123 FakeRemoterFactory::CreateSharedSession(false); |
109 controller_ = base::MakeUnique<RendererController>(shared_session); | 124 controller_ = base::MakeUnique<RendererController>(shared_session); |
110 controller_->SetSwitchRendererCallback(base::Bind( | 125 controller_->SetClient(this); |
111 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
112 RunUntilIdle(); | 126 RunUntilIdle(); |
113 EXPECT_FALSE(is_rendering_remotely_); | 127 EXPECT_FALSE(is_rendering_remotely_); |
114 controller_->OnMetadataChanged(DefaultMetadata()); | 128 controller_->OnMetadataChanged(DefaultMetadata()); |
115 RunUntilIdle(); | 129 RunUntilIdle(); |
116 EXPECT_FALSE(is_rendering_remotely_); | 130 EXPECT_FALSE(is_rendering_remotely_); |
117 controller_->OnRemotePlaybackDisabled(false); | 131 controller_->OnRemotePlaybackDisabled(false); |
118 RunUntilIdle(); | 132 RunUntilIdle(); |
119 EXPECT_FALSE(is_rendering_remotely_); | 133 EXPECT_FALSE(is_rendering_remotely_); |
120 controller_->OnPlaying(); | 134 controller_->OnPlaying(); |
121 RunUntilIdle(); | 135 RunUntilIdle(); |
122 EXPECT_FALSE(is_rendering_remotely_); | 136 EXPECT_FALSE(is_rendering_remotely_); |
123 controller_->OnEnteredFullscreen(); | 137 controller_->OnEnteredFullscreen(); |
124 RunUntilIdle(); | 138 RunUntilIdle(); |
125 EXPECT_FALSE(is_rendering_remotely_); | 139 EXPECT_FALSE(is_rendering_remotely_); |
| 140 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 141 EXPECT_FALSE(disable_pipeline_suspend_); |
126 // An available sink that does not support remote rendering should not cause | 142 // An available sink that does not support remote rendering should not cause |
127 // the controller to toggle remote rendering on. | 143 // the controller to toggle remote rendering on. |
128 shared_session->OnSinkAvailable(mojom::RemotingSinkCapabilities::NONE); | 144 shared_session->OnSinkAvailable(mojom::RemotingSinkCapabilities::NONE); |
129 RunUntilIdle(); | 145 RunUntilIdle(); |
130 EXPECT_FALSE(is_rendering_remotely_); | 146 EXPECT_FALSE(is_rendering_remotely_); |
131 shared_session->OnSinkGone(); // Bye-bye useless sink! | 147 shared_session->OnSinkGone(); // Bye-bye useless sink! |
132 RunUntilIdle(); | 148 RunUntilIdle(); |
133 EXPECT_FALSE(is_rendering_remotely_); | 149 EXPECT_FALSE(is_rendering_remotely_); |
| 150 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 151 EXPECT_FALSE(disable_pipeline_suspend_); |
134 // A sink that *does* support remote rendering *does* cause the controller to | 152 // A sink that *does* support remote rendering *does* cause the controller to |
135 // toggle remote rendering on. | 153 // toggle remote rendering on. |
136 shared_session->OnSinkAvailable(kAllCapabilities); | 154 shared_session->OnSinkAvailable(kAllCapabilities); |
137 RunUntilIdle(); | 155 RunUntilIdle(); |
138 EXPECT_TRUE(is_rendering_remotely_); | 156 EXPECT_TRUE(is_rendering_remotely_); |
| 157 EXPECT_TRUE(activate_viewport_intersection_monitoring_); |
| 158 EXPECT_TRUE(disable_pipeline_suspend_); |
139 controller_->OnExitedFullscreen(); | 159 controller_->OnExitedFullscreen(); |
140 RunUntilIdle(); | 160 RunUntilIdle(); |
141 EXPECT_FALSE(is_rendering_remotely_); | 161 EXPECT_FALSE(is_rendering_remotely_); |
| 162 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 163 EXPECT_FALSE(disable_pipeline_suspend_); |
142 } | 164 } |
143 | 165 |
144 TEST_F(RendererControllerTest, ToggleRendererOnDisableChange) { | 166 TEST_F(RendererControllerTest, ToggleRendererOnDisableChange) { |
145 EXPECT_FALSE(is_rendering_remotely_); | 167 EXPECT_FALSE(is_rendering_remotely_); |
146 const scoped_refptr<SharedSession> shared_session = | 168 const scoped_refptr<SharedSession> shared_session = |
147 FakeRemoterFactory::CreateSharedSession(false); | 169 FakeRemoterFactory::CreateSharedSession(false); |
148 controller_ = base::MakeUnique<RendererController>(shared_session); | 170 controller_ = base::MakeUnique<RendererController>(shared_session); |
149 controller_->SetSwitchRendererCallback(base::Bind( | 171 controller_->SetClient(this); |
150 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
151 RunUntilIdle(); | 172 RunUntilIdle(); |
152 EXPECT_FALSE(is_rendering_remotely_); | 173 EXPECT_FALSE(is_rendering_remotely_); |
153 controller_->OnRemotePlaybackDisabled(true); | 174 controller_->OnRemotePlaybackDisabled(true); |
154 RunUntilIdle(); | 175 RunUntilIdle(); |
155 EXPECT_FALSE(is_rendering_remotely_); | 176 EXPECT_FALSE(is_rendering_remotely_); |
156 shared_session->OnSinkAvailable(kAllCapabilities); | 177 shared_session->OnSinkAvailable(kAllCapabilities); |
157 RunUntilIdle(); | 178 RunUntilIdle(); |
158 EXPECT_FALSE(is_rendering_remotely_); | 179 EXPECT_FALSE(is_rendering_remotely_); |
| 180 EXPECT_TRUE(activate_viewport_intersection_monitoring_); |
| 181 EXPECT_FALSE(disable_pipeline_suspend_); |
159 controller_->OnMetadataChanged(DefaultMetadata()); | 182 controller_->OnMetadataChanged(DefaultMetadata()); |
160 RunUntilIdle(); | 183 RunUntilIdle(); |
161 EXPECT_FALSE(is_rendering_remotely_); | 184 EXPECT_FALSE(is_rendering_remotely_); |
162 controller_->OnEnteredFullscreen(); | 185 controller_->OnEnteredFullscreen(); |
163 RunUntilIdle(); | 186 RunUntilIdle(); |
164 EXPECT_FALSE(is_rendering_remotely_); | 187 EXPECT_FALSE(is_rendering_remotely_); |
165 controller_->OnRemotePlaybackDisabled(false); | 188 controller_->OnRemotePlaybackDisabled(false); |
166 RunUntilIdle(); | 189 RunUntilIdle(); |
167 EXPECT_FALSE(is_rendering_remotely_); | 190 EXPECT_FALSE(is_rendering_remotely_); |
168 controller_->OnPlaying(); | 191 controller_->OnPlaying(); |
169 RunUntilIdle(); | 192 RunUntilIdle(); |
170 EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. | 193 EXPECT_TRUE(is_rendering_remotely_); // All requirements now satisfied. |
| 194 EXPECT_TRUE(activate_viewport_intersection_monitoring_); |
| 195 EXPECT_TRUE(disable_pipeline_suspend_); |
171 | 196 |
172 // If the page disables remote playback (e.g., by setting the | 197 // If the page disables remote playback (e.g., by setting the |
173 // disableRemotePlayback attribute), this should shut down remoting. | 198 // disableRemotePlayback attribute), this should shut down remoting. |
174 controller_->OnRemotePlaybackDisabled(true); | 199 controller_->OnRemotePlaybackDisabled(true); |
175 RunUntilIdle(); | 200 RunUntilIdle(); |
176 EXPECT_FALSE(is_rendering_remotely_); | 201 EXPECT_FALSE(is_rendering_remotely_); |
| 202 EXPECT_FALSE(activate_viewport_intersection_monitoring_); |
| 203 EXPECT_FALSE(disable_pipeline_suspend_); |
177 } | 204 } |
178 | 205 |
179 TEST_F(RendererControllerTest, StartFailed) { | 206 TEST_F(RendererControllerTest, StartFailed) { |
180 EXPECT_FALSE(is_rendering_remotely_); | 207 EXPECT_FALSE(is_rendering_remotely_); |
181 const scoped_refptr<SharedSession> shared_session = | 208 const scoped_refptr<SharedSession> shared_session = |
182 FakeRemoterFactory::CreateSharedSession(true); | 209 FakeRemoterFactory::CreateSharedSession(true); |
183 controller_ = base::MakeUnique<RendererController>(shared_session); | 210 controller_ = base::MakeUnique<RendererController>(shared_session); |
184 controller_->SetSwitchRendererCallback(base::Bind( | 211 controller_->SetClient(this); |
185 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
186 RunUntilIdle(); | 212 RunUntilIdle(); |
187 EXPECT_FALSE(is_rendering_remotely_); | 213 EXPECT_FALSE(is_rendering_remotely_); |
188 shared_session->OnSinkAvailable(kAllCapabilities); | 214 shared_session->OnSinkAvailable(kAllCapabilities); |
189 RunUntilIdle(); | 215 RunUntilIdle(); |
190 EXPECT_FALSE(is_rendering_remotely_); | 216 EXPECT_FALSE(is_rendering_remotely_); |
| 217 EXPECT_TRUE(activate_viewport_intersection_monitoring_); |
| 218 EXPECT_FALSE(disable_pipeline_suspend_); |
191 controller_->OnEnteredFullscreen(); | 219 controller_->OnEnteredFullscreen(); |
192 RunUntilIdle(); | 220 RunUntilIdle(); |
193 EXPECT_FALSE(is_rendering_remotely_); | 221 EXPECT_FALSE(is_rendering_remotely_); |
194 controller_->OnMetadataChanged(DefaultMetadata()); | 222 controller_->OnMetadataChanged(DefaultMetadata()); |
195 RunUntilIdle(); | 223 RunUntilIdle(); |
196 EXPECT_FALSE(is_rendering_remotely_); | 224 EXPECT_FALSE(is_rendering_remotely_); |
197 controller_->OnRemotePlaybackDisabled(false); | 225 controller_->OnRemotePlaybackDisabled(false); |
198 RunUntilIdle(); | 226 RunUntilIdle(); |
199 EXPECT_FALSE(is_rendering_remotely_); | 227 EXPECT_FALSE(is_rendering_remotely_); |
200 controller_->OnPlaying(); | 228 controller_->OnPlaying(); |
201 RunUntilIdle(); | 229 RunUntilIdle(); |
202 EXPECT_FALSE(is_rendering_remotely_); | 230 EXPECT_FALSE(is_rendering_remotely_); |
| 231 EXPECT_FALSE(disable_pipeline_suspend_); |
203 } | 232 } |
204 | 233 |
205 TEST_F(RendererControllerTest, EncryptedWithRemotingCdm) { | 234 TEST_F(RendererControllerTest, EncryptedWithRemotingCdm) { |
206 EXPECT_FALSE(is_rendering_remotely_); | 235 EXPECT_FALSE(is_rendering_remotely_); |
207 controller_ = base::MakeUnique<RendererController>( | 236 controller_ = base::MakeUnique<RendererController>( |
208 FakeRemoterFactory::CreateSharedSession(false)); | 237 FakeRemoterFactory::CreateSharedSession(false)); |
209 controller_->SetSwitchRendererCallback(base::Bind( | 238 controller_->SetClient(this); |
210 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
211 RunUntilIdle(); | 239 RunUntilIdle(); |
212 EXPECT_FALSE(is_rendering_remotely_); | 240 EXPECT_FALSE(is_rendering_remotely_); |
213 controller_->OnMetadataChanged(EncryptedMetadata()); | 241 controller_->OnMetadataChanged(EncryptedMetadata()); |
214 controller_->OnRemotePlaybackDisabled(false); | 242 controller_->OnRemotePlaybackDisabled(false); |
215 controller_->OnPlaying(); | 243 controller_->OnPlaying(); |
216 RunUntilIdle(); | 244 RunUntilIdle(); |
217 EXPECT_FALSE(is_rendering_remotely_); | 245 EXPECT_FALSE(is_rendering_remotely_); |
218 const scoped_refptr<SharedSession> cdm_shared_session = | 246 const scoped_refptr<SharedSession> cdm_shared_session = |
219 FakeRemoterFactory::CreateSharedSession(false); | 247 FakeRemoterFactory::CreateSharedSession(false); |
220 std::unique_ptr<RemotingCdmController> cdm_controller = | 248 std::unique_ptr<RemotingCdmController> cdm_controller = |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 // Don't switch renderer in this case. Still using the remoting renderer to | 282 // Don't switch renderer in this case. Still using the remoting renderer to |
255 // show the failure interstitial. | 283 // show the failure interstitial. |
256 EXPECT_TRUE(is_rendering_remotely_); | 284 EXPECT_TRUE(is_rendering_remotely_); |
257 } | 285 } |
258 | 286 |
259 TEST_F(RendererControllerTest, EncryptedWithLocalCdm) { | 287 TEST_F(RendererControllerTest, EncryptedWithLocalCdm) { |
260 EXPECT_FALSE(is_rendering_remotely_); | 288 EXPECT_FALSE(is_rendering_remotely_); |
261 const scoped_refptr<SharedSession> initial_shared_session = | 289 const scoped_refptr<SharedSession> initial_shared_session = |
262 FakeRemoterFactory::CreateSharedSession(false); | 290 FakeRemoterFactory::CreateSharedSession(false); |
263 controller_ = base::MakeUnique<RendererController>(initial_shared_session); | 291 controller_ = base::MakeUnique<RendererController>(initial_shared_session); |
264 controller_->SetSwitchRendererCallback(base::Bind( | 292 controller_->SetClient(this); |
265 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
266 RunUntilIdle(); | 293 RunUntilIdle(); |
267 EXPECT_FALSE(is_rendering_remotely_); | 294 EXPECT_FALSE(is_rendering_remotely_); |
268 initial_shared_session->OnSinkAvailable(kAllCapabilities); | 295 initial_shared_session->OnSinkAvailable(kAllCapabilities); |
269 RunUntilIdle(); | 296 RunUntilIdle(); |
270 EXPECT_FALSE(is_rendering_remotely_); | 297 EXPECT_FALSE(is_rendering_remotely_); |
271 controller_->OnEnteredFullscreen(); | 298 controller_->OnEnteredFullscreen(); |
272 RunUntilIdle(); | 299 RunUntilIdle(); |
273 EXPECT_FALSE(is_rendering_remotely_); | 300 EXPECT_FALSE(is_rendering_remotely_); |
274 controller_->OnMetadataChanged(EncryptedMetadata()); | 301 controller_->OnMetadataChanged(EncryptedMetadata()); |
275 RunUntilIdle(); | 302 RunUntilIdle(); |
(...skipping 14 matching lines...) Expand all Loading... |
290 base::Bind(&RendererControllerTest::CreateCdm, base::Unretained(this))); | 317 base::Bind(&RendererControllerTest::CreateCdm, base::Unretained(this))); |
291 RunUntilIdle(); | 318 RunUntilIdle(); |
292 EXPECT_FALSE(is_rendering_remotely_); | 319 EXPECT_FALSE(is_rendering_remotely_); |
293 EXPECT_FALSE(is_remoting_cdm_); | 320 EXPECT_FALSE(is_remoting_cdm_); |
294 } | 321 } |
295 | 322 |
296 TEST_F(RendererControllerTest, EncryptedWithFailedRemotingCdm) { | 323 TEST_F(RendererControllerTest, EncryptedWithFailedRemotingCdm) { |
297 EXPECT_FALSE(is_rendering_remotely_); | 324 EXPECT_FALSE(is_rendering_remotely_); |
298 controller_ = base::MakeUnique<RendererController>( | 325 controller_ = base::MakeUnique<RendererController>( |
299 FakeRemoterFactory::CreateSharedSession(false)); | 326 FakeRemoterFactory::CreateSharedSession(false)); |
300 controller_->SetSwitchRendererCallback(base::Bind( | 327 controller_->SetClient(this); |
301 &RendererControllerTest::ToggleRenderer, base::Unretained(this))); | |
302 RunUntilIdle(); | 328 RunUntilIdle(); |
303 EXPECT_FALSE(is_rendering_remotely_); | 329 EXPECT_FALSE(is_rendering_remotely_); |
304 controller_->OnEnteredFullscreen(); | 330 controller_->OnEnteredFullscreen(); |
305 RunUntilIdle(); | 331 RunUntilIdle(); |
306 EXPECT_FALSE(is_rendering_remotely_); | 332 EXPECT_FALSE(is_rendering_remotely_); |
307 controller_->OnMetadataChanged(EncryptedMetadata()); | 333 controller_->OnMetadataChanged(EncryptedMetadata()); |
308 RunUntilIdle(); | 334 RunUntilIdle(); |
309 EXPECT_FALSE(is_rendering_remotely_); | 335 EXPECT_FALSE(is_rendering_remotely_); |
310 controller_->OnRemotePlaybackDisabled(false); | 336 controller_->OnRemotePlaybackDisabled(false); |
311 RunUntilIdle(); | 337 RunUntilIdle(); |
(...skipping 29 matching lines...) Expand all Loading... |
341 RunUntilIdle(); | 367 RunUntilIdle(); |
342 // Switch to using the remoting renderer, even when the remoting CDM session | 368 // Switch to using the remoting renderer, even when the remoting CDM session |
343 // was already terminated, to show the failure interstitial. | 369 // was already terminated, to show the failure interstitial. |
344 EXPECT_TRUE(is_rendering_remotely_); | 370 EXPECT_TRUE(is_rendering_remotely_); |
345 EXPECT_EQ(SharedSession::SESSION_PERMANENTLY_STOPPED, | 371 EXPECT_EQ(SharedSession::SESSION_PERMANENTLY_STOPPED, |
346 controller_->session()->state()); | 372 controller_->session()->state()); |
347 } | 373 } |
348 | 374 |
349 } // namespace remoting | 375 } // namespace remoting |
350 } // namespace media | 376 } // namespace media |
OLD | NEW |