Changeset 23871

Show
Ignore:
Timestamp:
06/29/07 06:25:55 (2 years ago)
Author:
antti
Message:

Support for HTML5 <video> and <audio> elements

Location:
branches/feature-branch/WebCore
Files:
22 added
32 modified
9 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-branch/WebCore/ChangeLog

    r23849 r23871  
     12007-06-29  Antti Koivisto  <antti@apple.com> 
     2 
     3        Reviewed by Maciej, Weinig. 
     4 
     5        Support for HTML5 <video> and <audio> elements 
     6        http://www.whatwg.org/specs/web-apps/current-work/#video 
     7 
     8        * Configurations/WebCore.xcconfig: 
     9        * DerivedSources.make: 
     10        * WebCore.exp: 
     11        * WebCore.xcodeproj/project.pbxproj: 
     12        * bindings/js/JSHTMLAudioElementConstructor.cpp: Added. 
     13        (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor): 
     14        (WebCore::JSHTMLAudioElementConstructor::implementsConstruct): 
     15        (WebCore::JSHTMLAudioElementConstructor::construct): 
     16        * bindings/js/JSHTMLAudioElementConstructor.h: Added. 
     17        * bindings/js/JSHTMLElementWrapperFactory.cpp: 
     18        (WebCore::createJSHTMLWrapper): 
     19        * bindings/js/kjs_events.cpp: 
     20        (KJS::toJS): 
     21        * bindings/js/kjs_html.cpp: 
     22        (KJS::JSHTMLElement::getOwnPropertySlot): 
     23        * bindings/js/kjs_window.cpp: 
     24        (KJS::Window::getValueProperty): 
     25        * bindings/js/kjs_window.h: 
     26        (KJS::Window::): 
     27        * bindings/scripts/CodeGeneratorJS.pm: 
     28        * dom/Document.cpp: 
     29        (WebCore::Document::createEvent): 
     30        (WebCore::Document::willMoveInToPageCache): 
     31        (WebCore::Document::movedOutFromPageCache): 
     32        (WebCore::Document::registerForPageCacheNotifications): 
     33        (WebCore::Document::unregisterForPageCacheNotifications): 
     34        * dom/Document.h: 
     35        * dom/Element.cpp: 
     36        (WebCore::Element::setBooleanAttribute): 
     37        * dom/Element.h: 
     38        * dom/Event.cpp: 
     39        (WebCore::Event::isProgressEvent): 
     40        * dom/Event.h: 
     41        * dom/EventNames.h: 
     42        * dom/EventTargetNode.cpp: 
     43        (WebCore::EventTargetNode::dispatchProgressEvent): 
     44        * dom/EventTargetNode.h: 
     45        * dom/Node.h: 
     46        * dom/ProgressEvent.cpp: Added. 
     47        (WebCore::ProgressEvent::ProgressEvent): 
     48        (WebCore::ProgressEvent::initProgressEvent): 
     49        (WebCore::ProgressEvent::initProgressEventNS): 
     50        * dom/ProgressEvent.h: Added. 
     51        (WebCore::ProgressEvent::lengthComputable): 
     52        (WebCore::ProgressEvent::loaded): 
     53        (WebCore::ProgressEvent::total): 
     54        (WebCore::ProgressEvent::isProgressEvent): 
     55        * dom/ProgressEvent.idl: Added. 
     56        * history/CachedPage.cpp: 
     57        (WebCore::CachedPage::CachedPage): 
     58        * html/HTMLAttributeNames.in: 
     59        * html/HTMLAudioElement.cpp: Added. 
     60        (WebCore::HTMLAudioElement::HTMLAudioElement): 
     61        * html/HTMLAudioElement.h: Added. 
     62        (WebCore::HTMLAudioElement::tagPriority): 
     63        * html/HTMLAudioElement.idl: Added. 
     64        * html/HTMLElement.cpp: 
     65        (WebCore::inlineTagList): 
     66        * html/HTMLElementFactory.cpp: 
     67        (WebCore::audioConstructor): 
     68        (WebCore::videoConstructor): 
     69        (WebCore::sourceConstructor): 
     70        (WebCore::createFunctionMap): 
     71        * html/HTMLMediaElement.cpp: Added. 
     72        (WebCore::HTMLMediaElement::HTMLMediaElement): 
     73        (WebCore::HTMLMediaElement::~HTMLMediaElement): 
     74        (WebCore::HTMLMediaElement::checkDTD): 
     75        (WebCore::HTMLMediaElement::rendererIsNeeded): 
     76        (WebCore::HTMLMediaElement::createRenderer): 
     77        (WebCore::HTMLMediaElement::insertedIntoDocument): 
     78        (WebCore::HTMLMediaElement::removedFromDocument): 
     79        (WebCore::HTMLMediaElement::scheduleLoad): 
     80        (WebCore::HTMLMediaElement::initAndDispatchProgressEvent): 
     81        (WebCore::HTMLMediaElement::dispatchEventAsync): 
     82        (WebCore::HTMLMediaElement::loadTimerFired): 
     83        (WebCore::HTMLMediaElement::asyncEventTimerFired): 
     84        (WebCore::serializeTimeOffset): 
     85        (WebCore::parseTimeOffset): 
     86        (WebCore::HTMLMediaElement::getTimeOffsetAttribute): 
     87        (WebCore::HTMLMediaElement::setTimeOffsetAttribute): 
     88        (WebCore::HTMLMediaElement::error): 
     89        (WebCore::HTMLMediaElement::src): 
     90        (WebCore::HTMLMediaElement::HTMLMediaElement::setSrc): 
     91        (WebCore::HTMLMediaElement::currentSrc): 
     92        (WebCore::HTMLMediaElement::networkState): 
     93        (WebCore::HTMLMediaElement::bufferingRate): 
     94        (WebCore::HTMLMediaElement::load): 
     95        (WebCore::HTMLMediaElement::movieNetworkStateChanged): 
     96        (WebCore::HTMLMediaElement::movieReadyStateChanged): 
     97        (WebCore::HTMLMediaElement::setReadyState): 
     98        (WebCore::HTMLMediaElement::progressEventTimerFired): 
     99        (WebCore::HTMLMediaElement::seek): 
     100        (WebCore::HTMLMediaElement::readyState): 
     101        (WebCore::HTMLMediaElement::seeking): 
     102        (WebCore::HTMLMediaElement::currentTime): 
     103        (WebCore::HTMLMediaElement::setCurrentTime): 
     104        (WebCore::HTMLMediaElement::duration): 
     105        (WebCore::HTMLMediaElement::paused): 
     106        (WebCore::HTMLMediaElement::defaultPlaybackRate): 
     107        (WebCore::HTMLMediaElement::setDefaultPlaybackRate): 
     108        (WebCore::HTMLMediaElement::playbackRate): 
     109        (WebCore::HTMLMediaElement::setPlaybackRate): 
     110        (WebCore::HTMLMediaElement::ended): 
     111        (WebCore::HTMLMediaElement::autoplay): 
     112        (WebCore::HTMLMediaElement::setAutoplay): 
     113        (WebCore::HTMLMediaElement::play): 
     114        (WebCore::HTMLMediaElement::pause): 
     115        (WebCore::HTMLMediaElement::loopCount): 
     116        (WebCore::HTMLMediaElement::setLoopCount): 
     117        (WebCore::HTMLMediaElement::start): 
     118        (WebCore::HTMLMediaElement::setStart): 
     119        (WebCore::HTMLMediaElement::end): 
     120        (WebCore::HTMLMediaElement::setEnd): 
     121        (WebCore::HTMLMediaElement::loopStart): 
     122        (WebCore::HTMLMediaElement::setLoopStart): 
     123        (WebCore::HTMLMediaElement::loopEnd): 
     124        (WebCore::HTMLMediaElement::setLoopEnd): 
     125        (WebCore::HTMLMediaElement::currentLoop): 
     126        (WebCore::HTMLMediaElement::setCurrentLoop): 
     127        (WebCore::HTMLMediaElement::controls): 
     128        (WebCore::HTMLMediaElement::setControls): 
     129        (WebCore::HTMLMediaElement::volume): 
     130        (WebCore::HTMLMediaElement::setVolume): 
     131        (WebCore::HTMLMediaElement::muted): 
     132        (WebCore::HTMLMediaElement::setMuted): 
     133        (WebCore::HTMLMediaElement::pickMedia): 
     134        (WebCore::HTMLMediaElement::checkIfSeekNeeded): 
     135        (WebCore::HTMLMediaElement::movieVolumeChanged): 
     136        (WebCore::HTMLMediaElement::movieDidEnd): 
     137        (WebCore::HTMLMediaElement::movieCuePointReached): 
     138        (WebCore::HTMLMediaElement::addCuePoint): 
     139        (WebCore::HTMLMediaElement::removeCuePoint): 
     140        (WebCore::HTMLMediaElement::buffered): 
     141        (WebCore::HTMLMediaElement::played): 
     142        (WebCore::HTMLMediaElement::seekable): 
     143        (WebCore::HTMLMediaElement::effectiveStart): 
     144        (WebCore::HTMLMediaElement::effectiveEnd): 
     145        (WebCore::HTMLMediaElement::effectiveLoopStart): 
     146        (WebCore::HTMLMediaElement::effectiveLoopEnd): 
     147        (WebCore::HTMLMediaElement::activelyPlaying): 
     148        (WebCore::HTMLMediaElement::endedPlayback): 
     149        (WebCore::HTMLMediaElement::documentWillMoveInToPageCache): 
     150        (WebCore::HTMLMediaElement::documentMovedOutFromPageCache): 
     151        * html/HTMLMediaElement.h: Added. 
     152        (WebCore::HTMLMediaElement::movie): 
     153        (WebCore::HTMLMediaElement::isVideo): 
     154        (WebCore::HTMLMediaElement::): 
     155        (WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry): 
     156        * html/HTMLMediaElement.idl: Added. 
     157        * html/HTMLSourceElement.cpp: Added. 
     158        (WebCore::HTMLSourceElement::HTMLSourceElement): 
     159        (WebCore::HTMLSourceElement::~HTMLSourceElement): 
     160        (WebCore::HTMLSourceElement::insertedIntoDocument): 
     161        (WebCore::HTMLSourceElement::src): 
     162        (WebCore::HTMLSourceElement::setSrc): 
     163        (WebCore::HTMLSourceElement::media): 
     164        (WebCore::HTMLSourceElement::setMedia): 
     165        (WebCore::HTMLSourceElement::type): 
     166        (WebCore::HTMLSourceElement::setType): 
     167        * html/HTMLSourceElement.h: Added. 
     168        (WebCore::HTMLSourceElement::endTagRequirement): 
     169        (WebCore::HTMLSourceElement::tagPriority): 
     170        * html/HTMLSourceElement.idl: Added. 
     171        * html/HTMLTagNames.in: 
     172        * html/HTMLVideoElement.cpp: Added. 
     173        (WebCore::HTMLVideoElement::HTMLVideoElement): 
     174        (WebCore::HTMLVideoElement::videoWidth): 
     175        (WebCore::HTMLVideoElement::videoHeight): 
     176        * html/HTMLVideoElement.h: Added. 
     177        (WebCore::HTMLVideoElement::tagPriority): 
     178        (WebCore::HTMLVideoElement::isVideo): 
     179        * html/HTMLVideoElement.idl: Added. 
     180        * html/MediaError.h: Added. 
     181        (WebCore::MediaError::): 
     182        (WebCore::MediaError::MediaError): 
     183        (WebCore::MediaError::code): 
     184        * html/MediaError.idl: Added. 
     185        * html/TimeRanges.cpp: Added. 
     186        (TimeRanges::TimeRanges): 
     187        (TimeRanges::start): 
     188        (TimeRanges::end): 
     189        (TimeRanges::add): 
     190        (TimeRanges::contain): 
     191        * html/TimeRanges.h: Added. 
     192        (WebCore::TimeRanges::TimeRanges): 
     193        (WebCore::TimeRanges::length): 
     194        (WebCore::TimeRanges::Range::Range): 
     195        * html/TimeRanges.idl: Added. 
     196        * html/VoidCallback.cpp: Added. 
     197        (VoidCallback::VoidCallback): 
     198        (VoidCallback::~VoidCallback): 
     199        (VoidCallback::handleEvent): 
     200        (VoidCallback::execute): 
     201        (VoidCallback::operator==): 
     202        (WebCore::toVoidCallback): 
     203        * html/VoidCallback.h: Added. 
     204        * html/VoidCallback.idl: Added. 
     205        * loader/FrameLoader.cpp: 
     206        (WebCore::FrameLoader::open): 
     207        * page/DOMWindow.idl: 
     208        * platform/MimeTypeRegistry.cpp: 
     209        (WebCore::initialiseSupportedMovieMIMETypes): 
     210        (WebCore::initialiseMimeTypeRegistry): 
     211        (WebCore::MimeTypeRegistry::isSupportedMovieMIMEType): 
     212        * platform/MimeTypeRegistry.h: 
     213        * platform/graphics/Movie.cpp: Added. 
     214        (WebCore::Movie::Movie): 
     215        (WebCore::Movie::~Movie): 
     216        (WebCore::Movie::load): 
     217        (WebCore::Movie::cancelLoad): 
     218        (WebCore::Movie::play): 
     219        (WebCore::Movie::pause): 
     220        (WebCore::Movie::duration): 
     221        (WebCore::Movie::currentTime): 
     222        (WebCore::Movie::seek): 
     223        (WebCore::Movie::paused): 
     224        (WebCore::Movie::seeking): 
     225        (WebCore::Movie::naturalSize): 
     226        (WebCore::Movie::hasVideo): 
     227        (WebCore::Movie::networkState): 
     228        (WebCore::Movie::readyState): 
     229        (WebCore::Movie::volume): 
     230        (WebCore::Movie::setVolume): 
     231        (WebCore::Movie::rate): 
     232        (WebCore::Movie::setRate): 
     233        (WebCore::Movie::muted): 
     234        (WebCore::Movie::setMuted): 
     235        (WebCore::Movie::dataRate): 
     236        (WebCore::Movie::setEndTime): 
     237        (WebCore::Movie::addCuePoint): 
     238        (WebCore::Movie::removeCuePoint): 
     239        (WebCore::Movie::clearCuePoints): 
     240        (WebCore::Movie::maxTimeBuffered): 
     241        (WebCore::Movie::maxTimeSeekable): 
     242        (WebCore::Movie::bytesLoaded): 
     243        (WebCore::Movie::totalBytesKnown): 
     244        (WebCore::Movie::totalBytes): 
     245        (WebCore::Movie::setRect): 
     246        (WebCore::Movie::visible): 
     247        (WebCore::Movie::setVisible): 
     248        (WebCore::Movie::paint): 
     249        (WebCore::Movie::getSupportedTypes): 
     250        (WebCore::Movie::networkStateChanged): 
     251        (WebCore::Movie::readyStateChanged): 
     252        (WebCore::Movie::volumeChanged): 
     253        (WebCore::Movie::didEnd): 
     254        (WebCore::Movie::cuePointReached): 
     255        * platform/graphics/Movie.h: Added. 
     256        (WebCore::MovieClient::~MovieClient): 
     257        (WebCore::MovieClient::movieNetworkStateChanged): 
     258        (WebCore::MovieClient::movieReadyStateChanged): 
     259        (WebCore::MovieClient::movieVolumeChanged): 
     260        (WebCore::MovieClient::movieDidEnd): 
     261        (WebCore::MovieClient::movieCuePointReached): 
     262        (WebCore::Movie::parentWidget): 
     263        (WebCore::Movie::setParentWidget): 
     264        (WebCore::Movie::rect): 
     265        (WebCore::Movie::): 
     266        * platform/graphics/mac/MoviePrivateQTKit.h: Added. 
     267        * platform/graphics/mac/MoviePrivateQTKit.mm: Added. 
     268        (WebCore::MoviePrivate::MoviePrivate): 
     269        (WebCore::MoviePrivate::~MoviePrivate): 
     270        (WebCore::MoviePrivate::createQTMovie): 
     271        (WebCore::MoviePrivate::createQTMovieView): 
     272        (WebCore::MoviePrivate::createQTTime): 
     273        (WebCore::MoviePrivate::load): 
     274        (WebCore::MoviePrivate::play): 
     275        (WebCore::MoviePrivate::pause): 
     276        (WebCore::MoviePrivate::duration): 
     277        (WebCore::MoviePrivate::currentTime): 
     278        (WebCore::MoviePrivate::seek): 
     279        (WebCore::MoviePrivate::setEndTime): 
     280        (WebCore::MoviePrivate::addCuePoint): 
     281        (WebCore::MoviePrivate::removeCuePoint): 
     282        (WebCore::MoviePrivate::clearCuePoints): 
     283        (WebCore::MoviePrivate::startCuePointTimerIfNeeded): 
     284        (WebCore::MoviePrivate::cancelSeek): 
     285        (WebCore::MoviePrivate::seekTimerFired): 
     286        (WebCore::MoviePrivate::cuePointTimerFired): 
     287        (WebCore::MoviePrivate::paused): 
     288        (WebCore::MoviePrivate::seeking): 
     289        (WebCore::MoviePrivate::naturalSize): 
     290        (WebCore::MoviePrivate::hasVideo): 
     291        (WebCore::MoviePrivate::setVolume): 
     292        (WebCore::MoviePrivate::setMuted): 
     293        (WebCore::MoviePrivate::setRate): 
     294        (WebCore::MoviePrivate::dataRate): 
     295        (WebCore::MoviePrivate::networkState): 
     296        (WebCore::MoviePrivate::readyState): 
     297        (WebCore::MoviePrivate::maxTimeBuffered): 
     298        (WebCore::MoviePrivate::maxTimeSeekable): 
     299        (WebCore::MoviePrivate::maxTimeLoaded): 
     300        (WebCore::MoviePrivate::bytesLoaded): 
     301        (WebCore::MoviePrivate::totalBytesKnown): 
     302        (WebCore::MoviePrivate::totalBytes): 
     303        (WebCore::MoviePrivate::cancelLoad): 
     304        (WebCore::MoviePrivate::updateStates): 
     305        (WebCore::MoviePrivate::loadStateChanged): 
     306        (WebCore::MoviePrivate::rateChanged): 
     307        (WebCore::MoviePrivate::sizeChanged): 
     308        (WebCore::MoviePrivate::timeChanged): 
     309        (WebCore::MoviePrivate::volumeChanged): 
     310        (WebCore::MoviePrivate::didEnd): 
     311        (WebCore::MoviePrivate::setRect): 
     312        (WebCore::MoviePrivate::setVisible): 
     313        (WebCore::MoviePrivate::paint): 
     314        (WebCore::MoviePrivate::getSupportedTypes): 
     315        (-[WebCoreMovieObserver loadStateChanged:]): 
     316        (-[WebCoreMovieObserver rateChanged:]): 
     317        (-[WebCoreMovieObserver sizeChanged:]): 
     318        (-[WebCoreMovieObserver timeChanged:]): 
     319        (-[WebCoreMovieObserver volumeChanged:]): 
     320        (-[WebCoreMovieObserver didEnd:]): 
     321        (-[WebCoreMovieObserver setCallback:WebCore::]): 
     322        * platform/mac/WebCoreSystemInterface.h: 
     323        * platform/mac/WebCoreSystemInterface.mm: 
     324        * rendering/RenderVideo.cpp: Added. 
     325        (WebCore::RenderVideo::RenderVideo): 
     326        (WebCore::RenderVideo::~RenderVideo): 
     327        (WebCore::RenderVideo::movie): 
     328        (WebCore::RenderVideo::videoSizeChanged): 
     329        (WebCore::RenderVideo::paint): 
     330        (WebCore::RenderVideo::layout): 
     331        (WebCore::RenderVideo::updateFromElement): 
     332        (WebCore::RenderVideo::updateMovie): 
     333        (WebCore::RenderVideo::isWidthSpecified): 
     334        (WebCore::RenderVideo::isHeightSpecified): 
     335        (WebCore::RenderVideo::calcReplacedWidth): 
     336        (WebCore::RenderVideo::calcReplacedHeight): 
     337        (WebCore::RenderVideo::calcAspectRatioWidth): 
     338        (WebCore::RenderVideo::calcAspectRatioHeight): 
     339        (WebCore::RenderVideo::calcPrefWidths): 
     340        * rendering/RenderVideo.h: Added. 
     341        (WebCore::RenderVideo::renderName): 
     342 
    13432007-06-28  Rob Buis  <buis@kde.org> 
    2344 
  • branches/feature-branch/WebCore/Configurations/WebCore.xcconfig

    r20445 r23871  
    66EXPORTED_SYMBOLS_FILE_ppc64 = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/WebCore.LP64.exp; 
    77EXPORTED_SYMBOLS_FILE_x86_64 = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/WebCore.LP64.exp; 
    8 FEATURE_DEFINES = ENABLE_SVG ENABLE_XPATH ENABLE_XSLT; 
     8FEATURE_DEFINES = ENABLE_SVG ENABLE_XPATH ENABLE_XSLT ENABLE_VIDEO; 
    99GCC_PREFIX_HEADER = WebCorePrefix.h; 
    1010GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(FEATURE_DEFINES) $(GCC_PREPROCESSOR_DEFINITIONS); 
  • branches/feature-branch/WebCore/DerivedSources.make

    r21607 r23871  
    326326    JSHTMLAnchorElement.h \ 
    327327    JSHTMLAreaElement.h \ 
     328    JSHTMLAudioElement.h \ 
    328329    JSHTMLBaseElement.h \ 
    329330    JSHTMLBaseFontElement.h \ 
     
    354355    JSHTMLLinkElement.h \ 
    355356    JSHTMLMenuElement.h \ 
     357    JSHTMLMediaElement.h \ 
    356358    JSHTMLOptionElement.h \ 
    357359    JSHTMLOptionsCollection.h \ 
     
    367369    JSHTMLScriptElement.h \ 
    368370    JSHTMLSelectElement.h \ 
     371    JSHTMLSourceElement.h \ 
    369372    JSHTMLStyleElement.h \ 
    370373    JSHTMLTextAreaElement.h \ 
    371374    JSHTMLTitleElement.h \ 
    372375    JSHTMLUListElement.h \ 
     376    JSHTMLVideoElement.h \ 
    373377    JSKeyboardEvent.h \ 
     378    JSMediaError.h \ 
    374379    JSMouseEvent.h \ 
    375380    JSMutationEvent.h \ 
     
    380385    JSOverflowEvent.h \ 
    381386    JSProcessingInstruction.h \ 
     387    JSProgressEvent.h \ 
    382388    JSRange.h \ 
    383389    JSRangeException.h \ 
     
    508514    JSText.h \ 
    509515    JSTextEvent.h \ 
     516    JSTimeRanges.h \ 
    510517    JSTreeWalker.h \ 
    511518    JSUIEvent.h \ 
     519    JSVoidCallback.h \ 
    512520    JSXPathEvaluator.h \ 
    513521    JSXPathExpression.h \ 
  • branches/feature-branch/WebCore/WebCore.exp

    r21307 r23871  
    673673_wkPathFromFont 
    674674_wkPopupMenu 
     675_wkQTMovieDataRate 
     676_wkQTMovieMaxTimeLoaded 
    675677_wkReleaseStyleGroup 
    676678_wkSecondsSinceLastInputEvent 
  • branches/feature-branch/WebCore/WebCore.xcodeproj/project.pbxproj

    r23554 r23871  
    29182918                E1F0424609839389006694EA /* xmlhttprequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1F0424409839389006694EA /* xmlhttprequest.cpp */; }; 
    29192919                E1F0424709839389006694EA /* xmlhttprequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E1F0424509839389006694EA /* xmlhttprequest.h */; }; 
     2920                E45AB6280C288B5800FD26CA /* RenderVideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E45AB6260C288B5800FD26CA /* RenderVideo.cpp */; }; 
     2921                E45AB6290C288B5800FD26CA /* RenderVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = E45AB6270C288B5800FD26CA /* RenderVideo.h */; }; 
     2922                E45AB6760C28981D00FD26CA /* HTMLAudioElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF484E0BF2052100E56FAD /* HTMLAudioElement.cpp */; }; 
     2923                E45AB6770C28982000FD26CA /* HTMLAudioElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF484F0BF2052100E56FAD /* HTMLAudioElement.h */; }; 
     2924                E45AB6780C28982100FD26CA /* HTMLMediaElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48540BF2053000E56FAD /* HTMLMediaElement.cpp */; }; 
     2925                E45AB67A0C28984400FD26CA /* HTMLMediaElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48550BF2053000E56FAD /* HTMLMediaElement.h */; }; 
     2926                E45AB67B0C28984500FD26CA /* HTMLSourceElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF485A0BF2054000E56FAD /* HTMLSourceElement.cpp */; }; 
     2927                E45AB67C0C28984500FD26CA /* HTMLSourceElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF485B0BF2054000E56FAD /* HTMLSourceElement.h */; }; 
     2928                E45AB67D0C28985500FD26CA /* HTMLVideoElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48600BF2054B00E56FAD /* HTMLVideoElement.cpp */; }; 
     2929                E45AB67E0C28985500FD26CA /* HTMLVideoElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48610BF2054B00E56FAD /* HTMLVideoElement.h */; }; 
     2930                E45AB67F0C28986100FD26CA /* MediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = E4312D2B0C03564500B492EA /* MediaError.h */; }; 
     2931                E45AB6800C28986800FD26CA /* TimeRanges.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF52E20BF87EEB00E56FAD /* TimeRanges.cpp */; }; 
     2932                E45AB6810C28986900FD26CA /* TimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF52E10BF87EEB00E56FAD /* TimeRanges.h */; }; 
     2933                E45AB6820C28987800FD26CA /* VoidCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47F73880C233A3700C94EE5 /* VoidCallback.cpp */; }; 
     2934                E45AB6830C28987900FD26CA /* VoidCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = E47F73890C233A3700C94EE5 /* VoidCallback.h */; }; 
     2935                E45AB6950C28991000FD26CA /* JSTimeRanges.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF55E30BF8957A00E56FAD /* JSTimeRanges.cpp */; }; 
     2936                E45AB6960C28991100FD26CA /* JSTimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF55E40BF8957A00E56FAD /* JSTimeRanges.h */; }; 
     2937                E45AB6970C28991F00FD26CA /* JSProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E43127FB0C033A8F00B492EA /* JSProgressEvent.h */; }; 
     2938                E45AB6980C28991F00FD26CA /* JSHTMLVideoElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48DB0BF2171900E56FAD /* JSHTMLVideoElement.cpp */; }; 
     2939                E45AB6990C28992C00FD26CA /* JSHTMLVideoElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48DC0BF2171900E56FAD /* JSHTMLVideoElement.h */; }; 
     2940                E45AB69A0C28992D00FD26CA /* JSHTMLMediaElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48E40BF2173300E56FAD /* JSHTMLMediaElement.cpp */; }; 
     2941                E45AB69B0C28992D00FD26CA /* JSHTMLAudioElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48D70BF2170800E56FAD /* JSHTMLAudioElement.cpp */; }; 
     2942                E45AB69C0C28992E00FD26CA /* JSProgressEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43127FA0C033A8F00B492EA /* JSProgressEvent.cpp */; }; 
     2943                E45AB69D0C28992F00FD26CA /* JSHTMLSourceElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48FF0BF2174500E56FAD /* JSHTMLSourceElement.cpp */; }; 
     2944                E45AB69E0C28992F00FD26CA /* JSHTMLAudioElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48D80BF2170800E56FAD /* JSHTMLAudioElement.h */; }; 
     2945                E45AB69F0C28993100FD26CA /* JSHTMLMediaElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48E50BF2173300E56FAD /* JSHTMLMediaElement.h */; }; 
     2946                E45AB6A00C28993100FD26CA /* JSHTMLSourceElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF49000BF2174500E56FAD /* JSHTMLSourceElement.h */; }; 
     2947                E45AB6A10C28993100FD26CA /* JSMediaError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48E00BF2172300E56FAD /* JSMediaError.cpp */; }; 
     2948                E45AB6A20C28993200FD26CA /* JSMediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48E10BF2172300E56FAD /* JSMediaError.h */; }; 
     2949                E45AB6A30C28994700FD26CA /* JSHTMLAudioElementConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = E47E82850C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.h */; }; 
     2950                E45AB6A40C28994B00FD26CA /* JSHTMLAudioElementConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47E82840C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.cpp */; }; 
     2951                E45AB6A80C28996300FD26CA /* ProgressEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43127620C03313B00B492EA /* ProgressEvent.cpp */; }; 
     2952                E45AB6A90C28996400FD26CA /* ProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = E43127630C03313B00B492EA /* ProgressEvent.h */; }; 
     2953                E45AB6B40C28998900FD26CA /* Movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AF48480BF204C400E56FAD /* Movie.cpp */; }; 
     2954                E45AB6B50C28998900FD26CA /* Movie.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AF48490BF204C400E56FAD /* Movie.h */; }; 
     2955                E45AB6B60C28998A00FD26CA /* MoviePrivateQTKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E43115350BFDF1A900B492EA /* MoviePrivateQTKit.h */; }; 
     2956                E45AB6B70C28998A00FD26CA /* MoviePrivateQTKit.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4AF484C0BF204DD00E56FAD /* MoviePrivateQTKit.mm */; }; 
     2957                E4AF48D20BF2166400E56FAD /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4AF48D10BF2166400E56FAD /* QTKit.framework */; }; 
    29202958                ED048ABC0833F132006E1E67 /* textAreaResizeCorner.tiff in Resources */ = {isa = PBXBuildFile; fileRef = ED048ABB0833F132006E1E67 /* textAreaResizeCorner.tiff */; }; 
    29212959                ED2BA83C09A24B91006C0AC4 /* DocumentMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */; settings = {ATTRIBUTES = (Private, ); }; }; 
     
    61466184                E1F0424409839389006694EA /* xmlhttprequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmlhttprequest.cpp; sourceTree = "<group>"; }; 
    61476185                E1F0424509839389006694EA /* xmlhttprequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xmlhttprequest.h; sourceTree = "<group>"; }; 
     6186                E43115350BFDF1A900B492EA /* MoviePrivateQTKit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MoviePrivateQTKit.h; sourceTree = "<group>"; }; 
     6187                E43127620C03313B00B492EA /* ProgressEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProgressEvent.cpp; sourceTree = "<group>"; }; 
     6188                E43127630C03313B00B492EA /* ProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProgressEvent.h; sourceTree = "<group>"; }; 
     6189                E43127640C03313B00B492EA /* ProgressEvent.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ProgressEvent.idl; sourceTree = "<group>"; }; 
     6190                E43127FA0C033A8F00B492EA /* JSProgressEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSProgressEvent.cpp; sourceTree = "<group>"; }; 
     6191                E43127FB0C033A8F00B492EA /* JSProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSProgressEvent.h; sourceTree = "<group>"; }; 
     6192                E4312D2B0C03564500B492EA /* MediaError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MediaError.h; sourceTree = "<group>"; }; 
     6193                E4312D2C0C03564500B492EA /* MediaError.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = MediaError.idl; sourceTree = "<group>"; }; 
     6194                E4314E4F0C03C58700B492EA /* VoidCallback.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = VoidCallback.idl; sourceTree = "<group>"; }; 
     6195                E45AB6260C288B5800FD26CA /* RenderVideo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderVideo.cpp; sourceTree = "<group>"; }; 
     6196                E45AB6270C288B5800FD26CA /* RenderVideo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderVideo.h; sourceTree = "<group>"; }; 
     6197                E47E82840C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLAudioElementConstructor.cpp; sourceTree = "<group>"; }; 
     6198                E47E82850C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLAudioElementConstructor.h; sourceTree = "<group>"; }; 
     6199                E47F73880C233A3700C94EE5 /* VoidCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = VoidCallback.cpp; sourceTree = "<group>"; }; 
     6200                E47F73890C233A3700C94EE5 /* VoidCallback.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VoidCallback.h; sourceTree = "<group>"; }; 
     6201                E4AF48480BF204C400E56FAD /* Movie.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Movie.cpp; sourceTree = "<group>"; }; 
     6202                E4AF48490BF204C400E56FAD /* Movie.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Movie.h; sourceTree = "<group>"; }; 
     6203                E4AF484C0BF204DD00E56FAD /* MoviePrivateQTKit.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = MoviePrivateQTKit.mm; sourceTree = "<group>"; }; 
     6204                E4AF484E0BF2052100E56FAD /* HTMLAudioElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLAudioElement.cpp; sourceTree = "<group>"; }; 
     6205                E4AF484F0BF2052100E56FAD /* HTMLAudioElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLAudioElement.h; sourceTree = "<group>"; }; 
     6206                E4AF48500BF2052100E56FAD /* HTMLAudioElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = HTMLAudioElement.idl; sourceTree = "<group>"; }; 
     6207                E4AF48540BF2053000E56FAD /* HTMLMediaElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLMediaElement.cpp; sourceTree = "<group>"; }; 
     6208                E4AF48550BF2053000E56FAD /* HTMLMediaElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLMediaElement.h; sourceTree = "<group>"; }; 
     6209                E4AF48560BF2053000E56FAD /* HTMLMediaElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = HTMLMediaElement.idl; sourceTree = "<group>"; }; 
     6210                E4AF485A0BF2054000E56FAD /* HTMLSourceElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLSourceElement.cpp; sourceTree = "<group>"; }; 
     6211                E4AF485B0BF2054000E56FAD /* HTMLSourceElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLSourceElement.h; sourceTree = "<group>"; }; 
     6212                E4AF485C0BF2054000E56FAD /* HTMLSourceElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = HTMLSourceElement.idl; sourceTree = "<group>"; }; 
     6213                E4AF48600BF2054B00E56FAD /* HTMLVideoElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLVideoElement.cpp; sourceTree = "<group>"; }; 
     6214                E4AF48610BF2054B00E56FAD /* HTMLVideoElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTMLVideoElement.h; sourceTree = "<group>"; }; 
     6215                E4AF48620BF2054B00E56FAD /* HTMLVideoElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = HTMLVideoElement.idl; sourceTree = "<group>"; }; 
     6216                E4AF48D10BF2166400E56FAD /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; 
     6217                E4AF48D70BF2170800E56FAD /* JSHTMLAudioElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLAudioElement.cpp; sourceTree = "<group>"; }; 
     6218                E4AF48D80BF2170800E56FAD /* JSHTMLAudioElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLAudioElement.h; sourceTree = "<group>"; }; 
     6219                E4AF48DB0BF2171900E56FAD /* JSHTMLVideoElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLVideoElement.cpp; sourceTree = "<group>"; }; 
     6220                E4AF48DC0BF2171900E56FAD /* JSHTMLVideoElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLVideoElement.h; sourceTree = "<group>"; }; 
     6221                E4AF48E00BF2172300E56FAD /* JSMediaError.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaError.cpp; sourceTree = "<group>"; }; 
     6222                E4AF48E10BF2172300E56FAD /* JSMediaError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSMediaError.h; sourceTree = "<group>"; }; 
     6223                E4AF48E40BF2173300E56FAD /* JSHTMLMediaElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLMediaElement.cpp; sourceTree = "<group>"; }; 
     6224                E4AF48E50BF2173300E56FAD /* JSHTMLMediaElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLMediaElement.h; sourceTree = "<group>"; }; 
     6225                E4AF48FF0BF2174500E56FAD /* JSHTMLSourceElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLSourceElement.cpp; sourceTree = "<group>"; }; 
     6226                E4AF49000BF2174500E56FAD /* JSHTMLSourceElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLSourceElement.h; sourceTree = "<group>"; }; 
     6227                E4AF52E00BF87EEB00E56FAD /* TimeRanges.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = TimeRanges.idl; sourceTree = "<group>"; }; 
     6228                E4AF52E10BF87EEB00E56FAD /* TimeRanges.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TimeRanges.h; sourceTree = "<group>"; }; 
     6229                E4AF52E20BF87EEB00E56FAD /* TimeRanges.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TimeRanges.cpp; sourceTree = "<group>"; }; 
     6230                E4AF55E30BF8957A00E56FAD /* JSTimeRanges.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSTimeRanges.cpp; sourceTree = "<group>"; }; 
     6231                E4AF55E40BF8957A00E56FAD /* JSTimeRanges.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSTimeRanges.h; sourceTree = "<group>"; }; 
    61486232                ED048ABB0833F132006E1E67 /* textAreaResizeCorner.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = textAreaResizeCorner.tiff; sourceTree = "<group>"; }; 
    61496233                ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentMarker.h; sourceTree = "<group>"; }; 
     
    62116295                                937256100A61564200B053B9 /* libsqlite3.dylib in Frameworks */, 
    62126296                                1CFAE3230A6D6A3F0032593D /* libobjc.dylib in Frameworks */, 
     6297                                E4AF48D20BF2166400E56FAD /* QTKit.framework in Frameworks */, 
    62136298                        ); 
    62146299                        runOnlyForDeploymentPostprocessing = 0; 
     
    62726357                                DD763BB10992C2C900740B8E /* libxml2.dylib */, 
    62736358                                840633070731A77200DB1FD1 /* libxslt.dylib */, 
     6359                                E4AF48D10BF2166400E56FAD /* QTKit.framework */, 
    62746360                                A85D7A2F0879EBA9006A9172 /* QuartzCore.framework */, 
    62756361                        ); 
     
    63226408                        isa = PBXGroup; 
    63236409                        children = ( 
     6410                                E43127FA0C033A8F00B492EA /* JSProgressEvent.cpp */, 
     6411                                E43127FB0C033A8F00B492EA /* JSProgressEvent.h */, 
     6412                                E4AF55E30BF8957A00E56FAD /* JSTimeRanges.cpp */, 
     6413                                E4AF55E40BF8957A00E56FAD /* JSTimeRanges.h */, 
     6414                                E4AF48D70BF2170800E56FAD /* JSHTMLAudioElement.cpp */, 
     6415                                E4AF48D80BF2170800E56FAD /* JSHTMLAudioElement.h */, 
     6416                                E4AF48E40BF2173300E56FAD /* JSHTMLMediaElement.cpp */, 
     6417                                E4AF48E50BF2173300E56FAD /* JSHTMLMediaElement.h */, 
     6418                                E4AF48DB0BF2171900E56FAD /* JSHTMLVideoElement.cpp */, 
     6419                                E4AF48DC0BF2171900E56FAD /* JSHTMLVideoElement.h */, 
     6420                                E4AF48FF0BF2174500E56FAD /* JSHTMLSourceElement.cpp */, 
     6421                                E4AF49000BF2174500E56FAD /* JSHTMLSourceElement.h */, 
     6422                                E4AF48E00BF2172300E56FAD /* JSMediaError.cpp */, 
     6423                                E4AF48E10BF2172300E56FAD /* JSMediaError.h */, 
    63246424                                65DF31D809D1C122000BE325 /* JSAttr.cpp */, 
    63256425                                65DF31D909D1C123000BE325 /* JSAttr.h */, 
     
    80868186                                A8EA7D260A19385500A8EF5F /* HTMLAreaElement.h */, 
    80878187                                1AE2A9F00A1CDA5700B42B25 /* HTMLAreaElement.idl */, 
     8188                                E4AF484E0BF2052100E56FAD /* HTMLAudioElement.cpp */, 
     8189                                E4AF484F0BF2052100E56FAD /* HTMLAudioElement.h */, 
     8190                                E4AF48500BF2052100E56FAD /* HTMLAudioElement.idl */, 
    80888191                                A871DC1E0A15205700B12A68 /* HTMLBaseElement.cpp */, 
    80898192                                A871DC130A15205700B12A68 /* HTMLBaseElement.h */, 
     
    81988301                                A8EA7C9E0A192B9C00A8EF5F /* HTMLMarqueeElement.cpp */, 
    81998302                                A8EA7C9D0A192B9C00A8EF5F /* HTMLMarqueeElement.h */, 
     8303                                E4AF48540BF2053000E56FAD /* HTMLMediaElement.cpp */, 
     8304                                E4AF48550BF2053000E56FAD /* HTMLMediaElement.h */, 
     8305                                E4AF48560BF2053000E56FAD /* HTMLMediaElement.idl */, 
    82008306                                A8EA79EC0A1916DF00A8EF5F /* HTMLMenuElement.cpp */, 
    82018307                                A8EA79E80A1916DF00A8EF5F /* HTMLMenuElement.h */, 
     
    82468352                                A81369BC097374F500D74463 /* HTMLSelectElement.h */, 
    82478353                                855542990AA4938800BA89F2 /* HTMLSelectElement.idl */, 
     8354                                E4AF485A0BF2054000E56FAD /* HTMLSourceElement.cpp */, 
     8355                                E4AF485B0BF2054000E56FAD /* HTMLSourceElement.h */, 
     8356                                E4AF485C0BF2054000E56FAD /* HTMLSourceElement.idl */, 
    82488357                                A871DC1A0A15205700B12A68 /* HTMLStyleElement.cpp */, 
    82498358                                A871DC170A15205700B12A68 /* HTMLStyleElement.h */, 
     
    82828391                                A8EA79E60A1916DF00A8EF5F /* HTMLUListElement.h */, 
    82838392                                1A85B1D50A1B236C00D8C87C /* HTMLUListElement.idl */, 
     8393                                E4AF48600BF2054B00E56FAD /* HTMLVideoElement.cpp */, 
     8394                                E4AF48610BF2054B00E56FAD /* HTMLVideoElement.h */, 
     8395                                E4AF48620BF2054B00E56FAD /* HTMLVideoElement.idl */, 
    82848396                                BCCD74E40A4C8DDF005FDA6D /* HTMLViewSourceDocument.cpp */, 
    82858397                                BCCD74DB0A4C8D35005FDA6D /* HTMLViewSourceDocument.h */, 
     8398                                E4312D2B0C03564500B492EA /* MediaError.h */, 
     8399                                E4312D2C0C03564500B492EA /* MediaError.idl */, 
     8400                                E4AF52E10BF87EEB00E56FAD /* TimeRanges.h */, 
     8401                                E4AF52E00BF87EEB00E56FAD /* TimeRanges.idl */, 
     8402                                E4AF52E20BF87EEB00E56FAD /* TimeRanges.cpp */, 
     8403                                E47F73880C233A3700C94EE5 /* VoidCallback.cpp */, 
     8404                                E47F73890C233A3700C94EE5 /* VoidCallback.h */, 
     8405                                E4314E4F0C03C58700B492EA /* VoidCallback.idl */, 
    82868406                        ); 
    82878407                        path = html; 
     
    87648884                                B27535500B053814002CE64F /* IntRectMac.mm */, 
    87658885                                B27535510B053814002CE64F /* IntSizeMac.mm */, 
     8886                                E43115350BFDF1A900B492EA /* MoviePrivateQTKit.h */, 
     8887                                E4AF484C0BF204DD00E56FAD /* MoviePrivateQTKit.mm */, 
    87668888                        ); 
    87678889                        path = mac; 
     
    88038925                                B27535480B053814002CE64F /* IntSizeHash.h */, 
    88048926                                B27535490B053814002CE64F /* mac */, 
     8927                                E4AF48480BF204C400E56FAD /* Movie.cpp */, 
     8928                                E4AF48490BF204C400E56FAD /* Movie.h */, 
    88058929                                B27535520B053814002CE64F /* Path.cpp */, 
    88068930                                A88DD4860B4629A300C02990 /* PathTraversalState.h */, 
     
    89999123                                E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */, 
    90009124                                929264760B61FC7200B41D34 /* JSDocumentCustom.cpp */, 
     9125                                E47E82840C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.cpp */, 
     9126                                E47E82850C19B3A500D02DC1 /* JSHTMLAudioElementConstructor.h */, 
    90019127                                938E65F609F0985D008A48EC /* JSHTMLElementWrapperFactory.cpp */, 
    90029128                                938E65F009F09840008A48EC /* JSHTMLElementWrapperFactory.h */, 
     
    94879613                        isa = PBXGroup; 
    94889614                        children = ( 
     9615                                E45AB6260C288B5800FD26CA /* RenderVideo.cpp */, 
     9616                                E45AB6270C288B5800FD26CA /* RenderVideo.h */, 
    94899617                                AA31B5B20C1DFD1000AE7083 /* RenderSVGRoot.cpp */, 
    94909618                                AA31B5B30C1DFD1000AE7083 /* RenderSVGRoot.h */, 
     
    97679895                                A8EA7EB40A1945D000A8EF5F /* ProcessingInstruction.h */, 
    97689896                                93EEC1F509C2877700C515D1 /* ProcessingInstruction.idl */, 
     9897                                E43127620C03313B00B492EA /* ProgressEvent.cpp */, 
     9898                                E43127630C03313B00B492EA /* ProgressEvent.h */, 
     9899                                E43127640C03313B00B492EA /* ProgressEvent.idl */, 
    97699900                                550A0BC7085F6039007353D6 /* QualifiedName.cpp */, 
    97709901                                550A0BC8085F6039007353D6 /* QualifiedName.h */, 
     
    1130411435                                A8F4FB940C169E7B002AFED5 /* SVGRenderSupport.h in Headers */, 
    1130511436                                AA31B5B50C1DFD1000AE7083 /* RenderSVGRoot.h in Headers */, 
     11437                                E45AB6290C288B5800FD26CA /* RenderVideo.h in Headers */, 
     11438                                E45AB6770C28982000FD26CA /* HTMLAudioElement.h in Headers */, 
     11439                                E45AB67A0C28984400FD26CA /* HTMLMediaElement.h in Headers */, 
     11440                                E45AB67C0C28984500FD26CA /* HTMLSourceElement.h in Headers */, 
     11441                                E45AB67E0C28985500FD26CA /* HTMLVideoElement.h in Headers */, 
     11442                                E45AB67F0C28986100FD26CA /* MediaError.h in Headers */, 
     11443                                E45AB6810C28986900FD26CA /* TimeRanges.h in Headers */, 
     11444                                E45AB6830C28987900FD26CA /* VoidCallback.h in Headers */, 
     11445                                E45AB6960C28991100FD26CA /* JSTimeRanges.h in Headers */, 
     11446                                E45AB6970C28991F00FD26CA /* JSProgressEvent.h in Headers */, 
     11447                                E45AB6990C28992C00FD26CA /* JSHTMLVideoElement.h in Headers */, 
     11448                                E45AB69E0C28992F00FD26CA /* JSHTMLAudioElement.h in Headers */, 
     11449                                E45AB69F0C28993100FD26CA /* JSHTMLMediaElement.h in Headers */, 
     11450                                E45AB6A00C28993100FD26CA /* JSHTMLSourceElement.h in Headers */, 
     11451                                E45AB6A20C28993200FD26CA /* JSMediaError.h in Headers */, 
     11452                                E45AB6A30C28994700FD26CA /* JSHTMLAudioElementConstructor.h in Headers */, 
     11453                                E45AB6A90C28996400FD26CA /* ProgressEvent.h in Headers */, 
     11454                                E45AB6B50C28998900FD26CA /* Movie.h in Headers */, 
     11455                                E45AB6B60C28998A00FD26CA /* MoviePrivateQTKit.h in Headers */, 
    1130611456                        ); 
    1130711457                        runOnlyForDeploymentPostprocessing = 0; 
     
    1268212832                                AA31B5B40C1DFD1000AE7083 /* RenderSVGRoot.cpp in Sources */, 
    1268312833                                B2D3FC8A0C2212CB00CF3618 /* JSSVGTransformListCustom.cpp in Sources */, 
     12834                                E45AB6280C288B5800FD26CA /* RenderVideo.cpp in Sources */, 
     12835                                E45AB6760C28981D00FD26CA /* HTMLAudioElement.cpp in Sources */, 
     12836                                E45AB6780C28982100FD26CA /* HTMLMediaElement.cpp in Sources */, 
     12837                                E45AB67B0C28984500FD26CA /* HTMLSourceElement.cpp in Sources */, 
     12838                                E45AB67D0C28985500FD26CA /* HTMLVideoElement.cpp in Sources */, 
     12839                                E45AB6800C28986800FD26CA /* TimeRanges.cpp in Sources */, 
     12840                                E45AB6820C28987800FD26CA /* VoidCallback.cpp in Sources */, 
     12841                                E45AB6950C28991000FD26CA /* JSTimeRanges.cpp in Sources */, 
     12842                                E45AB6980C28991F00FD26CA /* JSHTMLVideoElement.cpp in Sources */, 
     12843                                E45AB69A0C28992D00FD26CA /* JSHTMLMediaElement.cpp in Sources */, 
     12844                                E45AB69B0C28992D00FD26CA /* JSHTMLAudioElement.cpp in Sources */, 
     12845                                E45AB69C0C28992E00FD26CA /* JSProgressEvent.cpp in Sources */, 
     12846                                E45AB69D0C28992F00FD26CA /* JSHTMLSourceElement.cpp in Sources */, 
     12847                                E45AB6A10C28993100FD26CA /* JSMediaError.cpp in Sources */, 
     12848                                E45AB6A40C28994B00FD26CA /* JSHTMLAudioElementConstructor.cpp in Sources */, 
     12849                                E45AB6A80C28996300FD26CA /* ProgressEvent.cpp in Sources */, 
     12850                                E45AB6B40C28998900FD26CA /* Movie.cpp in Sources */, 
     12851                                E45AB6B70C28998A00FD26CA /* MoviePrivateQTKit.mm in Sources */, 
    1268412852                        ); 
    1268512853                        runOnlyForDeploymentPostprocessing = 0; 
  • branches/feature-branch/WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#include "config.h" 
    2827 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     28#if ENABLE(VIDEO) 
     29#include "JSHTMLAudioElementConstructor.h" 
     30 
     31#include "Document.h" 
     32#include "HTMLAudioElement.h" 
     33#include "JSHTMLAudioElement.h" 
     34#include "Text.h" 
     35 
     36using namespace KJS; 
    3337 
    3438namespace WebCore { 
    3539 
    36 class MimeTypeRegistry { 
    37 public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
    42      
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     40JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor(ExecState* exec, Document* d) 
     41    : m_doc(d) 
     42{ 
     43    setPrototype(exec->lexicalInterpreter()->builtinObjectPrototype()); 
     44    put(exec, exec->propertyNames().length, jsNumber(1), ReadOnly|DontDelete|DontEnum); 
     45} 
    4646 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
     47bool JSHTMLAudioElementConstructor::implementsConstruct() const 
     48{ 
     49    return true; 
     50} 
    5051 
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
     52JSObject* JSHTMLAudioElementConstructor::construct(ExecState* exec, const List& args) 
     53{ 
     54    int exception = 0; 
     55    RefPtr<Element> el(m_doc->createElement("audio", exception)); 
     56    HTMLAudioElement* audio = 0; 
     57    if (el && !exception) { 
     58        audio = static_cast<HTMLAudioElement*>(el.get()); 
     59        int sz = args.size(); 
     60        if (sz > 0) { 
     61            audio->setSrc(args[0]->toString(exec)); 
     62            audio->scheduleLoad(); 
     63        } 
     64    } 
    5465 
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
    58 }; 
     66    setDOMException(exec, exception); 
     67    return static_cast<JSObject*>(toJS(exec, audio)); 
     68} 
    5969 
    6070} 
    61  
    62 #endif // !MimeTypeRegistry_h 
     71#endif 
  • branches/feature-branch/WebCore/bindings/js/JSHTMLAudioElementConstructor.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef JSHTMLAudioElementConstructor_h 
     27#define JSHTMLAudioElementConstructor_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#if ENABLE(VIDEO) 
     30 
     31#include "kjs_binding.h" 
     32#include <wtf/RefPtr.h> 
    3333 
    3434namespace WebCore { 
    3535 
    36 class MimeTypeRegistry { 
    37 public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
    42      
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
    46  
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
    50  
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
    54  
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
    58 }; 
     36    class JSHTMLAudioElementConstructor : public KJS::DOMObject { 
     37    public: 
     38        JSHTMLAudioElementConstructor(KJS::ExecState*, Document*); 
     39        virtual bool implementsConstruct() const; 
     40        virtual KJS::JSObject *construct(KJS::ExecState*, const KJS::List& args); 
     41    private: 
     42        RefPtr<Document> m_doc; 
     43    }; 
    5944 
    6045} 
    6146 
    62 #endif // !MimeTypeRegistry_h 
     47#endif 
     48#endif 
  • branches/feature-branch/WebCore/bindings/js/JSHTMLElementWrapperFactory.cpp

    r20130 r23871  
    2323#include "HTMLAppletElement.h" 
    2424#include "HTMLAreaElement.h" 
     25#include "HTMLAudioElement.h" 
    2526#include "HTMLBaseElement.h" 
    2627#include "HTMLBaseFontElement.h" 
     
    6061#include "HTMLScriptElement.h" 
    6162#include "HTMLSelectElement.h" 
     63#include "HTMLSourceElement.h" 
    6264#include "HTMLStyleElement.h" 
    6365#include "HTMLTextAreaElement.h" 
    6466#include "HTMLTitleElement.h" 
    6567#include "HTMLUListElement.h" 
     68#include "HTMLVideoElement.h" 
    6669 
    6770#include "HTMLNames.h" 
     
    7073#include "JSHTMLAppletElement.h" 
    7174#include "JSHTMLAreaElement.h" 
     75#include "JSHTMLAudioElement.h" 
    7276#include "JSHTMLBaseElement.h" 
    7377#include "JSHTMLBaseFontElement.h" 
     
    107111#include "JSHTMLScriptElement.h" 
    108112#include "JSHTMLSelectElement.h" 
     113#include "JSHTMLSourceElement.h" 
    109114#include "JSHTMLStyleElement.h" 
    110115#include "JSHTMLTextAreaElement.h" 
    111116#include "JSHTMLTitleElement.h" 
    112117#include "JSHTMLUListElement.h" 
     118#include "JSHTMLVideoElement.h" 
    113119 
    114120#include "kjs_html.h" 
     
    171177    // end of macro 
    172178 
     179#define FOR_EACH_VIDEO_TAG(macro) \ 
     180        macro(audio, Audio) \ 
     181        macro(source, Source) \ 
     182        macro(video, Video) \ 
     183        // end of macro 
     184 
    173185#define CREATE_WRAPPER_FUNCTION(tag, name) \ 
    174186static DOMNode* create##name##Wrapper(ExecState* exec, PassRefPtr<HTMLElement> element) \ 
     
    177189} 
    178190FOR_EACH_TAG(CREATE_WRAPPER_FUNCTION) 
     191#if ENABLE(VIDEO) 
     192FOR_EACH_VIDEO_TAG(CREATE_WRAPPER_FUNCTION) 
     193#endif 
    179194#undef CREATE_WRAPPER_FUNCTION 
    180195 
     
    185200#define ADD_TO_HASH_MAP(tag, name) map.set(tag##Tag.localName().impl(), create##name##Wrapper); 
    186201FOR_EACH_TAG(ADD_TO_HASH_MAP) 
     202#if ENABLE(VIDEO) 
     203FOR_EACH_VIDEO_TAG(ADD_TO_HASH_MAP) 
     204#endif 
    187205#undef ADD_TO_HASH_MAP 
    188206        map.set(h2Tag.localName().impl(), createHeadingWrapper); 
  • branches/feature-branch/WebCore/bindings/js/kjs_events.cpp

    r21014 r23871  
    3838#include "JSMutationEvent.h" 
    3939#include "JSOverflowEvent.h" 
     40#include "JSProgressEvent.h" 
    4041#include "JSTextEvent.h" 
    4142#include "JSWheelEvent.h" 
     
    4546#include "MutationEvent.h" 
    4647#include "OverflowEvent.h" 
     48#include "ProgressEvent.h" 
    4749#include "Page.h" 
    4850#include "TextEvent.h" 
     
    520522    else if (e->isOverflowEvent()) 
    521523      ret = new JSOverflowEvent(exec, static_cast<OverflowEvent*>(e)); 
     524    else if (e->isProgressEvent()) 
     525      ret = new JSProgressEvent(exec, static_cast<ProgressEvent*>(e)); 
    522526    else 
    523527      ret = new JSEvent(exec, e); 
  • branches/feature-branch/WebCore/bindings/js/kjs_html.cpp

    r21082 r23871  
    736736 
    737737    const HashTable* table = classInfo()->propHashTable; // get the right hashtable 
    738     const HashEntry* entry = Lookup::findEntry(table, propertyName); 
    739     if (entry) { 
    740         if (entry->attr & Function) 
    741             slot.setStaticEntry(this, entry, staticFunctionGetter<HTMLElementFunction>);  
    742         else 
    743             slot.setStaticEntry(this, entry, staticValueGetter<JSHTMLElement>); 
    744         return true; 
     738    if (table) { 
     739        const HashEntry* entry = Lookup::findEntry(table, propertyName); 
     740        if (entry) { 
     741            if (entry->attr & Function) 
     742                slot.setStaticEntry(this, entry, staticFunctionGetter<HTMLElementFunction>);  
     743            else 
     744                slot.setStaticEntry(this, entry, staticValueGetter<JSHTMLElement>); 
     745            return true; 
     746        } 
    745747    } 
    746748 
  • branches/feature-branch/WebCore/bindings/js/kjs_window.cpp

    r21014 r23871  
    4343#include "JSDOMWindow.h" 
    4444#include "JSEvent.h" 
     45#include "JSHTMLAudioElementConstructor.h" 
    4546#include "JSHTMLOptionElementConstructor.h" 
    4647#include "JSMutationEvent.h" 
     
    314315  top           Window::Top             DontDelete|ReadOnly 
    315316  screen        Window::Screen_         DontDelete|ReadOnly 
     317  Audio         Window::Audio           DontDelete 
    316318  Image         Window::Image           DontDelete 
    317319  Option        Window::Option          DontDelete 
     
    842844    case XMLHttpRequest: 
    843845      return new JSXMLHttpRequestConstructorImp(exec, m_frame->document()); 
     846    case Audio: 
     847#if ENABLE(VIDEO) 
     848      return new JSHTMLAudioElementConstructor(exec, m_frame->document()); 
     849#else 
     850      return jsUndefined(); 
     851#endif 
    844852#if ENABLE(XSLT) 
    845853    case XSLTProcessor_: 
  • branches/feature-branch/WebCore/bindings/js/kjs_window.h

    r21014 r23871  
    177177           ScreenTop, ScreenLeft, 
    178178           ScrollTo, ScrollX, ScrollY, MoveBy, MoveTo, ResizeBy, ResizeTo, Self, Window_, Top, Screen_, 
    179            Image, Option, Alert, Confirm, Prompt, Open, Print, SetTimeout, ClearTimeout, 
     179           Image, Option, Audio, Alert, Confirm, Prompt, Open, Print, SetTimeout, ClearTimeout, 
    180180           Focus, GetSelection, Blur, Close, SetInterval, ClearInterval, CaptureEvents,  
    181181           ReleaseEvents, AddEventListener, RemoveEventListener, 
  • branches/feature-branch/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r23543 r23871  
    12561256                $type eq "unsigned short" or # or can it? 
    12571257                $type eq "CompareHow" or # or can it? 
    1258                 $type eq "SVGPaintType"; # or can it? 
     1258                $type eq "SVGPaintType" or # or can it? 
     1259                $type eq "VoidCallback"; 
    12591260 
    12601261    if ($type eq "unsigned long" or $type eq "long" or $type eq "Attr") { 
     
    13301331    if ($type eq "SVGPoint") { 
    13311332        $implIncludes{"FloatPoint.h"} = 1; 
     1333    } 
     1334 
     1335    if ($type eq "VoidCallback") { 
     1336        $implIncludes{"VoidCallback.h"} = 1; 
     1337        return "toVoidCallback($value)"; 
    13321338    } 
    13331339 
  • branches/feature-branch/WebCore/dom/Document.cpp

    r21278 r23871  
    7777#include "PlatformKeyboardEvent.h" 
    7878#include "ProcessingInstruction.h" 
     79#include "ProgressEvent.h" 
    7980#include "RegisteredEventListener.h" 
    8081#include "RegularExpression.h" 
     
    23072308    if (eventType == "HTMLEvents" || eventType == "Event" || eventType == "Events") 
    23082309        return new Event; 
     2310    if (eventType == "ProgressEvent") 
     2311        return new ProgressEvent; 
    23092312    if (eventType == "TextEvent") 
    23102313        return new TextEvent; 
     
    26772680        m_savedRenderer = 0; 
    26782681    } 
     2682} 
     2683 
     2684void Document::willMoveInToPageCache()  
     2685{ 
     2686    HashSet<Node*>::iterator end = m_pageCacheNotificationNodes.end(); 
     2687    for (HashSet<Node*>::iterator i = m_pageCacheNotificationNodes.begin(); i != end; ++i) 
     2688        (*i)->documentWillMoveInToPageCache(); 
     2689} 
     2690 
     2691void Document::movedOutFromPageCache()  
     2692{ 
     2693    HashSet<Node*>::iterator end = m_pageCacheNotificationNodes.end(); 
     2694    for (HashSet<Node*>::iterator i = m_pageCacheNotificationNodes.begin(); i != end; ++i) 
     2695        (*i)->documentMovedOutFromPageCache(); 
     2696} 
     2697 
     2698void Document::registerForPageCacheNotifications(Node* node) 
     2699{ 
     2700    m_pageCacheNotificationNodes.add(node); 
     2701} 
     2702 
     2703void Document::unregisterForPageCacheNotifications(Node* node) 
     2704{ 
     2705    m_pageCacheNotificationNodes.remove(node); 
    26792706} 
    26802707 
  • branches/feature-branch/WebCore/dom/Document.h

    r21179 r23871  
    766766    bool inPageCache(); 
    767767    void setInPageCache(bool flag); 
     768    void willMoveInToPageCache(); 
     769    void movedOutFromPageCache(); 
     770    void registerForPageCacheNotifications(Node*); 
     771    void unregisterForPageCacheNotifications(Node*); 
    768772 
    769773    void passwordFieldAdded(); 
     
    854858 
    855859    bool m_isAllowedToLoadLocalResources; 
     860     
     861    HashSet<Node*> m_pageCacheNotificationNodes; 
    856862 
    857863#if USE(LOW_BANDWIDTH_DISPLAY) 
  • branches/feature-branch/WebCore/dom/Element.cpp

    r21934 r23871  
    154154    ExceptionCode ec = 0; 
    155155    setAttribute(name, value.impl(), ec); 
     156} 
     157 
     158void Element::setBooleanAttribute(const QualifiedName& name, bool b) 
     159{ 
     160    if (b) 
     161        setAttribute(name, name.localName()); 
     162    else { 
     163        ExceptionCode ex; 
     164        removeAttribute(name, ex); 
     165    } 
    156166} 
    157167 
  • branches/feature-branch/WebCore/dom/Element.h

    r21184 r23871  
    125125    // convenience methods which ignore exceptions 
    126126    void setAttribute(const QualifiedName&, const String& value); 
     127    void setBooleanAttribute(const QualifiedName& name, bool); 
    127128 
    128129    virtual NamedAttrMap* attributes() const; 
  • branches/feature-branch/WebCore/dom/Event.cpp

    r19855 r23871  
    121121} 
    122122 
     123bool Event::isProgressEvent() const 
     124{ 
     125    return false; 
     126} 
     127 
    123128#if ENABLE(SVG) 
    124129bool Event::isSVGZoomEvent() const 
  • branches/feature-branch/WebCore/dom/Event.h

    r19855 r23871  
    100100        virtual bool isBeforeTextInsertedEvent() const; 
    101101        virtual bool isOverflowEvent() const; 
     102        virtual bool isProgressEvent() const; 
    102103#if ENABLE(SVG) 
    103104        virtual bool isSVGZoomEvent() const; 
  • branches/feature-branch/WebCore/dom/EventNames.h

    r19617 r23871  
    8989    macro(webkitEditableContentChanged) \ 
    9090    \ 
     91    macro(canshowcurrentframe) \ 
     92    macro(canplay) \ 
     93    macro(canplaythrough) \ 
     94    macro(dataunavailable) \ 
     95    macro(durationchange) \ 
     96    macro(emptied) \ 
     97    macro(ended) \ 
     98    macro(loadedfirstframe) \ 
     99    macro(loadedmetadata) \ 
     100    macro(pause) \ 
     101    macro(play) \ 
     102    macro(ratechange) \ 
     103    macro(timeupdate) \ 
     104    macro(volumechange) \ 
     105    macro(waiting) \ 
     106    \ 
     107    macro(begin) \ 
     108    macro(progress) \ 
     109    macro(stalled) \ 
     110    \ 
    91111// end of DOM_EVENT_NAMES_FOR_EACH 
    92112 
  • branches/feature-branch/WebCore/dom/EventTargetNode.cpp

    r20780 r23871  
    4343#include "PlatformMouseEvent.h" 
    4444#include "PlatformWheelEvent.h" 
     45#include "ProgressEvent.h" 
    4546#include "RegisteredEventListener.h" 
    4647#include "TextEvent.h" 
     
    532533} 
    533534 
     535bool EventTargetNode::dispatchProgressEvent(const AtomicString &eventType, bool lengthComputableArg, unsigned loadedArg, unsigned totalArg) 
     536{ 
     537    ASSERT(!eventDispatchForbidden()); 
     538    ExceptionCode ec = 0; 
     539    return dispatchEvent(new ProgressEvent(eventType, lengthComputableArg, loadedArg, totalArg), ec, true); 
     540} 
     541 
    534542void EventTargetNode::removeHTMLEventListener(const AtomicString &eventType) 
    535543{ 
  • branches/feature-branch/WebCore/dom/EventTargetNode.h

    r19872 r23871  
    6464    void dispatchSimulatedMouseEvent(const AtomicString& eventType, PassRefPtr<Event> underlyingEvent = 0); 
    6565    void dispatchSimulatedClick(PassRefPtr<Event> underlyingEvent, bool sendMouseEvents = false, bool showPressedLook = true); 
     66    bool dispatchProgressEvent(const AtomicString &eventType, bool lengthComputableArg, unsigned loadedArg, unsigned totalArg); 
    6667 
    6768    virtual void handleLocalEvents(Event*, bool useCapture); 
  • branches/feature-branch/WebCore/dom/Node.h

    r21278 r23871  
    449449    PassRefPtr<NodeList> getElementsByTagNameNS(const String& namespaceURI, const String& localName); 
    450450 
     451    // use Document::registerForPageCacheNotifications() to subscribe these 
     452    virtual void documentWillMoveInToPageCache() { } 
     453    virtual void documentMovedOutFromPageCache() { } 
     454 
    451455private: // members 
    452456    DocPtr<Document> m_document; 
  • branches/feature-branch/WebCore/history/CachedPage.cpp

    r21179 r23871  
    6666    , m_interpreterBuiltins(new SavedBuiltins) 
    6767{ 
     68    m_document->willMoveInToPageCache();  
     69         
    6870    Frame* mainFrame = page->mainFrame(); 
    6971    KJSProxy* proxy = mainFrame->scriptProxy(); 
  • branches/feature-branch/WebCore/html/HTMLAttributeNames.in

    r18940 r23871  
    99archive 
    1010autocomplete 
     11autoplay 
    1112autosave 
    1213axis 
     
    3940content 
    4041contenteditable 
     42controls 
    4143coords 
    4244data 
     
    4850disabled 
    4951enctype 
     52end 
    5053face 
    5154for 
     
    7174longdesc 
    7275loop 
     76loopcount 
     77loopend 
     78loopstart 
    7379lowsrc 
    7480marginheight 
  • branches/feature-branch/WebCore/html/HTMLElement.cpp

    r21287 r23871  
    749749        tagList.add(nobrTag.localName().impl()); 
    750750        tagList.add(wbrTag.localName().impl()); 
     751        tagList.add(audioTag.localName().impl()); 
     752        tagList.add(videoTag.localName().impl()); 
    751753    } 
    752754    return &tagList; 
  • branches/feature-branch/WebCore/html/HTMLElementFactory.cpp

    r21208 r23871  
    2727#include "HTMLAppletElement.h" 
    2828#include "HTMLAreaElement.h" 
     29#include "HTMLAudioElement.h" 
    2930#include "HTMLBaseFontElement.h" 
    3031#include "HTMLBaseElement.h" 
     
    7172#include "HTMLScriptElement.h" 
    7273#include "HTMLSelectElement.h" 
     74#include "HTMLSourceElement.h" 
    7375#include "HTMLStyleElement.h" 
    7476#include "HTMLTextAreaElement.h" 
     
    8082#include "HTMLTableSectionElement.h" 
    8183#include "HTMLTitleElement.h" 
     84#include "HTMLVideoElement.h" 
    8285#include "HTMLUListElement.h" 
    8386#include "HTMLQuoteElement.h" 
     
    379382    return new HTMLMarqueeElement(doc); 
    380383} 
     384 
     385#if ENABLE(VIDEO) 
     386static PassRefPtr<HTMLElement> audioConstructor(const AtomicString&, Document* doc, HTMLFormElement*, bool) 
     387{ 
     388    return new HTMLAudioElement(doc); 
     389} 
     390 
     391static PassRefPtr<HTMLElement> videoConstructor(const AtomicString&, Document* doc, HTMLFormElement*, bool) 
     392{ 
     393    return new HTMLVideoElement(doc); 
     394} 
     395 
     396static PassRefPtr<HTMLElement> sourceConstructor(const AtomicString&, Document* doc, HTMLFormElement*, bool) 
     397{ 
     398    return new HTMLSourceElement(doc); 
     399} 
     400#endif 
    381401 
    382402static void addTag(const QualifiedName& tag, ConstructorFunc func) 
     
    461481    addTag(ulTag, ulConstructor); 
    462482    addTag(xmpTag, preConstructor); 
     483#if ENABLE(VIDEO) 
     484    addTag(audioTag, audioConstructor); 
     485    addTag(sourceTag, sourceConstructor); 
     486    addTag(videoTag, videoConstructor); 
     487#endif 
    463488} 
    464489 
  • branches/feature-branch/WebCore/html/HTMLSourceElement.cpp

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#include "config.h" 
    2827 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     28#if ENABLE(VIDEO) 
     29#include "HTMLSourceElement.h" 
     30 
     31#include "HTMLDocument.h" 
     32#include "HTMLMediaElement.h" 
     33 
     34using namespace std; 
    3335 
    3436namespace WebCore { 
    3537 
    36 class MimeTypeRegistry { 
    37 public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
    42      
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     38using namespace HTMLNames; 
    4639 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
     40HTMLSourceElement::HTMLSourceElement(Document* doc) 
     41    : HTMLElement(sourceTag, doc) 
     42{ 
     43} 
    5044 
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
     45HTMLSourceElement::~HTMLSourceElement() 
     46{ 
     47} 
    5448 
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
    58 }; 
     49void HTMLSourceElement::insertedIntoDocument() 
     50{ 
     51    HTMLElement::insertedIntoDocument(); 
     52    if (parentNode() && (parentNode()->hasTagName(audioTag) ||  parentNode()->hasTagName(videoTag))) { 
     53        HTMLMediaElement* media = static_cast<HTMLMediaElement*>(parentNode()); 
     54        if (media->networkState() == HTMLMediaElement::EMPTY) 
     55            media->scheduleLoad(); 
     56    } 
     57} 
     58 
     59String HTMLSourceElement::src() const 
     60{ 
     61    return document()->completeURL(getAttribute(srcAttr)); 
     62} 
     63 
     64void HTMLSourceElement::setSrc(const String& url) 
     65{ 
     66    setAttribute(srcAttr, url); 
     67} 
     68 
     69String HTMLSourceElement::media() const 
     70{ 
     71    return getAttribute(mediaAttr); 
     72} 
     73 
     74void HTMLSourceElement::setMedia(const String& media) 
     75{ 
     76    setAttribute(mediaAttr, media); 
     77} 
     78 
     79String HTMLSourceElement::type() const 
     80{ 
     81    return getAttribute(typeAttr); 
     82} 
     83 
     84void HTMLSourceElement::setType(const String& type) 
     85{ 
     86    setAttribute(typeAttr, type); 
     87} 
    5988 
    6089} 
    61  
    62 #endif // !MimeTypeRegistry_h 
     90#endif 
  • branches/feature-branch/WebCore/html/HTMLSourceElement.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef HTMLSourceElement_h 
     27#define HTMLSourceElement_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#if ENABLE(VIDEO) 
     30 
     31#include "HTMLElement.h" 
     32#include "HTMLNames.h" 
     33#include <limits> 
    3334 
    3435namespace WebCore { 
    3536 
    36 class MimeTypeRegistry { 
     37using namespace HTMLNames; 
     38     
     39class MediaError; 
     40     
     41class HTMLSourceElement : public HTMLElement { 
    3742public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
     43    HTMLSourceElement(Document*); 
     44    virtual ~HTMLSourceElement(); 
     45 
     46    virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; } 
     47    virtual int tagPriority() const { return 0; } 
    4248     
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
    46  
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
    50  
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
    54  
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
     49    virtual void insertedIntoDocument(); 
     50     
     51    String src() const; 
     52    String media() const; 
     53    String type() const; 
     54    void setSrc(const String&);     
     55    void setMedia(const String&); 
     56    void setType(const String&); 
    5857}; 
    5958 
    60 } 
     59} //namespace 
    6160 
    62 #endif // !MimeTypeRegistry_h 
     61#endif 
     62#endif 
  • branches/feature-branch/WebCore/html/HTMLTagNames.in

    r14594 r23871  
    55applet 
    66area 
     7audio 
    78b 
    89base 
     
    8283select 
    8384small 
     85source 
    8486span 
    8587strike 
     
    101103ul 
    102104var 
     105video 
    103106wbr 
    104107xmp 
  • branches/feature-branch/WebCore/html/HTMLVideoElement.cpp

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#include "config.h" 
    2827 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     28#if ENABLE(VIDEO) 
     29#include "HTMLVideoElement.h" 
     30 
     31#include "HTMLNames.h" 
    3332 
    3433namespace WebCore { 
    3534 
    36 class MimeTypeRegistry { 
    37 public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
    42      
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     35using namespace HTMLNames; 
    4636 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
     37HTMLVideoElement::HTMLVideoElement(Document* doc) 
     38    : HTMLMediaElement(HTMLNames::videoTag, doc) 
     39{ 
     40} 
    5041 
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
     42int HTMLVideoElement::videoWidth() const 
     43{ 
     44    if (!m_movie) 
     45        return 0; 
     46    return m_movie->naturalSize().width(); 
     47} 
    5448 
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
    58 }; 
     49int HTMLVideoElement::videoHeight() const 
     50{ 
     51    if (!m_movie) 
     52        return 0; 
     53    return m_movie->naturalSize().height(); 
     54} 
    5955 
    6056} 
    61  
    62 #endif // !MimeTypeRegistry_h 
     57#endif 
  • branches/feature-branch/WebCore/html/HTMLVideoElement.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef HTMLVideoElement_h 
     27#define HTMLVideoElement_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#if ENABLE(VIDEO) 
     30 
     31#include "HTMLMediaElement.h" 
    3332 
    3433namespace WebCore { 
    3534 
    36 class MimeTypeRegistry { 
     35class HTMLVideoElement : public HTMLMediaElement 
     36{ 
    3737public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
     38    HTMLVideoElement(Document*); 
    4239     
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     40    virtual int tagPriority() const { return 5; } 
     41     
     42    int videoWidth() const; 
     43    int videoHeight() const; 
     44     
     45    virtual bool isVideo() const { return true; } 
    4646 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
    50  
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
    54  
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
    5847}; 
    5948 
    60 } 
     49} //namespace 
    6150 
    62 #endif // !MimeTypeRegistry_h 
     51#endif 
     52#endif 
  • branches/feature-branch/WebCore/html/TimeRanges.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef TimeRanges_h 
     27#define TimeRanges_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#include "ExceptionCode.h" 
     30#include "Shared.h" 
     31#include "wtf/Vector.h" 
    3332 
    3433namespace WebCore { 
    3534 
    36 class MimeTypeRegistry { 
     35class TimeRanges : public Shared<TimeRanges> { 
    3736public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
     37    TimeRanges() { } 
     38    TimeRanges(float start, float end); 
    4239     
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     40    unsigned length() const { return m_ranges.size(); } 
     41    float start(unsigned index, ExceptionCode& ec) const; 
     42    float end(unsigned index, ExceptionCode& ec) const; 
     43     
     44    void add(float start, float end); 
     45     
     46    bool contain(float time) const; 
    4647 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
    50  
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
    54  
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
     48private: 
     49    struct Range { 
     50        Range() { } 
     51        Range(float start, float end) { 
     52            m_start = start; 
     53            m_end = end; 
     54        } 
     55        float m_start; 
     56        float m_end; 
     57    }; 
     58     
     59    Vector<Range> m_ranges; 
    5860}; 
    5961 
    60 } 
     62} // namespace WebCore 
    6163 
    62 #endif // !MimeTypeRegistry_h 
     64#endif 
  • branches/feature-branch/WebCore/html/VoidCallback.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef VoidCallback_h 
     27#define VoidCallback_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#include <kjs/protect.h> 
     30#include "Shared.h" 
     31#include "wtf/PassRefPtr.h" 
    3332 
    3433namespace WebCore { 
    3534 
    36 class MimeTypeRegistry { 
     35class Frame; 
     36     
     37class VoidCallback : public Shared<VoidCallback> { 
    3738public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
     39    VoidCallback(KJS::JSValue* func); 
     40    virtual ~VoidCallback(); 
    4241     
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
    46  
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
    50  
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
    54  
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
     42    void handleEvent(); 
     43     
     44    void execute(Frame* frame); 
     45     
     46    bool operator==(const VoidCallback&) const; 
     47     
     48private: 
     49    KJS::JSValue* m_func; 
    5850}; 
    5951 
    60 } 
     52VoidCallback* toVoidCallback(KJS::JSValue*); 
    6153 
    62 #endif // !MimeTypeRegistry_h 
     54} // namespace WebCore 
     55 
     56#endif 
  • branches/feature-branch/WebCore/loader/FrameLoader.cpp

    r21261 r23871  
    25572557    cachedPage.restore(m_frame->page()); 
    25582558 
     2559    document->movedOutFromPageCache(); 
     2560 
    25592561    checkCompleted(); 
    25602562} 
  • branches/feature-branch/WebCore/page/DOMWindow.idl

    r21308 r23871  
    148148        attribute XMLSerializerConstructor XMLSerializer; 
    149149 
     150#if ENABLE_VIDEO 
     151        attribute HTMLAudioElementConstructor HTMLAudioElement; 
     152        attribute HTMLMediaElementConstructor HTMLMediaElement; 
     153        attribute HTMLVideoElementConstructor HTMLVideoElement; 
     154        attribute MediaErrorConstructor MediaError; 
     155#endif 
     156 
    150157#if ENABLE_XPATH 
    151158        attribute XPathEvaluatorConstructor XPathEvaluator; 
  • branches/feature-branch/WebCore/platform/MimeTypeRegistry.cpp

    r21117 r23871  
    2626#include "config.h" 
    2727#include "MimeTypeRegistry.h" 
     28#include "Movie.h" 
    2829#include "StringHash.h" 
    2930#include <wtf/HashMap.h> 
     
    4142static WTF::HashSet<String>* supportedImageMIMETypes; 
    4243static WTF::HashSet<String>* supportedNonImageMIMETypes; 
    43      
     44static WTF::HashSet<String>* supportedMovieMIMETypes; 
     45 
    4446#if PLATFORM(CG) 
    4547extern String getMIMETypeForUTI(const String& uti); 
     
    121123} 
    122124 
     125static void initialiseSupportedMovieMIMETypes() 
     126{ 
     127    Movie::getSupportedTypes(*supportedMovieMIMETypes); 
     128} 
     129 
    123130static void initialiseMimeTypeRegistry() 
    124131{ 
     
    126133    supportedImageMIMETypes = new WTF::HashSet<String>(); 
    127134    supportedNonImageMIMETypes = new WTF::HashSet<String>(); 
     135    supportedMovieMIMETypes = new WTF::HashSet<String>(); 
    128136     
    129137    initialiseSupportedNonImageMimeTypes(); 
    130138    initialiseSupportedImageMIMETypes(); 
     139    initialiseSupportedMovieMIMETypes(); 
    131140} 
    132141 
     
    183192} 
    184193 
    185 } 
     194bool MimeTypeRegistry::isSupportedMovieMIMEType(const String& mimeType) 
     195{ 
     196    if (!supportedMovieMIMETypes) 
     197        initialiseMimeTypeRegistry(); 
     198    return !mimeType.isEmpty() && supportedMovieMIMETypes->contains(mimeType);      
     199} 
     200 
     201} 
  • branches/feature-branch/WebCore/platform/MimeTypeRegistry.h

    r19764 r23871  
    5252    // document in a frame. 
    5353    static bool isSupportedNonImageMIMEType(const String& mimeType); 
     54     
     55    // Check to see if a mime type is suitable for being loaded using <movie> 
     56    static bool isSupportedMovieMIMEType(const String& mimeType);    
    5457 
    5558    static const HashSet<String>& getSupportedImageMIMETypes(); 
  • branches/feature-branch/WebCore/platform/mac/WebCoreSystemInterface.h

    r20506 r23871  
    4545@class NSMutableURLRequest; 
    4646@class NSURLRequest; 
     47@class QTMovie; 
    4748#else 
    4849typedef struct NSArray NSArray; 
     
    6061typedef struct NSView NSView; 
    6162typedef struct objc_object *id; 
     63typedef struct QTMovie QTMovie; 
    6264#endif 
    6365 
     
    111113extern NSString* (*wkPathFromFont)(NSFont*); 
    112114extern void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*); 
     115extern int (*wkQTMovieDataRate)(QTMovie*); 
     116extern float (*wkQTMovieMaxTimeLoaded)(QTMovie*); 
    113117extern void (*wkReleaseStyleGroup)(void* group); 
    114118extern void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*); 
  • branches/feature-branch/WebCore/platform/mac/WebCoreSystemInterface.mm

    r20506 r23871  
    5858NSString* (*wkPathFromFont)(NSFont*); 
    5959void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*); 
     60int (*wkQTMovieDataRate)(QTMovie*); 
     61float (*wkQTMovieMaxTimeLoaded)(QTMovie*); 
    6062void (*wkReleaseStyleGroup)(void* group); 
    6163void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*); 
  • branches/feature-branch/WebCore/rendering/RenderVideo.h

    r19764 r23871  
    11/* 
    2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. 
     2 * Copyright (C) 2007 Apple Inc.  All rights reserved. 
    33 * 
    44 * Redistribution and use in source and binary forms, with or without 
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
    2424 */ 
    2525 
    26 #ifndef MimeTypeRegistry_h 
    27 #define MimeTypeRegistry_h 
     26#ifndef RenderVideo_h 
     27#define RenderVideo_h 
    2828 
    29 #include "PlatformString.h" 
    30 #include "StringHash.h" 
    31 #include <wtf/HashSet.h> 
    32 #include <wtf/Vector.h> 
     29#if ENABLE(VIDEO) 
     30 
     31#include "RenderReplaced.h" 
    3332 
    3433namespace WebCore { 
     34     
     35class HTMLMediaElement; 
     36class Movie; 
    3537 
    36 class MimeTypeRegistry { 
     38class RenderVideo : public RenderReplaced { 
    3739public: 
    38     static String getMIMETypeForExtension(const String& ext); 
    39     static Vector<String> getExtensionsForMIMEType(const String& type); 
    40     static String getPreferredExtensionForMIMEType(const String& type); 
    41     static String getMIMETypeForPath(const String& path); 
     40    RenderVideo(HTMLMediaElement*); 
     41    virtual ~RenderVideo(); 
     42 
     43    virtual const char* renderName() const { return "RenderVideo"; } 
    4244     
    43     // Check to see if a mime type is suitable for being loaded inline as an 
    44     // image (e.g., <img> tags). 
    45     static bool isSupportedImageMIMEType(const String& mimeType);    
     45    virtual void paint(PaintInfo&, int tx, int ty); 
    4646 
    47     // Check to see if a mime type is suitable for being loaded as an image 
    48     // document in a frame. 
    49     static bool isSupportedImageResourceMIMEType(const String& mimeType);     
     47    virtual void layout(); 
    5048 
    51     // Check to see if a non-image mime type is suitable for being loaded as a 
    52     // document in a frame. 
    53     static bool isSupportedNonImageMIMEType(const String& mimeType); 
     49    virtual int calcReplacedWidth() const; 
     50    virtual int calcReplacedHeight() const; 
    5451 
    55     static const HashSet<String>& getSupportedImageMIMETypes(); 
    56     static const HashSet<String>& getSupportedImageResourceMIMETypes(); 
    57     static const HashSet<String>& getSupportedNonImageMIMETypes(); 
     52    virtual void calcPrefWidths(); 
     53     
     54    void videoSizeChanged(); 
     55     
     56    Movie* movie() const; 
     57     
     58    void updateFromElement(); 
     59    void updateMovie(); 
     60 
     61private: 
     62    int calcAspectRatioWidth() const; 
     63    int calcAspectRatioHeight() const; 
     64 
     65    bool isWidthSpecified() const; 
     66    bool isHeightSpecified() const; 
    5867}; 
    5968 
    60 } 
     69} // namespace WebCore 
    6170 
    62 #endif // !MimeTypeRegistry_h 
     71#endif 
     72#endif // RenderVideo_h