1. 30 Nov, 2009 1 commit
  2. 26 Nov, 2009 1 commit
    • zecke@webkit.org's avatar
      [Qt] Add automatic test case for plugins that use QWidget · 87659e2a
      zecke@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=31203
      
      Change the RenderTreeAsText to look into the WebCore::Widget
      and print the state of the platformWidget. Change the DRT to
      use QtUiTools to be able to initiate QProgressBar and such
      as a plugin. Add the test case, add the result, update the
      other results due the new test.
      
      WebCore:
      * rendering/RenderTreeAsText.cpp:
      (WebCore::operator<<): Add special case for RenderPart
      
      WebKitTools:
      * DumpRenderTree/qt/DumpRenderTree.cpp:
      (WebCore::WebPage::createPlugin):
      * DumpRenderTree/qt/DumpRenderTree.h:
      * DumpRenderTree/qt/DumpRenderTree.pro:
      
      LayoutTest:
      * platform/gtk/Skipped:
      * platform/mac/Skipped:
      * platform/qt/plugins/netscape-dom-access-expected.txt: Added
      * platform/qt/plugins/qt-qwidget-plugin-expected.txt: Added
      * platform/win/Skipped:
      * plugins/qt-qwidget-plugin.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87659e2a
  3. 20 Nov, 2009 2 commits
  4. 16 Nov, 2009 1 commit
    • tonikitoo@webkit.org's avatar
      [Qt] Broken back/forward after using ErrorPageExtension to set error page · e94ac9b0
      tonikitoo@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=30573
      
      Reviewed by Antti Koivisto.
      
      WebCore:
      
      Make FrameLoader::checkLoadCompleteForThisFrame method
      to check for any working DocumentLoader instance (through
      activeDocumentLoader()) instead of only checking for
      'm_provisionalDocumentLoader' in order to decide to if
      it is going to reset of not the back and forward history.
      after an error page has been loaded.
      
      Test: LayoutTests/fast/history/back-forward-reset-after-error-handling.html
      
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
      
      WebKit/qt:
      
      Implemented autotests for covering the back/forward
      reset problem involving error pages.
      
      * tests/qwebpage/tst_qwebpage.cpp:
      (tst_QWebPage::errorPageExtension):
      
      LayoutTests:
      
      Skipped fast/history/back-forward-reset-after-error-handling.html
      in mac, gtk and win DRT, because their DRT do not support yet
      error pages handling.
      
      * fast/history/back-forward-reset-after-error-handling.html:
      * platform/gtk/Skipped:
      * platform/mac/Skipped:
      * platform/win/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51038 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e94ac9b0
  5. 13 Nov, 2009 1 commit
    • ap@apple.com's avatar
      Reviewed by Darin Adler. · 77959bec
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=31441
              Implement SocketStreamHandleCFNet
      
              Existing WebSocket tests now pass on Mac. No proxy support yet.
      
              * platform/network/SocketStreamHandleClient.h:
              * platform/network/cf/SocketStreamHandle.h:
              (WebCore::SocketStreamHandle::shouldUseSSL):
              (WebCore::SocketStreamHandle::refAuthenticationClient):
              (WebCore::SocketStreamHandle::derefAuthenticationClient):
              (WebCore::SocketStreamHandle::):
              * platform/network/cf/SocketStreamHandleCFNet.cpp:
              (WebCore::SocketStreamHandle::SocketStreamHandle):
              (WebCore::SocketStreamHandle::chooseProxy):
              (WebCore::SocketStreamHandle::createStreams):
              (WebCore::SocketStreamHandle::copyCFStreamDescription):
              (WebCore::SocketStreamHandle::readStreamCallback):
              (WebCore::SocketStreamHandle::writeStreamCallback):
              (WebCore::SocketStreamHandle::~SocketStreamHandle):
              (WebCore::SocketStreamHandle::platformSend):
              (WebCore::SocketStreamHandle::platformClose):
              (WebCore::SocketStreamHandle::receivedCredential):
              (WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential):
              (WebCore::SocketStreamHandle::receivedCancellation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77959bec
  6. 12 Nov, 2009 1 commit
    • eric@webkit.org's avatar
      2009-11-12 Joanmarie Diggs <joanmarie.diggs@gmail.com> · 231b3133
      eric@webkit.org authored
              Reviewed by Gustavo Noronha Silva.
      
              https://bugs.webkit.org/show_bug.cgi?id=30997
              [Gtk] Implemment AtkDocument
      
              Added testing support for AtkDocument implementation.
      
              * accessibility/document-attributes.html: Added.
              * accessibility/document-attributes-expected.txt: Added.
              * platform/mac/Skipped:
              * platform/win/Skipped:
      2009-11-12  Joanmarie Diggs  <joanmarie.diggs@gmail.com>
      
              Reviewed by Gustavo Noronha Silva.
      
              https://bugs.webkit.org/show_bug.cgi?id=30997
              [Gtk] Implemment AtkDocument
      
              Added testing support.
      
              * DumpRenderTree/AccessibilityUIElement.cpp:
              * DumpRenderTree/AccessibilityUIElement.h:
              (getDocumentEncodingCallback):
              (getDocumentURICallback):
              (AccessibilityUIElement::getJSClass):
              * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
              * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
              * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
              (AccessibilityUIElement::documentEncoding):
              (AccessibilityUIElement::documentURI):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50921 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      231b3133
  7. 11 Nov, 2009 1 commit
  8. 03 Nov, 2009 1 commit
  9. 27 Oct, 2009 1 commit
  10. 23 Oct, 2009 3 commits
    • eric@webkit.org's avatar
      2009-10-23 Alpha Lam <hclam@chromium.org> · b3328a12
      eric@webkit.org authored
              Reviewed by Eric Carlson.
      
              Volume slider always starts at half volume
              https://bugs.webkit.org/show_bug.cgi?id=28322
      
              * media/video-volume-slider.html: Added.
              Pixel test for the volume slider of the media control. This test
              assumes volume slider is implemented and usable. It moves the mouse
              over the right bottom corner of a video element to trigger the
              volume slider. If volume slider is not implemented at all, you'll
              only see a video element with the first frame.
              * platform/gtk/Skipped: The above test requires a volume slider so it's skipped.
              * platform/mac/Skipped: ditto.
              * platform/win/Skipped: ditto.
      2009-10-23  Alpha Lam  <hclam@chromium.org>
      
              Reviewed by Eric Carlson.
      
              Volume slider always starts at half volume
              https://bugs.webkit.org/show_bug.cgi?id=28322
      
              Sets the value attribute of volume slider to the volume attribute
              of the media element. Also update the value attribute of the
              input element for the volume slider when the volume attribute
              of the media element is updated.
      
              Test: media/video-volume-slider.html
      
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaControlVolumeSliderElement::update):
              Set the value attribute of the input element for the volume slider
              using the current volume of the media element.
              * rendering/MediaControlElements.h:
              Add method definition of update().
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::createVolumeSlider):
              Creates a volume slider with value attribute equals to the current
              volume attribute of the media element.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b3328a12
    • xan@webkit.org's avatar
      2009-10-23 Xan Lopez <xlopez@igalia.com> · 4595d858
      xan@webkit.org authored
              Use the correct Skipped file ...
      
              * platform/gtk/Skipped:
              * platform/mac/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4595d858
    • xan@webkit.org's avatar
      2009-10-23 Xan Lopez <xlopez@igalia.com> · dd5d1f3c
      xan@webkit.org authored
              Skip new tests missing expected results.
      
              * platform/mac/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd5d1f3c
  11. 22 Oct, 2009 1 commit
    • barraclough@apple.com's avatar
      WebCore: https://bugs.webkit.org/show_bug.cgi?id=30696 · c53df831
      barraclough@apple.com authored
      Add support for IsolatedWorlds to JSC bindings.
      
      Patch by Gavin Barraclough <barraclough@apple.com> on 2009-10-16
      Reviewed by Sam Weinig & Geoff Garen.
      
      An IsolatedWorld is basically a parallel, separate copy of the window shells and DOM wrapper objects for
      a given document.  To support isolation this patch:
      
          * Adds support to the ScriptController to track multiple window shells, one per world.
          * Adds support to Document to support multiple separate wrapper-maps, one per world.
          * Replaces the single global DOM wrapper map (on the WebCoreJSClientData) with separate maps,
            stored on the (new) IsolatedWorld objects.
      
      In addition to supporting separate copies of these objects, two other features are supported:
      
          * It is necessary to track the current world on entry into JSC, so that within callbacks out to WebCore
            we can determine which world (and as such, set of DOM bindings) we should be operating on.
          * EventListeners & Callbacks are run in the world they were registered in.
            This requires the handler to retain a reference to the world.
      
      No new tests. (Enabled existing isolated world layout tests.)
      
      * WebCore.base.exp:
      * bindings/js/JSAbstractWorkerCustom.cpp:
      (WebCore::JSAbstractWorker::addEventListener):
      (WebCore::JSAbstractWorker::removeEventListener):
      * bindings/js/JSCallbackData.cpp:
      (WebCore::JSCallbackData::invokeCallback):
      * bindings/js/JSCallbackData.h:
      (WebCore::JSCallbackData::JSCallbackData):
      * bindings/js/JSCustomXPathNSResolver.cpp:
      (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      (WebCore::JSDOMApplicationCache::addEventListener):
      (WebCore::JSDOMApplicationCache::removeEventListener):
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::removeWrappers):
      (WebCore::DOMObjectWrapperMap::get):
      (WebCore::DOMObjectWrapperMap::set):
      (WebCore::DOMObjectWrapperMap::remove):
      (WebCore::DOMObjectWrapperMap::take):
      (WebCore::IsolatedWorld::IsolatedWorld):
      (WebCore::IsolatedWorld::~IsolatedWorld):
      (WebCore::EnterIsolatedWorld::EnterIsolatedWorld):
      (WebCore::EnterIsolatedWorld::~EnterIsolatedWorld):
      (WebCore::JSGlobalDataWorldIterator::JSGlobalDataWorldIterator):
      (WebCore::JSGlobalDataWorldIterator::operator bool):
      (WebCore::JSGlobalDataWorldIterator::operator*):
      (WebCore::JSGlobalDataWorldIterator::operator->):
      (WebCore::JSGlobalDataWorldIterator::operator++):
      (WebCore::getCurrentWorld):
      (WebCore::getNormalWorld):
      (WebCore::commonNormalWorld):
      (WebCore::commonCurrentWorld):
      (WebCore::DOMObjectHashTableMap::mapFor):
      (WebCore::DOMObjectWrapperMap::mapFor):
      (WebCore::forgetDOMObject):
      (WebCore::getCachedDOMNodeWrapper):
      (WebCore::forgetDOMNode):
      (WebCore::cacheDOMNodeWrapper):
      (WebCore::forgetAllDOMNodesForDocument):
      (WebCore::forgetWorldOfDOMNodesForDocument):
      (WebCore::isObservableThroughDOM):
      (WebCore::markDOMNodesForDocument):
      (WebCore::markActiveObjectsForContext):
      (WebCore::takeWrappers):
      (WebCore::updateDOMNodeDocument):
      (WebCore::markDOMObjectWrapper):
      (WebCore::allowsAccessFromFrame):
      (WebCore::printErrorMessageForFrame):
      (WebCore::JSC_DebuggerCallFrame_evaluateInWorld):
      (WebCore::JSC_callInWorld):
      (WebCore::JSC_constructInWorld):
      (WebCore::JSC_evaluateInWorld):
      * bindings/js/JSDOMBinding.h:
      (WebCore::IsolatedWorld::rememberDocument):
      (WebCore::IsolatedWorld::forgetDocument):
      (WebCore::IsolatedWorld::rememberScriptController):
      (WebCore::IsolatedWorld::forgetScriptController):
      (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
      (WebCore::DOMObjectHashTableMap::get):
      (WebCore::WebCoreJSClientData::WebCoreJSClientData):
      (WebCore::WebCoreJSClientData::currentWorld):
      (WebCore::WebCoreJSClientData::normalWorld):
      (WebCore::WebCoreJSClientData::rememberWorld):
      (WebCore::WebCoreJSClientData::forgetWorld):
      (WebCore::debuggerWorld):
      (WebCore::pluginWorld):
      * bindings/js/JSDOMGlobalObject.cpp:
      (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
      (WebCore::toJSDOMGlobalObject):
      * bindings/js/JSDOMGlobalObject.h:
      * bindings/js/JSDOMWindowBase.cpp:
      (WebCore::JSDOMWindowBase::printErrorMessage):
      (WebCore::JSDOMWindowBase::commonJSGlobalData):
      (WebCore::toJS):
      (WebCore::toJSDOMWindow):
      * bindings/js/JSDOMWindowBase.h:
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::createWindow):
      (WebCore::JSDOMWindow::open):
      (WebCore::JSDOMWindow::showModalDialog):
      (WebCore::JSDOMWindow::setTimeout):
      (WebCore::JSDOMWindow::setInterval):
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      * bindings/js/JSDOMWindowShell.cpp:
      (WebCore::toJS):
      (WebCore::toJSDOMWindowShell):
      * bindings/js/JSDOMWindowShell.h:
      * bindings/js/JSDesktopNotificationsCustom.cpp:
      (WebCore::JSNotification::addEventListener):
      (WebCore::):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::JSEventListener):
      (WebCore::JSEventListener::handleEvent):
      (WebCore::JSEventListener::reportError):
      * bindings/js/JSEventListener.h:
      (WebCore::JSEventListener::create):
      * bindings/js/JSEventSourceCustom.cpp:
      (WebCore::JSEventSource::addEventListener):
      (WebCore::JSEventSource::removeEventListener):
      * bindings/js/JSEventTarget.cpp:
      (WebCore::toJS):
      * bindings/js/JSHTMLDocumentCustom.cpp:
      (WebCore::JSHTMLDocument::open):
      * bindings/js/JSHTMLFrameSetElementCustom.cpp:
      (WebCore::JSHTMLFrameSetElement::nameGetter):
      * bindings/js/JSInspectorBackendCustom.cpp:
      (WebCore::JSInspectorBackend::databaseForId):
      (WebCore::JSInspectorBackend::inspectedWindow):
      (WebCore::JSInspectorBackend::nodeForId):
      * bindings/js/JSLazyEventListener.cpp:
      (WebCore::JSLazyEventListener::JSLazyEventListener):
      (WebCore::JSLazyEventListener::parseCode):
      * bindings/js/JSLazyEventListener.h:
      (WebCore::JSLazyEventListener::create):
      * bindings/js/JSMessageChannelCustom.cpp:
      (WebCore::JSMessageChannel::markChildren):
      * bindings/js/JSMessagePortCustom.cpp:
      (WebCore::JSMessagePort::markChildren):
      (WebCore::JSMessagePort::addEventListener):
      (WebCore::JSMessagePort::removeEventListener):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::addEventListener):
      (WebCore::JSNode::removeEventListener):
      (WebCore::JSNode::markChildren):
      * bindings/js/JSNodeFilterCondition.cpp:
      (WebCore::JSNodeFilterCondition::acceptNode):
      * bindings/js/JSQuarantinedObjectWrapper.cpp:
      (WebCore::JSQuarantinedObjectWrapper::construct):
      (WebCore::JSQuarantinedObjectWrapper::call):
      * bindings/js/JSSVGElementInstanceCustom.cpp:
      (WebCore::JSSVGElementInstance::addEventListener):
      (WebCore::JSSVGElementInstance::removeEventListener):
      * bindings/js/JSSharedWorkerCustom.cpp:
      (WebCore::JSSharedWorker::markChildren):
      * bindings/js/JSWebSocketCustom.cpp:
      (WebCore::JSWebSocket::addEventListener):
      (WebCore::JSWebSocket::removeEventListener):
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::addEventListener):
      (WebCore::JSWorkerContext::removeEventListener):
      (WebCore::JSWorkerContext::setTimeout):
      (WebCore::JSWorkerContext::setInterval):
      * bindings/js/JSXMLHttpRequestConstructor.cpp:
      (WebCore::constructXMLHttpRequest):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::markChildren):
      (WebCore::JSXMLHttpRequest::addEventListener):
      (WebCore::JSXMLHttpRequest::removeEventListener):
      * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
      (WebCore::JSXMLHttpRequestUpload::markChildren):
      (WebCore::JSXMLHttpRequestUpload::addEventListener):
      (WebCore::JSXMLHttpRequestUpload::removeEventListener):
      * bindings/js/ScheduledAction.cpp:
      (WebCore::ScheduledAction::create):
      (WebCore::ScheduledAction::ScheduledAction):
      (WebCore::ScheduledAction::executeFunctionInContext):
      (WebCore::ScheduledAction::execute):
      * bindings/js/ScheduledAction.h:
      (WebCore::ScheduledAction::ScheduledAction):
      * bindings/js/ScriptCachedFrameData.cpp:
      (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
      (WebCore::ScriptCachedFrameData::restore):
      * bindings/js/ScriptController.cpp:
      (WebCore::ScriptController::~ScriptController):
      (WebCore::ScriptController::evaluateInWorld):
      (WebCore::ScriptController::evaluate):
      (WebCore::ScriptController::evaluateInIsolatedWorld):
      (WebCore::ScriptController::clearWindowShell):
      (WebCore::ScriptController::initScript):
      (WebCore::ScriptController::processingUserGestureEvent):
      (WebCore::ScriptController::attachDebugger):
      (WebCore::ScriptController::updateDocument):
      (WebCore::ScriptController::bindingRootObject):
      (WebCore::ScriptController::createRootObject):
      (WebCore::ScriptController::windowScriptNPObject):
      (WebCore::ScriptController::jsObjectForPluginElement):
      * bindings/js/ScriptController.h:
      (WebCore::ScriptController::windowShell):
      (WebCore::ScriptController::existingWindowShell):
      (WebCore::ScriptController::globalObject):
      (WebCore::ScriptController::forgetWorld):
      * bindings/js/ScriptControllerMac.mm:
      (WebCore::ScriptController::windowScriptObject):
      * bindings/js/ScriptEventListener.cpp:
      (WebCore::createAttributeEventListener):
      * bindings/js/ScriptFunctionCall.cpp:
      (WebCore::ScriptFunctionCall::call):
      (WebCore::ScriptFunctionCall::construct):
      * bindings/js/ScriptObjectQuarantine.cpp:
      (WebCore::getQuarantinedScriptObject):
      * bindings/js/ScriptState.cpp:
      (WebCore::scriptStateFromNode):
      (WebCore::scriptStateFromPage):
      * bindings/js/ScriptState.h:
      * bindings/js/WorkerScriptController.cpp:
      (WebCore::WorkerScriptController::WorkerScriptController):
      (WebCore::WorkerScriptController::evaluate):
      * bindings/objc/DOMInternal.mm:
      (-[WebScriptObject _initializeScriptDOMNodeImp]):
      * bindings/objc/WebScriptObject.mm:
      (-[WebScriptObject callWebScriptMethod:withArguments:]):
      (-[WebScriptObject evaluateWebScript:]):
      * bindings/scripts/CodeGeneratorJS.pm:
      * bridge/NP_jsobject.cpp:
      (_NPN_InvokeDefault):
      (_NPN_Invoke):
      (_NPN_Evaluate):
      (_NPN_Construct):
      * bridge/jni/jni_jsobject.mm:
      (JavaJSObject::call):
      (JavaJSObject::eval):
      * dom/Document.cpp:
      (WebCore::Document::createWrapperCache):
      * dom/Document.h:
      (WebCore::Document::wrapperCacheMap):
      (WebCore::Document::getWrapperCache):
      * inspector/InspectorController.cpp:
      (WebCore::InspectorController::startUserInitiatedProfiling):
      (WebCore::InspectorController::stopUserInitiatedProfiling):
      * inspector/JavaScriptCallFrame.cpp:
      (WebCore::JavaScriptCallFrame::evaluate):
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::dispatchWindowObjectAvailable):
      * platform/network/mac/AuthenticationMac.mm:
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::XMLHttpRequest):
      (WebCore::XMLHttpRequest::dropProtection):
      * xml/XMLHttpRequest.h:
      (WebCore::XMLHttpRequest::create):
      
      WebKit/mac: https://bugs.webkit.org/show_bug.cgi?id=30696
      Update to incorporate support for IsolatedWorlds in JSC bindings.
      
      Patch by Gavin Barraclough <barraclough@apple.com> on 2009-10-16
      Reviewed by Sam Weinig & Geoff Garen.
      
      * WebView/WebFrame.mm:
      (-[WebFrame _attachScriptDebugger]):
      (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
      (-[WebFrame globalContext]):
      * WebView/WebScriptDebugDelegate.mm:
      (-[WebScriptCallFrame evaluateWebScript:]):
      * WebView/WebView.mm:
      (-[WebView aeDescByEvaluatingJavaScriptFromString:]):
      
      WebKit/win: https://bugs.webkit.org/show_bug.cgi?id=30696
      Update to incorporate support for IsolatedWorlds in JSC bindings.
      
      Patch by Gavin Barraclough <barraclough@apple.com> on 2009-10-22
      Reviewed by Sam Weinig & Geoff Garen.
      
      * Interfaces/IWebFramePrivate.idl:
      * WebFrame.cpp:
      (WebFrame::globalContext):
      (WebFrame::windowObjectCleared):
      (WebFrame::stringByEvaluatingJavaScriptInIsolatedWorld):
      * WebFrame.h:
      
      WebKitTools: https://bugs.webkit.org/show_bug.cgi?id=30696
      Enable isolated-worlds tests on mac.
      
      Patch by Gavin Barraclough <barraclough@apple.com> on 2009-10-22
      Reviewed by Sam Weinig & Geoff Garen.
      
      Add private interface for DRT to invoke execution in a given world.
      
      * DumpRenderTree/LayoutTestController.cpp:
      (evaluateScriptInIsolatedWorldCallback):
      (LayoutTestController::staticFunctions):
      * DumpRenderTree/LayoutTestController.h:
      * DumpRenderTree/mac/LayoutTestControllerMac.mm:
      (LayoutTestController::evaluateScriptInIsolatedWorld):
      * DumpRenderTree/win/LayoutTestControllerWin.cpp:
      (LayoutTestController::evaluateScriptInIsolatedWorld):
      
      LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=30696
      Enable isolated-worlds tests on mac.
        * Update the results to switch from windows to unix line-endings.
        * Update all-window-prototypes.html to allow for properties on
          the global object with null prototypes (just skip over them).
      
      Patch by Gavin Barraclough <barraclough@apple.com> on 2009-10-19
      Reviewed by Sam Weinig & Geoff Garen.
      
      * http/tests/security/isolatedWorld/all-window-properties-expected.txt:
      * http/tests/security/isolatedWorld/all-window-prototypes-expected.txt:
      * http/tests/security/isolatedWorld/all-window-prototypes.html:
      * http/tests/security/isolatedWorld/body-properties-expected.txt:
      * http/tests/security/isolatedWorld/body-prototype-expected.txt:
      * http/tests/security/isolatedWorld/document-properties-expected.txt:
      * http/tests/security/isolatedWorld/document-prototype-expected.txt:
      * http/tests/security/isolatedWorld/global-variables-expected.txt:
      * http/tests/security/isolatedWorld/image-properties-expected.txt:
      * http/tests/security/isolatedWorld/image-prototype-expected.txt:
      * http/tests/security/isolatedWorld/location-properties-expected.txt:
      * http/tests/security/isolatedWorld/location-prototype-expected.txt:
      * http/tests/security/isolatedWorld/number-prototype-expected.txt:
      * http/tests/security/isolatedWorld/object-prototype-expected.txt:
      * http/tests/security/isolatedWorld/storage-properties-expected.txt:
      * http/tests/security/isolatedWorld/storage-prototype-expected.txt:
      * http/tests/security/isolatedWorld/string-prototype-expected.txt:
      * http/tests/security/isolatedWorld/window-properties-expected.txt:
      * platform/mac/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c53df831
  12. 18 Oct, 2009 1 commit
  13. 16 Oct, 2009 1 commit
  14. 15 Oct, 2009 1 commit
  15. 14 Oct, 2009 1 commit
  16. 07 Oct, 2009 1 commit
    • aa@chromium.org's avatar
      Update isolated worlds under v8 to support world reuse. · 0ad18647
      aa@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=30145
      
      Patch by Aaron Boodman <aa@chromium.org> on 2009-10-07
      Reviewed by Adam Barth.
      
      WebCore: 
      
      * bindings/v8/ScriptController.cpp:
      Replace evaluateInNewIsolatedWorld() withe evaluateInIsolatedWorld(id).
      (WebCore::ScriptController::evaluateInIsolatedWorld):
      * bindings/v8/ScriptController.h: Ditto.
      * bindings/v8/V8Proxy.cpp: Ditto.
      (WebCore::V8Proxy::~V8Proxy): Dittio.
      (WebCore::V8Proxy::evaluateInIsolatedWorld): Ditto.
      * bindings/v8/V8Proxy.h: Ditto.
      * bindings/v8/V8IsolatedWorld.cpp:
      Add support for controlling lifetime of a world, rather than relying on GC.
      (WebCore::V8IsolatedWorld::contextWeakReferenceCallback): Ditto.
      (WebCore::V8IsolatedWorld::V8IsolatedWorld): Ditto.
      (WebCore::V8IsolatedWorld::destroy): Ditto.
      * bindings/v8/V8IsolatedWorld.h: Ditto.
      
      LayoutTests: 
      
      * http/tests/security/isolatedWorld/iframe.html: Added.
      * http/tests/security/isolatedWorld/world-reuse-expected.txt: Added.
      * http/tests/security/isolatedWorld/world-reuse.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0ad18647
  17. 21 Sep, 2009 1 commit
    • jam@chromium.org's avatar
      WebCore: · 9e5f0f8f
      jam@chromium.org authored
      2009-09-15  John Abd-El-Malek  <jam@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Prevent sleeps in unload handlers.
              https://bugs.webkit.org/show_bug.cgi?id=29193
      
              Test: fast/dom/Window/slow_unload_handler.html
      
              * WebCore.gypi:
              * bindings/v8/DateExtension.cpp: Added.
              (WebCore::DateExtension::DateExtension):
              (WebCore::DateExtension::get):
              (WebCore::DateExtension::setAllowSleep):
              (WebCore::DateExtension::GetNativeFunction):
              (WebCore::DateExtension::weakCallback):
              (WebCore::DateExtension::GiveEnableSleepDetectionFunction):
              (WebCore::DateExtension::OnSleepDetected):
              * bindings/v8/DateExtension.h: Added.
              * bindings/v8/V8AbstractEventListener.cpp:
              (WebCore::V8AbstractEventListener::invokeEventHandler):
              * bindings/v8/V8Proxy.cpp:
              (WebCore::V8Proxy::createNewContext):
              (WebCore::V8Proxy::registerExtensionWithV8):
              (WebCore::V8Proxy::registeredExtensionWithV8):
              * bindings/v8/V8Proxy.h:
      
      
      LayoutTests:
      2009-09-15  John Abd-El-Malek  <jam@chromium.org>
      
              Reviewed by Darin Fisher.
      
              Prevent sleeps in unload handlers.
              https://bugs.webkit.org/show_bug.cgi?id=29193
      
              * fast/dom/Window/resources/slow_unload_handler1.html: Added.
              * fast/dom/Window/slow_unload_handler-expected.txt: Added.
              * fast/dom/Window/slow_unload_handler.html: Added.
              * platform/gtk/Skipped:
              * platform/mac/Skipped:
              * platform/qt/Skipped:
              * platform/win/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e5f0f8f
  18. 17 Sep, 2009 1 commit
  19. 14 Sep, 2009 1 commit
  20. 27 Aug, 2009 1 commit
    • abarth@webkit.org's avatar
      2009-08-26 Yaar Schnitman <yaar@chromium.org> · 84659b96
      abarth@webkit.org authored
              Reviewed by Adam Barth.
      
              Re-baselined and created new isolatedWorld tests to play nice with localStorage & sessionStorage.
              https://bugs.webkit.org/show_bug.cgi?id=27992
      
              * http/tests/security/isolatedWorld/all-window-properties.html: Re-baselined.
              * http/tests/security/isolatedWorld/storage-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/storage-properties.html: Added.
              * http/tests/security/isolatedWorld/storage-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/storage-prototype.html: Added.
              * platform/qtk/Skipped: Added new tests.
              * platform/mac/Skipped: Added new tests.
              * platform/qt/Skipped: Added new tests.
              * platform/win/Skipped: Added new tests.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      84659b96
  21. 12 Aug, 2009 2 commits
    • eric@webkit.org's avatar
      2009-08-12 Steve Block <steveblock@google.com> · 21d63ab8
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Bug 27716: Add Geolocation layout tests.
              https://bugs.webkit.org/show_bug.cgi?id=27716
      
              Adds the first, basic Geolocation layout test. This simply tests that
              navigator.geolocation is present when it should be.
      
              * fast/dom/Geolocation: Added. Directory for Geolocation layout tests.
              * fast/dom/Geolocation/enabled.html: Added. HTML wrapper for enabled.js test.
              * fast/dom/Geolocation/resources: Added. Directory for Geolocation layout tests JS source.
              * fast/dom/Geolocation/resources/enabled.js: Added. Tests that navigator.geolocation is present.
              * fast/dom/Geolocation/resources/TEMPLATE.html: Added. Template for creating HTML wrapper files for JS tests with make-js-test-wrappers.
              * fast/dom/Geolocation/enabled-expected.txt: Added. Expected result for above test.
              * platform/mac/Skipped: Modified. Skip Geolocation tests.
              * platform/qt/Skipped: Modified. Skip Geolocation tests.
              * platform/win/Skipped: Modified. Skip Geolocation tests.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      21d63ab8
    • eric@webkit.org's avatar
      2009-08-12 Eric Seidel <eric@webkit.org> · 1a6c9142
      eric@webkit.org authored
              No review, just skipping tests to make the bots green.
      
              REGRESSION (r47110): 4 media regressions on the bots
              https://bugs.webkit.org/show_bug.cgi?id=28221
      
              Skipping these until Eric Carlson has a fix.
      
              * platform/mac/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1a6c9142
  22. 07 Aug, 2009 1 commit
  23. 06 Aug, 2009 2 commits
    • abarth@webkit.org's avatar
      WebCore: · cd71ebe0
      abarth@webkit.org authored
      2009-08-06  Adam Barth  <abarth@webkit.org>
      
              Unreview rollout.
      
              Revert 46840 because it broke the reliability tests.
      
              * bindings/v8/ScheduledAction.cpp:
              (WebCore::ScheduledAction::ScheduledAction):
              (WebCore::ScheduledAction::execute):
              * bindings/v8/ScheduledAction.h:
              (WebCore::ScheduledAction::ScheduledAction):
              * bindings/v8/custom/V8DOMWindowCustom.cpp:
              (WebCore::V8Custom::WindowSetTimeoutImpl):
              * bindings/v8/custom/V8WorkerContextCustom.cpp:
              (WebCore::SetTimeoutOrInterval):
      
      LayoutTests:
      
      2009-08-06  Adam Barth  <abarth@webkit.org>
      
              Unreviewed rollout.
      
              Revert 46840 because it broke the reliability tests.
      
              * http/tests/security/isolatedWorld/window-setTimeout-function-expected.txt: Removed.
              * http/tests/security/isolatedWorld/window-setTimeout-function.html: Removed.
              * http/tests/security/isolatedWorld/window-setTimeout-string-expected.txt: Removed.
              * http/tests/security/isolatedWorld/window-setTimeout-string.html: Removed.
              * platform/gtk/Skipped:
              * platform/mac/Skipped:
              * platform/qt/Skipped:
              * platform/win/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46850 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cd71ebe0
    • abarth@webkit.org's avatar
      WebCore: · ab164026
      abarth@webkit.org authored
      2009-08-06  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              [V8] Teach ScheduledAction::execute about isolated worlds
              https://bugs.webkit.org/show_bug.cgi?id=27703
      
              We now save a weak handle to the original context.  We use that handle
              to call the timeout in the right context / world.
      
              Tests: http/tests/security/isolatedWorld/window-setTimeout-function.html
                     http/tests/security/isolatedWorld/window-setTimeout-string.html
      
              * bindings/v8/ScheduledAction.cpp:
              (WebCore::ScheduledAction::ScheduledAction):
              (WebCore::ScheduledAction::execute):
              * bindings/v8/ScheduledAction.h:
              (WebCore::ScheduledAction::ScheduledAction):
              * bindings/v8/custom/V8DOMWindowCustom.cpp:
              (WebCore::V8Custom::WindowSetTimeoutImpl):
              * bindings/v8/custom/V8WorkerContextCustom.cpp:
              (WebCore::SetTimeoutOrInterval):
      
      LayoutTests:
      
      2009-08-06  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              [V8] Teach ScheduledAction::execute about isolated worlds
              https://bugs.webkit.org/show_bug.cgi?id=27703
      
              Add test coverage for the interaction between setTimeout and isolated
              worlds.
      
              * http/tests/security/isolatedWorld/window-setTimeout-function-expected.txt: Added.
              * http/tests/security/isolatedWorld/window-setTimeout-function.html: Added.
              * http/tests/security/isolatedWorld/window-setTimeout-string-expected.txt: Added.
              * http/tests/security/isolatedWorld/window-setTimeout-string.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab164026
  24. 30 Jul, 2009 2 commits
  25. 29 Jul, 2009 2 commits
    • abarth@webkit.org's avatar
      2009-07-29 Avi Drissman <avi@chromium.org> · 90def325
      abarth@webkit.org authored
              Reviewed by Darin Adler.
      
              ImageSourceCG makes bad data refs (race condition causes blank images)
              https://bugs.webkit.org/show_bug.cgi?id=27777
      
              Make ImageSourceCG guarantee that the lifetime of the SharedBuffer that
              backs the CFDataRef will be long enough.
      
              No new tests, as this fixes a bug with a race condition that is
              difficult to trigger.
      
              * platform/graphics/cg/ImageSourceCG.cpp:
              (WebCore::ImageSource::setData):
      
      2009-07-29  Kent Tamura  <tkent@chromium.org>
      
              Reviewed by Nikolas Zimmermann.
      
              Fix a bug that HTMLOptionElement::value() returns an incorrect
              value in a case that the element has a label attribute and no
              value attribute.
              https://bugs.webkit.org/show_bug.cgi?id=27760
      
              * fast/forms/option-value-and-label-expected.txt: Added.
              * fast/forms/option-value-and-label.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      90def325
    • abarth@webkit.org's avatar
      2009-07-29 Adam Barth <abarth@webkit.org> · 1c3700e5
      abarth@webkit.org authored
              Reviewed by Dimitri Glazkov.
      
              [V8] Teach V8Proxy::context about isolated worlds
              https://bugs.webkit.org/show_bug.cgi?id=27701
      
              Change V8Proxy::context(Frame*) to understand isolated worlds.  Audit
              all callers of this method to make sure they want isolated worlds.  In
              cases where we really want the main world, I've changed the call to
              V8Proxy::mainWorldContext(Frame*).
              
              The main visible change is to the document.open method when called with
              more than two arguments.  This design seems more likely to lead to
              future correct code.
      
              Test: http/tests/security/isolatedWorld/document-open.html
      
              * bindings/v8/ScriptController.cpp:
              (WebCore::ScriptController::processingUserGesture):
              (WebCore::ScriptController::evaluate):
              (WebCore::ScriptController::bindToWindowObject):
              (WebCore::ScriptController::collectGarbage):
              (WebCore::createScriptObject):
              (WebCore::ScriptController::createScriptObjectForPluginElement):
              * bindings/v8/ScriptObjectQuarantine.cpp:
              (WebCore::getQuarantinedScriptObject):
              * bindings/v8/V8AbstractEventListener.cpp:
              (WebCore::V8AbstractEventListener::handleEvent):
              * bindings/v8/V8DOMWrapper.cpp:
              (WebCore::V8DOMWrapper::getConstructor):
              (WebCore::V8DOMWrapper::setHiddenWindowReference):
              (WebCore::V8DOMWrapper::convertNodeToV8Object):
              (WebCore::V8DOMWrapper::convertWindowToV8Object):
              * bindings/v8/V8Helpers.cpp:
              (WebCore::toV8Context):
              * bindings/v8/V8LazyEventListener.cpp:
              (WebCore::V8LazyEventListener::getListenerFunction):
              (WebCore::V8LazyEventListener::getWrappedListenerFunction):
              * bindings/v8/V8Proxy.cpp:
              (WebCore::V8Proxy::context):
              (WebCore::V8Proxy::mainWorldContext):
              (WebCore::V8Proxy::bindJsObjectToWindow):
              * bindings/v8/V8Proxy.h:
      
      2009-07-29  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Dimitri Glazkov.
      
              [V8] Teach V8Proxy::context about isolated worlds
              https://bugs.webkit.org/show_bug.cgi?id=27701
      
              Test that calling document.open with more than two arguments calls the
              window.open method from the correct world.
      
              * http/tests/security/isolatedWorld/document-open-expected.txt: Added.
              * http/tests/security/isolatedWorld/document-open.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c3700e5
  26. 16 Jul, 2009 1 commit
    • abarth@webkit.org's avatar
      2009-07-15 Adam Barth <abarth@webkit.org> · 41a823d5
      abarth@webkit.org authored
              Reviewed by Darin Fisher.
      
              Add tests for isolated worlds
              https://bugs.webkit.org/show_bug.cgi?id=27331
      
              These tests are currently disabled on JSC ports.
      
              * http/tests/security/isolatedWorld/all-window-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/all-window-properties.html: Added.
              * http/tests/security/isolatedWorld/all-window-prototypes-expected.txt: Added.
              * http/tests/security/isolatedWorld/all-window-prototypes.html: Added.
              * http/tests/security/isolatedWorld/body-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/body-properties.html: Added.
              * http/tests/security/isolatedWorld/body-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/body-prototype.html: Added.
              * http/tests/security/isolatedWorld/document-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/document-properties.html: Added.
              * http/tests/security/isolatedWorld/document-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/document-prototype.html: Added.
              * http/tests/security/isolatedWorld/global-variables-expected.txt: Added.
              * http/tests/security/isolatedWorld/global-variables.html: Added.
              * http/tests/security/isolatedWorld/image-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/image-properties.html: Added.
              * http/tests/security/isolatedWorld/image-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/image-prototype.html: Added.
              * http/tests/security/isolatedWorld/location-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/location-properties.html: Added.
              * http/tests/security/isolatedWorld/location-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/location-prototype.html: Added.
              * http/tests/security/isolatedWorld/number-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/number-prototype.html: Added.
              * http/tests/security/isolatedWorld/object-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/object-prototype.html: Added.
              * http/tests/security/isolatedWorld/string-prototype-expected.txt: Added.
              * http/tests/security/isolatedWorld/string-prototype.html: Added.
              * http/tests/security/isolatedWorld/window-properties-expected.txt: Added.
              * http/tests/security/isolatedWorld/window-properties.html: Added.
              * platform/gtk/Skipped:
              * platform/mac/Skipped:
              * platform/qt/Skipped:
              * platform/win/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41a823d5
  27. 06 Jun, 2009 1 commit
  28. 19 May, 2009 2 commits
  29. 12 May, 2009 1 commit
    • simon.fraser@apple.com's avatar
      2009-05-12 Simon Fraser <simon.fraser@apple.com> · 4facb405
      simon.fraser@apple.com authored
              Reviewed by Dan Bernstein
      
              <rdar://problem/6497461> Many media layout tests failing on SnowLeopard.
      
              Turn media tests back on for SnowLeopard, and generate new pixel results. Put override
              results in platform/mac-leopard when necessary.
      
              media/video-size-intrinsic-scale.html fails and is still skipped: <rdar://problem/6877291>
      
              * platform/mac-leopard/media/audio-controls-rendering-expected.checksum: Added.
              * platform/mac-leopard/media/audio-controls-rendering-expected.png: Added.
              * platform/mac-leopard/media/video-aspect-ratio-expected.checksum: Added.
              * platform/mac-leopard/media/video-aspect-ratio-expected.png: Added.
              * platform/mac-leopard/media/video-controls-rendering-expected.checksum: Added.
              * platform/mac-leopard/media/video-controls-rendering-expected.png: Added.
              * platform/mac-leopard/media/video-display-toggle-expected.checksum: Added.
              * platform/mac-leopard/media/video-display-toggle-expected.png: Added.
              * platform/mac-leopard/media/video-empty-source-expected.checksum: Added.
              * platform/mac-leopard/media/video-empty-source-expected.png: Added.
              * platform/mac-leopard/media/video-layer-crash-expected.checksum: Added.
              * platform/mac-leopard/media/video-layer-crash-expected.png: Added.
              * platform/mac-leopard/media/video-transformed-expected.checksum: Added.
              * platform/mac-leopard/media/video-transformed-expected.png: Added.
              * platform/mac-leopard/media/video-zoom-controls-expected.checksum: Added.
              * platform/mac-leopard/media/video-zoom-controls-expected.png: Added.
              * platform/mac-leopard/media/video-zoom-expected.checksum: Added.
              * platform/mac-leopard/media/video-zoom-expected.png: Added.
              * platform/mac-snowleopard/Skipped:
              * platform/mac/Skipped:
              * platform/mac/media/audio-controls-rendering-expected.checksum:
              * platform/mac/media/audio-controls-rendering-expected.png:
              * platform/mac/media/video-aspect-ratio-expected.checksum:
              * platform/mac/media/video-aspect-ratio-expected.png:
              * platform/mac/media/video-controls-rendering-expected.checksum:
              * platform/mac/media/video-controls-rendering-expected.png:
              * platform/mac/media/video-controls-visible-audio-only-expected.checksum: Removed.
              * platform/mac/media/video-controls-visible-audio-only-expected.png: Removed.
              * platform/mac/media/video-display-toggle-expected.checksum:
              * platform/mac/media/video-display-toggle-expected.png:
              * platform/mac/media/video-empty-source-expected.checksum:
              * platform/mac/media/video-empty-source-expected.png:
              * platform/mac/media/video-layer-crash-expected.checksum:
              * platform/mac/media/video-layer-crash-expected.png:
              * platform/mac/media/video-transformed-expected.checksum:
              * platform/mac/media/video-transformed-expected.png:
              * platform/mac/media/video-zoom-controls-expected.checksum:
              * platform/mac/media/video-zoom-controls-expected.png:
              * platform/mac/media/video-zoom-expected.checksum:
              * platform/mac/media/video-zoom-expected.png:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43592 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4facb405
  30. 27 Apr, 2009 1 commit
  31. 23 Mar, 2009 1 commit
    • eric.carlson@apple.com's avatar
      2009-03-23 Eric Carlson <eric.carlson@apple.com> · 72a6d933
      eric.carlson@apple.com authored
              Reviewed by Adele Peterson.
      
              https://bugs.webkit.org/show_bug.cgi?id=24588
              
              Update media element implementation to current HTML5 spec
      
              New tests: 
                     media/media-constants.html
                     media/video-seek-no-src-exception.html
                     media/video-source-add-src.html
                     media/video-src-invalid-remove.html
                     media/video-src-plus-source.html
                     media/video-timeupdate-during-playback.html
      
              * dom/EventNames.h: Remove obsolute events, add new ones.
              * html/HTMLMediaElement.cpp:
              (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new member vars.
              (WebCore::HTMLMediaElement::attributeChanged): Trigger load() only when we don't
              have a source.
              (WebCore::HTMLMediaElement::removedFromDocument): Deal with state name changes.
              (WebCore::HTMLMediaElement::scheduleProgressEvent): New, create a progress event and 
              add it to the event queue to be dispatch when the timer fires.
              (WebCore::HTMLMediaElement::scheduleEvent): New, create a generic event and add
              it to the event queue to be dispatch when the timer fires.
              (WebCore::HTMLMediaElement::enqueueEvent): Add an event to the queue and ticke the 
              asynch event timer.
              (WebCore::HTMLMediaElement::asyncEventTimerFired): Dispatch all pending events.
              (WebCore::HTMLMediaElement::loadTimerFired): Either trigger the initial load or
              try to load the next <source> url.
              (WebCore::HTMLMediaElement::load): Minor style change.
              (WebCore::HTMLMediaElement::loadInternal): The first part of the spec load algorithm, cleanup
              the current load (if any) and set up state for a new load.
              (WebCore::HTMLMediaElement::selectMediaResource): Deal with no 'src' or <source>, post 'loadstart'
              event, and initiate load from 'src' if present.
              (WebCore::HTMLMediaElement::loadNextSourceChild): Initiate load from next <source> url, or trigger
              noneSupported() if no more to consider.
              (WebCore::HTMLMediaElement::loadResource): Instantiate a new MediaPlayer and ask it to load a url.
              (WebCore::HTMLMediaElement::startProgressEventTimer): Start the repeating progress event timer.
              (WebCore::HTMLMediaElement::noneSupported): Post error event and set up state when no valid 
              media url was found.
              (WebCore::HTMLMediaElement::mediaEngineError): Post error event and set up state when no valid 
              media engine failed with a decode error or a network error.
              (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
              (WebCore::HTMLMediaElement::setNetworkState): Updated for new spec network states.
              (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
              (WebCore::HTMLMediaElement::setReadyState): Updated for new spec ready state.
              (WebCore::HTMLMediaElement::progressEventTimerFired): Bail if the network is not active.
              (WebCore::HTMLMediaElement::seek): Return INVALID_STATE_ERR exception if state is too low or
              if player hasn't been set up yet. This is necessary becase load() is async. Clear the flag
              we use to guard against sending 'ended' more than once.
              (WebCore::HTMLMediaElement::duration): Don't bother calling media engine before it has metadata.
              (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Remove exception param, 0 is no longer an
              invalid rate. 
              (WebCore::HTMLMediaElement::setPlaybackRate): Remove exception param, 0 is no longer an
              invalid rate. Cache rate being set so we can use it later if media engine isn't ready now.
              (WebCore::HTMLMediaElement::play): Remove exception param, play() before load() now just
              starts loading asynchronously.
              (WebCore::HTMLMediaElement::playInternal): Remove exception param. Fire 'waiting' or 'playing'
              event depending on current state.
              (WebCore::HTMLMediaElement::pause): Remove exception param, pause() before load() now just
              starts loading asynchronously.
              (WebCore::HTMLMediaElement::pauseInternal): Remove exception param.
              (WebCore::HTMLMediaElement::setVolume): dispatchEventAsync -> scheduleEvent
              (WebCore::HTMLMediaElement::setMuted): dispatchEventAsync -> scheduleEvent
              (WebCore::HTMLMediaElement::togglePlayState): Remove exception param.
              (WebCore::HTMLMediaElement::beginScrubbing): pause() doesn't take an exception param.
              (WebCore::HTMLMediaElement::startPlaybackProgressTimer): New, starts timer that fires 4 times per
              second when the movie is playing to timeupdate so we can post 'timeupdate' events.
              (WebCore::HTMLMediaElement::playbackProgressTimerFired): Timer proc.
              (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): Bottleneck around scheduling a 'timeupdate'
              event because we both fire them them when the spec says we should and when the media engine
              says that time has jumped, but we don't want to fire more than one at a given movie time. We also
              use this bottleneck to keep track of the last time one was posted so we won't fire too often
              during playback.
              (WebCore::HTMLMediaElement::canPlay): readyState now tracks whether or not we have metadata.
              (WebCore::HTMLMediaElement::havePotentialSourceChild): New, checks to see if there are a <source>
              element with a 'src' attribute that we have not tried to load yet.
              (WebCore::HTMLMediaElement::nextSourceChild): New, returns the url and content type of the next
              <source> element that we haven't tried to load.
              (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Schedule 'seeked' event when seeking completes.
              Set a flag when we post the 'ended' event, clear it when time changed and we aren't at the end since
              some media engines call this proc more than once when playback reaches the end and stops, but we
              don't want to post 'ended' more than once.
              (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): New, added so media engine can inform
              when the movie duration changes and we can post 'durationchanged' event.
              (WebCore::HTMLMediaElement::mediaPlayerRateChanged): New, added so media engine can inform when
              the rate changed and we can updated our cached rate. This is useful because we only want to know
              post periodic 'timeupdate' events when the movie is actually playing, and because we want to know
              the actual playback rate when it differs from what we tried to set.
              (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): New, added so media engine can inform when
              a movie's intrinsic size changes and we can inform the renderer.
              (WebCore::HTMLMediaElement::potentiallyPlaying): Renamed from activelyPlaying since the spec now
              uses "actively playing" for this concept. Update logic for new state names and un-comment calls
              to stoppedDueToErrors() and pausedForUserInteraction() since the spec says those condiditons
              are part of the answer.
              (WebCore::HTMLMediaElement::endedPlayback): Update logic for new state names. 
              (WebCore::HTMLMediaElement::stoppedDueToErrors): New, spec says this logic should be part of
              the determination of "potentially playing".
              (WebCore::HTMLMediaElement::pausedForUserInteraction): New, placeholder for when (if) user
              agent supports this spec concept.
              (WebCore::HTMLMediaElement::updatePlayState): Stop timer used to fire periodic 'timeupdate' 
              events when we pauses the movie. Set the media engine rate before calling play() in case it
              wasn't set up when the rate was changed.
              (WebCore::HTMLMediaElement::stopPeriodicTimers): New, stop the progress event and 'timeupate'
              event timers.
              (WebCore::HTMLMediaElement::userCancelledLoad): New, logic pulled out of documentWillBecomeInactive
              and updated for the current spec.
              (WebCore::HTMLMediaElement::documentWillBecomeInactive): Moved some logic to userCancelledLoad.
              (WebCore::HTMLMediaElement::documentDidBecomeActive): Update comments.
              (WebCore::HTMLMediaElement::initialURL): Update for refactoring of code that determines the 
              initial url.
              * html/HTMLMediaElement.h: Change ReadyState and NetworkState enums to match names in the spec,
              update for changes in .cpp.
              (WebCore::HTMLMediaElement::):
      
              * html/HTMLMediaElement.idl: Update ready state and network state constants for spec changes.
              defaultPlaybackRate, playbackRate, play(), and pause() no longer raise exceptions.
      
              * html/HTMLSourceElement.cpp:
              (WebCore::HTMLSourceElement::insertedIntoDocument): Update for network state name changes.
      
              * html/HTMLVideoElement.cpp:
              (WebCore::HTMLVideoElement::updatePosterImage): Update for ready state name changes.
      
              * html/MediaError.h:
              (WebCore::MediaError::): add MEDIA_ERR_NONE_SUPPORTED.
      
              * html/MediaError.idl: add MEDIA_ERR_NONE_SUPPORTED.
      
              * loader/MediaDocument.cpp:
              (WebCore::MediaDocument::defaultEventHandler): play() and pause() don't take an exception.
      
              * platform/graphics/MediaPlayer.cpp:
              (WebCore::NullMediaPlayerPrivate::readyState): Update for newtork state name changes.
              (WebCore::MediaPlayer::sizeChanged): New, so engine can report intrinsic size changes.
              (WebCore::MediaPlayer::rateChanged): New, so engine can report rate changes.
              (WebCore::MediaPlayer::durationChanged): New, so engine can report duration changes.
              * platform/graphics/MediaPlayer.h: Update NetworkState and ReadyState enum names to match spec
              states.
              (WebCore::MediaPlayerClient::mediaPlayerDurationChanged): New.
              (WebCore::MediaPlayerClient::mediaPlayerRateChanged): New.
              (WebCore::MediaPlayerClient::mediaPlayerSizeChanged): New.
              (WebCore::MediaPlayer::):
      
              * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
              (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::load): Ditto.
              (WebCore::MediaPlayerPrivate::updateStates): Ditto.
              (WebCore::MediaPlayerPrivate::loadingFailed): Ditto.
      
              * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Update for network/ready state name changes.
              Remove endPointTimer, it is no longer necessary. Add m_enabledTrackCount and m_duration.
              (WebCore::MediaPlayerPrivate::metaDataAvailable):
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
              (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer or m_endTime. Initialize
              m_enabledTrackCount and m_duration. Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
              (WebCore::MediaPlayerPrivate::pause): Ditto.
              (WebCore::MediaPlayerPrivate::currentTime): No more m_endTime.
              (WebCore::MediaPlayerPrivate::seek): Ditto.
              (WebCore::MediaPlayerPrivate::doSeek): Ditto, plus don't call setRate(0) when the rate is
              already zero.
              (WebCore::MediaPlayerPrivate::setEndTime): No more m_endTime.
              (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes. Return
              different errors depending on what causes a failure. Watch for and report duration changes.
              (WebCore::MediaPlayerPrivate::rateChanged): Report rate changes.
              (WebCore::MediaPlayerPrivate::sizeChanged): Report size changes.
              (WebCore::MediaPlayerPrivate::didEnd): No more endpoint timer.
              (WebCore::MediaPlayerPrivate::setVisible): Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): Don't return number of unsupported
              tracks, store in m_enabledTrackCount so we can use it to help determine causes of failure.
      
              * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
              (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::load): Ditto.
              (WebCore::MediaPlayerPrivate::duration): Ditto.
              (WebCore::MediaPlayerPrivate::updateStates): Ditto.
              (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
      
              * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
              (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer. Update for 
              network/ready state name changes.
              (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes. No more
              m_endPointTimer.
              (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
              (WebCore::MediaPlayerPrivate::pause): Ditto. 
              (WebCore::MediaPlayerPrivate::setEndTime): Ditto.
              (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes.
              (WebCore::MediaPlayerPrivate::didEnd): No more m_endPointTimer.
              * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
      
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Update for network/ready state 
              name changes.
              (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto.
      
      2009-03-23  Eric Carlson  <eric.carlson@apple.com>
      
              Reviewed by Adele Peterson.
              
              https://bugs.webkit.org/show_bug.cgi?id=24588
              Bug 24588: Update media element implementation to current spec
      
              * media/media-constants-expected.txt: Test all media constants.
              * media/media-constants.html: Ditto.
              * media/remove-from-document-expected.txt: Updated for spec changes.
              * media/remove-from-document-no-load.html: Ditto.
              * media/remove-from-document.html: Ditto.
              * media/unsupported-rtsp-expected.txt: Ditto.
              * media/unsupported-rtsp.html: Ditto.
              * media/video-currentTime-set-expected.txt: Ditto.
              * media/video-currentTime-set.html: Ditto.
              * media/video-error-does-not-exist-expected.txt: Ditto.
              * media/video-error-does-not-exist.html: Ditto.
              * media/video-load-networkState-expected.txt: Ditto.
              * media/video-load-networkState.html: Ditto.
              * media/video-load-readyState-expected.txt: Ditto.
              * media/video-load-readyState.html: Ditto.
              * media/video-loop-expected.txt: Ditto.
              * media/video-loop.html: Ditto.
              * media/video-pause-empty-events-expected.txt: Ditto.
              * media/video-pause-empty-events.html: Ditto.
              * media/video-play-empty-events-expected.txt: Ditto.
              * media/video-play-empty-events.html: Ditto.
              * media/video-play-pause-events-expected.txt: Ditto.
              * media/video-play-pause-events.html: Ditto.
              * media/video-play-pause-exception-expected.txt: Ditto.
              * media/video-play-pause-exception.html: Ditto.
              * media/video-seek-no-src-exception-expected.txt: Test that seeking 
              whene there is no 'src' attribute throws an INVALID_STATE_ERR exception.
              * media/video-seek-no-src-exception.html: 
              * media/video-seek-past-end-playing-expected.txt: Ditto.
              * media/video-seek-past-end-playing.html: Ditto.
              * media/video-seeking-expected.txt: Ditto.
              * media/video-seeking.html: Ditto.
              * media/video-source-add-src-expected.txt: Test that adding a 'src' 
              attribute does nothing when a <source> element has already been chosen.
              * media/video-source-add-src.html: 
              * media/video-src-change-expected.txt: Ditto.
              * media/video-src-change.html: Ditto.
              * media/video-src-invalid-remove-expected.txt: Test that removing invalid 
              'src' attribute triggers <source> elements loading.
              * media/video-src-invalid-remove.html: 
              * media/video-src-plus-source-expected.txt: Test that a <source> element 
              is not used when a bogus 'src' attribute is present.
              * media/video-src-plus-source.html: 
              * media/video-src-remove-expected.txt: Ditto.
              * media/video-src-remove.html: Ditto.
              * media/video-test.js: 
              (findMediaElement):
              (testExpected):
              (waitForEvent):
              (failTest):
              * media/video-timeupdate-during-playback-expected.txt: Test that 'timeupdate' events
              are posted while an element is playing but not while paused.
              * media/video-timeupdate-during-playback.html:
      
              * platform/mac/Skipped: Skip media/video-error-abort.html for now, need to figure out how to 
              test now that the 'loadstart' event is now fired asynchronously.
              * platform/win/Skipped
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72a6d933
  32. 12 Feb, 2009 1 commit