1. 21 Jun, 2009 10 commits
    • levin@chromium.org's avatar
      2009-06-21 David Levin <levin@chromium.org> · 0255857a
      levin@chromium.org authored
              Reviewed by NOBODY.
      
              Speculative tiger build fix and a windows build fix.
              More fixes may still be in order.
      
              * WebCore.vcproj/WebCoreCommon.vsprops:
              * dom/default/PlatformMessagePortChannel.h:
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0255857a
    • levin@chromium.org's avatar
      2009-06-21 David Levin <levin@chromium.org> · 7ee2077b
      levin@chromium.org authored
              Reviewed by NOBODY (Speculative tiger build fix).
      
              * dom/default/PlatformMessagePortChannel.h:
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::~MessagePortQueue):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44917 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ee2077b
    • levin@chromium.org's avatar
      WebCore: · a12e4afc
      levin@chromium.org authored
      2009-06-21  Drew Wilson  <atwilson@google.com>
      
              Reviewed by David Levin.
      
              <https://bugs.webkit.org/show_bug.cgi?id=26448>
      
              Added optimized GC for MessagePorts when the entangled port is run by the same thread.
              Fixed bug in isProxyFor() that was not properly throwing an exception when trying to clone the entangled port.
      
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::markActiveObjectsForContext):
              Now marks remotely entangled ports as in-use, in addition to those with pending activity.
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::mark):
              Now checks if the entangled port is local (run by same thread) and if so mark()s it.
              * dom/MessagePort.cpp:
              (WebCore::MessagePort::postMessage):
              (WebCore::MessagePort::disentangle):
              Removes cloned ports from the ScriptExecutionContext - this allows cloned ports to be GC'd as otherwise they look like remotely entangled ports.
              (WebCore::MessagePort::start):
              (WebCore::MessagePort::locallyEntangledPort):
              Added API for fetching the entangled port if it is run by the same thread
              * dom/MessagePort.h:
              * dom/MessagePortProxyWrapper.h:
              * dom/default/MessagePortProxy.cpp:
              (WebCore::MessagePortProxyWrapper::locallyEntangledPort):
              Added API for fetching the entangled port if it is run by the same thread
              (WebCore::MessagePortProxy::hasPendingActivity):
              Changed definition of hasPendingActivity() to be stricter - only returns true if there are pending messages.
              (WebCore::MessagePortProxy::locallyEntangledPort):
              * dom/default/MessagePortProxy.h:
      
      LayoutTests:
      
      2009-06-21  Drew Wilson  <atwilson@google.com>
      
              Reviewed by David Levin.
      
              <https://bugs.webkit.org/show_bug.cgi?id=26448>
      
              New tests for MessagePort GC cases that weren't previously covered.
      
              * fast/events/message-channel-gc-4-expected.txt: Added.
              Test for case where both MessagePorts are in-transit (cloned) when a GC occurs.
              * fast/events/message-channel-gc-4.html-disabled: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a12e4afc
    • levin@chromium.org's avatar
      JavaScriptCore: · 3affb89e
      levin@chromium.org authored
      2009-06-21  Drew Wilson  <atwilson@google.com>
      
              Reviewed by David Levin.
      
              <https://bugs.webkit.org/show_bug.cgi?id=25043>
              Added support for multi-threaded MessagePorts.
      
              * wtf/MessageQueue.h:
              (WTF::::appendAndCheckEmpty):
                  Added API to test whether the queue was empty before adding an element.
      
      WebCore:
      
      2009-06-21  Drew Wilson  <atwilson@google.com>
      
              Reviewed by David Levin.
      
              <https://bugs.webkit.org/show_bug.cgi?id=25043>
              Removed obsolete MessagePort.startConversation(), active and onclose APIs.
      
              Refactored MessagePortProxy into MessagePortChannel and a platform-dependent PlatformMessagePortChannel
              implementation. Modified APIs to simplify cross-process implementations by moving the messaging code
              entirely into the platform-dependent proxy.
      
              Created a thread-safe default PlatformMessagePortChannel implementation.
      
              Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how
              cross-thread MessagePorts work.
      
              * GNUMakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
                  Added MessagePortChannel/PlatformMessagePortChannel files.
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::mark):
                  Changed ports to not mark their entangled pair as reachable, per the spec.
              * bindings/v8/custom/V8MessagePortCustom.cpp:
              * dom/MessageChannel.cpp:
              (WebCore::MessageChannel::MessageChannel):
                  Updated to use PlatformMessagePortChannel::createChannel() to entangle the ports.
              * dom/MessagePort.cpp:
              (WebCore::MessagePort::MessagePort):
              (WebCore::MessagePort::~MessagePort):
              (WebCore::MessagePort::postMessage):
              (WebCore::MessagePort::disentangle):
              (WebCore::MessagePort::messageAvailable):
              (WebCore::MessagePort::start):
              (WebCore::MessagePort::close):
              (WebCore::MessagePort::entangle):
              (WebCore::MessagePort::contextDestroyed):
              (WebCore::MessagePort::dispatchMessages):
              (WebCore::MessagePort::setOnmessage):
              (WebCore::MessagePort::hasPendingActivity):
                  Changed these APIs to delegate to new PlatformMessagePortChannel APIs.
              * dom/MessagePort.h:
                  Renamed isQueueOpen() to started().
              * dom/MessagePort.idl:
                  Removed startConversation and onclose.
              * dom/MessagePortProxy.h: Removed.
              * dom/MessagePortChannel.cpp: Added.
              (WebCore::MessagePortChannel::EventData::create):
              (WebCore::MessagePortChannel::EventData::EventData):
              (WebCore::MessagePortChannel::~MessagePortChannel):
              * dom/MessagePortChannel.h: Added.
              (WebCore::MessagePortChannel::EventData::message):
              (WebCore::MessagePortChannel::EventData::channel):
                  Changed EventData to hold a reference to a MessagePortChannel object instead of a MessagePort to enable cross-thread messaging.
              (WebCore::MessagePortChannel::MessagePortChannel):
              (WebCore::MessagePortChannel::create):
              * dom/ScriptExecutionContext.cpp:
              (WebCore:ScriptExecutionContext::dispatchMessagePortEvents):
                  Renamed isQueueOpen() to started().
              * dom/default/PlatformMessagePortChannel.cpp: Added.
              (WebCore::MessagePortChannel::entangleIfOpen):
              (WebCore::MessagePortChannel::disentangle):
              (WebCore::MessagePortChannel::postMessageToRemote):
              (WebCore::MessagePortChannel::tryGetMessageFromRemote):
              (WebCore::MessagePortChannel::close):
              (WebCore::MessagePortChannel::isConnectedTo):
              (WebCore::MessagePortChannel::hasPendingActivity):
              (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
              (WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
              (WebCore::PlatformMessagePortChannel::createChannel):
              (WebCore::PlatformMessagePortChannel::entangleIfOpen):
              (WebCore::PlatformMessagePortChannel::disentangle):
              (WebCore::PlatformMessagePortChannel::setRemotePort):
              (WebCore::PlatformMessagePortChannel::remotePort):
              (WebCore::PlatformMessagePortChannel::entangledChannel):
              (WebCore::PlatformMessagePortChannel::setEntangledChannel):
              (WebCore::PlatformMessagePortChannel::postMessageToRemote):
              (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
              (WebCore::PlatformMessagePortChannel::isConnectedTo):
              (WebCore::PlatformMessagePortChannel::close):
              (WebCore::PlatformMessagePortChannel::closeInternal):
              (WebCore::PlatformMessagePortChannel::hasPendingActivity):
              * dom/default/PlatformMessagePortChannel.h: Added.
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::create):
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::isEmpty):
              (WebCore::PlatformMessagePortChannel::MessagePortQueue::MessagePortQueue):
              * page/DOMWindow.cpp:
              (WebCore::PostMessageTimer::PostMessageTimer):
                  Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how cross-thread MessagePorts work.
              (WebCore::PostMessageTimer::event):
              (WebCore::DOMWindow::postMessage):
              (WebCore::DOMWindow::postMessageTimerFired):
      
      LayoutTests:
      
      2009-06-21  Drew Wilson  <atwilson@google.com>
      
              Reviewed by David Levin.
      
              <https://bugs.webkit.org/show_bug.cgi?id=25043>
              Updated MessageChannel/MessagePorts tests to reflect latest spec (close event has been removed).
              Added more tests of port cloning.
      
              * fast/events/message-channel-gc-2-expected.txt:
              * fast/events/message-channel-gc-2.html-disabled:
              * fast/events/message-channel-gc-3-expected.txt:
              * fast/events/message-channel-gc-3.html-disabled:
              * fast/events/message-channel-gc-expected.txt:
              * fast/events/message-channel-gc.html-disabled:
              * fast/events/message-port-clone-expected.txt: Added.
              * fast/events/message-port-clone.html-disabled: Added.
              * fast/events/message-port-expected.txt:
              * fast/events/message-port-no-wrapper-expected.txt: Added.
              * fast/events/message-port-onclose-expected.txt: Removed.
              * fast/events/message-port-onclose.html-disabled: Removed.
              * fast/events/message-port.html-disabled:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3affb89e
    • mitz@apple.com's avatar
      WebCore: · 0e2df434
      mitz@apple.com authored
              Reviewed by Sam Weinig.
      
              - fix https://bugs.webkit.org/show_bug.cgi?id=15383
                <rdar://problem/5682745> resize: vertical does not restrict to vertical
                resize
      
              Test: fast/css/resize-single-axis.html
      
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::resize): Ignore movement along the non-resizing
              axis.
      
      LayoutTests:
      
              Reviewed by Sam Weinig.
      
              - test for https://bugs.webkit.org/show_bug.cgi?id=15383
                <rdar://problem/5682745> resize: vertical does not restrict to vertical
                resize
      
              * fast/css/resize-single-axis-expected.txt: Added.
              * fast/css/resize-single-axis.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44914 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0e2df434
    • weinig@apple.com's avatar
      WebCore: · f23f5741
      weinig@apple.com authored
      2009-06-21  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Eric Seidel
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=26578
              event.currentTarget for listener registered on window should point to the window object like in Firefox
      
              Test: fast/events/event-trace.html
      
              * dom/Node.cpp:
              (WebCore::Node::dispatchGenericEvent): Make the DOMWindow the currentTarget when events are dispatched
              to it. We previously used the document because DOMWindow was not yet an EventTarget.
      
      LayoutTests:
      
      2009-06-21  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Test for https://bugs.webkit.org/show_bug.cgi?id=26578
              event.currentTarget for listener registered on window should point to the window object like in Firefox
      
              * fast/events/event-trace-expected.txt: Added.
              * fast/events/event-trace.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44913 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f23f5741
    • mitz@apple.com's avatar
      WebCore: · c8cb8b8a
      mitz@apple.com authored
              Reviewed by Sam Weinig.
      
              - fix https://bugs.webkit.org/show_bug.cgi?id=9694
                resize value not compared
      
              Test: fast/css/resize-value-compared.html
      
              * rendering/style/StyleRareInheritedData.cpp:
              (WebCore::StyleRareInheritedData::operator==): Compare the resize
              member.
      
      LayoutTests:
      
              Reviewed by Sam Weinig.
      
              - test for https://bugs.webkit.org/show_bug.cgi?id=9694
                resize value not compared
      
              * fast/css/resize-value-compared-expected.txt: Added.
              * fast/css/resize-value-compared.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44912 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8cb8b8a
    • darin@apple.com's avatar
      2009-06-21 Darin Adler <darin@apple.com> · edf21428
      darin@apple.com authored
              * platform/gtk/Skipped: Skip one more test.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44911 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      edf21428
    • darin@apple.com's avatar
      2009-06-20 Darin Adler <darin@apple.com> · 6beb5891
      darin@apple.com authored
              * platform/gtk/Skipped: Skip some new tests.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6beb5891
    • darin@apple.com's avatar
      2009-06-20 Darin Adler <darin@apple.com> · 6dbcead3
      darin@apple.com authored
              Reviewed by Sam Weinig.
      
              <rdar://problem/6964221> Need more processing of pluginspage.
      
              * WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebFrameLoaderClient::createPlugin): Check protocolInHTTPFamily.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6dbcead3
  2. 20 Jun, 2009 19 commits
  3. 19 Jun, 2009 11 commits