OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MediaControls_h | 5 #ifndef MediaControls_h |
6 #define MediaControls_h | 6 #define MediaControls_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "platform/heap/Handle.h" | 9 #include "platform/heap/Handle.h" |
10 #include "platform/heap/Visitor.h" | 10 #include "platform/heap/Visitor.h" |
11 | 11 |
12 namespace blink { | 12 namespace blink { |
13 | 13 |
14 class Document; | 14 class Document; |
15 class HTMLDivElement; | 15 class HTMLDivElement; |
16 class HTMLMediaElement; | 16 class HTMLMediaElement; |
| 17 class IntRect; |
17 class LayoutObject; | 18 class LayoutObject; |
18 class ShadowRoot; | 19 class ShadowRoot; |
19 | 20 |
20 // MediaControls is an interface to abstract the HTMLMediaElement controls. The | 21 // MediaControls is an interface to abstract the HTMLMediaElement controls. The |
21 // implementation will be used using a Factory (see below). | 22 // implementation will be used using a Factory (see below). |
22 class CORE_EXPORT MediaControls : public GarbageCollectedMixin { | 23 class CORE_EXPORT MediaControls : public GarbageCollectedMixin { |
23 public: | 24 public: |
24 // Factory class that HTMLMediaElement uses to create the MediaControls | 25 // Factory class that HTMLMediaElement uses to create the MediaControls |
25 // instance. MediaControls implementations are expected to implement a factory | 26 // instance. MediaControls implementations are expected to implement a factory |
26 // class and provide an implementation of it to HTMLMediaElement via | 27 // class and provide an implementation of it to HTMLMediaElement via |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 // TODO(mlamouri): required by LayoutVTTCue. | 63 // TODO(mlamouri): required by LayoutVTTCue. |
63 virtual LayoutObject* ContainerLayoutObject() = 0; | 64 virtual LayoutObject* ContainerLayoutObject() = 0; |
64 | 65 |
65 // TODO: the following are required by other parts of the media controls | 66 // TODO: the following are required by other parts of the media controls |
66 // implementation and could be removed when the full implementation has moved | 67 // implementation and could be removed when the full implementation has moved |
67 // to modules. | 68 // to modules. |
68 virtual HTMLDivElement* PanelElement() = 0; | 69 virtual HTMLDivElement* PanelElement() = 0; |
69 virtual Document& OwnerDocument() = 0; | 70 virtual Document& OwnerDocument() = 0; |
70 virtual void OnMediaControlsEnabledChange() = 0; | 71 virtual void OnMediaControlsEnabledChange() = 0; |
71 | 72 |
| 73 virtual bool GetDownloadButtonRect(IntRect&) = 0; |
| 74 virtual void IPHDisabled() = 0; |
| 75 |
72 DECLARE_VIRTUAL_TRACE(); | 76 DECLARE_VIRTUAL_TRACE(); |
73 | 77 |
74 private: | 78 private: |
75 Member<HTMLMediaElement> media_element_; | 79 Member<HTMLMediaElement> media_element_; |
76 }; | 80 }; |
77 | 81 |
78 } // namespace blink | 82 } // namespace blink |
79 | 83 |
80 #endif // MediaControls_h | 84 #endif // MediaControls_h |
OLD | NEW |