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

Side by Side Diff: Source/WebCore/html/shadow/MediaControlRootElement.cpp

Issue 8496044: Repaint video controls when buffering during pause. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Pipe bufferingProgressed() method. Created 9 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 updateTimeDisplay(); 309 updateTimeDisplay();
310 310
311 if (m_mediaElement->isFullscreen()) 311 if (m_mediaElement->isFullscreen())
312 startHideFullscreenControlsTimer(); 312 startHideFullscreenControlsTimer();
313 } 313 }
314 314
315 void MediaControlRootElement::playbackProgressed() 315 void MediaControlRootElement::playbackProgressed()
316 { 316 {
317 m_timeline->setPosition(m_mediaElement->currentTime()); 317 m_timeline->setPosition(m_mediaElement->currentTime());
318 updateTimeDisplay(); 318 updateTimeDisplay();
319 319
320 if (!m_isMouseOverControls && m_mediaElement->hasVideo()) 320 if (!m_isMouseOverControls && m_mediaElement->hasVideo())
321 makeTransparent(); 321 makeTransparent();
322 } 322 }
323 323
324 void MediaControlRootElement::playbackStopped() 324 void MediaControlRootElement::playbackStopped()
325 { 325 {
326 m_playButton->updateDisplayType(); 326 m_playButton->updateDisplayType();
327 m_timeline->setPosition(m_mediaElement->currentTime()); 327 m_timeline->setPosition(m_mediaElement->currentTime());
328 updateTimeDisplay(); 328 updateTimeDisplay();
329 makeOpaque(); 329 makeOpaque();
330 330
331 stopHideFullscreenControlsTimer(); 331 stopHideFullscreenControlsTimer();
332 } 332 }
333 333
334 void MediaControlRootElement::updateTimeDisplay() 334 void MediaControlRootElement::updateTimeDisplay()
335 { 335 {
336 float now = m_mediaElement->currentTime(); 336 float now = m_mediaElement->currentTime();
337 float duration = m_mediaElement->duration(); 337 float duration = m_mediaElement->duration();
338 338
339 Page* page = document()->page(); 339 Page* page = document()->page();
340 if (!page) 340 if (!page)
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 m_seekForwardButton->show(); 433 m_seekForwardButton->show();
434 m_returnToRealTimeButton->show(); 434 m_returnToRealTimeButton->show();
435 435
436 m_panel->setCanBeDragged(false); 436 m_panel->setCanBeDragged(false);
437 437
438 // We will keep using the panel, but we want it to go back to the standard p osition. 438 // We will keep using the panel, but we want it to go back to the standard p osition.
439 // This will matter right away because we use the panel even when not fullsc reen. 439 // This will matter right away because we use the panel even when not fullsc reen.
440 // And if we reenter fullscreen we also want the panel in the standard posit ion. 440 // And if we reenter fullscreen we also want the panel in the standard posit ion.
441 m_panel->resetPosition(); 441 m_panel->resetPosition();
442 442
443 stopHideFullscreenControlsTimer(); 443 stopHideFullscreenControlsTimer();
444 } 444 }
445 445
446 void MediaControlRootElement::showVolumeSlider() 446 void MediaControlRootElement::showVolumeSlider()
447 { 447 {
448 if (!m_mediaElement->hasAudio()) 448 if (!m_mediaElement->hasAudio())
449 return; 449 return;
450 450
451 if (m_volumeSliderContainer) 451 if (m_volumeSliderContainer)
452 m_volumeSliderContainer->show(); 452 m_volumeSliderContainer->show();
453 } 453 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 if (shouldHideControls()) 493 if (shouldHideControls())
494 startHideFullscreenControlsTimer(); 494 startHideFullscreenControlsTimer();
495 } 495 }
496 } 496 }
497 } 497 }
498 498
499 void MediaControlRootElement::startHideFullscreenControlsTimer() 499 void MediaControlRootElement::startHideFullscreenControlsTimer()
500 { 500 {
501 if (!m_mediaElement->isFullscreen()) 501 if (!m_mediaElement->isFullscreen())
502 return; 502 return;
503 503
504 m_hideFullscreenControlsTimer.startOneShot(timeWithoutMouseMovementBeforeHid ingControls); 504 m_hideFullscreenControlsTimer.startOneShot(timeWithoutMouseMovementBeforeHid ingControls);
505 } 505 }
506 506
507 void MediaControlRootElement::hideFullscreenControlsTimerFired(Timer<MediaContro lRootElement>*) 507 void MediaControlRootElement::hideFullscreenControlsTimerFired(Timer<MediaContro lRootElement>*)
508 { 508 {
509 if (!m_mediaElement->isPlaying()) 509 if (!m_mediaElement->isPlaying())
510 return; 510 return;
511 511
512 if (!m_mediaElement->isFullscreen()) 512 if (!m_mediaElement->isFullscreen())
513 return; 513 return;
514 514
515 if (!shouldHideControls()) 515 if (!shouldHideControls())
516 return; 516 return;
517 517
518 if (Page* page = m_mediaElement->document()->page()) 518 if (Page* page = m_mediaElement->document()->page())
519 page->chrome()->setCursorHiddenUntilMouseMoves(true); 519 page->chrome()->setCursorHiddenUntilMouseMoves(true);
520 520
521 makeTransparent(); 521 makeTransparent();
522 } 522 }
523 523
524 void MediaControlRootElement::stopHideFullscreenControlsTimer() 524 void MediaControlRootElement::stopHideFullscreenControlsTimer()
525 { 525 {
526 m_hideFullscreenControlsTimer.stop(); 526 m_hideFullscreenControlsTimer.stop();
527 } 527 }
528 528
529 const AtomicString& MediaControlRootElement::shadowPseudoId() const 529 const AtomicString& MediaControlRootElement::shadowPseudoId() const
530 { 530 {
531 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls")); 531 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls"));
532 return id; 532 return id;
533 } 533 }
534 534
535 void MediaControlRootElement::bufferingProgressed()
536 {
537 // We only need to update buffering progress when paused, during normal
538 // playback playbackProgressed() will take care of it.
539 if (m_mediaElement->paused())
540 m_timeline->setPosition(m_mediaElement->currentTime());
scherkus (not reviewing) 2011/11/23 02:43:22 wk uses 4 space indents
scherkus (not reviewing) 2011/11/23 02:43:22 why do we need to reset the position?
DaleCurtis 2011/11/24 00:03:23 Done.
DaleCurtis 2011/11/24 00:03:23 It's the simplest (only?) way to ensure a repaint
541 }
542
535 } 543 }
536 544
537 #endif 545 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698