Changeset 84222 in webkit
- Timestamp:
- Apr 18, 2011 9:28:34 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/Android.mk
r84149 r84222 356 356 html/parser/XSSFilter.cpp \ 357 357 \ 358 html/shadow/MediaControls.cpp \ 358 359 html/shadow/MediaControlElements.cpp \ 359 360 html/shadow/MediaControlRootElement.cpp \ -
trunk/Source/WebCore/CMakeLists.txt
r84149 r84222 886 886 887 887 html/shadow/DetailsMarkerControl.cpp 888 html/shadow/MediaControls.cpp 888 889 html/shadow/MediaControlRootElement.cpp 889 890 html/shadow/MeterShadowElement.cpp -
trunk/Source/WebCore/ChangeLog
r84219 r84222 1 2011-04-18 Steve Lacey <sjl@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 Decouple media controls usage from implementation. 6 This allows each port to implement thier own controls in a different 7 manner to the default webkit implementation. 8 9 Convert media controls hooks to a client interface 10 https://bugs.webkit.org/show_bug.cgi?id=58346 11 12 No new tests as there is no functional change. 13 14 * Android.mk: 15 * CMakeLists.txt: 16 * GNUmakefile.list.am: 17 * WebCore.gypi: 18 * WebCore.pro: 19 * WebCore.vcproj/WebCore.vcproj: 20 * WebCore.xcodeproj/project.pbxproj: 21 * html/HTMLMediaElement.cpp: 22 (WebCore::HTMLMediaElement::mediaControls): 23 (WebCore::HTMLMediaElement::ensureMediaControls): 24 (WebCore::HTMLMediaElement::preDispatchEventHandler): 25 * html/HTMLMediaElement.h: 26 * html/shadow/MediaControlElements.cpp: 27 (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement): 28 (WebCore::MediaControlPanelMuteButtonElement::create): 29 (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): 30 (WebCore::MediaControlTimelineElement::create): 31 (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): 32 (WebCore::MediaControlFullscreenButtonElement::create): 33 * html/shadow/MediaControlElements.h: 34 * html/shadow/MediaControlRootElement.cpp: 35 (WebCore::MediaControlRootElement::MediaControlRootElement): 36 (WebCore::MediaControls::create): 37 * html/shadow/MediaControlRootElement.h: 38 * html/shadow/MediaControls.cpp: Added. 39 (WebCore::MediaControls::MediaControls): 40 * html/shadow/MediaControls.h: Added. 41 (WebCore::MediaControls::~MediaControls): 42 1 43 2011-04-18 Pascal Massimino <pascal.massimino@gmail.com> 2 44 -
trunk/Source/WebCore/GNUmakefile.list.am
r84149 r84222 1846 1846 Source/WebCore/html/shadow/DetailsMarkerControl.cpp \ 1847 1847 Source/WebCore/html/shadow/DetailsMarkerControl.h \ 1848 Source/WebCore/html/shadow/MediaControls.cpp \ 1849 Source/WebCore/html/shadow/MediaControls.h \ 1848 1850 Source/WebCore/html/shadow/MediaControlElements.cpp \ 1849 1851 Source/WebCore/html/shadow/MediaControlElements.h \ -
trunk/Source/WebCore/WebCore.gypi
r84149 r84222 3177 3177 'html/shadow/DetailsMarkerControl.cpp', 3178 3178 'html/shadow/DetailsMarkerControl.h', 3179 'html/shadow/MediaControls.cpp', 3180 'html/shadow/MediaControls.h', 3179 3181 'html/shadow/MediaControlElements.cpp', 3180 3182 'html/shadow/MediaControlElements.h', -
trunk/Source/WebCore/WebCore.pro
r84149 r84222 805 805 html/parser/XSSFilter.cpp \ 806 806 html/shadow/DetailsMarkerControl.cpp \ 807 html/shadow/MediaControls.cpp \ 807 808 html/shadow/MediaControlRootElement.cpp \ 808 809 html/shadow/MeterShadowElement.cpp \ -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r84125 r84222 56710 56710 </File> 56711 56711 <File 56712 RelativePath="..\html\shadow\MediaControls.cpp" 56713 > 56714 </File> 56715 <File 56716 RelativePath="..\html\shadow\MediaControls.h" 56717 > 56718 </File> 56719 <File 56712 56720 RelativePath="..\html\shadow\MediaControlElements.cpp" 56713 56721 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r84149 r84222 644 644 1CF6BE150E9BB4670025E1CD /* ObjCNodeFilterCondition.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CF6BE130E9BB4670025E1CD /* ObjCNodeFilterCondition.h */; }; 645 645 1CFAE3230A6D6A3F0032593D /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFAE3220A6D6A3F0032593D /* libobjc.dylib */; }; 646 1F3C3BEA135CAF3C00B8C1AC /* MediaControls.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1F3C3BE8135CAF3C00B8C1AC /* MediaControls.cpp */; }; 647 1F3C3BEB135CAF3C00B8C1AC /* MediaControls.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F3C3BE9135CAF3C00B8C1AC /* MediaControls.h */; }; 646 648 20D629261253690B00081543 /* InspectorInstrumentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20D629241253690B00081543 /* InspectorInstrumentation.cpp */; }; 647 649 20D629271253690B00081543 /* InspectorInstrumentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 20D629251253690B00081543 /* InspectorInstrumentation.h */; }; … … 7102 7104 1CF6BE130E9BB4670025E1CD /* ObjCNodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCNodeFilterCondition.h; sourceTree = "<group>"; }; 7103 7105 1CFAE3220A6D6A3F0032593D /* libobjc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libobjc.dylib; path = /usr/lib/libobjc.dylib; sourceTree = "<absolute>"; }; 7106 1F3C3BE8135CAF3C00B8C1AC /* MediaControls.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaControls.cpp; sourceTree = "<group>"; }; 7107 1F3C3BE9135CAF3C00B8C1AC /* MediaControls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaControls.h; sourceTree = "<group>"; }; 7104 7108 20D629241253690B00081543 /* InspectorInstrumentation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorInstrumentation.cpp; sourceTree = "<group>"; }; 7105 7109 20D629251253690B00081543 /* InspectorInstrumentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorInstrumentation.h; sourceTree = "<group>"; }; … … 13540 13544 4157AF7F12F1FB0400A8C6F5 /* MediaControlRootElement.cpp */, 13541 13545 4157AF7E12F1FB0400A8C6F5 /* MediaControlRootElement.h */, 13546 1F3C3BE8135CAF3C00B8C1AC /* MediaControls.cpp */, 13547 1F3C3BE9135CAF3C00B8C1AC /* MediaControls.h */, 13542 13548 A78E526D1346BD1700AD9C31 /* MeterShadowElement.cpp */, 13543 13549 A78E526E1346BD1700AD9C31 /* MeterShadowElement.h */, … … 21052 21058 939885C408B7E3D100E707C4 /* EventNames.h in Headers */, 21053 21059 8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */, 21060 22777B4B134A018C008EA455 /* EventsCollector.h in Headers */, 21054 21061 E0FEF372B17C53EAC1C1FBEE /* EventSource.h in Headers */, 21055 22777B4B134A018C008EA455 /* EventsCollector.h in Headers */,21056 21062 E12EDB7B0B308A78002704B6 /* EventTarget.h in Headers */, 21057 21063 BC60D8F30D2A11E000B9918F /* ExceptionBase.h in Headers */, … … 21963 21969 BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */, 21964 21970 BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */, 21971 8CADF2A9135C7B36009EF43F /* LevelDBComparator.h in Headers */, 21972 8CADF2AB135C7B36009EF43F /* LevelDBDatabase.h in Headers */, 21973 8CADF2AD135C7B36009EF43F /* LevelDBIterator.h in Headers */, 21974 8CADF2AE135C7B36009EF43F /* LevelDBSlice.h in Headers */, 21965 21975 84730D911248F0B300D3A9C9 /* LightSource.h in Headers */, 21966 21976 B22279650D00BF220071B782 /* LinearGradientAttributes.h in Headers */, … … 22000 22010 417253AB1354BBBC00360F2A /* MediaControlElements.h in Headers */, 22001 22011 4157AF8012F1FB0400A8C6F5 /* MediaControlRootElement.h in Headers */, 22012 1F3C3BEB135CAF3C00B8C1AC /* MediaControls.h in Headers */, 22002 22013 97205AB81239291000B17380 /* MediaDocument.h in Headers */, 22003 22014 E44613AD0CD6331000FADA75 /* MediaError.h in Headers */, … … 22993 23004 E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */, 22994 23005 977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */, 22995 8CADF2A9135C7B36009EF43F /* LevelDBComparator.h in Headers */,22996 8CADF2AB135C7B36009EF43F /* LevelDBDatabase.h in Headers */,22997 8CADF2AD135C7B36009EF43F /* LevelDBIterator.h in Headers */,22998 8CADF2AE135C7B36009EF43F /* LevelDBSlice.h in Headers */,22999 23006 ); 23000 23007 runOnlyForDeploymentPostprocessing = 0; … … 23916 23923 939885C308B7E3D100E707C4 /* EventNames.cpp in Sources */, 23917 23924 8F67561C1288B17B0047ACA3 /* EventQueue.cpp in Sources */, 23925 22777B4A134A018C008EA455 /* EventsCollector.cpp in Sources */, 23918 23926 E0FEF372B27C53EAC1C1FBEE /* EventSource.cpp in Sources */, 23919 22777B4A134A018C008EA455 /* EventsCollector.cpp in Sources */,23920 23927 E12EDBEA0B308E0B002704B6 /* EventTarget.cpp in Sources */, 23921 23928 BC60D8F20D2A11E000B9918F /* ExceptionBase.cpp in Sources */, … … 24895 24902 51B2417B0D931F3F00E83F5C /* LegacyWebArchiveMac.mm in Sources */, 24896 24903 BCE65BEA0EACDF16007E4533 /* Length.cpp in Sources */, 24904 8CADF2AA135C7B36009EF43F /* LevelDBDatabase.cpp in Sources */, 24905 8CADF2AC135C7B36009EF43F /* LevelDBIterator.cpp in Sources */, 24897 24906 84730D901248F0B300D3A9C9 /* LightSource.cpp in Sources */, 24898 24907 89B5EAA111E8003D00F2367E /* LineEnding.cpp in Sources */, … … 24928 24937 417253AA1354BBBC00360F2A /* MediaControlElements.cpp in Sources */, 24929 24938 4157AF8112F1FB0400A8C6F5 /* MediaControlRootElement.cpp in Sources */, 24939 1F3C3BEA135CAF3C00B8C1AC /* MediaControls.cpp in Sources */, 24930 24940 97205AB71239291000B17380 /* MediaDocument.cpp in Sources */, 24931 24941 4E1959210A39DABA00220FE5 /* MediaFeatureNames.cpp in Sources */, … … 25703 25713 E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */, 25704 25714 977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */, 25705 8CADF2AA135C7B36009EF43F /* LevelDBDatabase.cpp in Sources */,25706 8CADF2AC135C7B36009EF43F /* LevelDBIterator.cpp in Sources */,25707 25715 ); 25708 25716 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r84077 r84222 50 50 #include "HTMLVideoElement.h" 51 51 #include "Logging.h" 52 #include "MediaControl RootElement.h"52 #include "MediaControls.h" 53 53 #include "MediaDocument.h" 54 54 #include "MediaError.h" … … 2654 2654 } 2655 2655 2656 MediaControlRootElement* HTMLMediaElement::mediaControls() 2657 { 2658 return shadowRoot() ? toMediaControls(shadowRoot()->firstChild()) : 0; 2656 MediaControls* HTMLMediaElement::mediaControls() 2657 { 2658 if (!shadowRoot()) 2659 return 0; 2660 2661 Node* node = shadowRoot()->firstChild(); 2662 ASSERT(node->isHTMLElement()); 2663 return static_cast<MediaControls*>(node); 2659 2664 } 2660 2665 … … 2670 2675 2671 2676 ExceptionCode ec; 2672 ensureShadowRoot()->appendChild(MediaControl RootElement::create(this), ec);2673 } 2674 2675 void* HTMLMediaElement::preDispatchEventHandler(Event* event) 2677 ensureShadowRoot()->appendChild(MediaControls::create(this), ec); 2678 } 2679 2680 void* HTMLMediaElement::preDispatchEventHandler(Event* event) 2676 2681 { 2677 2682 if (event && event->type() == eventNames().webkitfullscreenchangeEvent) { -
trunk/Source/WebCore/html/HTMLMediaElement.h
r83667 r84222 42 42 class Event; 43 43 class HTMLSourceElement; 44 class MediaControl RootElement;44 class MediaControls; 45 45 class MediaError; 46 46 class KURL; … … 173 173 void setClosedCaptionsVisible(bool); 174 174 175 MediaControl RootElement* mediaControls();175 MediaControls* mediaControls(); 176 176 177 177 bool processingUserGesture() const; … … 336 336 Vector<RefPtr<Event> > m_pendingEvents; 337 337 RefPtr<TimeRanges> m_playedTimeRanges; 338 338 339 339 float m_playbackRate; 340 340 float m_defaultPlaybackRate; -
trunk/Source/WebCore/html/shadow/MediaControlElements.cpp
r83636 r84222 39 39 #include "HTMLNames.h" 40 40 #include "LocalizedStrings.h" 41 #include "MediaControl RootElement.h"41 #include "MediaControls.h" 42 42 #include "MouseEvent.h" 43 43 #include "Page.h" … … 347 347 // ---------------------------- 348 348 349 inline MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)349 inline MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement(HTMLMediaElement* mediaElement, MediaControls* controls) 350 350 : MediaControlMuteButtonElement(mediaElement, MediaMuteButton) 351 351 , m_controls(controls) … … 353 353 } 354 354 355 PassRefPtr<MediaControlPanelMuteButtonElement> MediaControlPanelMuteButtonElement::create(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)355 PassRefPtr<MediaControlPanelMuteButtonElement> MediaControlPanelMuteButtonElement::create(HTMLMediaElement* mediaElement, MediaControls* controls) 356 356 { 357 357 ASSERT(controls); … … 627 627 // ---------------------------- 628 628 629 MediaControlTimelineElement::MediaControlTimelineElement(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)629 MediaControlTimelineElement::MediaControlTimelineElement(HTMLMediaElement* mediaElement, MediaControls* controls) 630 630 : MediaControlInputElement(mediaElement, MediaSlider) 631 631 , m_controls(controls) … … 633 633 } 634 634 635 PassRefPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)635 PassRefPtr<MediaControlTimelineElement> MediaControlTimelineElement::create(HTMLMediaElement* mediaElement, MediaControls* controls) 636 636 { 637 637 ASSERT(controls); … … 768 768 // ---------------------------- 769 769 770 inline MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)770 inline MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(HTMLMediaElement* mediaElement, MediaControls* controls) 771 771 : MediaControlInputElement(mediaElement, MediaFullscreenButton) 772 772 , m_controls(controls) … … 774 774 } 775 775 776 PassRefPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElement::create(HTMLMediaElement* mediaElement, MediaControl RootElement* controls)776 PassRefPtr<MediaControlFullscreenButtonElement> MediaControlFullscreenButtonElement::create(HTMLMediaElement* mediaElement, MediaControls* controls) 777 777 { 778 778 ASSERT(controls); -
trunk/Source/WebCore/html/shadow/MediaControlElements.h
r83636 r84222 43 43 class Event; 44 44 class Frame; 45 class MediaControl RootElement;45 class MediaControls; 46 46 47 47 // Must match WebKitSystemInterface.h … … 194 194 class MediaControlPanelMuteButtonElement : public MediaControlMuteButtonElement { 195 195 public: 196 static PassRefPtr<MediaControlPanelMuteButtonElement> create(HTMLMediaElement*, MediaControl RootElement*);197 198 private: 199 MediaControlPanelMuteButtonElement(HTMLMediaElement*, MediaControl RootElement*);200 201 virtual void defaultEventHandler(Event*); 202 virtual const AtomicString& shadowPseudoId() const; 203 204 MediaControl RootElement* m_controls;196 static PassRefPtr<MediaControlPanelMuteButtonElement> create(HTMLMediaElement*, MediaControls*); 197 198 private: 199 MediaControlPanelMuteButtonElement(HTMLMediaElement*, MediaControls*); 200 201 virtual void defaultEventHandler(Event*); 202 virtual const AtomicString& shadowPseudoId() const; 203 204 MediaControls* m_controls; 205 205 }; 206 206 … … 326 326 class MediaControlTimelineElement : public MediaControlInputElement { 327 327 public: 328 static PassRefPtr<MediaControlTimelineElement> create(HTMLMediaElement*, MediaControl RootElement*);328 static PassRefPtr<MediaControlTimelineElement> create(HTMLMediaElement*, MediaControls*); 329 329 330 330 virtual void defaultEventHandler(Event*); … … 333 333 334 334 private: 335 MediaControlTimelineElement(HTMLMediaElement*, MediaControl RootElement*);336 337 virtual const AtomicString& shadowPseudoId() const; 338 339 MediaControl RootElement* m_controls;335 MediaControlTimelineElement(HTMLMediaElement*, MediaControls*); 336 337 virtual const AtomicString& shadowPseudoId() const; 338 339 MediaControls* m_controls; 340 340 }; 341 341 … … 360 360 class MediaControlFullscreenButtonElement : public MediaControlInputElement { 361 361 public: 362 static PassRefPtr<MediaControlFullscreenButtonElement> create(HTMLMediaElement*, MediaControl RootElement*);363 364 virtual void defaultEventHandler(Event*); 365 366 private: 367 MediaControlFullscreenButtonElement(HTMLMediaElement*, MediaControl RootElement*);368 369 virtual const AtomicString& shadowPseudoId() const; 370 371 MediaControl RootElement* m_controls;362 static PassRefPtr<MediaControlFullscreenButtonElement> create(HTMLMediaElement*, MediaControls*); 363 364 virtual void defaultEventHandler(Event*); 365 366 private: 367 MediaControlFullscreenButtonElement(HTMLMediaElement*, MediaControls*); 368 369 virtual const AtomicString& shadowPseudoId() const; 370 371 MediaControls* m_controls; 372 372 }; 373 373 -
trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp
r83804 r84222 30 30 #include "MediaControlRootElement.h" 31 31 32 #include "EventNames.h"33 #include "FloatConversion.h"34 #include "HTMLNames.h"35 32 #include "MediaControlElements.h" 36 #include "MouseEvent.h"37 33 #include "Page.h" 38 #include "RenderLayer.h"39 34 #include "RenderTheme.h" 40 #include <wtf/CurrentTime.h>41 #include <wtf/MathExtras.h>42 43 35 44 36 using namespace std; … … 46 38 namespace WebCore { 47 39 48 using namespace HTMLNames;49 50 40 MediaControlRootElement::MediaControlRootElement(HTMLMediaElement* mediaElement) 51 : HTMLDivElement(divTag, mediaElement->document())41 : MediaControls(mediaElement) 52 42 , m_mediaElement(mediaElement) 53 43 , m_rewindButton(0) … … 75 65 } 76 66 67 PassRefPtr<MediaControls> MediaControls::create(HTMLMediaElement* mediaElement) 68 { 69 return MediaControlRootElement::create(mediaElement); 70 } 71 77 72 PassRefPtr<MediaControlRootElement> MediaControlRootElement::create(HTMLMediaElement* mediaElement) 78 73 { -
trunk/Source/WebCore/html/shadow/MediaControlRootElement.h
r83545 r84222 25 25 */ 26 26 27 #ifndef MediaControl s_h28 #define MediaControl s_h27 #ifndef MediaControlRootElement_h 28 #define MediaControlRootElement_h 29 29 30 30 #if ENABLE(VIDEO) 31 31 32 #include "HTMLDivElement.h" 33 #include "Timer.h" 32 #include "MediaControls.h" 34 33 #include <wtf/RefPtr.h> 35 34 36 35 namespace WebCore { 37 36 38 class HTMLElement;39 37 class HTMLInputElement; 40 38 class HTMLMediaElement; … … 69 67 class RenderMedia; 70 68 71 class MediaControlRootElement : public HTMLDivElement{69 class MediaControlRootElement : public MediaControls { 72 70 public: 73 71 static PassRefPtr<MediaControlRootElement> create(HTMLMediaElement*); 74 72 73 // MediaControls implementation. 75 74 void show(); 76 75 void hide(); … … 129 128 }; 130 129 131 inline MediaControlRootElement* toMediaControls(Node* node)132 {133 ASSERT(node->isHTMLElement());134 return static_cast<MediaControlRootElement*>(node);135 }136 137 130 } 138 131
Note: See TracChangeset
for help on using the changeset viewer.