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

Side by Side Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 1895233003: Bug Fix: Resize Event Trigger (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unittest Created 4 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/renderer/media/webmediaplayer_ms.h" 5 #include "content/renderer/media/webmediaplayer_ms.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 489
490 if (video_frame_provider_.get()) { 490 if (video_frame_provider_.get()) {
491 video_weblayer_.reset(new cc_blink::WebLayerImpl( 491 video_weblayer_.reset(new cc_blink::WebLayerImpl(
492 cc::VideoLayer::Create(compositor_.get(), media::VIDEO_ROTATION_0))); 492 cc::VideoLayer::Create(compositor_.get(), media::VIDEO_ROTATION_0)));
493 video_weblayer_->layer()->SetContentsOpaque(false); 493 video_weblayer_->layer()->SetContentsOpaque(false);
494 video_weblayer_->SetContentsOpaqueIsFixed(true); 494 video_weblayer_->SetContentsOpaqueIsFixed(true);
495 get_client()->setWebLayer(video_weblayer_.get()); 495 get_client()->setWebLayer(video_weblayer_.get());
496 } 496 }
497 } 497 }
498 498
499 // As EnqueueFrame can potentially change |current_frame_|, we need to do
500 // the size change check before it. Otherwise, we are running the risk of not
501 // detecting a size change event.
502 const bool size_changed =
503 compositor_->GetCurrentSize() != frame->natural_size();
504
505 compositor_->EnqueueFrame(frame); 499 compositor_->EnqueueFrame(frame);
506 if (size_changed)
507 get_client()->sizeChanged();
508 } 500 }
509 501
510 void WebMediaPlayerMS::RepaintInternal() { 502 void WebMediaPlayerMS::RepaintInternal() {
511 DVLOG(1) << __FUNCTION__; 503 DVLOG(1) << __FUNCTION__;
512 DCHECK(thread_checker_.CalledOnValidThread()); 504 DCHECK(thread_checker_.CalledOnValidThread());
513 get_client()->repaint(); 505 get_client()->repaint();
514 } 506 }
515 507
516 void WebMediaPlayerMS::OnSourceError() { 508 void WebMediaPlayerMS::OnSourceError() {
517 DCHECK(thread_checker_.CalledOnValidThread()); 509 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 17 matching lines...) Expand all
535 527
536 media::SkCanvasVideoRenderer* WebMediaPlayerMS::GetSkCanvasVideoRenderer() { 528 media::SkCanvasVideoRenderer* WebMediaPlayerMS::GetSkCanvasVideoRenderer() {
537 return &video_renderer_; 529 return &video_renderer_;
538 } 530 }
539 531
540 void WebMediaPlayerMS::ResetCanvasCache() { 532 void WebMediaPlayerMS::ResetCanvasCache() {
541 DCHECK(thread_checker_.CalledOnValidThread()); 533 DCHECK(thread_checker_.CalledOnValidThread());
542 video_renderer_.ResetCache(); 534 video_renderer_.ResetCache();
543 } 535 }
544 536
537 void WebMediaPlayerMS::TriggerResize() {
538 get_client()->sizeChanged();
539 }
540
545 } // namespace content 541 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webmediaplayer_ms.h ('k') | content/renderer/media/webmediaplayer_ms_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698