1. 02 Jan, 2011 1 commit
    • abarth@webkit.org's avatar
      Move JavaScriptCore to Source · 76da8fc1
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=51604
      
      Reviewed by Eric Seidel.
      
      Update references to JavaScriptCore to point to the new location.
      
      * Android.mk:
      * CMakeLists.txt:
      * DerivedSources.pro:
      * GNUmakefile.am:
      * Makefile:
      * WebKit.pri:
      * WebKit.pro:
      * wscript:
      
      Tools: 
      
      Update references to JavaScriptCore to point to the new location.
      
      * BuildSlaveSupport/build.webkit.org-config/master.cfg:
      * DumpRenderTree/qt/DumpRenderTree.pro:
      * DumpRenderTree/qt/ImageDiff.pro:
      * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
      * DumpRenderTree/wscript:
      * Scripts/build-jsc:
      * Scripts/build-webkit:
      * Scripts/do-file-rename:
      * Scripts/do-webcore-rename:
      * Scripts/run-javascriptcore-tests:
      * Scripts/update-javascriptcore-test-results:
      * Scripts/webkitdirs.pm:
      * Scripts/webkitpy/common/config/build_unittest.py:
      * Scripts/webkitpy/style/checker.py:
      * Scripts/webkitpy/style/checker_unittest.py:
      * Scripts/webkitpy/style/checkers/cpp_unittest.py:
      * WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro:
      * WebKitTestRunner/qt/WebKitTestRunner.pro:
      * wx/build/settings.py:
      
      WebCore: 
      
      Update references to JavaScriptCore.
      
      * Android.derived.jscbindings.mk:
      * Android.v8bindings.mk:
      * CMakeLists.txt:
      * WebCore.gyp/WebCore.gyp:
      * WebCore.pro:
        - These changes are subtle and might not be 100% correct.
      * move-js-headers.sh:
      
      WebKit/chromium: 
      
      * WebKit.gyp:
        - Point to JavaScriptCore in its new location.
      
      WebKit/gtk: 
      
      * GNUmakefile.am:
      * docs/GNUmakefile.am:
        - Point to JavaScriptCore in its new location.
      
      WebKit/qt: 
      
      * WebKit_pch.h:
      * docs/qtwebkit.qdocconf:
        - Point to JavaScriptCore in its new location.
      
      WebKit/win: 
      
      * WebKit.vcproj/WebKit.sln:
        - Point to JavaScriptCore in its new location.
      
      WebKit/wx: 
      
      * bindings/python/wscript:
      * wscript:
        - Point to JavaScriptCore in its new location.
      
      WebKit2: 
      
      * WebKit2.pro:
        - Point to JavaScriptCore in its new location.
      
      Websites/bugs.webkit.org: 
      
      * PrettyPatch/PrettyPatch.rb:
        - Remove reference to JavaScriptCore as a source directory.
      
      Websites/webkit.org: 
      
      * coding/assertion-guidelines.html:
        - Update documentation to point to the new location of
          JavaScriptCore.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76da8fc1
  2. 14 Dec, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: Changed GC from mark-sweep to mark-allocate. · 6a429819
      ggaren@apple.com authored
              
      Reviewed by Sam Weinig.
      
      Added WeakGCMap to keep WebCore blissfully ignorant about objects that
      have become garbage but haven't run their destructors yet.
              
      1% SunSpider speedup.
      7.6% v8 speedup (37% splay speedup).
      17% speedup on bench-alloc-nonretained.js.
      18% speedup on bench-alloc-retained.js.
      
      * API/JSBase.cpp:
      (JSGarbageCollect):
      * API/JSContextRef.cpp:
      * JavaScriptCore.exp:
      * JavaScriptCore.xcodeproj/project.pbxproj: Updated for renames and new
      files.
      
      * debugger/Debugger.cpp:
      (JSC::Debugger::recompileAllJSFunctions): Updated to use the Collector
      iterator abstraction.
      
      * jsc.cpp:
      (functionGC): Updated for rename.
      
      * runtime/Collector.cpp: Slightly reduced the number of allocations per
      collection, so that small workloads only allocate on collector block,
      rather than two.
      
      (JSC::Heap::Heap): Updated to use the new allocateBlock function.
      
      (JSC::Heap::destroy): Updated to use the new freeBlocks function.
      
      (JSC::Heap::allocateBlock): New function to initialize a block when
      allocating it.
      
      (JSC::Heap::freeBlock): Consolidated the responsibility for running
      destructors into this function.
      
      (JSC::Heap::freeBlocks): Updated to use freeBlock.
      
      (JSC::Heap::recordExtraCost): Sweep the heap in this reporting function,
      so that allocation, which is more common, doesn't have to check extraCost.
      
      (JSC::Heap::heapAllocate): Run destructors right before recycling a
      garbage cell. This has better cache utilization than a separate sweep phase.
      
      (JSC::Heap::resizeBlocks):
      (JSC::Heap::growBlocks):
      (JSC::Heap::shrinkBlocks): New set of functions for managing the size of
      the heap, now that the heap doesn't maintain any information about its
      size.
      
      (JSC::isPointerAligned):
      (JSC::isHalfCellAligned):
      (JSC::isPossibleCell):
      (JSC::isCellAligned):
      (JSC::Heap::markConservatively): Cleaned up this code a bit.
      
      (JSC::Heap::clearMarkBits):
      (JSC::Heap::markedCells): Some helper functions for examining the the mark
      bitmap.
      
      (JSC::Heap::sweep): Simplified this function by using a DeadObjectIterator.
      
      (JSC::Heap::markRoots): Reordered some operations for clarity.
      
      (JSC::Heap::objectCount):
      (JSC::Heap::addToStatistics):
      (JSC::Heap::statistics): Rewrote these functions to calculate an object
      count on demand, since the heap doesn't maintain this information by 
      itself.
      
      (JSC::Heap::reset): New function for resetting the heap once we've
      exhausted heap space.
      
      (JSC::Heap::collectAllGarbage): This function matches the old collect()
      behavior, but it's now an uncommon function used only by API.
      
      * runtime/Collector.h:
      (JSC::CollectorBitmap::count):
      (JSC::CollectorBitmap::isEmpty): Added some helper functions for managing
      the collector mark bitmap.
      
      (JSC::Heap::reportExtraMemoryCost): Changed reporting from cell equivalents
      to bytes, so it's easier to understand.
              
      * runtime/CollectorHeapIterator.h:
      (JSC::CollectorHeapIterator::CollectorHeapIterator):
      (JSC::CollectorHeapIterator::operator!=):
      (JSC::CollectorHeapIterator::operator*):
      (JSC::CollectorHeapIterator::advance):
      (JSC::::LiveObjectIterator):
      (JSC::::operator):
      (JSC::::DeadObjectIterator):
      (JSC::::ObjectIterator): New iterators for encapsulating details about
      heap layout, and what's live and dead on the heap.
      
      * runtime/JSArray.cpp:
      (JSC::JSArray::putSlowCase):
      (JSC::JSArray::increaseVectorLength): Delay reporting extra cost until
      we're fully constructed, so the heap mark phase won't visit us in an
      invalid state.
      
      * runtime/JSCell.h:
      (JSC::JSCell::):
      (JSC::JSCell::createDummyStructure):
      (JSC::JSCell::JSCell):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h: Added a dummy cell to simplify allocation logic.
      
      * runtime/JSString.h:
      (JSC::jsSubstring): Don't report extra cost for substrings, since they
      share a buffer that's already reported extra cost.
      
      * runtime/Tracing.d:
      * runtime/Tracing.h: Changed these dtrace hooks not to report object
      counts, since they're no longer cheap to compute.
      
      * runtime/UString.h: Updated for renames.
      
      * runtime/WeakGCMap.h: Added.
      (JSC::WeakGCMap::isEmpty):
      (JSC::WeakGCMap::uncheckedGet):
      (JSC::WeakGCMap::uncheckedBegin):
      (JSC::WeakGCMap::uncheckedEnd):
      (JSC::::get):
      (JSC::::take):
      (JSC::::set):
      (JSC::::uncheckedRemove): Mentioned above.
      
      * wtf/StdLibExtras.h:
      (WTF::bitCount): Added a bit population count function, so the heap can
      count live objects to fulfill statistics questions.
      
      JavaScriptGlue: Changed GC from mark-sweep to mark-allocate.
              
      Reviewed by Sam Weinig.
      
      * JavaScriptGlue.cpp:
      (JSCollect): Updated for rename. Fixed a bug where JSGlue would not check
      to avoid nested GC calls.
      
      WebCore: Changed GC from mark-sweep to mark-allocate.
      
      Reviewed by Sam Weinig.
      
      * ForwardingHeaders/runtime/WeakGCMap.h: Added.
      * bindings/js/GCController.cpp:
      (WebCore::collect):
      (WebCore::GCController::gcTimerFired):
      (WebCore::GCController::garbageCollectNow): Updated for rename.
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::removeWrappers):
      (WebCore::hasCachedDOMObjectWrapperUnchecked):
      (WebCore::hasCachedDOMObjectWrapper):
      (WebCore::hasCachedDOMNodeWrapperUnchecked):
      (WebCore::forgetDOMObject):
      (WebCore::forgetDOMNode):
      (WebCore::isObservableThroughDOM):
      (WebCore::markDOMNodesForDocument):
      (WebCore::markDOMObjectWrapper):
      (WebCore::markDOMNodeWrapper):
      * bindings/js/JSDOMBinding.h: Changed DOM wrapper maps to be WeakGCMaps.
      Don't ASSERT that an item must be in the WeakGCMap when its destructor
      runs, since it might have been overwritten in the map first.
      
      * bindings/js/JSDocumentCustom.cpp:
      (WebCore::toJS): Changed Document from a DOM object wrapper to a DOM node
      wrapper, to simplify some code.
      
      * bindings/js/JSInspectedObjectWrapper.cpp:
      (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
      (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper):
      * bindings/js/JSInspectorCallbackWrapper.cpp: Use a WeakGCMap for these
      wrappers.
      
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::markChildren): Updated for WeakGCMap and Document using
      a DOM node wrapper instead of a DOM object wrapper.
      
      * bindings/js/JSSVGPODTypeWrapper.h:
      (WebCore::JSSVGDynamicPODTypeWrapperCache::wrapperMap):
      (WebCore::JSSVGDynamicPODTypeWrapperCache::lookupOrCreateWrapper):
      (WebCore::JSSVGDynamicPODTypeWrapperCache::forgetWrapper):
      (WebCore::::~JSSVGDynamicPODTypeWrapper): Shined a small beam of sanity light
      on this code. Use hashtable-based lookup in JSSVGPODTypeWrapper.h instead
      of linear lookup through iteration, since that's what hashtables were
      invented for. Make JSSVGPODTypeWrapper.h responsible for reomving itself
      from the table, instead of its JS wrapper, to decouple these objects from
      GC, and because these objects are refCounted, not solely owned by their
      JS wrappers.
      
      * bindings/scripts/CodeGeneratorJS.pm:
      * dom/Document.h: Adopted changes above.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6a429819
  3. 12 Dec, 2009 2 commits
    • ggaren@apple.com's avatar
      Rolled out my last patch because the bots were crashing · 64c96303
      ggaren@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52047 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      64c96303
    • ggaren@apple.com's avatar
      JavaScriptCore: Changed GC from mark-sweep to mark-allocate. · cf48922a
      ggaren@apple.com authored
              
      Reviewed by Sam Weinig.
      
      Added WeakGCMap to keep WebCore blissfully ignorant about objects that
      have become garbage but haven't run their destructors yet.
              
      1% SunSpider speedup.
      7.6% v8 speedup (37% splay speedup).
      17% speedup on bench-alloc-nonretained.js.
      18% speedup on bench-alloc-retained.js.
      
      * API/JSBase.cpp:
      (JSGarbageCollect):
      * API/JSContextRef.cpp:
      * JavaScriptCore.exp:
      * JavaScriptCore.xcodeproj/project.pbxproj: Updated for renames and new
      files.
      
      * debugger/Debugger.cpp:
      (JSC::Debugger::recompileAllJSFunctions): Updated to use the Collector
      iterator abstraction.
      
      * jsc.cpp:
      (functionGC): Updated for rename.
      
      * runtime/Collector.cpp: Slightly reduced the number of allocations per
      collection, so that small workloads only allocate on collector block,
      rather than two.
      
      (JSC::Heap::Heap): Updated to use the new allocateBlock function.
      
      (JSC::Heap::destroy): Updated to use the new freeBlocks function.
      
      (JSC::Heap::allocateBlock): New function to initialize a block when
      allocating it.
      
      (JSC::Heap::freeBlock): Consolidated the responsibility for running
      destructors into this function.
      
      (JSC::Heap::freeBlocks): Updated to use freeBlock.
      
      (JSC::Heap::recordExtraCost): Sweep the heap in this reporting function,
      so that allocation, which is more common, doesn't have to check extraCost.
      
      (JSC::Heap::heapAllocate): Run destructors right before recycling a
      garbage cell. This has better cache utilization than a separate sweep phase.
      
      (JSC::Heap::resizeBlocks):
      (JSC::Heap::growBlocks):
      (JSC::Heap::shrinkBlocks): New set of functions for managing the size of
      the heap, now that the heap doesn't maintain any information about its
      size.
      
      (JSC::isPointerAligned):
      (JSC::isHalfCellAligned):
      (JSC::isPossibleCell):
      (JSC::isCellAligned):
      (JSC::Heap::markConservatively): Cleaned up this code a bit.
      
      (JSC::Heap::clearMarkBits):
      (JSC::Heap::markedCells): Some helper functions for examining the the mark
      bitmap.
      
      (JSC::Heap::sweep): Simplified this function by using a DeadObjectIterator.
      
      (JSC::Heap::markRoots): Reordered some operations for clarity.
      
      (JSC::Heap::objectCount):
      (JSC::Heap::addToStatistics):
      (JSC::Heap::statistics): Rewrote these functions to calculate an object
      count on demand, since the heap doesn't maintain this information by 
      itself.
      
      (JSC::Heap::reset): New function for resetting the heap once we've
      exhausted heap space.
      
      (JSC::Heap::collectAllGarbage): This function matches the old collect()
      behavior, but it's now an uncommon function used only by API.
      
      * runtime/Collector.h:
      (JSC::CollectorBitmap::count):
      (JSC::CollectorBitmap::isEmpty): Added some helper functions for managing
      the collector mark bitmap.
      
      (JSC::Heap::reportExtraMemoryCost): Changed reporting from cell equivalents
      to bytes, so it's easier to understand.
              
      * runtime/CollectorHeapIterator.h:
      (JSC::CollectorHeapIterator::CollectorHeapIterator):
      (JSC::CollectorHeapIterator::operator!=):
      (JSC::CollectorHeapIterator::operator*):
      (JSC::CollectorHeapIterator::advance):
      (JSC::::LiveObjectIterator):
      (JSC::::operator):
      (JSC::::DeadObjectIterator):
      (JSC::::ObjectIterator): New iterators for encapsulating details about
      heap layout, and what's live and dead on the heap.
      
      * runtime/JSArray.cpp:
      (JSC::JSArray::putSlowCase):
      (JSC::JSArray::increaseVectorLength): Delay reporting extra cost until
      we're fully constructed, so the heap mark phase won't visit us in an
      invalid state.
      
      * runtime/JSCell.h:
      (JSC::JSCell::):
      (JSC::JSCell::createDummyStructure):
      (JSC::JSCell::JSCell):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h: Added a dummy cell to simplify allocation logic.
      
      * runtime/JSString.h:
      (JSC::jsSubstring): Don't report extra cost for substrings, since they
      share a buffer that's already reported extra cost.
      
      * runtime/Tracing.d:
      * runtime/Tracing.h: Changed these dtrace hooks not to report object
      counts, since they're no longer cheap to compute.
      
      * runtime/UString.h: Updated for renames.
      
      * runtime/WeakGCMap.h: Added.
      (JSC::WeakGCMap::isEmpty):
      (JSC::WeakGCMap::uncheckedGet):
      (JSC::WeakGCMap::uncheckedBegin):
      (JSC::WeakGCMap::uncheckedEnd):
      (JSC::::get):
      (JSC::::take):
      (JSC::::set):
      (JSC::::uncheckedRemove): Mentioned above.
      
      * wtf/StdLibExtras.h:
      (WTF::bitCount): Added a bit population count function, so the heap can
      count live objects to fulfill statistics questions.
      
      JavaScriptGlue: Changed GC from mark-sweep to mark-allocate.
              
      Reviewed by Sam Weinig.
      
      * JavaScriptGlue.cpp:
      (JSCollect): Updated for rename. Fixed a bug where JSGlue would not check
      to avoid nested GC calls.
      
      WebCore: Changed GC from mark-sweep to mark-allocate.
      
      Reviewed by Sam Weinig.
      
      * ForwardingHeaders/runtime/WeakGCMap.h: Added.
      * bindings/js/GCController.cpp:
      (WebCore::collect):
      (WebCore::GCController::gcTimerFired):
      (WebCore::GCController::garbageCollectNow): Updated for rename.
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::removeWrappers):
      (WebCore::hasCachedDOMObjectWrapperUnchecked):
      (WebCore::hasCachedDOMObjectWrapper):
      (WebCore::hasCachedDOMNodeWrapperUnchecked):
      (WebCore::forgetDOMObject):
      (WebCore::forgetDOMNode):
      (WebCore::isObservableThroughDOM):
      (WebCore::markDOMNodesForDocument):
      (WebCore::markDOMObjectWrapper):
      (WebCore::markDOMNodeWrapper):
      * bindings/js/JSDOMBinding.h: Changed DOM wrapper maps to be WeakGCMaps.
      Don't ASSERT that an item must be in the WeakGCMap when its destructor
      runs, since it might have been overwritten in the map first.
      
      * bindings/js/JSDocumentCustom.cpp:
      (WebCore::toJS): Changed Document from a DOM object wrapper to a DOM node
      wrapper, to simplify some code.
      
      * bindings/js/JSInspectedObjectWrapper.cpp:
      (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
      (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper):
      * bindings/js/JSInspectorCallbackWrapper.cpp: Use a WeakGCMap for these
      wrappers.
      
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::markChildren): Updated for WeakGCMap and Document using
      a DOM node wrapper instead of a DOM object wrapper.
      
      * bindings/js/JSSVGPODTypeWrapper.h:
      (WebCore::JSSVGDynamicPODTypeWrapperCache::wrapperMap):
      (WebCore::JSSVGDynamicPODTypeWrapperCache::lookupOrCreateWrapper):
      (WebCore::JSSVGDynamicPODTypeWrapperCache::forgetWrapper):
      (WebCore::::~JSSVGDynamicPODTypeWrapper): Shined a small beam of sanity
      on this code. Use hashtable-based lookup in JSSVGPODTypeWrapper.h instead
      of linear lookup through iteration, since that's what hashtables were
      invented for. Make JSSVGPODTypeWrapper.h responsible for reomving itself
      from the table, instead of its JS wrapper, to decouple these objects from
      GC, and because these objects are refCounted, not solely owned by their
      JS wrappers.
      
      * bindings/scripts/CodeGeneratorJS.pm:
      * dom/Document.h: Adopted changes above.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf48922a
  4. 04 Nov, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-11-03 Cameron Zwarich <zwarich@apple.com> · b91210c0
      cwzwarich@webkit.org authored
              Rubber-stamped by Maciej Stachowiak.
      
              Move more files into the runtime subdirectory of JavaScriptCore.
      
              JavaScriptCore:
      
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackFunction.cpp:
              * API/JSClassRef.cpp:
              * API/OpaqueJSString.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/ArgList.cpp: Removed.
              * kjs/ArgList.h: Removed.
              * kjs/Arguments.cpp: Removed.
              * kjs/Arguments.h: Removed.
              * kjs/BatchedTransitionOptimizer.h: Removed.
              * kjs/CollectorHeapIterator.h: Removed.
              * kjs/CommonIdentifiers.cpp: Removed.
              * kjs/CommonIdentifiers.h: Removed.
              * kjs/ExecState.cpp: Removed.
              * kjs/ExecState.h: Removed.
              * kjs/GetterSetter.cpp: Removed.
              * kjs/GetterSetter.h: Removed.
              * kjs/InitializeThreading.cpp: Removed.
              * kjs/InitializeThreading.h: Removed.
              * kjs/JSActivation.cpp: Removed.
              * kjs/JSActivation.h: Removed.
              * kjs/JSGlobalData.cpp: Removed.
              * kjs/JSGlobalData.h: Removed.
              * kjs/JSLock.cpp: Removed.
              * kjs/JSLock.h: Removed.
              * kjs/JSStaticScopeObject.cpp: Removed.
              * kjs/JSStaticScopeObject.h: Removed.
              * kjs/JSType.h: Removed.
              * kjs/PropertyNameArray.cpp: Removed.
              * kjs/PropertyNameArray.h: Removed.
              * kjs/ScopeChain.cpp: Removed.
              * kjs/ScopeChain.h: Removed.
              * kjs/ScopeChainMark.h: Removed.
              * kjs/SymbolTable.h: Removed.
              * kjs/Tracing.d: Removed.
              * kjs/Tracing.h: Removed.
              * runtime/ArgList.cpp: Copied from kjs/ArgList.cpp.
              * runtime/ArgList.h: Copied from kjs/ArgList.h.
              * runtime/Arguments.cpp: Copied from kjs/Arguments.cpp.
              * runtime/Arguments.h: Copied from kjs/Arguments.h.
              * runtime/BatchedTransitionOptimizer.h: Copied from kjs/BatchedTransitionOptimizer.h.
              * runtime/CollectorHeapIterator.h: Copied from kjs/CollectorHeapIterator.h.
              * runtime/CommonIdentifiers.cpp: Copied from kjs/CommonIdentifiers.cpp.
              * runtime/CommonIdentifiers.h: Copied from kjs/CommonIdentifiers.h.
              * runtime/ExecState.cpp: Copied from kjs/ExecState.cpp.
              * runtime/ExecState.h: Copied from kjs/ExecState.h.
              * runtime/GetterSetter.cpp: Copied from kjs/GetterSetter.cpp.
              * runtime/GetterSetter.h: Copied from kjs/GetterSetter.h.
              * runtime/InitializeThreading.cpp: Copied from kjs/InitializeThreading.cpp.
              * runtime/InitializeThreading.h: Copied from kjs/InitializeThreading.h.
              * runtime/JSActivation.cpp: Copied from kjs/JSActivation.cpp.
              * runtime/JSActivation.h: Copied from kjs/JSActivation.h.
              * runtime/JSGlobalData.cpp: Copied from kjs/JSGlobalData.cpp.
              * runtime/JSGlobalData.h: Copied from kjs/JSGlobalData.h.
              * runtime/JSLock.cpp: Copied from kjs/JSLock.cpp.
              * runtime/JSLock.h: Copied from kjs/JSLock.h.
              * runtime/JSStaticScopeObject.cpp: Copied from kjs/JSStaticScopeObject.cpp.
              * runtime/JSStaticScopeObject.h: Copied from kjs/JSStaticScopeObject.h.
              * runtime/JSType.h: Copied from kjs/JSType.h.
              * runtime/PropertyNameArray.cpp: Copied from kjs/PropertyNameArray.cpp.
              * runtime/PropertyNameArray.h: Copied from kjs/PropertyNameArray.h.
              * runtime/ScopeChain.cpp: Copied from kjs/ScopeChain.cpp.
              * runtime/ScopeChain.h: Copied from kjs/ScopeChain.h.
              * runtime/ScopeChainMark.h: Copied from kjs/ScopeChainMark.h.
              * runtime/SymbolTable.h: Copied from kjs/SymbolTable.h.
              * runtime/Tracing.d: Copied from kjs/Tracing.d.
              * runtime/Tracing.h: Copied from kjs/Tracing.h.
      
              WebCore:
      
              * ForwardingHeaders/kjs/ArgList.h: Removed.
              * ForwardingHeaders/kjs/CollectorHeapIterator.h: Removed.
              * ForwardingHeaders/kjs/ExecState.h: Removed.
              * ForwardingHeaders/kjs/InitializeThreading.h: Removed.
              * ForwardingHeaders/kjs/JSGlobalData.h: Removed.
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/ArgList.h: Copied from ForwardingHeaders/kjs/ArgList.h.
              * ForwardingHeaders/runtime/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/CollectorHeapIterator.h.
              * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
              * ForwardingHeaders/runtime/InitializeThreading.h: Copied from ForwardingHeaders/kjs/InitializeThreading.h.
              * ForwardingHeaders/runtime/JSGlobalData.h: Copied from ForwardingHeaders/kjs/JSGlobalData.h.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * bindings/js/GCController.cpp:
              * bindings/js/JSCustomPositionCallback.cpp:
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              * bindings/js/JSCustomVoidCallback.cpp:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScriptController.cpp:
              * bindings/js/ScriptControllerMac.mm:
              * bindings/objc/WebScriptObject.mm:
              * bridge/NP_jsobject.cpp:
              * bridge/c/c_class.cpp:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_utility.cpp:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_jsobject.mm:
              * bridge/jni/jni_objc.mm:
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/npruntime.cpp:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.mm:
              * bridge/runtime.cpp:
              * dom/Document.cpp:
              * dom/Node.cpp:
              * dom/NodeFilter.cpp:
              * dom/NodeIterator.cpp:
              * dom/TreeWalker.cpp:
              * history/CachedPage.cpp:
              * inspector/InspectorController.cpp:
              * inspector/JavaScriptCallFrame.cpp:
              * inspector/JavaScriptCallFrame.h:
              * inspector/JavaScriptDebugServer.cpp:
              * inspector/JavaScriptProfileNode.cpp:
              * loader/FrameLoader.cpp:
              * loader/icon/IconDatabase.cpp:
              * page/Console.cpp:
              * page/Page.cpp:
              * page/mac/FrameMac.mm:
              * plugins/PluginView.cpp:
              * plugins/gtk/PluginViewGtk.cpp:
              * plugins/qt/PluginViewQt.cpp:
              * plugins/win/PluginViewWin.cpp:
              * storage/Database.cpp:
              * xml/XMLHttpRequest.cpp:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
      
              WebKit/mac:
      
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              * Plugins/WebBaseNetscapePluginView.mm:
              * Plugins/WebPluginController.mm:
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebView.mm:
      
              WebKit/qt:
      
              * Api/qwebpage.cpp:
      
              WebKit/win:
      
              * WebJavaScriptCollector.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b91210c0
  5. 19 Aug, 2008 1 commit
    • kmccullough@apple.com's avatar
      2008-08-19 Kevin McCullough <kmccullough@apple.com> · 6e3dc40d
      kmccullough@apple.com authored
              Reviewed by Tim and Mark.
      
              Implement DTrace hooks for dashcode and instruments.
      
              * API/JSProfilerPrivate.cpp: Added. Expose SPI so that profiling can be
              turned on from a client.  The DTrace probes were added within the
              profiler mechanism for performance reasons so the profiler must be
              started to enable tracing.
              (JSStartProfiling):
              (JSEndProfiling):
              * API/JSProfilerPrivate.h: Added. Ditto.
              * JavaScriptCore.exp: Exposing the start/stop methods to clients.
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * kjs/Tracing.d: Define the DTrace probes.
              * kjs/Tracing.h: Ditto.
              * profiler/ProfileGenerator.cpp: Implement the DTrace probes in the
              profiler.
              (KJS::ProfileGenerator::willExecute):
              (KJS::ProfileGenerator::didExecute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e3dc40d
  6. 03 Jul, 2008 1 commit
    • mrowe@apple.com's avatar
      Add the ability to trace JavaScriptCore garabge collections using dtrace. · dc7e26c1
      mrowe@apple.com authored
      Reviewed by Sam Weinig.
      
      * JavaScriptCore.xcodeproj/project.pbxproj: Generate the dtrace probe header
      file when building on a new enough version of Mac OS X.
      * JavaScriptCorePrefix.h: Add our standard Mac OS X version detection macros.
      * kjs/Tracing.d: Declare three dtrace probes.
      * kjs/Tracing.h: Include the generated dtrace macros if dtrace is available,
      otherwise provide versions that do nothing.
      * kjs/collector.cpp:
      (KJS::Heap::collect): Fire dtrace probes when starting a collection, after the
      mark phase has completed, and when the collection is complete.
      * wtf/Platform.h: Define HAVE_DTRACE when building on a new enough version of Mac OS X.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc7e26c1
  7. 13 May, 2008 1 commit
    • timothy@apple.com's avatar
      Adds an event loop abstraction to platform. This abstraction will be · a9922b67
      timothy@apple.com authored
      used by the JavaScriptDebugServer to implement pausing.
      
      Reviewed by Kevin McCullough.
      
      * platform/EventLoop.h: Added.
      (WebCore::EventLoop::EventLoop):
      (WebCore::EventLoop::ended): Return m_ended.
      * platform/mac/EventLoopMac.mm: Added.
      (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
      * platform/win/EventLoopWin.cpp: Added.
      (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
      * WebCore.xcodeproj/project.pbxproj: Add new files.
      * WebCore.vcproj/WebCore.vcproj: Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9922b67
  8. 07 May, 2008 1 commit
    • alice.liu@apple.com's avatar
      WebCore: · b4a81ff8
      alice.liu@apple.com authored
      2008-05-06  Alice Liu  <alice.liu@apple.com>
      
              Reviewed by Adele Peterson and John Sullivan.
      
              changes needed to build on Windows after r32911 and r32927
      
              * WebCore.vcproj/WebCore.vcproj:
              * page/AXObjectCache.cpp:
              (WebCore::AXObjectCache::selectedChildrenChanged):
              * page/AccessibilityObject.h:
              (WebCore::AccessibilityObject::document):
              (WebCore::AccessibilityObject::topDocumentFrameView):
              (WebCore::AccessibilityObject::documentFrameView):
              * page/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::document):
              (WebCore::AccessibilityRenderObject::topDocumentFrameView):
              (WebCore::AccessibilityRenderObject::documentFrameView):
              * page/AccessibilityRenderObject.h:
              * page/mac/AXObjectCacheMac.mm:
              * page/mac/AccessibilityObjectWrapper.mm:
              (-[AccessibilityObjectWrapper position]):
              (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
      
      WebKit/win:
      
      2008-05-06  Alice Liu  <alice.liu@apple.com>
      
              Reviewed by Adele Peterson and John Sullivan.
      
              changes needed to build on Windows after r32911 and r32927
      
              * AccessibleBase.cpp:
              (AccessibleBase::get_accParent):
              * AccessibleDocument.cpp:
              (AccessibleDocument::document):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b4a81ff8
  9. 19 Apr, 2008 1 commit
    • jhoneycutt@apple.com's avatar
      2008-04-17 Jon Honeycutt <jhoneycutt@apple.com> · 2904f97b
      jhoneycutt@apple.com authored
              Reviewed by Darin.
      
              Return an AccessibleDocument when our root accessible object is queried
              for.
      
              * AccessibleDocument.cpp: Added; represents an AccessibilityObject that
              itself represents a Document.
              (AccessibleDocument::AccessibleDocument): Initialize AccessibleBase with
              the AccessibilityObject for this Document.
              * AccessibleDocument.h: Added.
              * WebFrame.cpp:
              (WebFrame::accessible): If m_accessible is 0, or if Document in this
              frame does not match the Document in the cached m_accessible object,
              create a new AccessibleDocument for this frame's Document.
              * WebFrame.h: Swap AccessibleBase.h for AccessibleDocument.h
              * WebKit.vcproj/WebKit.vcproj: Add AccessibleDocument.{h,cpp}
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32250 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2904f97b
  10. 16 Apr, 2008 1 commit
    • andersca@apple.com's avatar
      2008-04-16 Anders Carlsson <andersca@apple.com> · c6839d1c
      andersca@apple.com authored
              Reviewed by Adam.
      
              Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and 
              fix typos in the #if line.
              
              * DerivedSources.make:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
              * loader/appcache/ApplicationCache.cpp:
              * loader/appcache/ApplicationCache.h:
              * loader/appcache/ApplicationCacheGroup.cpp:
              * loader/appcache/ApplicationCacheGroup.h:
              * loader/appcache/ApplicationCacheResource.cpp:
              * loader/appcache/ApplicationCacheResource.h:
              * loader/appcache/DOMApplicationCache.cpp:
              * loader/appcache/DOMApplicationCache.h:
              * loader/appcache/DOMApplicationCache.idl:
              * loader/appcache/ManifestParser.cpp:
              * loader/appcache/ManifestParser.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6839d1c
  11. 15 Apr, 2008 1 commit
    • andersca@apple.com's avatar
      JavaScriptCore: · b8666938
      andersca@apple.com authored
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
              
              * Configurations/JavaScriptCore.xcconfig:
      
      WebCore:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add empty files for the application cache.
              
              * Configurations/WebCore.xcconfig:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.vcproj/build-generated-files.sh:
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
              
              * WebCore.xcodeproj/project.pbxproj:
              * loader/appcache: Added.
              * loader/appcache/ApplicationCache.cpp: Added.
              * loader/appcache/ApplicationCache.h: Added.
              * loader/appcache/ApplicationCacheGroup.cpp: Added.
              * loader/appcache/ApplicationCacheGroup.h: Added.
              * loader/appcache/ApplicationCacheResource.cpp: Added.
              * loader/appcache/ApplicationCacheResource.h: Added.
              * loader/appcache/DOMApplicationCache.cpp: Added.
              * loader/appcache/DOMApplicationCache.h: Added.
              * loader/appcache/DOMApplicationCache.idl: Added.
              * loader/appcache/ManifestParser.cpp: Added.
              * loader/appcache/ManifestParser.h: Added.
      
      WebKit/mac:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * Configurations/WebKit.xcconfig:
      
      WebKit/win:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * WebKit.vcproj/WebKit.vcproj:
      
      WebKitTools:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * Scripts/build-webkit:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31923 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8666938
  12. 23 Feb, 2008 1 commit
    • ddkilzer@apple.com's avatar
      WebCore: · 267da135
      ddkilzer@apple.com authored
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * bindings/objc/WebScriptObject.h: Added Apple BSD-style license.
              * bindings/objc/WebScriptObjectPrivate.h: Ditto.
              * platform/text/mac/ShapeArabic.c: Added ICU license from WebCore/icu/LICENSE.
      
      WebKit/mac:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * Plugins/WebNetscapeDeprecatedFunctions.c: Updated copyright statement
              and added Apple BSD-style license.
              * Plugins/WebNetscapeDeprecatedFunctions.h: Ditto.
      
      WebKitTools:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp: Added
              copyright statement.  Replaced license with newer Apple BSD-style license.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.cpp: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.cpp: Ditto.
              * DumpRenderTree/win/TestNetscapePlugin/main.c: Ditto.
              * mangleme/LICENSE: Added (LGPL).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      267da135
  13. 30 Mar, 2007 2 commits
    • andersca's avatar
      Reviewed by Geoff. · b5e193f8
      andersca authored
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c:
              (testAllocate):
              (testEnumerate):
              Add casts.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h:
              Don't use #import, use #include.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b5e193f8
    • andersca's avatar
      JavaScriptCore: · 77d5e0d0
      andersca authored
              Reviewed by Geoff.
      
              Implement _NPN_Enumerate support.
              
              * JavaScriptCore.exp:
              * bindings/NP_jsobject.cpp:
              (_NPN_Enumerate):
              * bindings/c/c_instance.cpp:
              (KJS::Bindings::CInstance::getPropertyNames):
              * bindings/c/c_instance.h:
              * bindings/npapi.h:
              * bindings/npruntime.h:
              * bindings/npruntime_impl.h:
              * bindings/runtime.h:
              (KJS::Bindings::Instance::getPropertyNames):
              * bindings/runtime_object.cpp:
              (RuntimeObjectImp::getPropertyNames):
              * bindings/runtime_object.h:
              (KJS::RuntimeObjectImp::getInternalInstance):
      
      LayoutTests:
      
              Reviewed by Geoff.
      
              Add enumeration test.
              
              * plugins/netscape-enumerate-expected.txt: Added.
              * plugins/netscape-enumerate.html: Added.
      
      WebKit:
      
              Reviewed by Geoff.
      
              * Plugins/WebNetscapePluginPackage.m:
              (-[WebNetscapePluginPackage load]):
              Initialize pushpopupsenabledstate, poppopupsenabledstate and enumerate.
              
              * Plugins/npapi.m:
              (NPN_PushPopupsEnabledState):
              (NPN_PopPopupsEnabledState):
              Add stubs for these functions.
              
              * Plugins/npfunctions.h:
              Add new methods to NPNetscapeFuncs.
      
      WebKitTools:
      
              Reviewed by Geoff.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
              Add TestObject.c and TestObject.h
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              Implement the testObject property.
              
              (pluginInvoke):
              Implement testEnumerate which takes an object and an array and enumerates
              the properties of the object and adds them to the array.
              
              (pluginAllocate):
              Allocate the test object.
              
              (pluginDeallocate):
              Free the test object.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Added.
              Add a test object with two enumerable properties.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77d5e0d0
  14. 29 Mar, 2007 1 commit
    • ggaren's avatar
      LayoutTests: · 2663f9a7
      ggaren authored
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
      
              * plugins/destroy-stream-twice-expected.txt: Added.
              * plugins/destroy-stream-twice.html: Added.
      
      WebKit:
      
              Reviewed by Beth Dakin, reviewed by Maciej Stachowiak.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Changed LOG_ERROR to LOG so the layout test doesn't produce console spew
              every time you run it.
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView destroyStream:reason:]):
      
      WebKitTools:
      
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Added hasStream property and destroyStream function, used by layout test.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginInvoke):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_NewStream):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2663f9a7
  15. 05 Mar, 2007 1 commit
    • andersca's avatar
      LayoutTests: · 526c36f0
      andersca authored
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * plugins/get-url-with-blank-target-expected.txt: Added.
              * plugins/get-url-with-blank-target.html: Added.
      
      WebKit:
      
              Reviewed by Adam, Darin.
       
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              Handle the case where the web view returned from the delegate method is null. Also, send out an error notification
              in that case so we can catch it.
      
      WebKitTools:
      
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
              
              Add a "getURLNotify" method to the plugin object. This lets you pass a URL, a target and a callback function
              to be run when the URL has finished (or failed) loading.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginInvoke):
              (handleCallback):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_URLNotify):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      526c36f0
  16. 06 Nov, 2006 1 commit
    • ap's avatar
      Reviewed by Maciej. · fdfb9d6f
      ap authored
              http://bugs.webkit.org/show_bug.cgi?id=11517
              REGRESSION: Flash clicks/interactivity not working properly
      
      WebCore:
              * bridge/mac/FrameMac.mm:
              (WebCore::FrameMac::handleMouseMoveEvent):
              (WebCore::FrameMac::handleMouseReleaseEvent):
              Restore parts of event dispatching that were removed when fixing
              bug 7323 - just bypass those for subframes.
      
      WebKitTools:
              Teach TestNetscapePlugin to log events passed to it. To enable, set eventLoggingEnabled to true:
      
              <embed name="plg" type="application/x-webkit-test-netscape" width=100 height=100></embed>
              <script>
                  plg.eventLoggingEnabled = true;
                  // use eventSender to simulate events...
              </script>
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_HandleEvent):
      
      LayoutTests:
              * plugins/mouse-events-expected.txt: Added.
              * plugins/mouse-events.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fdfb9d6f
  17. 09 Mar, 2006 1 commit
    • darin's avatar
      Reviewed by John Sullivan. · 24fbf130
      darin authored
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7681
                memory leak in the plug-in tests
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_Destroy): Added code to release the plug-in object. This is the leak fix.
              (NPP_SetWindow): Remove unneeded code to store the window pointer.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              Moved the browser global in here since it's declared in this file's header.
              Changed the code to set up the pluginClass structure to not use function
              pointer casts. Those are dangerous because they can hide many types of mismatch.
              And indeed when I did this I discovered that many functions were missing their
              boolean return values or had parameter declarations with the wrong types.
              (pluginGetProperty): Use STRINGZ_TO_NPVARIANT macro for greater simplicity and
              clarity. Added boolean return value: return true when successful and false when not.
              (pluginSetProperty): Added boolean return value, return false since we have no
              properties we can set.
              (pluginInvoke): Added boolean return value. Return true when successful and false
              when not. Use NPVARIANT macros where appropriate. Added a missing release for the
              return value from calling the browser. Changed code to put the strings in malloc
              buffers instead of relying on GCC's extension that allows variable-sized arrays
              on the stack.
              (pluginInvokeDefault): Added boolean return value, return false since we have no
              default function to call.
              (pluginInvalidate): Added missing parameter. Removed comment.
              (pluginAllocate): Removed unneeded cast. This is C code, not C++, so you don't have
              to cast the result of malloc.
              (pluginDeallocate): Removed uneeded cast.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Removed some unneeded
              includes. Changed our PluginObject to use NPObject instead of re-declaring fields
              that match NPObject's fields. Removed unused NPWindow pointer.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24fbf130
  18. 05 Jan, 2006 1 commit
    • ggaren's avatar
      LayoutTests: · 7dd73f87
      ggaren authored
              Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6318
              REGRESSION: Repro crash in JS called from Flash on bdash.net.nz
      
              * fast/plugins/netscape-back-forward-expected.txt: Added.
              * fast/plugins/netscape-back-forward.html: Added.
              * fast/plugins/resources/go-back.html: Added.
      
      WebKit:
      
              Reviewed by Darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              * WebKit.exp: export WebPluginDatabase class, which DumpRenderTree
              needs to add plugins to the runtime.
      
      WebKitTools:
      
              Reviewed by darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              Also wrote first test plugin.
      
              * DumpRenderTree/DumpRenderTree.m:
              (main):
              (1) Put the WebView in an invisible window, because PlugIns are
              optimized not to load if there's no parent window.
              (2) Tell WebKit to load any PlugIns in the directory from which we
              loaded. This means we can build nasty PlugIns alongside DumpRenderTree
              and they'll load automagically during layout testing, but they won't be
              added to the user's system, hosing apps like Safari.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Added new
              test PlugIn to project.
      
              PlugIn added to project:
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/Info.plist: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c: Added.
              (getPluginClass):
              (initializeIdentifiers):
              (pluginHasProperty):
              (pluginHasMethod):
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginInvoke):
              (pluginInvokeDefault):
              (pluginInvalidate):
              (pluginAllocate):
              (pluginDeallocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c: Added.
              (NP_Initialize):
              (NP_GetEntryPoints):
              (NP_Shutdown):
              (NPP_New):
              (NPP_Destroy):
              (NPP_SetWindow):
              (NPP_NewStream):
              (NPP_DestroyStream):
              (NPP_WriteReady):
              (NPP_Write):
              (NPP_StreamAsFile):
              (NPP_Print):
              (NPP_HandleEvent):
              (NPP_URLNotify):
              (NPP_GetValue):
              (NPP_SetValue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@11885 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7dd73f87