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

Side by Side Diff: Source/core/html/HTMLMediaElement.h

Issue 191273002: Revert "Remove the HTMLVideoElement-specific prefixed fullscreen API" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/frame/UseCounter.cpp ('k') | Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 // Both Node (via HTMLElement) and ActiveDOMObject define this method, which 228 // Both Node (via HTMLElement) and ActiveDOMObject define this method, which
229 // causes an ambiguity error at compile time. This class's constructor 229 // causes an ambiguity error at compile time. This class's constructor
230 // ensures that both implementations return document, so return the result 230 // ensures that both implementations return document, so return the result
231 // of one of them here. 231 // of one of them here.
232 virtual ExecutionContext* executionContext() const OVERRIDE FINAL { return H TMLElement::executionContext(); } 232 virtual ExecutionContext* executionContext() const OVERRIDE FINAL { return H TMLElement::executionContext(); }
233 233
234 bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSing leSecurityOrigin(); } 234 bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSing leSecurityOrigin(); }
235 235
236 bool isFullscreen() const; 236 bool isFullscreen() const;
237 virtual void enterFullscreen() OVERRIDE FINAL; 237 virtual void enterFullscreen() OVERRIDE FINAL;
238 void exitFullscreen();
238 239
239 virtual bool hasClosedCaptions() const OVERRIDE FINAL; 240 virtual bool hasClosedCaptions() const OVERRIDE FINAL;
240 virtual bool closedCaptionsVisible() const OVERRIDE FINAL; 241 virtual bool closedCaptionsVisible() const OVERRIDE FINAL;
241 virtual void setClosedCaptionsVisible(bool) OVERRIDE FINAL; 242 virtual void setClosedCaptionsVisible(bool) OVERRIDE FINAL;
242 243
243 MediaControls* mediaControls() const; 244 MediaControls* mediaControls() const;
244 245
245 void sourceWasRemoved(HTMLSourceElement*); 246 void sourceWasRemoved(HTMLSourceElement*);
246 void sourceWasAdded(HTMLSourceElement*); 247 void sourceWasAdded(HTMLSourceElement*);
247 248
(...skipping 30 matching lines...) Expand all
278 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; 279 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE;
279 280
280 enum DisplayMode { Unknown, Poster, PosterWaitingForVideo, Video }; 281 enum DisplayMode { Unknown, Poster, PosterWaitingForVideo, Video };
281 DisplayMode displayMode() const { return m_displayMode; } 282 DisplayMode displayMode() const { return m_displayMode; }
282 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; } 283 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
283 284
284 virtual bool isMediaElement() const OVERRIDE FINAL { return true; } 285 virtual bool isMediaElement() const OVERRIDE FINAL { return true; }
285 286
286 void setControllerInternal(PassRefPtr<MediaController>); 287 void setControllerInternal(PassRefPtr<MediaController>);
287 288
289 // Restrictions to change default behaviors.
290 enum BehaviorRestrictionFlags {
291 NoRestrictions = 0,
292 RequireUserGestureForPlayRestriction = 1 << 0,
293 RequireUserGestureForFullscreenRestriction = 1 << 1,
294 };
295 typedef unsigned BehaviorRestrictions;
296
297 bool userGestureRequiredForPlay() const { return m_restrictions & RequireUse rGestureForPlayRestriction; }
298 bool userGestureRequiredForFullscreen() const { return m_restrictions & Requ ireUserGestureForFullscreenRestriction; }
299
300 void addBehaviorRestriction(BehaviorRestrictions restriction) { m_restrictio ns |= restriction; }
301 void removeBehaviorRestriction(BehaviorRestrictions restriction) { m_restric tions &= ~restriction; }
302
288 bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayU pdate > 0; } 303 bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayU pdate > 0; }
289 void beginIgnoringTrackDisplayUpdateRequests(); 304 void beginIgnoringTrackDisplayUpdateRequests();
290 void endIgnoringTrackDisplayUpdateRequests(); 305 void endIgnoringTrackDisplayUpdateRequests();
291 306
292 private: 307 private:
293 void createMediaPlayer(); 308 void createMediaPlayer();
294 309
295 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE FINAL { return true; } 310 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE FINAL { return true; }
296 virtual bool areAuthorShadowsAllowed() const OVERRIDE FINAL { return false; } 311 virtual bool areAuthorShadowsAllowed() const OVERRIDE FINAL { return false; }
297 312
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 bool createMediaControls(); 414 bool createMediaControls();
400 void configureMediaControls(); 415 void configureMediaControls();
401 416
402 void prepareMediaFragmentURI(); 417 void prepareMediaFragmentURI();
403 void applyMediaFragmentURI(); 418 void applyMediaFragmentURI();
404 419
405 virtual void* preDispatchEventHandler(Event*) OVERRIDE FINAL; 420 virtual void* preDispatchEventHandler(Event*) OVERRIDE FINAL;
406 421
407 void changeNetworkStateFromLoadingToIdle(); 422 void changeNetworkStateFromLoadingToIdle();
408 423
424 void removeBehaviorsRestrictionsAfterFirstUserGesture();
425
409 const AtomicString& mediaGroup() const; 426 const AtomicString& mediaGroup() const;
410 void setMediaGroup(const AtomicString&); 427 void setMediaGroup(const AtomicString&);
411 void updateMediaController(); 428 void updateMediaController();
412 bool isBlocked() const; 429 bool isBlocked() const;
413 bool isBlockedOnMediaController() const; 430 bool isBlockedOnMediaController() const;
414 bool isAutoplaying() const { return m_autoplaying; } 431 bool isAutoplaying() const { return m_autoplaying; }
415 432
416 Timer<HTMLMediaElement> m_loadTimer; 433 Timer<HTMLMediaElement> m_loadTimer;
417 Timer<HTMLMediaElement> m_progressEventTimer; 434 Timer<HTMLMediaElement> m_progressEventTimer;
418 Timer<HTMLMediaElement> m_playbackProgressTimer; 435 Timer<HTMLMediaElement> m_playbackProgressTimer;
(...skipping 26 matching lines...) Expand all
445 // Loading state. 462 // Loading state.
446 enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElem ent }; 463 enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElem ent };
447 LoadState m_loadState; 464 LoadState m_loadState;
448 RefPtr<HTMLSourceElement> m_currentSourceNode; 465 RefPtr<HTMLSourceElement> m_currentSourceNode;
449 RefPtr<Node> m_nextChildNodeToConsider; 466 RefPtr<Node> m_nextChildNodeToConsider;
450 467
451 OwnPtr<MediaPlayer> m_player; 468 OwnPtr<MediaPlayer> m_player;
452 blink::WebLayer* m_webLayer; 469 blink::WebLayer* m_webLayer;
453 bool m_opaque; 470 bool m_opaque;
454 471
472 BehaviorRestrictions m_restrictions;
473
455 MediaPlayer::Preload m_preload; 474 MediaPlayer::Preload m_preload;
456 475
457 DisplayMode m_displayMode; 476 DisplayMode m_displayMode;
458 477
459 RefPtr<HTMLMediaSource> m_mediaSource; 478 RefPtr<HTMLMediaSource> m_mediaSource;
460 479
461 mutable double m_cachedTime; 480 mutable double m_cachedTime;
462 mutable double m_cachedTimeWallClockUpdateTime; 481 mutable double m_cachedTimeWallClockUpdateTime;
463 mutable double m_minimumWallClockTimeToCacheMediaTime; 482 mutable double m_minimumWallClockTimeToCacheMediaTime;
464 483
465 double m_fragmentStartTime; 484 double m_fragmentStartTime;
466 double m_fragmentEndTime; 485 double m_fragmentEndTime;
467 486
468 typedef unsigned PendingActionFlags; 487 typedef unsigned PendingActionFlags;
469 PendingActionFlags m_pendingActionFlags; 488 PendingActionFlags m_pendingActionFlags;
470 489
471 // FIXME: MediaElement has way too many state bits. 490 // FIXME: MediaElement has way too many state bits.
472 bool m_userGestureRequiredForPlay : 1;
473 bool m_playing : 1; 491 bool m_playing : 1;
474 bool m_shouldDelayLoadEvent : 1; 492 bool m_shouldDelayLoadEvent : 1;
475 bool m_haveFiredLoadedData : 1; 493 bool m_haveFiredLoadedData : 1;
476 bool m_active : 1; 494 bool m_active : 1;
477 bool m_autoplaying : 1; 495 bool m_autoplaying : 1;
478 bool m_muted : 1; 496 bool m_muted : 1;
479 bool m_paused : 1; 497 bool m_paused : 1;
480 bool m_seeking : 1; 498 bool m_seeking : 1;
481 499
482 // data has not been loaded since sending a "stalled" event 500 // data has not been loaded since sending a "stalled" event
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 inline bool isHTMLMediaElement(const Node& node) 560 inline bool isHTMLMediaElement(const Node& node)
543 { 561 {
544 return node.isElementNode() && toElement(node).isMediaElement(); 562 return node.isElementNode() && toElement(node).isMediaElement();
545 } 563 }
546 564
547 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); 565 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement);
548 566
549 } //namespace 567 } //namespace
550 568
551 #endif 569 #endif
OLDNEW
« no previous file with comments | « Source/core/frame/UseCounter.cpp ('k') | Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698