1. 08 Sep, 2011 2 commits
    • rniwa@webkit.org's avatar
      Build fix. · 66e26354
      rniwa@webkit.org authored
      * dfg/DFGCapabilities.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      66e26354
    • fpizlo@apple.com's avatar
      Value profling and execution count profiling is performed even for · 452cb41a
      fpizlo@apple.com authored
      code that cannot be optimized
      https://bugs.webkit.org/show_bug.cgi?id=67694
      
      Reviewed by Gavin Barraclough.
      
      This is a 2% speed-up on V8 when tiered compilation is enabled.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecode/CodeBlock.cpp:
      (JSC::ProgramCodeBlock::canCompileWithDFG):
      (JSC::EvalCodeBlock::canCompileWithDFG):
      (JSC::FunctionCodeBlock::canCompileWithDFG):
      * bytecode/CodeBlock.h:
      * dfg/DFGCapabilities.cpp: Added.
      (JSC::DFG::canCompileOpcodes):
      * dfg/DFGCapabilities.h: Added.
      (JSC::DFG::mightCompileEval):
      (JSC::DFG::mightCompileProgram):
      (JSC::DFG::mightCompileFunctionForCall):
      (JSC::DFG::mightCompileFunctionForConstruct):
      (JSC::DFG::canCompileOpcode):
      (JSC::DFG::canCompileEval):
      (JSC::DFG::canCompileProgram):
      (JSC::DFG::canCompileFunctionForCall):
      (JSC::DFG::canCompileFunctionForConstruct):
      * jit/JIT.cpp:
      (JSC::JIT::emitOptimizationCheck):
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::JIT::shouldEmitProfiling):
      * jit/JITInlineMethods.h:
      (JSC::JIT::emitValueProfilingSite):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      452cb41a
  2. 13 Jul, 2011 1 commit
    • commit-queue@webkit.org's avatar
      DFG JIT does not implement prototype chain or list caching for get_by_id. · 5f595757
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=64147
      
      Patch by Filip Pizlo <fpizlo@apple.com> on 2011-07-13
      Reviewed by Gavin Barraclough.
      
      This implements unified support for prototype caching, prototype chain
      caching, and polymorphic (i.e. list) prototype and prototype chain
      caching.  This is done by creating common code for emitting prototype
      or chain access stubs, and having it factored out into
      generateProtoChainAccessStub().  This function is called by
      tryCacheGetByID once the latter determines that some form of prototype
      access caching is necessary (i.e. the slot being accessed is not on the
      base value but on some other object).
      
      Direct prototype list, and prototype chain list, caching is implemented by
      linking the slow path to operationGetByIdProtoBuildList(), which uses the
      same helper function (generateProtoChainAccessStub()) as tryCacheGetByID.
      
      This change required ensuring that the value in the scratchGPR field in
      StructureStubInfo is preserved even after the stub info is in the
      chain, or proto_list, states.  Hence scratchGPR was moved out of the union
      and into the top-level of StructureStubInfo.
      
      * bytecode/StructureStubInfo.h:
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::compileFunction):
      * dfg/DFGOperations.cpp:
      * dfg/DFGOperations.h:
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::emitRestoreScratch):
      (JSC::DFG::linkRestoreScratch):
      (JSC::DFG::generateProtoChainAccessStub):
      (JSC::DFG::tryCacheGetByID):
      (JSC::DFG::tryBuildGetByIDProtoList):
      (JSC::DFG::dfgBuildGetByIDProtoList):
      (JSC::DFG::tryCachePutByID):
      * dfg/DFGRepatch.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f595757
  3. 12 Jul, 2011 1 commit
    • commit-queue@webkit.org's avatar
      DFG JIT does not implement op_construct. · 63ac900c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=64066
      
      Source/JavaScriptCore:
      
      Patch by Filip Pizlo <fpizlo@apple.com> on 2011-07-12
      Reviewed by Gavin Barraclough.
      
      This is a fixed implementation of op_construct.  Constructor calls are implemented
      by reusing almost all of the code for Call, with care taken to make sure that
      where the are differences (like selecting different code blocks), those differences
      are respected.  The two fixes over the last patch are: (1) make sure the
      CodeBlock::unlinkCalls respects differences between Call and Construct, and (2)
      make sure that virtualFor() in DFGOperations respects the CodeSpecializationKind
      (either CodeForCall or CodeForConstruct) when invoking the compiler.
      
      * dfg/DFGAliasTracker.h:
      (JSC::DFG::AliasTracker::recordConstruct):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::addCall):
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGJITCodeGenerator.cpp:
      (JSC::DFG::JITCodeGenerator::emitCall):
      * dfg/DFGNode.h:
      * dfg/DFGNonSpeculativeJIT.cpp:
      (JSC::DFG::NonSpeculativeJIT::compile):
      * dfg/DFGOperations.cpp:
      * dfg/DFGOperations.h:
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::dfgLinkFor):
      * dfg/DFGRepatch.h:
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * runtime/CodeBlock.cpp:
      (JSC::CodeBlock::unlinkCalls):
      
      LayoutTests:
      
      Patch by Filip Pizlo <fpizlo@apple.com> on 2011-07-12
      Reviewed by Gavin Barraclough.
      
      Added a test for the DFG op_construct regression, where polymorphic constructor
      calls will result in the code being compiled for call but then invoked as a
      constructor.  This test will fail if that part of the patch is omitted.
      
      * fast/js/polymorphic-construct-expected.txt: Added.
      * fast/js/polymorphic-construct.html: Added.
      * fast/js/script-tests/polymorphic-construct.js: Added.
      (Foo):
      ():
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63ac900c
  4. 08 Jul, 2011 1 commit
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=64181 · 86d1dfa8
      barraclough@apple.com authored
      REGRESSION (r90602): Gmail doesn't load
      
      Rolling out r90601, r90602.
      
      * dfg/DFGAliasTracker.h:
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::addVarArgChild):
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGJITCodeGenerator.cpp:
      (JSC::DFG::JITCodeGenerator::emitCall):
      * dfg/DFGNode.h:
      * dfg/DFGNonSpeculativeJIT.cpp:
      (JSC::DFG::NonSpeculativeJIT::compile):
      * dfg/DFGOperations.cpp:
      * dfg/DFGOperations.h:
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::tryCacheGetByID):
      (JSC::DFG::dfgLinkCall):
      * dfg/DFGRepatch.h:
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * runtime/JSObject.h:
      (JSC::JSObject::isUsingInlineStorage):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90673 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      86d1dfa8
  5. 07 Jul, 2011 1 commit
    • commit-queue@webkit.org's avatar
      DFG JIT does not implement op_construct. · d4e53d67
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=64066
      
      Patch by Filip Pizlo <fpizlo@apple.com> on 2011-07-07
      Reviewed by Gavin Barraclough.
      
      * dfg/DFGAliasTracker.h:
      (JSC::DFG::AliasTracker::recordConstruct):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::addCall):
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGJITCodeGenerator.cpp:
      (JSC::DFG::JITCodeGenerator::emitCall):
      * dfg/DFGNode.h:
      * dfg/DFGNonSpeculativeJIT.cpp:
      (JSC::DFG::NonSpeculativeJIT::compile):
      * dfg/DFGOperations.cpp:
      * dfg/DFGOperations.h:
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::dfgLinkFor):
      * dfg/DFGRepatch.h:
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d4e53d67
  6. 06 Jul, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-07-06 Filip Pizlo <fpizlo@apple.com> · c0f5cb06
      commit-queue@webkit.org authored
              DFG JIT does not support method_check
              https://bugs.webkit.org/show_bug.cgi?id=63972
      
              Reviewed by Gavin Barraclough.
      
              * assembler/CodeLocation.h:
              (JSC::CodeLocationPossiblyNearCall::CodeLocationPossiblyNearCall):
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::visitAggregate):
              * bytecode/CodeBlock.h:
              (JSC::MethodCallLinkInfo::MethodCallLinkInfo):
              (JSC::MethodCallLinkInfo::seenOnce):
              (JSC::MethodCallLinkInfo::setSeen):
              * dfg/DFGAliasTracker.h:
              (JSC::DFG::AliasTracker::recordGetMethod):
              * dfg/DFGByteCodeParser.cpp:
              (JSC::DFG::ByteCodeParser::parseBlock):
              * dfg/DFGJITCodeGenerator.cpp:
              (JSC::DFG::JITCodeGenerator::cachedGetById):
              (JSC::DFG::JITCodeGenerator::cachedGetMethod):
              * dfg/DFGJITCodeGenerator.h:
              * dfg/DFGJITCompiler.cpp:
              (JSC::DFG::JITCompiler::compileFunction):
              * dfg/DFGJITCompiler.h:
              (JSC::DFG::JITCompiler::addMethodGet):
              (JSC::DFG::JITCompiler::MethodGetRecord::MethodGetRecord):
              * dfg/DFGNode.h:
              (JSC::DFG::Node::hasIdentifier):
              * dfg/DFGNonSpeculativeJIT.cpp:
              (JSC::DFG::NonSpeculativeJIT::compile):
              * dfg/DFGOperations.cpp:
              * dfg/DFGOperations.h:
              * dfg/DFGRepatch.cpp:
              (JSC::DFG::dfgRepatchGetMethodFast):
              (JSC::DFG::tryCacheGetMethod):
              (JSC::DFG::dfgRepatchGetMethod):
              * dfg/DFGRepatch.h:
              * dfg/DFGSpeculativeJIT.cpp:
              (JSC::DFG::SpeculativeJIT::compile):
              * jit/JITWriteBarrier.h:
              (JSC::JITWriteBarrier::set):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c0f5cb06
  7. 05 Jul, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-07-05 Filip Pizlo <fpizlo@apple.com> · 4ea4892c
      commit-queue@webkit.org authored
              DFG JIT does not implement op_call.
              https://bugs.webkit.org/show_bug.cgi?id=63858
      
              Reviewed by Gavin Barraclough.
      
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::unlinkCalls):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::setNumberOfCallLinkInfos):
              (JSC::CodeBlock::numberOfCallLinkInfos):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitCall):
              (JSC::BytecodeGenerator::emitConstruct):
              * dfg/DFGAliasTracker.h:
              (JSC::DFG::AliasTracker::lookupGetByVal):
              (JSC::DFG::AliasTracker::recordCall):
              (JSC::DFG::AliasTracker::equalIgnoringLaterNumericConversion):
              * dfg/DFGByteCodeParser.cpp:
              (JSC::DFG::ByteCodeParser::ByteCodeParser):
              (JSC::DFG::ByteCodeParser::getLocal):
              (JSC::DFG::ByteCodeParser::getArgument):
              (JSC::DFG::ByteCodeParser::toInt32):
              (JSC::DFG::ByteCodeParser::addToGraph):
              (JSC::DFG::ByteCodeParser::addVarArgChild):
              (JSC::DFG::ByteCodeParser::predictInt32):
              (JSC::DFG::ByteCodeParser::parseBlock):
              (JSC::DFG::ByteCodeParser::processPhiStack):
              (JSC::DFG::ByteCodeParser::allocateVirtualRegisters):
              * dfg/DFGGraph.cpp:
              (JSC::DFG::Graph::opName):
              (JSC::DFG::Graph::dump):
              (JSC::DFG::Graph::refChildren):
              * dfg/DFGGraph.h:
              * dfg/DFGJITCodeGenerator.cpp:
              (JSC::DFG::JITCodeGenerator::useChildren):
              (JSC::DFG::JITCodeGenerator::emitCall):
              * dfg/DFGJITCodeGenerator.h:
              (JSC::DFG::JITCodeGenerator::addressOfCallData):
              * dfg/DFGJITCompiler.cpp:
              (JSC::DFG::JITCompiler::compileFunction):
              * dfg/DFGJITCompiler.h:
              (JSC::DFG::CallRecord::CallRecord):
              (JSC::DFG::JITCompiler::notifyCall):
              (JSC::DFG::JITCompiler::appendCallWithFastExceptionCheck):
              (JSC::DFG::JITCompiler::addJSCall):
              (JSC::DFG::JITCompiler::PropertyAccessRecord::PropertyAccessRecord):
              (JSC::DFG::JITCompiler::JSCallRecord::JSCallRecord):
              * dfg/DFGNode.h:
              (JSC::DFG::Node::Node):
              (JSC::DFG::Node::child1):
              (JSC::DFG::Node::child2):
              (JSC::DFG::Node::child3):
              (JSC::DFG::Node::firstChild):
              (JSC::DFG::Node::numChildren):
              * dfg/DFGNonSpeculativeJIT.cpp:
              (JSC::DFG::NonSpeculativeJIT::basicArithOp):
              (JSC::DFG::NonSpeculativeJIT::compare):
              (JSC::DFG::NonSpeculativeJIT::compile):
              * dfg/DFGOperations.cpp:
              * dfg/DFGOperations.h:
              * dfg/DFGRepatch.cpp:
              (JSC::DFG::dfgLinkCall):
              * dfg/DFGRepatch.h:
              * dfg/DFGSpeculativeJIT.cpp:
              (JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
              (JSC::DFG::SpeculativeJIT::compilePeepHoleCall):
              (JSC::DFG::SpeculativeJIT::compile):
              * dfg/DFGSpeculativeJIT.h:
              (JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):
              * interpreter/CallFrame.h:
              (JSC::ExecState::calleeAsValue):
              * jit/JIT.cpp:
              (JSC::JIT::JIT):
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              (JSC::JIT::privateCompile):
              (JSC::JIT::linkCall):
              (JSC::JIT::linkConstruct):
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCall):
              * jit/JITCode.h:
              (JSC::JITCode::JITCode):
              (JSC::JITCode::jitType):
              (JSC::JITCode::HostFunction):
              * runtime/JSFunction.h:
              * runtime/JSGlobalData.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4ea4892c
  8. 29 Jun, 2011 1 commit
  9. 27 Jun, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-06-27 Filip Pizlo <fpizlo@apple.com> · 0df040ee
      commit-queue@webkit.org authored
              Reviewed by Gavin Barraclough.
      
              DFG JIT does not perform put_by_id caching.
              https://bugs.webkit.org/show_bug.cgi?id=63409
      
              * bytecode/StructureStubInfo.h:
              * dfg/DFGJITCodeGenerator.cpp:
              (JSC::DFG::JITCodeGenerator::cachedPutById):
              * dfg/DFGJITCodeGenerator.h:
              * dfg/DFGJITCompiler.cpp:
              (JSC::DFG::JITCompiler::compileFunction):
              * dfg/DFGJITCompiler.h:
              (JSC::DFG::JITCompiler::addPropertyAccess):
              (JSC::DFG::JITCompiler::PropertyAccessRecord::PropertyAccessRecord):
              * dfg/DFGNonSpeculativeJIT.cpp:
              (JSC::DFG::NonSpeculativeJIT::compile):
              * dfg/DFGOperations.cpp:
              * dfg/DFGOperations.h:
              * dfg/DFGRepatch.cpp:
              (JSC::DFG::dfgRepatchByIdSelfAccess):
              (JSC::DFG::tryCacheGetByID):
              (JSC::DFG::appropriatePutByIdFunction):
              (JSC::DFG::tryCachePutByID):
              (JSC::DFG::dfgRepatchPutByID):
              * dfg/DFGRepatch.h:
              * dfg/DFGSpeculativeJIT.cpp:
              (JSC::DFG::SpeculativeJIT::compile):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0df040ee
  10. 26 May, 2011 1 commit
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=61508 · c7af2d34
      barraclough@apple.com authored
      DFG JIT - Add support for get by id self caching.
      
      Reviewed by Geoff Garen.
      
      Change the call out to be an unexpected call (using silent spill/fill functions),
      add a structure check & compact load to the JIT code, and add repatching mechanisms.
      Since DFGOperations may want to be be implemented in asm, make these symbols be extern
      "C". Add an asm wrapper to pass the return address to the optimizing get-by-id operation,
      so that it can look up its StructureStubInfo.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
          - Added new files.
      * bytecode/StructureStubInfo.h:
          - Added 'unset' entries to union.
      * dfg/DFGJITCodeGenerator.h:
      (JSC::DFG::JITCodeGenerator::appendCallWithExceptionCheck):
          - Return the call, we need this to populate the StructureStubInfo.
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::compileFunction):
          - Populate the CodebBlock's StructureStubInfo Vector.
      * dfg/DFGJITCompiler.h:
      (JSC::DFG::JITCompiler::appendCallWithExceptionCheck):
          - Return the call, we need this to populate the StructureStubInfo.
      (JSC::DFG::JITCompiler::addPropertyAccess):
      (JSC::DFG::JITCompiler::PropertyAccessRecord::PropertyAccessRecord):
          - Add structures to record property access info during compilation.
      * dfg/DFGOperations.cpp:
          - Made all external methods extern "C".
      (JSC::DFG::operationPutByValInternal):
          - Moved outside of the extern "C" block.
      * dfg/DFGOperations.h:
          - Made all external methods extern "C".
      * dfg/DFGRepatch.cpp: Added.
      (JSC::DFG::dfgRepatchCall):
          - repatch a call to link to a new callee function.
      (JSC::DFG::dfgRepatchGetByIdSelf):
          - Modify the JIT code to optimize self accesses.
      (JSC::DFG::tryCacheGetByID):
          - Internal implementation of dfgRepatchGetByID (factor out failing cases).
      (JSC::DFG::dfgRepatchGetByID):
          - Used to optimize 'operationGetByIdOptimize' - repatches to 'operationGetById', and tries to optimize self accesses!
      * dfg/DFGRepatch.h: Added.
          - Expose dfgRepatchGetByID.
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
          - Changed implementation of GetById ops.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c7af2d34
  11. 09 Feb, 2011 1 commit
    • pvarga@webkit.org's avatar
      Replace PCRE with Yarr in WebCore · 4ab8255f
      pvarga@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=53496
      
      Reviewed by Gavin Barraclough.
      
      Rollback r77626 with windows build fix.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.exp:
      * JavaScriptCore.gyp/JavaScriptCore.gyp:
      * JavaScriptCore.gypi:
      * JavaScriptCore.pro:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * create_regex_tables:
      * runtime/RegExp.cpp:
      * wtf/Platform.h:
      * yarr/Yarr.h:
      * yarr/YarrJIT.cpp:
      * yarr/YarrJIT.h:
      * yarr/YarrParser.h:
      * yarr/YarrPattern.h:
      * yarr/YarrSyntaxChecker.h:
      * yarr/yarr.pri: Added.
      
      Source/WebCore:
      
      No new tests needed.
      
      * Android.jscbindings.mk:
      * CMakeLists.txt:
      * ForwardingHeaders/pcre/pcre.h: Removed.
      * ForwardingHeaders/yarr/Yarr.h: Added.
      * ForwardingHeaders/yarr/YarrInterpreter.h: Added.
      * ForwardingHeaders/yarr/YarrPattern.h: Added.
      * WebCore.gyp/WebCore.gyp:
      * WebCore.pro:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.vcproj/copyForwardingHeaders.cmd:
      * platform/text/RegularExpression.cpp:
      (WebCore::RegularExpression::Private::create):
      (WebCore::RegularExpression::Private::Private):
      (WebCore::RegularExpression::Private::compile):
      (WebCore::RegularExpression::match):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@78042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4ab8255f
  12. 04 Feb, 2011 2 commits
    • loislo@chromium.org's avatar
      2011-02-04 Sheriff Bot <webkit.review.bot@gmail.com> · 66fc8e99
      loislo@chromium.org authored
              Unreviewed, rolling out r77625 and r77626.
              http://trac.webkit.org/changeset/77625
              http://trac.webkit.org/changeset/77626
              https://bugs.webkit.org/show_bug.cgi?id=53765
      
              It broke Windows builds (Requested by Ossy_ on #webkit).
      
              * Android.jscbindings.mk:
              * CMakeLists.txt:
              * ForwardingHeaders/pcre/pcre.h: Added.
              * ForwardingHeaders/yarr/Yarr.h: Removed.
              * ForwardingHeaders/yarr/YarrInterpreter.h: Removed.
              * ForwardingHeaders/yarr/YarrPattern.h: Removed.
              * WebCore.gyp/WebCore.gyp:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.vcproj/copyForwardingHeaders.cmd:
              * platform/text/RegularExpression.cpp:
              (WebCore::RegularExpression::Private::regexp):
              (WebCore::RegularExpression::Private::compile):
              (WebCore::RegularExpression::Private::Private):
              (WebCore::RegularExpression::Private::create):
              (WebCore::RegularExpression::Private::~Private):
              (WebCore::RegularExpression::match):
      
      2011-02-04  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r77625 and r77626.
              http://trac.webkit.org/changeset/77625
              http://trac.webkit.org/changeset/77626
              https://bugs.webkit.org/show_bug.cgi?id=53765
      
              It broke Windows builds (Requested by Ossy_ on #webkit).
      
              * JavaScriptCore.exp:
              * JavaScriptCore.gyp/JavaScriptCore.gyp:
              * JavaScriptCore.gypi:
              * JavaScriptCore.pro:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * create_regex_tables:
              * runtime/RegExp.cpp:
              * wtf/Platform.h:
              * yarr/Yarr.h:
              * yarr/YarrJIT.cpp:
              * yarr/YarrJIT.h:
              * yarr/YarrParser.h:
              * yarr/YarrPattern.h:
              * yarr/YarrSyntaxChecker.h:
              * yarr/yarr.pri: Removed.
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      66fc8e99
    • pvarga@webkit.org's avatar
      2011-02-04 Peter Varga <pvarga@webkit.org> · 43e81a73
      pvarga@webkit.org authored
              Reviewed by Gavin Barraclough.
      
              Replace PCRE with Yarr in WebCore
              https://bugs.webkit.org/show_bug.cgi?id=53496
      
              * JavaScriptCore.exp:
              * JavaScriptCore.gyp/JavaScriptCore.gyp:
              * JavaScriptCore.gypi:
              * JavaScriptCore.pro:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * create_regex_tables:
              * runtime/RegExp.cpp:
              * wtf/Platform.h:
              * yarr/Yarr.h:
              * yarr/YarrJIT.cpp:
              * yarr/YarrJIT.h:
              * yarr/YarrParser.h:
              * yarr/YarrPattern.h:
              * yarr/YarrSyntaxChecker.h:
              * yarr/yarr.pri: Added.
      2011-02-04  Peter Varga  <pvarga@webkit.org>
      
              Reviewed by Gavin Barraclough.
      
              Replace PCRE with Yarr in WebCore
              https://bugs.webkit.org/show_bug.cgi?id=53496
      
              No new tests needed.
      
              * Android.jscbindings.mk:
              * CMakeLists.txt:
              * ForwardingHeaders/pcre/pcre.h: Removed.
              * ForwardingHeaders/yarr/Yarr.h: Added.
              * ForwardingHeaders/yarr/YarrInterpreter.h: Added.
              * ForwardingHeaders/yarr/YarrPattern.h: Added.
              * WebCore.gyp/WebCore.gyp:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.vcproj/copyForwardingHeaders.cmd:
              * platform/text/RegularExpression.cpp:
              (WebCore::RegularExpression::Private::create):
              (WebCore::RegularExpression::Private::Private):
              (WebCore::RegularExpression::Private::compile):
              (WebCore::RegularExpression::match):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      43e81a73
  13. 10 Jan, 2011 1 commit
    • barraclough@apple.com's avatar
      Bug 52079 - Syntax errors should be early errors. · 7e6bd6d6
      barraclough@apple.com authored
      Reviewed by Oliver Hunt.
      
      Source/JavaScriptCore: 
      
      From chapter 16 the spec:
          An implementation must report most errors at the time the relevant ECMAScript language construct is
          evaluated. An early error is an error that can be detected and reported prior to the evaluation of
          any construct in the Program containing the error. An implementation must report early errors in a
          Program prior to the first evaluation of that Program. Early errors in eval code are reported at
          the time eval is called but prior to evaluation of any construct within the eval code. All errors
          that are not early errors are runtime errors.
      
          An implementation must treat any instance of the following kinds of errors as an early error:
              * Any syntax error."
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
          Added new files.
      * bytecode/CodeBlock.cpp:
          Removed op_throw_syntax_error.
      * bytecode/Opcode.h:
          Removed op_throw_syntax_error.
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::generate):
          If m_expressionTooDeep then throw a runtime error.
      (JSC::BytecodeGenerator::BytecodeGenerator):
          Initialize m_expressionTooDeep.
      (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException):
          Sets m_expressionTooDeep.
      * bytecompiler/BytecodeGenerator.h:
          Added m_expressionTooDeep, removed emitThrowSyntaxError.
      * bytecompiler/NodesCodegen.cpp:
      (JSC::RegExpNode::emitBytecode):
      (JSC::ContinueNode::emitBytecode):
      (JSC::BreakNode::emitBytecode):
      (JSC::ReturnNode::emitBytecode):
      (JSC::LabelNode::emitBytecode):
          Conditions that threw syntax error are now handled during parsing;
          during bytecompilation these are now just ASSERTs.
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompileMainPass):
      * jit/JIT.h:
      * jit/JITOpcodes.cpp:
      * jit/JITOpcodes32_64.cpp:
      * jit/JITStubs.cpp:
      * jit/JITStubs.h:
          Removed op_throw_syntax_error.
      * parser/ASTBuilder.h:
      (JSC::ASTBuilder::createRegExp):
          Renamed; added syntax check.
      * parser/JSParser.cpp:
      (JSC::JSParser::breakIsValid):
      (JSC::JSParser::hasLabel):
      (JSC::JSParser::Scope::Scope):
      (JSC::JSParser::Scope::setIsFunction):
      (JSC::JSParser::Scope::isFunctionBoundary):
      (JSC::JSParser::ScopeRef::hasContainingScope):
      (JSC::JSParser::ScopeRef::containingScope):
      (JSC::JSParser::AutoPopScopeRef::AutoPopScopeRef):
      (JSC::JSParser::AutoPopScopeRef::~AutoPopScopeRef):
      (JSC::JSParser::AutoPopScopeRef::setPopped):
      (JSC::JSParser::popScopeInternal):
      (JSC::JSParser::popScope):
      (JSC::jsParse):
      (JSC::JSParser::JSParser):
      (JSC::JSParser::parseProgram):
      (JSC::JSParser::parseBreakStatement):
      (JSC::JSParser::parseContinueStatement):
      (JSC::JSParser::parseReturnStatement):
      (JSC::JSParser::parseTryStatement):
      (JSC::JSParser::parseFunctionInfo):
      (JSC::JSParser::parseExpressionOrLabelStatement):
      (JSC::JSParser::parsePrimaryExpression):
      * parser/JSParser.h:
      * parser/Nodes.h:
      * parser/Parser.cpp:
      (JSC::Parser::parse):
      * parser/SyntaxChecker.h:
      (JSC::SyntaxChecker::createRegExp):
          Renamed; added syntax check.
      * runtime/ExceptionHelpers.cpp:
      (JSC::createOutOfMemoryError):
      (JSC::throwOutOfMemoryError):
      * runtime/ExceptionHelpers.h:
          Broke out createOutOfMemoryError.
      * runtime/Executable.cpp:
      (JSC::EvalExecutable::compileInternal):
      (JSC::ProgramExecutable::compileInternal):
      (JSC::FunctionExecutable::compileForCallInternal):
      (JSC::FunctionExecutable::compileForConstructInternal):
          Add check for exception after bytecode generation.
      * runtime/RegExpConstructor.cpp:
      (JSC::constructRegExp):
      * runtime/RegExpPrototype.cpp:
      (JSC::regExpProtoFuncCompile):
          RegExp error prefixes not included in error string.
      * yarr/RegexParser.h:
      (JSC::Yarr::Parser::parse):
          Removed regexBegin/regexEnd/regexError.
      * yarr/RegexPattern.cpp:
      (JSC::Yarr::RegexPatternConstructor::regexBegin):
          Removed regexEnd/regexError.
      (JSC::Yarr::compileRegex):
          Add call to regexBegin (no longer called from the parser).
      * yarr/YarrSyntaxChecker.cpp: Added.
      (JSC::Yarr::SyntaxChecker::assertionBOL):
      (JSC::Yarr::SyntaxChecker::assertionEOL):
      (JSC::Yarr::SyntaxChecker::assertionWordBoundary):
      (JSC::Yarr::SyntaxChecker::atomPatternCharacter):
      (JSC::Yarr::SyntaxChecker::atomBuiltInCharacterClass):
      (JSC::Yarr::SyntaxChecker::atomCharacterClassBegin):
      (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom):
      (JSC::Yarr::SyntaxChecker::atomCharacterClassRange):
      (JSC::Yarr::SyntaxChecker::atomCharacterClassBuiltIn):
      (JSC::Yarr::SyntaxChecker::atomCharacterClassEnd):
      (JSC::Yarr::SyntaxChecker::atomParenthesesSubpatternBegin):
      (JSC::Yarr::SyntaxChecker::atomParentheticalAssertionBegin):
      (JSC::Yarr::SyntaxChecker::atomParenthesesEnd):
      (JSC::Yarr::SyntaxChecker::atomBackReference):
      (JSC::Yarr::SyntaxChecker::quantifyAtom):
      (JSC::Yarr::SyntaxChecker::disjunction):
      (JSC::Yarr::checkSyntax):
      * yarr/YarrSyntaxChecker.h: Added.
          Check RegExp syntax.
      
      LayoutTests: 
      
      Fix syntax errors in layout tests, and update expected results.
      
      * editing/selection/select-crash-001.html:
      * editing/selection/select-crash-002.html:
      * fast/canvas/webgl/renderbuffer-initialization.html:
      * fast/forms/25153.html:
      * fast/forms/textfield-drag-into-disabled.html:
      * fast/js/exception-codegen-crash-expected.txt:
      * fast/js/exception-codegen-crash.html:
      * fast/js/kde/parse-expected.txt:
      * fast/js/kde/script-tests/parse.js:
      * fast/js/large-expressions-expected.txt:
      * fast/js/named-function-expression-expected.txt:
      * fast/js/parser-syntax-check-expected.txt:
      * fast/js/script-tests/large-expressions.js:
      * fast/js/script-tests/named-function-expression.js:
      * fast/js/script-tests/parser-syntax-check.js:
      * fast/js/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11.1_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A11_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12.1_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.3_The_for_Statement/S12.6.3_A12_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A1_T4-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A5_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A6-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.7_The_continue_Statement/S12.7_A8_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A1_T4-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A5_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A6-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.8_The_break_Statement/S12.8_A8_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T1-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T10-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T2-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T3-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T4-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T5-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T6-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T7-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T8-expected.txt:
      * fast/js/sputnik/Conformance/12_Statement/12.9_The_return_Statement/S12.9_A1_T9-expected.txt:
      * http/tests/security/isolatedWorld/events.html:
      * http/tests/security/isolatedWorld/userGestureEvents.html:
      * svg/custom/resources/use-instanceRoot-event-listeners.js:
      * svg/custom/rgbcolor-syntax.svg:
      * svg/custom/use-instanceRoot-modifications.svg:
      * svg/custom/use-property-changes-through-svg-dom.svg:
      * webarchive/adopt-attribute-styled-body-webarchive-expected.webarchive:
      * webarchive/resources/adopt-attribute-styled-body-iframe.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e6bd6d6
  14. 08 Jan, 2011 1 commit
  15. 09 Sep, 2009 1 commit
  16. 07 Apr, 2009 1 commit
  17. 30 Oct, 2008 1 commit
  18. 11 Aug, 2008 1 commit
  19. 21 May, 2008 1 commit
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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