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

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

Issue 177123006: Reduce HTMLMediaElement BehaviorRestrictions to a single state bit (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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 | « no previous file | 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 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; 291 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE;
292 292
293 enum DisplayMode { Unknown, Poster, PosterWaitingForVideo, Video }; 293 enum DisplayMode { Unknown, Poster, PosterWaitingForVideo, Video };
294 DisplayMode displayMode() const { return m_displayMode; } 294 DisplayMode displayMode() const { return m_displayMode; }
295 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; } 295 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
296 296
297 virtual bool isMediaElement() const OVERRIDE FINAL { return true; } 297 virtual bool isMediaElement() const OVERRIDE FINAL { return true; }
298 298
299 void setControllerInternal(PassRefPtr<MediaController>); 299 void setControllerInternal(PassRefPtr<MediaController>);
300 300
301 // Restrictions to change default behaviors.
302 enum BehaviorRestrictionFlags {
303 NoRestrictions = 0,
304 RequireUserGestureForPlayRestriction = 1 << 0,
305 };
306 typedef unsigned BehaviorRestrictions;
307
308 bool userGestureRequiredForPlay() const { return m_restrictions & RequireUse rGestureForPlayRestriction; }
309
310 void addBehaviorRestriction(BehaviorRestrictions restriction) { m_restrictio ns |= restriction; }
311 void removeBehaviorRestriction(BehaviorRestrictions restriction) { m_restric tions &= ~restriction; }
312
313 bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayU pdate > 0; } 301 bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayU pdate > 0; }
314 void beginIgnoringTrackDisplayUpdateRequests(); 302 void beginIgnoringTrackDisplayUpdateRequests();
315 void endIgnoringTrackDisplayUpdateRequests(); 303 void endIgnoringTrackDisplayUpdateRequests();
316 304
317 private: 305 private:
318 void createMediaPlayer(); 306 void createMediaPlayer();
319 307
320 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE FINAL { return true; } 308 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE FINAL { return true; }
321 virtual bool areAuthorShadowsAllowed() const OVERRIDE FINAL { return false; } 309 virtual bool areAuthorShadowsAllowed() const OVERRIDE FINAL { return false; }
322 310
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 bool createMediaControls(); 417 bool createMediaControls();
430 void configureMediaControls(); 418 void configureMediaControls();
431 419
432 void prepareMediaFragmentURI(); 420 void prepareMediaFragmentURI();
433 void applyMediaFragmentURI(); 421 void applyMediaFragmentURI();
434 422
435 virtual void* preDispatchEventHandler(Event*) OVERRIDE FINAL; 423 virtual void* preDispatchEventHandler(Event*) OVERRIDE FINAL;
436 424
437 void changeNetworkStateFromLoadingToIdle(); 425 void changeNetworkStateFromLoadingToIdle();
438 426
439 void removeBehaviorsRestrictionsAfterFirstUserGesture();
440
441 const AtomicString& mediaGroup() const; 427 const AtomicString& mediaGroup() const;
442 void setMediaGroup(const AtomicString&); 428 void setMediaGroup(const AtomicString&);
443 void updateMediaController(); 429 void updateMediaController();
444 bool isBlocked() const; 430 bool isBlocked() const;
445 bool isBlockedOnMediaController() const; 431 bool isBlockedOnMediaController() const;
446 bool isAutoplaying() const { return m_autoplaying; } 432 bool isAutoplaying() const { return m_autoplaying; }
447 433
448 // Currently we have both EME v0.1b and EME WD implemented in media element. 434 // Currently we have both EME v0.1b and EME WD implemented in media element.
449 // But we do not want to support both at the same time. The one used first 435 // But we do not want to support both at the same time. The one used first
450 // will be supported. Use |m_emeMode| to track this selection. 436 // will be supported. Use |m_emeMode| to track this selection.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 // Loading state. 476 // Loading state.
491 enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElem ent }; 477 enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElem ent };
492 LoadState m_loadState; 478 LoadState m_loadState;
493 RefPtr<HTMLSourceElement> m_currentSourceNode; 479 RefPtr<HTMLSourceElement> m_currentSourceNode;
494 RefPtr<Node> m_nextChildNodeToConsider; 480 RefPtr<Node> m_nextChildNodeToConsider;
495 481
496 OwnPtr<MediaPlayer> m_player; 482 OwnPtr<MediaPlayer> m_player;
497 blink::WebLayer* m_webLayer; 483 blink::WebLayer* m_webLayer;
498 bool m_opaque; 484 bool m_opaque;
499 485
500 BehaviorRestrictions m_restrictions;
501
502 MediaPlayer::Preload m_preload; 486 MediaPlayer::Preload m_preload;
503 487
504 DisplayMode m_displayMode; 488 DisplayMode m_displayMode;
505 489
506 RefPtr<HTMLMediaSource> m_mediaSource; 490 RefPtr<HTMLMediaSource> m_mediaSource;
507 491
508 mutable double m_cachedTime; 492 mutable double m_cachedTime;
509 mutable double m_cachedTimeWallClockUpdateTime; 493 mutable double m_cachedTimeWallClockUpdateTime;
510 mutable double m_minimumWallClockTimeToCacheMediaTime; 494 mutable double m_minimumWallClockTimeToCacheMediaTime;
511 495
512 double m_fragmentStartTime; 496 double m_fragmentStartTime;
513 double m_fragmentEndTime; 497 double m_fragmentEndTime;
514 498
515 typedef unsigned PendingActionFlags; 499 typedef unsigned PendingActionFlags;
516 PendingActionFlags m_pendingActionFlags; 500 PendingActionFlags m_pendingActionFlags;
517 501
518 // FIXME: MediaElement has way too many state bits. 502 // FIXME: MediaElement has way too many state bits.
503 bool m_userGestureRequiredForPlay : 1;
519 bool m_playing : 1; 504 bool m_playing : 1;
520 bool m_shouldDelayLoadEvent : 1; 505 bool m_shouldDelayLoadEvent : 1;
521 bool m_haveFiredLoadedData : 1; 506 bool m_haveFiredLoadedData : 1;
522 bool m_active : 1; 507 bool m_active : 1;
523 bool m_autoplaying : 1; 508 bool m_autoplaying : 1;
524 bool m_muted : 1; 509 bool m_muted : 1;
525 bool m_paused : 1; 510 bool m_paused : 1;
526 bool m_seeking : 1; 511 bool m_seeking : 1;
527 512
528 // data has not been loaded since sending a "stalled" event 513 // data has not been loaded since sending a "stalled" event
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 inline bool isHTMLMediaElement(const Node& node) 577 inline bool isHTMLMediaElement(const Node& node)
593 { 578 {
594 return node.isElementNode() && toElement(node).isMediaElement(); 579 return node.isElementNode() && toElement(node).isMediaElement();
595 } 580 }
596 581
597 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); 582 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement);
598 583
599 } //namespace 584 } //namespace
600 585
601 #endif 586 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698