Changeset 23871 in webkit


Ignore:
Timestamp:
Jun 29, 2007 6:25:55 AM (17 years ago)
Author:
antti
Message:

Support for HTML5 <video> and <audio> elements

Location:
branches/feature-branch/WebCore
Files:
22 added
32 edited
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

    r23870 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

    r23870 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

    r23870 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

    r23870 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

    r23870 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

    r23870 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

    r23870 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

    r23870 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

    r23870 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
Note: See TracChangeset for help on using the changeset viewer.