| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 1699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1710 refreshCachedTime(); | 1710 refreshCachedTime(); |
| 1711 double now = currentTime(); | 1711 double now = currentTime(); |
| 1712 | 1712 |
| 1713 // 2 - If the element's seeking IDL attribute is true, then another instance
of this algorithm is | 1713 // 2 - If the element's seeking IDL attribute is true, then another instance
of this algorithm is |
| 1714 // already running. Abort that other instance of the algorithm without waiti
ng for the step that | 1714 // already running. Abort that other instance of the algorithm without waiti
ng for the step that |
| 1715 // it is running to complete. | 1715 // it is running to complete. |
| 1716 // Nothing specific to be done here. | 1716 // Nothing specific to be done here. |
| 1717 | 1717 |
| 1718 // 3 - Set the seeking IDL attribute to true. | 1718 // 3 - Set the seeking IDL attribute to true. |
| 1719 // The flag will be cleared when the engine tells us the time has actually c
hanged. | 1719 // The flag will be cleared when the engine tells us the time has actually c
hanged. |
| 1720 bool previousSeekStillPending = m_seeking; |
| 1720 m_seeking = true; | 1721 m_seeking = true; |
| 1721 | 1722 |
| 1722 // 5 - If the new playback position is later than the end of the media resou
rce, then let it be the end | 1723 // 5 - If the new playback position is later than the end of the media resou
rce, then let it be the end |
| 1723 // of the media resource instead. | 1724 // of the media resource instead. |
| 1724 time = min(time, duration()); | 1725 time = min(time, duration()); |
| 1725 | 1726 |
| 1726 // 6 - If the new playback position is less than the earliest possible posit
ion, let it be that position instead. | 1727 // 6 - If the new playback position is less than the earliest possible posit
ion, let it be that position instead. |
| 1727 time = max(time, 0.0); | 1728 time = max(time, 0.0); |
| 1728 | 1729 |
| 1729 // Ask the media engine for the time value in the movie's time scale before
comparing with current time. This | 1730 // Ask the media engine for the time value in the movie's time scale before
comparing with current time. This |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1750 bool noSeekRequired = !seekableRanges->length() || (time == now && displayMo
de() != Poster); | 1751 bool noSeekRequired = !seekableRanges->length() || (time == now && displayMo
de() != Poster); |
| 1751 | 1752 |
| 1752 // Always notify the media engine of a seek if the source is not closed. Thi
s ensures that the source is | 1753 // Always notify the media engine of a seek if the source is not closed. Thi
s ensures that the source is |
| 1753 // always in a flushed state when the 'seeking' event fires. | 1754 // always in a flushed state when the 'seeking' event fires. |
| 1754 if (m_mediaSource && m_mediaSource->isClosed()) | 1755 if (m_mediaSource && m_mediaSource->isClosed()) |
| 1755 noSeekRequired = false; | 1756 noSeekRequired = false; |
| 1756 | 1757 |
| 1757 if (noSeekRequired) { | 1758 if (noSeekRequired) { |
| 1758 if (time == now) { | 1759 if (time == now) { |
| 1759 scheduleEvent(EventTypeNames::seeking); | 1760 scheduleEvent(EventTypeNames::seeking); |
| 1761 if (previousSeekStillPending) |
| 1762 return; |
| 1760 // FIXME: There must be a stable state before timeupdate+seeked are
dispatched and seeking | 1763 // FIXME: There must be a stable state before timeupdate+seeked are
dispatched and seeking |
| 1761 // is reset to false. See http://crbug.com/266631 | 1764 // is reset to false. See http://crbug.com/266631 |
| 1762 scheduleTimeupdateEvent(false); | 1765 scheduleTimeupdateEvent(false); |
| 1763 scheduleEvent(EventTypeNames::seeked); | 1766 scheduleEvent(EventTypeNames::seeked); |
| 1764 } | 1767 } |
| 1765 m_seeking = false; | 1768 m_seeking = false; |
| 1766 return; | 1769 return; |
| 1767 } | 1770 } |
| 1768 time = seekableRanges->nearest(time); | 1771 time = seekableRanges->nearest(time); |
| 1769 | 1772 |
| (...skipping 1872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3642 return fastHasAttribute(controlsAttr); | 3645 return fastHasAttribute(controlsAttr); |
| 3643 } | 3646 } |
| 3644 | 3647 |
| 3645 void HTMLMediaElement::trace(Visitor* visitor) | 3648 void HTMLMediaElement::trace(Visitor* visitor) |
| 3646 { | 3649 { |
| 3647 Supplementable<HTMLMediaElement>::trace(visitor); | 3650 Supplementable<HTMLMediaElement>::trace(visitor); |
| 3648 HTMLElement::trace(visitor); | 3651 HTMLElement::trace(visitor); |
| 3649 } | 3652 } |
| 3650 | 3653 |
| 3651 } | 3654 } |
| OLD | NEW |