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

Side by Side Diff: third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h

Issue 2943983003: chrome/blink: Add functionality for in-product help for media elements. (Closed)
Patch Set: Created 3 years, 6 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 /* 1 /*
2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2011, 2012 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 LayoutObject* ContainerLayoutObject() override; 91 LayoutObject* ContainerLayoutObject() override;
92 // Return the internal elements, which is used by registering clicking 92 // Return the internal elements, which is used by registering clicking
93 // EventHandlers from MediaControlsWindowEventListener. 93 // EventHandlers from MediaControlsWindowEventListener.
94 HTMLDivElement* PanelElement() override; 94 HTMLDivElement* PanelElement() override;
95 // TODO(mlamouri): this method is needed in order to notify the controls that 95 // TODO(mlamouri): this method is needed in order to notify the controls that
96 // the `MediaControlsEnabled` setting has changed. 96 // the `MediaControlsEnabled` setting has changed.
97 void OnMediaControlsEnabledChange() override { 97 void OnMediaControlsEnabledChange() override {
98 // There is no update because only the overlay is expected to change. 98 // There is no update because only the overlay is expected to change.
99 RefreshCastButtonVisibilityWithoutUpdate(); 99 RefreshCastButtonVisibilityWithoutUpdate();
100 } 100 }
101 bool GetDownloadButtonRect(IntRect&) override;
102 void IPHDisabled() override;
101 Document& OwnerDocument() { return GetDocument(); } 103 Document& OwnerDocument() { return GetDocument(); }
102 104
103 // Called by the fullscreen buttons to toggle fulllscreen on/off. 105 // Called by the fullscreen buttons to toggle fulllscreen on/off.
104 void EnterFullscreen(); 106 void EnterFullscreen();
105 void ExitFullscreen(); 107 void ExitFullscreen();
106 108
107 // Text track related methods exposed to components handling closed captions. 109 // Text track related methods exposed to components handling closed captions.
108 void ToggleTextTrackList(); 110 void ToggleTextTrackList();
109 void ShowTextTrackAtIndex(unsigned); 111 void ShowTextTrackAtIndex(unsigned);
110 void DisableShowingTextTracks(); 112 void DisableShowingTextTracks();
111 113
112 // Methods related to the overflow menu. 114 // Methods related to the overflow menu.
113 void ToggleOverflowMenu(); 115 void ToggleOverflowMenu();
114 bool OverflowMenuVisible(); 116 bool OverflowMenuVisible();
115 117
116 void ShowOverlayCastButtonIfNeeded(); 118 void ShowOverlayCastButtonIfNeeded();
117 119
118 // Methods call by the scrubber. 120 // Methods call by the scrubber.
119 void BeginScrubbing(); 121 void BeginScrubbing();
120 void EndScrubbing(); 122 void EndScrubbing();
121 void UpdateCurrentTimeDisplay(); 123 void UpdateCurrentTimeDisplay();
122 124
125 void MaybeDispatchDownloadIPHTrigger();
126
123 DECLARE_VIRTUAL_TRACE(); 127 DECLARE_VIRTUAL_TRACE();
124 128
125 private: 129 private:
126 // MediaControlsMediaEventListener is a component that is listening to events 130 // MediaControlsMediaEventListener is a component that is listening to events
127 // and calling the appropriate callback on MediaControlsImpl. The object is 131 // and calling the appropriate callback on MediaControlsImpl. The object is
128 // split from MedaiControlsImpl to reduce boilerplate and ease reading. In 132 // split from MedaiControlsImpl to reduce boilerplate and ease reading. In
129 // order to not expose accessors only for this component, a friendship is 133 // order to not expose accessors only for this component, a friendship is
130 // declared. 134 // declared.
131 friend class MediaControlsMediaEventListener; 135 friend class MediaControlsMediaEventListener;
132 // Same as above but handles the menus hiding when the window is interacted 136 // Same as above but handles the menus hiding when the window is interacted
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 Member<ResizeObserver> resize_observer_; 254 Member<ResizeObserver> resize_observer_;
251 255
252 // Watches the media element for attribute changes and updates media controls 256 // Watches the media element for attribute changes and updates media controls
253 // as necessary. 257 // as necessary.
254 Member<MediaElementMutationCallback> element_mutation_callback_; 258 Member<MediaElementMutationCallback> element_mutation_callback_;
255 259
256 TaskRunnerTimer<MediaControlsImpl> element_size_changed_timer_; 260 TaskRunnerTimer<MediaControlsImpl> element_size_changed_timer_;
257 IntSize size_; 261 IntSize size_;
258 262
259 bool keep_showing_until_timer_fires_ : 1; 263 bool keep_showing_until_timer_fires_ : 1;
264
265 // Set to true when a IPH for the download button on the controls is being
266 // displayed.
267 bool iph_active_ = false;
268
269 // Set to true after the IPH trigger for an element has been observed. This
270 // ensures that the trigger for an element is observed only once.
271 bool iph_trigger_observed_ = false;
260 }; 272 };
261 273
262 DEFINE_ELEMENT_TYPE_CASTS(MediaControlsImpl, IsMediaControls()); 274 DEFINE_ELEMENT_TYPE_CASTS(MediaControlsImpl, IsMediaControls());
263 275
264 } // namespace blink 276 } // namespace blink
265 277
266 #endif 278 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698