1. 21 Jun, 2009 8 commits
    • 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 13 commits
    • barraclough@apple.com's avatar
      2009-06-19 Gavin Barraclough <barraclough@apple.com> · 9c15d5a5
      barraclough@apple.com authored
              Reviewed by NOBODY (build fix take 2 - rename FIELD_OFFSET to something that doesn't conflict with winnt.h).
      
              * jit/JIT.cpp:
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              (JSC::JIT::emitGetVariableObjectRegister):
              (JSC::JIT::emitPutVariableObjectRegister):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::emit_op_rshift):
              (JSC::JIT::emitSlow_op_jnless):
              (JSC::JIT::emitSlow_op_jnlesseq):
              (JSC::JIT::compileBinaryArithOp):
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCall):
              * jit/JITInlineMethods.h:
              (JSC::JIT::restoreArgumentReference):
              (JSC::JIT::checkStructure):
              * jit/JITOpcodes.cpp:
              (JSC::JIT::emit_op_instanceof):
              (JSC::JIT::emit_op_get_scoped_var):
              (JSC::JIT::emit_op_put_scoped_var):
              (JSC::JIT::emit_op_construct_verify):
              (JSC::JIT::emit_op_resolve_global):
              (JSC::JIT::emit_op_jeq_null):
              (JSC::JIT::emit_op_jneq_null):
              (JSC::JIT::emit_op_to_jsnumber):
              (JSC::JIT::emit_op_catch):
              (JSC::JIT::emit_op_eq_null):
              (JSC::JIT::emit_op_neq_null):
              (JSC::JIT::emit_op_convert_this):
              (JSC::JIT::emit_op_profile_will_call):
              (JSC::JIT::emit_op_profile_did_call):
              (JSC::JIT::emitSlow_op_get_by_val):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::emit_op_get_by_val):
              (JSC::JIT::emit_op_put_by_val):
              (JSC::JIT::emit_op_method_check):
              (JSC::JIT::compileGetByIdHotPath):
              (JSC::JIT::emit_op_put_by_id):
              (JSC::JIT::compilePutDirectOffset):
              (JSC::JIT::compileGetDirectOffset):
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              * jit/JITStubs.cpp:
              (JSC::JITThunks::JITThunks):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9c15d5a5
    • darin@apple.com's avatar
      2009-06-19 Darin Adler <darin@apple.com> · b631c5d1
      darin@apple.com authored
              * Scripts/do-webcore-rename: More renaming ideas.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44888 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b631c5d1
    • barraclough@apple.com's avatar
      2009-06-19 Gavin Barraclough <barraclough@apple.com> · dc8e4e28
      barraclough@apple.com authored
              Reviewed by NOBODY (Windows build fix).
      
              * jit/JIT.h:
              * jit/JITInlineMethods.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc8e4e28
    • barraclough@apple.com's avatar
      2009-06-19 Gabor Loki <loki@inf.u-szeged.hu> · cf4899dc
      barraclough@apple.com authored
              Reviewed by Gavin Barraclough.
      
              Reorganize ARM architecture specific macros.
              Use PLATFORM_ARM_ARCH(7) instead of PLATFORM(ARM_V7).
      
              Bug 24986: ARM JIT port
              <https://bugs.webkit.org/show_bug.cgi?id=24986>
      
              * assembler/ARMv7Assembler.h:
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::Imm32::Imm32):
              * assembler/MacroAssembler.h:
              * assembler/MacroAssemblerCodeRef.h:
              (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
              * jit/ExecutableAllocator.h:
              (JSC::ExecutableAllocator::cacheFlush):
              * jit/JIT.h:
              * jit/JITInlineMethods.h:
              (JSC::JIT::restoreArgumentReferenceForTrampoline):
              * jit/JITStubs.cpp:
              * jit/JITStubs.h:
              * wtf/Platform.h:
              * yarr/RegexJIT.cpp:
              (JSC::Yarr::RegexGenerator::generateEnter):
              (JSC::Yarr::RegexGenerator::generateReturn):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44886 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf4899dc
    • bweinstein@apple.com's avatar
      e30b7e26
    • barraclough@apple.com's avatar
      2009-06-19 Gavin Barraclough <barraclough@apple.com> · 06d6197a
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Fix armv7 JIT build issues.
      
              Unfortunate the arm compiler does not like the use of offsetof on JITStackFrame (since it now contains non POD types),
              and the FIELD_OFFSET macro does not appear constantish enough for it to be happy with its use in COMPILE_ASSERT macros.
      
              * Replace offsetofs with FIELD_OFFSETs (safe on C++ objects).
              * Move COMPILE_ASSERTs defending layout of JITStackFrame structure on armv7 into JITThunks constructor.
      
              * jit/JIT.cpp:
              * jit/JIT.h:
              * jit/JITInlineMethods.h:
              (JSC::JIT::restoreArgumentReference):
              * jit/JITOpcodes.cpp:
              (JSC::JIT::emit_op_catch):
              * jit/JITStubs.cpp:
              (JSC::JITThunks::JITThunks):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06d6197a
    • bweinstein@apple.com's avatar
      2009-06-19 Brian Weinstein <bweinstein@apple.com> · 58003b76
      bweinstein@apple.com authored
              Reviewed by Steve Falkenburg.
              
              https://bugs.webkit.org/show_bug.cgi?id=26488
              No Support for Single Finger or Two Finger Panning in Windows 7
              
              The code in WebCore allows us to interpret a Pan gesture as
              a mousewheel event, and we are able to reuse the scrolling code.
              Another constructor was created in WheelEventWin which takes data
              better suited to the pan guesture than what was currently there. 
              
              Unable to add tests to simulate touch behavior/gestures.
      
              * platform/PlatformWheelEvent.h:
              * platform/win/WheelEventWin.cpp:
      
      2009-06-19  Brian Weinstein  <bweinstein@apple.com>
      
              Reviewed by Steve Falkenburg.
              
              https://bugs.webkit.org/show_bug.cgi?id=26488
              No Support for Single Finger or Two Finger Panning in Windows 7
              
              The code in WebCore allows us to interpret a Pan gesture as
              a mousewheel event, and we are able to reuse the scrolling code.
              Another constructor was created in WheelEventWin which takes data
              better suited to the pan guesture than what was currently there. 
              
              Unable to add tests to simulate touch behavior/gestures.
      
              * platform/PlatformWheelEvent.h:
              * platform/win/WheelEventWin.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      58003b76
    • bfulgham@webkit.org's avatar
      2009-06-19 Ryosuke Niwa <rniwa@google.com> · 40048a11
      bfulgham@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              This fixs the bug 26361. The original test case did not invoke the event that
              triggered the actual test. This patch adds code to invoke this event, and also
              converts it from a pixel test to a dumpAsText test.
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44882 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      40048a11
    • cmarrin@apple.com's avatar
      Fixed a build error, which only shows up in the i386 compile · ad21e38e
      cmarrin@apple.com authored
              * platform/graphics/mac/GraphicsLayerCA.mm:
              (WebCore::GraphicsLayerCA::animateTransform):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ad21e38e
    • simon.fraser@apple.com's avatar
      2009-06-19 Simon Fraser <simon.fraser@apple.com> · 9f70e7da
      simon.fraser@apple.com authored
              Reviewed by Oliver Hunt.
      
              <rdar://problem/6988385> REGRESSION: In full page video player, movie's
              video track becomes detached from its controller.
      
              When in the media document, the MediaPlayer should not report that it
              is capable of hardware acceleration, because it renders via a QTMovieView
              which is already accelerated.
      
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
              (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f70e7da
    • kevino@webkit.org's avatar
      Adding XSSAuditor.cpp to the wx build. · dd7861d6
      kevino@webkit.org authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd7861d6
    • cmarrin@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=26544 · 635a5ac3
      cmarrin@apple.com authored
              If I am doing a Matrix hardware animation and any matrix is singular, I revert to software.
              This is not really testable, since we can't see what the hardware animation is doing.
      
              * platform/graphics/mac/GraphicsLayerCA.mm:
              (WebCore::GraphicsLayerCA::animateTransform):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      635a5ac3
    • ggaren@apple.com's avatar
      2009-06-19 Geoffrey Garen <ggaren@apple.com> · 6812fc0e
      ggaren@apple.com authored
              Reviewed by Maciej Stachowiak.
              
              An additional fix for Bug 26532: Native functions do not correctly unlink
              from optimised callsites when they're collected
              <https://bugs.webkit.org/show_bug.cgi?id=26532> | <rdar://problem/6625385>
      
              Use "NativeFunctionWrapper" instead of "PrototypeFunction" in cross-frame
              accessors, so the type of object you get to wrap a function is the same,
              regardless of whether the access to the function is cross-frame.
              
              This is faster and more idiomatic than what we had before. It also would
              have avoided Bug 26532 because it would have prevented a conflicting
              PrototypeFunction from being allocated to wrap postMessage, where a
              NativeFunctionWrapper had been allocated previously.
              
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::objectToStringFunctionGetter):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::nonCachingStaticFunctionGetter):
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::nonCachingStaticBackFunctionGetter):
              (WebCore::nonCachingStaticForwardFunctionGetter):
              (WebCore::nonCachingStaticGoFunctionGetter):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::nonCachingStaticReplaceFunctionGetter):
              (WebCore::nonCachingStaticReloadFunctionGetter):
              (WebCore::nonCachingStaticAssignFunctionGetter):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6812fc0e