1. 11 Sep, 2011 4 commits
    • oliver@apple.com's avatar
      Remove support for anonymous storage from jsobjects · 8c798d2c
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67881
      
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore:
      
      Remove all use of anonymous slots, essentially a mechanical change
      in JavaScriptCore
      
      * API/JSCallbackConstructor.h:
      (JSC::JSCallbackConstructor::createStructure):
      * API/JSCallbackFunction.h:
      (JSC::JSCallbackFunction::createStructure):
      * API/JSCallbackObject.h:
      (JSC::JSCallbackObject::createStructure):
      * JavaScriptCore.exp:
      * debugger/DebuggerActivation.h:
      (JSC::DebuggerActivation::createStructure):
      * heap/MarkStack.cpp:
      (JSC::MarkStack::validateValue):
      * heap/MarkStack.h:
      * runtime/Arguments.h:
      (JSC::Arguments::createStructure):
      * runtime/ArrayConstructor.h:
      (JSC::ArrayConstructor::createStructure):
      * runtime/ArrayPrototype.cpp:
      (JSC::ArrayPrototype::finishCreation):
      * runtime/ArrayPrototype.h:
      (JSC::ArrayPrototype::createStructure):
      * runtime/BooleanObject.h:
      (JSC::BooleanObject::createStructure):
      * runtime/BooleanPrototype.cpp:
      (JSC::BooleanPrototype::BooleanPrototype):
      * runtime/BooleanPrototype.h:
      (JSC::BooleanPrototype::createStructure):
      * runtime/DateConstructor.h:
      (JSC::DateConstructor::createStructure):
      * runtime/DateInstance.h:
      (JSC::DateInstance::createStructure):
      * runtime/DatePrototype.cpp:
      (JSC::DatePrototype::DatePrototype):
      * runtime/DatePrototype.h:
      (JSC::DatePrototype::createStructure):
      * runtime/ErrorInstance.h:
      (JSC::ErrorInstance::createStructure):
      * runtime/ErrorPrototype.cpp:
      (JSC::ErrorPrototype::finishCreation):
      * runtime/ErrorPrototype.h:
      (JSC::ErrorPrototype::createStructure):
      * runtime/ExceptionHelpers.h:
      (JSC::InterruptedExecutionError::createStructure):
      (JSC::TerminatedExecutionError::createStructure):
      * runtime/Executable.h:
      (JSC::ExecutableBase::createStructure):
      (JSC::NativeExecutable::createStructure):
      (JSC::EvalExecutable::createStructure):
      (JSC::ProgramExecutable::createStructure):
      (JSC::FunctionExecutable::createStructure):
      * runtime/FunctionPrototype.h:
      (JSC::FunctionPrototype::createStructure):
      * runtime/GetterSetter.h:
      (JSC::GetterSetter::createStructure):
      * runtime/InternalFunction.h:
      (JSC::InternalFunction::createStructure):
      * runtime/JSAPIValueWrapper.h:
      (JSC::JSAPIValueWrapper::createStructure):
      * runtime/JSActivation.h:
      (JSC::JSActivation::createStructure):
      * runtime/JSArray.h:
      (JSC::JSArray::createStructure):
      * runtime/JSByteArray.cpp:
      (JSC::JSByteArray::createStructure):
      * runtime/JSCell.h:
      * runtime/JSFunction.h:
      (JSC::JSFunction::createStructure):
      * runtime/JSGlobalObject.h:
      (JSC::JSGlobalObject::finishCreation):
      (JSC::JSGlobalObject::createStructure):
      * runtime/JSNotAnObject.h:
      (JSC::JSNotAnObject::createStructure):
      * runtime/JSONObject.h:
      (JSC::JSONObject::createStructure):
      * runtime/JSObject.h:
      (JSC::JSObject::createStructure):
      (JSC::JSNonFinalObject::createStructure):
      (JSC::JSFinalObject::createStructure):
      * runtime/JSPropertyNameIterator.cpp:
      (JSC::JSPropertyNameIterator::create):
      * runtime/JSPropertyNameIterator.h:
      (JSC::JSPropertyNameIterator::createStructure):
      * runtime/JSStaticScopeObject.h:
      (JSC::JSStaticScopeObject::createStructure):
      * runtime/JSString.h:
      (JSC::RopeBuilder::createStructure):
      * runtime/JSVariableObject.h:
      (JSC::JSVariableObject::createStructure):
      * runtime/JSWrapperObject.h:
      (JSC::JSWrapperObject::createStructure):
      * runtime/MathObject.h:
      (JSC::MathObject::createStructure):
      * runtime/NativeErrorConstructor.h:
      (JSC::NativeErrorConstructor::createStructure):
      * runtime/NumberConstructor.h:
      (JSC::NumberConstructor::createStructure):
      * runtime/NumberObject.h:
      (JSC::NumberObject::createStructure):
      * runtime/NumberPrototype.cpp:
      (JSC::NumberPrototype::NumberPrototype):
      * runtime/NumberPrototype.h:
      (JSC::NumberPrototype::createStructure):
      * runtime/ObjectConstructor.h:
      (JSC::ObjectConstructor::createStructure):
      * runtime/ObjectPrototype.cpp:
      (JSC::ObjectPrototype::finishCreation):
      * runtime/ObjectPrototype.h:
      (JSC::ObjectPrototype::createStructure):
      * runtime/RegExp.h:
      (JSC::RegExp::createStructure):
      * runtime/RegExpConstructor.h:
      (JSC::RegExpConstructor::createStructure):
      * runtime/RegExpObject.h:
      (JSC::RegExpObject::createStructure):
      * runtime/RegExpPrototype.h:
      (JSC::RegExpPrototype::createStructure):
      * runtime/ScopeChain.h:
      (JSC::ScopeChainNode::createStructure):
      * runtime/StrictEvalActivation.h:
      (JSC::StrictEvalActivation::createStructure):
      * runtime/StringConstructor.h:
      (JSC::StringConstructor::createStructure):
      * runtime/StringObject.h:
      (JSC::StringObject::createStructure):
      * runtime/StringObjectThatMasqueradesAsUndefined.h:
      (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
      * runtime/StringPrototype.cpp:
      (JSC::StringPrototype::StringPrototype):
      * runtime/StringPrototype.h:
      (JSC::StringPrototype::createStructure):
      * runtime/Structure.cpp:
      (JSC::Structure::Structure):
      (JSC::Structure::materializePropertyMap):
      (JSC::Structure::addPropertyTransitionToExistingStructure):
      (JSC::Structure::addPropertyTransition):
      (JSC::Structure::removePropertyTransition):
      (JSC::Structure::changePrototypeTransition):
      (JSC::Structure::despecifyFunctionTransition):
      (JSC::Structure::getterSetterTransition):
      (JSC::Structure::toDictionaryTransition):
      (JSC::Structure::preventExtensionsTransition):
      (JSC::Structure::flattenDictionaryStructure):
      (JSC::Structure::addPropertyWithoutTransition):
      (JSC::Structure::removePropertyWithoutTransition):
      (JSC::Structure::get):
      (JSC::Structure::putSpecificValue):
      (JSC::Structure::remove):
      (JSC::Structure::checkConsistency):
      * runtime/Structure.h:
      (JSC::Structure::create):
      (JSC::Structure::propertyStorageSize):
      (JSC::Structure::get):
      * runtime/StructureChain.h:
      (JSC::StructureChain::createStructure):
      
      Source/JavaScriptGlue:
      
      Don't need an anonymous slot count anymore
      
      * UserObjectImp.h:
      (UserObjectImp::createStructure):
      
      Source/WebCore:
      
      Remove all use of anonymous slots, this required modifying
      bindings generation to add member variables for cached attributes,
      and override visitChildren with the necessary logic to mark those
      new members.
      
      I added bindings generation tests for these values.
      
      * bindings/js/JSAudioConstructor.h:
      (WebCore::JSAudioConstructor::createStructure):
      * bindings/js/JSDOMBinding.h:
      (WebCore::DOMConstructorObject::createStructure):
      * bindings/js/JSDOMGlobalObject.h:
      (WebCore::JSDOMGlobalObject::createStructure):
      * bindings/js/JSDOMWindowBase.h:
      (WebCore::JSDOMWindowBase::createStructure):
      * bindings/js/JSDOMWindowShell.h:
      (WebCore::JSDOMWindowShell::createStructure):
      * bindings/js/JSDOMWrapper.h:
      (WebCore::JSDOMWrapper::createStructure):
      * bindings/js/JSImageConstructor.h:
      (WebCore::JSImageConstructor::createStructure):
      * bindings/js/JSMessageEventCustom.cpp:
      (WebCore::JSMessageEvent::data):
      (WebCore::JSMessageEvent::initMessageEvent):
      * bindings/js/JSOptionConstructor.h:
      (WebCore::JSOptionConstructor::createStructure):
      * bindings/js/JSWorkerContextBase.h:
      (WebCore::JSWorkerContextBase::createStructure):
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateHeader):
      (GenerateImplementation):
      (GenerateConstructorDeclaration):
      * bindings/scripts/test/JS/JSTestInterface.cpp:
      (WebCore::JSTestInterfaceConstructor::createStructure):
      * bindings/scripts/test/JS/JSTestInterface.h:
      (WebCore::JSTestInterface::createStructure):
      (WebCore::JSTestInterfacePrototype::createStructure):
      * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
      (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
      * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
      (WebCore::JSTestMediaQueryListListener::createStructure):
      (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
      * bindings/scripts/test/JS/JSTestObj.cpp:
      (WebCore::JSTestObjConstructor::createStructure):
      (WebCore::jsTestObjCachedAttribute1):
      (WebCore::jsTestObjCachedAttribute2):
      (WebCore::JSTestObj::visitChildren):
      * bindings/scripts/test/JS/JSTestObj.h:
      (WebCore::JSTestObj::createStructure):
      (WebCore::JSTestObjPrototype::createStructure):
      * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
      (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
      * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
      (WebCore::JSTestSerializedScriptValueInterface::createStructure):
      (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
      * bindings/scripts/test/TestObj.idl:
      * bindings/scripts/test/V8/V8TestObj.cpp:
      (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
      (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
      * bridge/c/CRuntimeObject.h:
      (JSC::Bindings::CRuntimeObject::createStructure):
      * bridge/c/c_instance.cpp:
      (JSC::Bindings::CRuntimeMethod::createStructure):
      * bridge/jni/jsc/JavaInstanceJSC.cpp:
      (JavaRuntimeMethod::createStructure):
      * bridge/jni/jsc/JavaRuntimeObject.h:
      (JSC::Bindings::JavaRuntimeObject::createStructure):
      * bridge/objc/ObjCRuntimeObject.h:
      (JSC::Bindings::ObjCRuntimeObject::createStructure):
      * bridge/objc/objc_instance.mm:
      (ObjCRuntimeMethod::createStructure):
      * bridge/objc/objc_runtime.h:
      (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
      * bridge/runtime_array.h:
      (JSC::RuntimeArray::createStructure):
      * bridge/runtime_method.h:
      (JSC::RuntimeMethod::createStructure):
      * bridge/runtime_object.h:
      (JSC::Bindings::RuntimeObject::createStructure):
      
      Source/WebKit/mac:
      
      Remove the use of AnonymousSlotCount
      
      * Plugins/Hosted/ProxyInstance.mm:
      (WebKit::ProxyRuntimeMethod::createStructure):
      * Plugins/Hosted/ProxyRuntimeObject.h:
      (WebKit::ProxyRuntimeObject::createStructure):
      
      Source/WebKit2:
      
      Remove the use of AnonymousSlotCount.
      
      * WebProcess/Plugins/Netscape/JSNPMethod.h:
      (WebKit::JSNPMethod::createStructure):
      * WebProcess/Plugins/Netscape/JSNPObject.h:
      (WebKit::JSNPObject::createStructure):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c798d2c
    • mitz@apple.com's avatar
      Removed the svn:executable property from some source files · 94748b80
      mitz@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      94748b80
    • ossy@webkit.org's avatar
      [Qt] Win32 build broken due to MachineStackMarker.cpp/.o failing to link against pthreads library · f61e4c55
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67864
      
      Qt Win32 is not pthread compatible and cannot participate in multithreaded JSC or it fails to build.
      
      Patch by Jarred Nicholls <jarred@sencha.com> on 2011-09-11
      Reviewed by Csaba Osztrogonác.
      
      * wtf/Platform.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94927 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f61e4c55
    • ossy@webkit.org's avatar
      ARM and MIPS assemblers still refer to executable pools. · 0b64d84e
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67903
      
      Patch by Filip Pizlo <fpizlo@apple.com> on 2011-09-11
      Reviewed by Csaba Osztrogonác.
      
      * assembler/ARMAssembler.cpp:
      (JSC::ARMAssembler::executableCopy):
      * assembler/ARMAssembler.h:
      * assembler/AssemblerBufferWithConstantPool.h:
      * assembler/MIPSAssembler.h:
      (JSC::MIPSAssembler::executableCopy):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b64d84e
  2. 10 Sep, 2011 15 commits
    • fpizlo@apple.com's avatar
      The executable allocator makes it difficult to free individual · e6a7f5fb
      fpizlo@apple.com authored
      chunks of executable memory
      https://bugs.webkit.org/show_bug.cgi?id=66363
      
      Reviewed by Oliver Hunt.
              
      Introduced a best-fit, balanced-tree based allocator. The allocator
      required a balanced tree that does not allocate memory and that
      permits the removal of individual nodes directly (as opposed to by
      key); neither AVLTree nor WebCore's PODRedBlackTree supported this.
      Changed all references to executable code to use a reference counted
      handle.
      
      Source/JavaScriptCore: 
      
      * GNUmakefile.list.am:
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/WTF/WTF.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * assembler/AssemblerBuffer.h:
      (JSC::AssemblerBuffer::executableCopy):
      * assembler/LinkBuffer.h:
      (JSC::LinkBuffer::LinkBuffer):
      (JSC::LinkBuffer::finalizeCode):
      (JSC::LinkBuffer::linkCode):
      * assembler/MacroAssemblerCodeRef.h:
      (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
      (JSC::MacroAssemblerCodeRef::createSelfManagedCodeRef):
      (JSC::MacroAssemblerCodeRef::executableMemory):
      (JSC::MacroAssemblerCodeRef::code):
      (JSC::MacroAssemblerCodeRef::size):
      (JSC::MacroAssemblerCodeRef::operator!):
      * assembler/X86Assembler.h:
      (JSC::X86Assembler::executableCopy):
      (JSC::X86Assembler::X86InstructionFormatter::executableCopy):
      * bytecode/CodeBlock.h:
      * bytecode/Instruction.h:
      * bytecode/StructureStubInfo.h:
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::compile):
      (JSC::DFG::JITCompiler::compileFunction):
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::generateProtoChainAccessStub):
      (JSC::DFG::tryCacheGetByID):
      (JSC::DFG::tryBuildGetByIDList):
      (JSC::DFG::tryBuildGetByIDProtoList):
      (JSC::DFG::tryCachePutByID):
      * jit/ExecutableAllocator.cpp:
      (JSC::ExecutableAllocator::initializeAllocator):
      (JSC::ExecutableAllocator::ExecutableAllocator):
      (JSC::ExecutableAllocator::allocate):
      (JSC::ExecutableAllocator::committedByteCount):
      (JSC::ExecutableAllocator::dumpProfile):
      * jit/ExecutableAllocator.h:
      (JSC::ExecutableAllocator::dumpProfile):
      * jit/ExecutableAllocatorFixedVMPool.cpp:
      (JSC::ExecutableAllocator::initializeAllocator):
      (JSC::ExecutableAllocator::ExecutableAllocator):
      (JSC::ExecutableAllocator::isValid):
      (JSC::ExecutableAllocator::underMemoryPressure):
      (JSC::ExecutableAllocator::allocate):
      (JSC::ExecutableAllocator::committedByteCount):
      (JSC::ExecutableAllocator::dumpProfile):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::JIT::compileCTIMachineTrampolines):
      (JSC::JIT::compileCTINativeCall):
      * jit/JITCode.h:
      (JSC::JITCode::operator !):
      (JSC::JITCode::addressForCall):
      (JSC::JITCode::offsetOf):
      (JSC::JITCode::execute):
      (JSC::JITCode::start):
      (JSC::JITCode::size):
      (JSC::JITCode::getExecutableMemory):
      (JSC::JITCode::HostFunction):
      (JSC::JITCode::JITCode):
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      (JSC::JIT::privateCompileCTINativeCall):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      (JSC::JIT::privateCompileCTINativeCall):
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::stringGetByValStubGenerator):
      (JSC::JIT::emitSlow_op_get_by_val):
      (JSC::JIT::privateCompilePutByIdTransition):
      (JSC::JIT::privateCompilePatchGetArrayLength):
      (JSC::JIT::privateCompileGetByIdProto):
      (JSC::JIT::privateCompileGetByIdSelfList):
      (JSC::JIT::privateCompileGetByIdProtoList):
      (JSC::JIT::privateCompileGetByIdChainList):
      (JSC::JIT::privateCompileGetByIdChain):
      * jit/JITPropertyAccess32_64.cpp:
      (JSC::JIT::stringGetByValStubGenerator):
      (JSC::JIT::emitSlow_op_get_by_val):
      (JSC::JIT::privateCompilePutByIdTransition):
      (JSC::JIT::privateCompilePatchGetArrayLength):
      (JSC::JIT::privateCompileGetByIdProto):
      (JSC::JIT::privateCompileGetByIdSelfList):
      (JSC::JIT::privateCompileGetByIdProtoList):
      (JSC::JIT::privateCompileGetByIdChainList):
      (JSC::JIT::privateCompileGetByIdChain):
      * jit/JITStubs.cpp:
      (JSC::JITThunks::JITThunks):
      (JSC::DEFINE_STUB_FUNCTION):
      (JSC::getPolymorphicAccessStructureListSlot):
      (JSC::JITThunks::ctiStub):
      (JSC::JITThunks::hostFunctionStub):
      * jit/JITStubs.h:
      * jit/SpecializedThunkJIT.h:
      (JSC::SpecializedThunkJIT::SpecializedThunkJIT):
      (JSC::SpecializedThunkJIT::finalize):
      * jit/ThunkGenerators.cpp:
      (JSC::charCodeAtThunkGenerator):
      (JSC::charAtThunkGenerator):
      (JSC::fromCharCodeThunkGenerator):
      (JSC::sqrtThunkGenerator):
      (JSC::floorThunkGenerator):
      (JSC::ceilThunkGenerator):
      (JSC::roundThunkGenerator):
      (JSC::expThunkGenerator):
      (JSC::logThunkGenerator):
      (JSC::absThunkGenerator):
      (JSC::powThunkGenerator):
      * jit/ThunkGenerators.h:
      * runtime/Executable.h:
      (JSC::NativeExecutable::create):
      * runtime/InitializeThreading.cpp:
      (JSC::initializeThreadingOnce):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::dumpSampleData):
      * runtime/JSGlobalData.h:
      (JSC::JSGlobalData::getCTIStub):
      * wtf/CMakeLists.txt:
      * wtf/MetaAllocator.cpp: Added.
      (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
      (WTF::MetaAllocatorHandle::~MetaAllocatorHandle):
      (WTF::MetaAllocatorHandle::shrink):
      (WTF::MetaAllocator::MetaAllocator):
      (WTF::MetaAllocator::allocate):
      (WTF::MetaAllocator::currentStatistics):
      (WTF::MetaAllocator::findAndRemoveFreeSpace):
      (WTF::MetaAllocator::addFreeSpaceFromReleasedHandle):
      (WTF::MetaAllocator::addFreshFreeSpace):
      (WTF::MetaAllocator::debugFreeSpaceSize):
      (WTF::MetaAllocator::addFreeSpace):
      (WTF::MetaAllocator::incrementPageOccupancy):
      (WTF::MetaAllocator::decrementPageOccupancy):
      (WTF::MetaAllocator::roundUp):
      (WTF::MetaAllocator::allocFreeSpaceNode):
      (WTF::MetaAllocator::freeFreeSpaceNode):
      (WTF::MetaAllocator::dumpProfile):
      * wtf/MetaAllocator.h: Added.
      (WTF::MetaAllocator::bytesAllocated):
      (WTF::MetaAllocator::bytesReserved):
      (WTF::MetaAllocator::bytesCommitted):
      (WTF::MetaAllocator::dumpProfile):
      (WTF::MetaAllocator::~MetaAllocator):
      * wtf/MetaAllocatorHandle.h: Added.
      * wtf/RedBlackTree.h: Added.
      (WTF::RedBlackTree::Node::Node):
      (WTF::RedBlackTree::Node::successor):
      (WTF::RedBlackTree::Node::predecessor):
      (WTF::RedBlackTree::Node::reset):
      (WTF::RedBlackTree::Node::parent):
      (WTF::RedBlackTree::Node::setParent):
      (WTF::RedBlackTree::Node::left):
      (WTF::RedBlackTree::Node::setLeft):
      (WTF::RedBlackTree::Node::right):
      (WTF::RedBlackTree::Node::setRight):
      (WTF::RedBlackTree::Node::color):
      (WTF::RedBlackTree::Node::setColor):
      (WTF::RedBlackTree::RedBlackTree):
      (WTF::RedBlackTree::insert):
      (WTF::RedBlackTree::remove):
      (WTF::RedBlackTree::findExact):
      (WTF::RedBlackTree::findLeastGreaterThanOrEqual):
      (WTF::RedBlackTree::findGreatestLessThanOrEqual):
      (WTF::RedBlackTree::first):
      (WTF::RedBlackTree::last):
      (WTF::RedBlackTree::size):
      (WTF::RedBlackTree::isEmpty):
      (WTF::RedBlackTree::treeMinimum):
      (WTF::RedBlackTree::treeMaximum):
      (WTF::RedBlackTree::treeInsert):
      (WTF::RedBlackTree::leftRotate):
      (WTF::RedBlackTree::rightRotate):
      (WTF::RedBlackTree::removeFixup):
      * wtf/wtf.pri:
      * yarr/YarrJIT.cpp:
      (JSC::Yarr::YarrGenerator::compile):
      * yarr/YarrJIT.h:
      (JSC::Yarr::YarrCodeBlock::execute):
      (JSC::Yarr::YarrCodeBlock::getAddr):
      
      Source/JavaScriptGlue: 
      
      * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Added.
      
      Source/WebCore: 
      
      No new layout tests because behavior is not changed.  New API unit
      tests:
      Tests/WTF/RedBlackTree.cpp
      Tests/WTF/MetaAllocator.cpp
      
      * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Added.
      
      Tools: 
      
      * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
      * TestWebKitAPI/Tests/WTF/MetaAllocator.cpp: Added.
      (TestWebKitAPI::TEST_F):
      * TestWebKitAPI/Tests/WTF/RedBlackTree.cpp: Added.
      (TestWebKitAPI::Pair::findExact):
      (TestWebKitAPI::Pair::remove):
      (TestWebKitAPI::Pair::findLeastGreaterThanOrEqual):
      (TestWebKitAPI::Pair::assertFoundAndRemove):
      (TestWebKitAPI::Pair::assertEqual):
      (TestWebKitAPI::Pair::assertSameValuesForKey):
      (TestWebKitAPI::Pair::testDriver):
      (TestWebKitAPI::TEST_F):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6a7f5fb
    • weinig@apple.com's avatar
      Remove JSC::isZombie() function, it did nothing and was called by no-one. · 2cdc5a2d
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67901
      
      Reviewed by Andy Estes.
      
      * JavaScriptCore.exp:
      * runtime/JSCell.cpp:
      * runtime/JSValue.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2cdc5a2d
    • weinig@apple.com's avatar
      Add isInterruptedExecutionException and isTerminatedExecutionException predicates · 76c11465
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67892
      
      Reviewed by Andy "First Time Reviewer" Estes.
      
      ../JavaScriptCore: 
      
      * JavaScriptCore.exp:
      Add symbols.
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::throwException):
      Use new predicates.
      
      * runtime/ExceptionHelpers.cpp:
      (JSC::createInterruptedExecutionException):
      (JSC::isInterruptedExecutionException):
      (JSC::createTerminatedExecutionException):
      (JSC::isTerminatedExecutionException):
      * runtime/ExceptionHelpers.h:
      (JSC::InterruptedExecutionError::InterruptedExecutionError):
      Add predicates.
      
      ../WebCore: 
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::reportException):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent):
      * bindings/js/WorkerScriptController.cpp:
      (WebCore::WorkerScriptController::evaluate):
      Use the new predicates instead of probing the ClassInfo directly.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76c11465
    • kevino@webkit.org's avatar
      [wx] Unreviewed build fix. MSW build fixes. · 2f661a04
      kevino@webkit.org authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2f661a04
    • fpizlo@apple.com's avatar
      DFG JIT completely undoes speculative compilation even in the case of · 63ced6ae
      fpizlo@apple.com authored
      a partial static speculation failure
      https://bugs.webkit.org/show_bug.cgi?id=67798
      
      Reviewed by Geoffrey Garen.
      
      This is a regression with static speculation, so it is turned off by
      default.  But it is a necessary prerequisite for further work on
      dynamic speculation.
      
      * dfg/DFGJITCodeGenerator.cpp:
      (JSC::DFG::JITCodeGenerator::clearGenerationInfo):
      * dfg/DFGJITCodeGenerator.h:
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94914 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63ced6ae
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=67861 · 00b988ce
      hyatt@apple.com authored
              
      Implement border-image-outset (and the mask equivalents).
      
      Reviewed by Beth Dakin.
      
      Source/WebCore: 
      
      Added new tests in fast/borders and fast/reflections.
      
      * css/CSSBorderImageValue.cpp:
      (WebCore::CSSBorderImageValue::CSSBorderImageValue):
      (WebCore::CSSBorderImageValue::cssText):
      * css/CSSBorderImageValue.h:
      (WebCore::CSSBorderImageValue::create):
      Add m_outset field to CSSBorderImageValue and teach it how to dump the field as
      part of cssText().
      
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore::valueForNinePieceImageQuad):
      (WebCore::valueForNinePieceImage):
      (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
      Add support for border-image-outset and -webkit-mask-box-image-outset. Refactor
      the code so that border-image-width and border-image-outset use a common
      function.
      
      * css/CSSParser.cpp:
      (WebCore::CSSParser::parseValue):
      (WebCore::BorderImageParseContext::BorderImageParseContext):
      (WebCore::BorderImageParseContext::allowOutset):
      (WebCore::BorderImageParseContext::commitSlash):
      (WebCore::BorderImageParseContext::commitBorderWidth):
      (WebCore::BorderImageParseContext::commitBorderOutset):
      (WebCore::BorderImageParseContext::commitRepeat):
      (WebCore::BorderImageParseContext::commitBorderImage):
      (WebCore::CSSParser::parseBorderImage):
      Teach the border image parsing code about outsets. This code will soon be
      replaced by true shorthand parsing code, but for now keep it working and add
      outset support to it.
      
      (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
      (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
      (WebCore::CSSParser::parseBorderImageQuad):
      (WebCore::CSSParser::parseBorderImageWidth):
      (WebCore::CSSParser::parseBorderImageOutset):
      * css/CSSParser.h:
      Refactor the border-image-width code so that it can be shared by border-image-outset, since
      they are extremely similar.
      
      * css/CSSPropertyNames.in:
      Add the new properties.
      
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::applyProperty):
      (WebCore::CSSStyleSelector::mapNinePieceImage):
      (WebCore::CSSStyleSelector::mapNinePieceImageQuad):
      (WebCore::CSSStyleSelector::loadPendingImages):
      * css/CSSStyleSelector.h:
      Refactor the code so that width/outset share common mapping functions. Add support for outset.
      
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::addToLine):
      (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
      (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
      (WebCore::InlineFlowBox::computeOverflow):
      Add new functions for computing the visual overflow caused by border outsets. Fix bugs in
      the shadow overflow code as well.
      
      (WebCore::clipRectForNinePieceImageStrip):
      (WebCore::InlineFlowBox::paintBoxDecorations):
      (WebCore::InlineFlowBox::paintMask):
      * rendering/InlineFlowBox.h:
      Make sure the clip rect pushed when painting one piece of a split inline strip is expanded to
      include the border and mask outsets. Always include the block direction expansion, and conditionally
      include the inline direction expansion based off includeLogicalLeftEdge()/includeLogicalRightEdge().
      clipRectForNinePieceImageStrip is a common function shared by masks and border images that does this
      work.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::computeOverflow):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::maskClipRect):
      (WebCore::RenderBox::addBoxShadowAndBorderOverflow):
      * rendering/RenderBox.h:
      Rename addShadowOverflow to addBoxShadowAndBorderOverflow. Have it compute both shadow and border image
      outset overflow. Fix bugs with shadow overflow computation.
      
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::paintNinePieceImage):
      Change painting to apply the outsets to inflate the border image drawing area.
      
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::layout):
      * rendering/RenderIFrame.cpp:
      (WebCore::RenderIFrame::layout):
      Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
      
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::calculateRects):
      Patched to no longer apply box-shadow to overflow clip areas when inflating the intersection area for the
      layer bounds. Instead we generically apply all visual overflow so that border image outsets will also be
      included. This fixes https://bugs.webkit.org/show_bug.cgi?id=37467.
      
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::layout):
      Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
      
      * rendering/style/NinePieceImage.cpp:
      (WebCore::NinePieceImage::operator==):
      * rendering/style/NinePieceImage.h:
      (WebCore::NinePieceImage::NinePieceImage):
      (WebCore::NinePieceImage::outset):
      (WebCore::NinePieceImage::setOutset):
      (WebCore::NinePieceImage::computeOutset):
      (WebCore::NinePieceImage::copyOutsetFrom):
      Add the outset field to NinePieceImage along with some helpers for manipulating outsets.
      
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::getImageOutsets):
      (WebCore::RenderStyle::getImageHorizontalOutsets):
      (WebCore::RenderStyle::getImageVerticalOutsets):
      * rendering/style/RenderStyle.h:
      (WebCore::InheritedFlags::hasBorderImageOutsets):
      (WebCore::InheritedFlags::getBorderImageOutsets):
      (WebCore::InheritedFlags::getBorderImageHorizontalOutsets):
      (WebCore::InheritedFlags::getBorderImageVerticalOutsets):
      (WebCore::InheritedFlags::getBorderImageInlineDirectionOutsets):
      (WebCore::InheritedFlags::getBorderImageBlockDirectionOutsets):
      (WebCore::InheritedFlags::getImageInlineDirectionOutsets):
      (WebCore::InheritedFlags::getImageBlockDirectionOutsets):
      Helpers for outset computation used by painting and overflow functions.
      
      LayoutTests: 
      
      * fast/borders/block-mask-overlay-image-outset.html: Added.
      * fast/borders/block-mask-overlay-image.html~: Added.
      * fast/borders/border-image-outset-in-shorthand.html: Added.
      * fast/borders/border-image-outset-split-inline-vertical-lr.html: Added.
      * fast/borders/border-image-outset-split-inline.html: Added.
      * fast/borders/border-image-outset.html: Added.
      * fast/borders/inline-mask-overlay-image-outset-vertical-rl.html: Added.
      * fast/borders/inline-mask-overlay-image-outset.html: Added.
      * fast/css/getComputedStyle/computed-style-expected.txt:
      * fast/css/getComputedStyle/computed-style-with-zoom-expected.txt:
      * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
      * fast/css/getComputedStyle/getComputedStyle-border-image-expected.txt:
      * fast/reflections/reflection-computed-style-expected.txt:
      * fast/reflections/reflection-masks-outset.html: Added.
      * platform/mac/fast/borders/block-mask-overlay-image-outset-expected.png: Added.
      * platform/mac/fast/borders/block-mask-overlay-image-outset-expected.txt: Added.
      * platform/mac/fast/borders/border-image-outset-expected.png: Added.
      * platform/mac/fast/borders/border-image-outset-expected.txt: Added.
      * platform/mac/fast/borders/border-image-outset-in-shorthand-expected.png: Added.
      * platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt: Added.
      * platform/mac/fast/borders/border-image-outset-split-inline-expected.png: Added.
      * platform/mac/fast/borders/border-image-outset-split-inline-expected.txt: Added.
      * platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.png: Added.
      * platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt: Added.
      * platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.png: Added.
      * platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.txt: Added.
      * platform/mac/fast/borders/inline-mask-overlay-image-outset-vertical-rl-expected.png: Added.
      * platform/mac/fast/borders/inline-mask-overlay-image-outset-vertical-rl-expected.txt: Added.
      * platform/mac/fast/reflections/reflection-masks-outset-expected.png: Added.
      * platform/mac/fast/reflections/reflection-masks-outset-expected.txt: Added.
      * svg/css/getComputedStyle-basic-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94912 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      00b988ce
    • mitz@apple.com's avatar
      Actually prevent unnecessary casts to MediaControls*. · e104c05f
      mitz@apple.com authored
      Reviewed by Oliver Hunt.
      
      * html/shadow/MediaControls.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94911 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e104c05f
    • rniwa@webkit.org's avatar
      Remove printf added by r94900. · 54fbcaf0
      rniwa@webkit.org authored
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::drawPlatformResizerImage):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      54fbcaf0
    • cmarrin@apple.com's avatar
      requestAnimationFrame doesn't throttle on Mac · d9dca741
      cmarrin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67171
      
      Reviewed by Simon Fraser.
      
      Source/JavaScriptCore:
      
      Added WTF_USE_REQUEST_ANIMATION_FRAME_TIMER to allow any platform to run
      requestAnimationFrame callbacks on a Timer defined in ScriptedAnimationController.
      Currently only enabled for PLATFORM(MAC)
      
      * wtf/Platform.h:
      
      Source/WebCore:
      
      Changed requestAnimationFrame to use a Timer in ScriptedAnimationController
      on Mac, rather than runLoopObservers. The Timer is throttled to fire no
      faster than every 15ms. It is behind a WTF_USE_REQUEST_ANIMATION_FRAME_TIMER
      flag and can be used by any implementation, but currently it is only enabled
      by PLATFORM(MAC).
      
      * dom/ScriptedAnimationController.cpp:
      (WebCore::ScriptedAnimationController::ScriptedAnimationController):
      (WebCore::ScriptedAnimationController::resume):
      (WebCore::ScriptedAnimationController::registerCallback):
      (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
      (WebCore::ScriptedAnimationController::scheduleAnimation):
      (WebCore::ScriptedAnimationController::animationTimerFired):
      * dom/ScriptedAnimationController.h:
      * loader/EmptyClients.h:
      * page/Chrome.cpp:
      (WebCore::Chrome::scheduleAnimation):
      * page/ChromeClient.h:
      
      Source/WebKit/mac:
      
      Removed runLoopObserver for requestAnimationFrame. It's now
      done by a Timer in ScriptedAnimationController in WebCore.
      
      * WebCoreSupport/WebChromeClient.h:
      * WebCoreSupport/WebChromeClient.mm:
      * WebView/WebView.mm:
      (-[WebView _close]):
      * WebView/WebViewData.h:
      * WebView/WebViewInternal.h:
      
      Source/WebKit2:
      
      Removed runLoopObserver for requestAnimationFrame. It's now
      done by a Timer in ScriptedAnimationController in WebCore.
      
      * WebProcess/WebCoreSupport/WebChromeClient.cpp:
      * WebProcess/WebCoreSupport/WebChromeClient.h:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::~WebPage):
      * WebProcess/WebPage/WebPage.h:
      * WebProcess/WebPage/mac/WebPageMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d9dca741
    • commit-queue@webkit.org's avatar
      Source/WebCore: [Qt] QWebSettings::setUserStyleSheetUrl() does not work with... · 6ccd2782
      commit-queue@webkit.org authored
      Source/WebCore: [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
      https://bugs.webkit.org/show_bug.cgi?id=34884
      
      KURL::path() alone does not handle removing the leading slash from a windows file path.
      Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
      
      Patch by Jarred Nicholls <jarred@sencha.com> on 2011-09-10
      Reviewed by Andreas Kling.
      
      * platform/qt/KURLQt.cpp:
      (WebCore::KURL::fileSystemPath):
      
      Source/WebKit/qt: [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
      https://bugs.webkit.org/show_bug.cgi?id=34884
      
      KURL::path() alone does not handle removing the leading slash from a windows file path.
      Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
      
      New test case that ensures a user stylesheet from the file system will load correctly
      on all platforms.
      
      Patch by Jarred Nicholls <jarred@sencha.com> on 2011-09-10
      Reviewed by Andreas Kling.
      
      * tests/qwebpage/resources/user.css: Added.
      (p):
      * tests/qwebpage/tst_qwebpage.cpp:
      (tst_QWebPage::userStyleSheetFromFile):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6ccd2782
    • commit-queue@webkit.org's avatar
      Source/WebCore: Crash due to bad data in SVGDocumentExtensions m_pendingResources · bfd3b665
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67488
      
      Patch by Ken Buchanan <kenrb@chromium.org> on 2011-09-10
      Reviewed by Nikolas Zimmermann.
      
      Resolving a crash condition caused by the deletion of
      elements while pending resource entries for those elements are still
      recorded.
      
      * rendering/svg/RenderSVGResourceContainer.cpp:
      (WebCore::RenderSVGResourceContainer::registerResource)
      * svg/SVGDocumentExtensions.h:
      (WebCore::SVGDocumentExtensions::isElementInPendingResources)
      * svg/SVGDocumentExtensions.cpp:
      (WebCore::SVGDocumentExtensions::addPendingResource)
      (WebCore::SVGDocumentExtensions::isElementInPendingResources)
      (WebCore::SVGDocumentExtensions::removeElementFromPendingResources)
      * svg/SVGStyledElement.h:
      (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
      * svg/SVGStyledElement.cpp:
      (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded)
      (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
      * svg/SVGUseElement.cpp:
      (WebCore::SVGUseElement::svgAttributeChanged)
      
      LayoutTests: Crash due to bad data in SVGDocumentExtensions m_pendingResources.
      https://bugs.webkit.org/show_bug.cgi?id=67488
      
      Patch by Ken Buchanan <kenrb@chromium.org> on 2011-09-10
      Reviewed by Nikolas Zimmermann.
      
      Test added: validating that the crash referenced in the bug is not present.
      
      * svg/dom/SVGStyledElement-pendingResource-crash.html: Added.
      * svg/dom/SVGStyledElement-pendingResource-crash-expected.txt: Added.
      * svg/dom/resources/SVGStyledElement-pendingResource-crash.svg: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94905 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bfd3b665
    • abarth@webkit.org's avatar
      Fix build break. · fff716eb
      abarth@webkit.org authored
      * webkit/webkitwebview.cpp:
      (webkit_web_view_get_encoding):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94903 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fff716eb
    • abarth@webkit.org's avatar
      Remove DocumentWriter::deprecatedFrameEncoding() · 7474a735
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67882
      
      Reviewed by Eric Seidel.
      
      Three years ago, in http://trac.webkit.org/changeset/39026, Alexey
      Proskuryakov added ContentDispositionEncodingFallbackArray to work
      around a web site compatibility issue with a non-ASCII file name
      becoming garbled when received in the Content-Disposition header.
      
      Since that time, there has been copious discussion of this topic among
      browser vendors, in the IETF, and in the broader web community.  For
      example, here is a Stack Overflow thread about this topic:
      
      http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
      
      Eric Lawrence has written a blog post that summarizes IE's perspective
      on this issue:
      
      http://blogs.msdn.com/b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx
      
      The current consensus is that browsers should implement RFC 6266,
      which is a new RFC that updates the definition of the
      Content-Disposition header.  Chrome and Firefox have both implemented
      RFC 6266 and have encountered only one issue, which was then fixed by
      the web site operator.  IE has also implemented RFC 6266, but I don't
      have detailed information about their compatibility experience.
      
      This patch add explicit PLATFORM #ifdefs around the quirky
      implementation previously used in Apple's Mac and Windows ports.  This
      code is already only used on Apple's ports, so this patch introduces no
      functional changes.  It does, however, discourage other ports from
      adopting this quirk.  IMHO, Apple should remove this quirk as soon as
      compatibility allows and converge behavior with the other major browser
      vendors.
      
      See bug for manual test (the bug manifests in Safari download UI).
      
      * loader/DocumentWriter.cpp:
      * loader/DocumentWriter.h:
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::addExtraFieldsToRequest):
      * platform/network/ResourceRequestBase.cpp:
      (WebCore::ResourceRequestBase::adopt):
      (WebCore::ResourceRequestBase::copyData):
      * platform/network/ResourceRequestBase.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94902 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7474a735
    • bdakin@apple.com's avatar
      Attempted Leopard build fix. · b634e70a
      bdakin@apple.com authored
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::paintReplaced):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::drawPlatformResizerImage):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b634e70a
    • bdakin@apple.com's avatar
      Fix for https://bugs.webkit.org/show_bug.cgi?id=67819 · b49bc3da
      bdakin@apple.com authored
      Use high resolution platform images when the deviceScaleFactor > 1
      -and corresponding-
      <rdar://problem/10003098>
      
      Reviewed by Darin Adler.
      
      Add all of the new high resolution images. I also removed some tiffs from the 
      project and replaced them with png equivalents (that are already checked into 
      WebCore anyway). Since the high resolution images are pngs, it makes sense to use 
      pngs for all of the images that load through Image::loadPlatformResource()
      * WebCore.xcodeproj/project.pbxproj:
      * platform/graphics/mac/ImageMac.mm:
      (WebCore::Image::loadPlatformResource):
      
      Load the @2x resource for deviceScaleFactors >= 2.
      * editing/DeleteButtonController.cpp:
      (WebCore::DeleteButtonController::createDeletionUI):
      
      CachedImage::brokenImage() is no longer a static helper function, but a real 
      member function. It also now loads the @2x resource for deviceScaleFactors >= 2 
      and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns 
      the brokenImage(), it just returns the 1x version. brokenImage() has to be called 
      directly to reliably return the deviceScaleFactor-appropriate resource.
      * loader/cache/CachedImage.cpp:
      (WebCore::CachedImage::brokenImage):
      (WebCore::CachedImage::image):
      * loader/cache/CachedImage.h:
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::drawPlatformResizerImage):
      (WebCore::RenderLayer::paintResizer):
      * rendering/RenderLayer.h:
      
      New static function to retrieve the deviceScaleFactor for callers that do not have 
      direct access to a Page.
      * page/Page.cpp:
      (WebCore::Page::deviceScaleFactor):
      * page/Page.h:
      
      Call CachedImage::brokenImage() for the broken-image image at an accurate 
      resolution.
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::imageSizeForError):
      (WebCore::RenderImage::paintReplaced):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94900 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b49bc3da
  3. 09 Sep, 2011 21 commits
    • arv@chromium.org's avatar
      Move Element.contains to Node · 03ce4650
      arv@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67651
      
      Reviewed by Darin Adler.
      
      This moves the contains method from Element to Node as in the DOM4 working draft:
      http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
      
      This also special cases Document contains to make it O(1) instead of O(depth).
      
      Source/WebCore:
      
      Tests: fast/dom/Node/contains-method.html
             perf/document-contains.html
      
      * bindings/objc/PublicDOMInterfaces.h: Move contains from DOMElement to DOMNode.
      * dom/Element.idl:
      * dom/Node.cpp:
      (WebCore::Node::contains): Added document special case.
      * dom/Node.idl:
      * editing/DeleteSelectionCommand.cpp:
      (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
      
      LayoutTests:
      
      * fast/dom/Element/contains-method-expected.txt: Removed.
      * fast/dom/Element/script-tests/contains-method.js: Removed.
      * fast/dom/Node/contains-method-expected.txt: Added.
      * fast/dom/Node/contains-method.html: Renamed from LayoutTests/fast/dom/Element/contains-method.html.
      * fast/dom/Node/script-tests/contains-method.js: Added. Expanded tests.
      * fast/dom/Window/window-properties-expected.txt:
      * perf/document-contains-expected.txt: Added.
      * perf/document-contains.html: Added.
                                     Perf test to ensure that document.contains is O(1).
      * platform/gtk/fast/dom/Window/window-properties-expected.txt:
      * platform/mac/fast/dom/Window/window-properties-expected.txt:
      * platform/qt-wk2/fast/dom/Window/window-properties-expected.txt:
      * platform/qt/fast/dom/Window/window-properties-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      03ce4650
    • timothy_horton@apple.com's avatar
      Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow · b09bdbf3
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67543
      <rdar://problem/10070536>
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Generalize (begin|end)TransparencyLayer, which now forward
      through to (begin|end)PlatformTransparencyLayer, so that
      isInTransparencyLayer can exist on every platform.
      
      Make use of isInTransparencyLayer in FontMac to disable
      "simple" shadow drawing when the text is being rendered
      into a transparency layer.
      
      Test: svg/custom/simple-text-double-shadow.svg
      
      * platform/graphics/GraphicsContext.cpp:
      (WebCore::GraphicsContext::GraphicsContext):
      (WebCore::GraphicsContext::~GraphicsContext):
      (WebCore::GraphicsContext::beginTransparencyLayer):
      (WebCore::GraphicsContext::endTransparencyLayer):
      (WebCore::GraphicsContext::isInTransparencyLayer):
      * platform/graphics/GraphicsContext.h:
      * platform/graphics/cairo/GraphicsContextCairo.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
      * platform/graphics/cg/GraphicsContextCG.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
      (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
      * platform/graphics/haiku/GraphicsContextHaiku.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/mac/FontMac.mm:
      (WebCore::Font::drawGlyphs):
      * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/qt/GraphicsContextQt.cpp:
      (WebCore::GraphicsContext::isInTransparencyLayer):
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/skia/GraphicsContextSkia.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/win/FontCGWin.cpp:
      (WebCore::drawGDIGlyphs):
      * platform/graphics/win/GraphicsContextCGWin.cpp:
      (WebCore::GraphicsContext::releaseWindowsContext):
      * platform/graphics/win/GraphicsContextCairoWin.cpp:
      (WebCore::GraphicsContext::releaseWindowsContext):
      * platform/graphics/win/GraphicsContextWin.cpp:
      (WebCore::GraphicsContext::getWindowsContext):
      * platform/graphics/wince/GraphicsContextWinCE.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/graphics/wx/GraphicsContextWx.cpp:
      (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
      (WebCore::GraphicsContext::endPlatformTransparencyLayer):
      (WebCore::GraphicsContext::supportsTransparencyLayers):
      * platform/win/ScrollbarThemeWin.cpp:
      * plugins/win/PluginViewWin.cpp:
      * rendering/RenderThemeWin.cpp:
      
      LayoutTests:
      
      Add a test ensuring that text with 0px blur CSS shadow doesn't get rendered
      with a second shadow when inside a transparency layer.
      
      * platform/mac/svg/custom/simple-text-double-shadow-expected.png: Added.
      * platform/mac/svg/custom/simple-text-double-shadow-expected.txt: Added.
      * svg/custom/simple-text-double-shadow.svg: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b09bdbf3
    • jchaffraix@webkit.org's avatar
      [V8] V8WebKitPoint::constructorCallback leaks · 05fe133a
      jchaffraix@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67865
      
      Reviewed by Adam Barth.
      
      Covered by fast/js/instanceof-XMLHttpRequest.html under Valgrind.
      
      * bindings/v8/custom/V8WebKitPointConstructor.cpp:
      (WebCore::V8WebKitPoint::constructorCallback): Changed the code
      to use a RefPtr (per our usual style). Also use toV8 that will
      take care of properly wrapping the object.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      05fe133a
    • crogers@google.com's avatar
      HRTFDatabaseLoader should not call WTF::waitForThreadCompletion() more than once · c51f9c3b
      crogers@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67866
      
      Reviewed by David Levin.
      
      No new tests since this is difficult to test.
      This is designed to fix existing webaudio layout test failures.
      
      * platform/audio/HRTFDatabaseLoader.cpp:
      (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
      (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
      (WebCore::HRTFDatabaseLoader::loadAsynchronously):
      (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
      * platform/audio/HRTFDatabaseLoader.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94893 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c51f9c3b
    • jberlin@webkit.org's avatar
      Cookies are not available after turning off Private Browsing after the last window has been · 0fe41f35
      jberlin@webkit.org authored
      closed.
      https://bugs.webkit.org/show_bug.cgi?id=67874
      
      Reviewed by Darin Adler.
      
      The private browsing storage session is a global setting that is being incorrectly set on a
      per-page basis (see http://webkit.org/b/67870).
      
      In this case, the global value was getting out of sync with the per-page setting:
      1. The global value was getting set to true when setPrivateBrowsingEnabled(true) was called.
      2. All Pages were then closed, destroying their Settings objects.
      3. When a new Page was created, a new Settings object was created and its
         m_privateBrowsingEnabled value was getting set to false.
      4. The WebPage settings were then applied to the new Settings object, resulting in
         setPrivateBrowsingEnabled(false) to be called.
      5. An if (m_privateBrowsingEnabled == privateBrowsingEnabled) early return prevented the
         global value for the storage session from being destroyed.
      
      * page/Settings.cpp:
      (WebCore::Settings::setPrivateBrowsingEnabled):
      Move the early return to be after setting the global private browsing values, and add a
      clearer comment + FIXME.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94892 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0fe41f35
    • rolandsteiner@chromium.org's avatar
      Generate a WebKitCSSMatrix constructor of V8 using the IDL 'Constructor' extended attribute · 7e15f97a
      rolandsteiner@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67458
      
      Patch by Kentaro Hara <haraken@google.com> on 2011-09-09
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      Added a 'CallWithNullValue' extended attribute.
      If a parameter is optional and missing, 'CallWithDefaultValue'
      handles it as a string "undefined". On the other hand,
      'CallWithNullValue' handles it as a null string
      (Note: not a string "null", but a null string).
      
      Tests: fast/dom/Window/custom-constructors.html
             transforms/svg-vs-css.xhtml
             transforms/cssmatrix-2d-interface.xhtml
             transforms/cssmatrix-3d-interface.xhtmlGenerate a WebKitCSSMatrix constructor
      
      * WebCore.gypi: Removed V8WebKitCSSMatrixConstructor.cpp.
      * WebCore.pro: Removed V8WebKitCSSMatrixConstructor.cpp.
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateParametersCheck): If the 'CallWithNullValue' extended attribute is set, we call MAYBE_MISSING_PARAMETER() with MissingIsEmpty mode to obtain a maybe missing parameter. Otherwise, we call MAYBE_MISSING_PARAMETER() with MissingIsUndefined mode.
      (RequiresCustomSignature):
      * bindings/scripts/test/V8/V8TestInterface.cpp: Updated test results.
      (WebCore::V8TestInterface::constructorCallback):
      * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
      (WebCore::TestMediaQueryListListenerInternal::methodCallback):
      * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
      (WebCore::TestObjInternal::voidMethodWithArgsCallback):
      (WebCore::TestObjInternal::intMethodWithArgsCallback):
      (WebCore::TestObjInternal::objMethodWithArgsCallback):
      (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
      (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
      (WebCore::TestObjInternal::optionsObjectCallback):
      (WebCore::TestObjInternal::customArgsAndExceptionCallback):
      (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
      (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
      (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
      (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
      (WebCore::TestObjInternal::methodWithOptionalArgCallback):
      (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
      (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
      (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
      (WebCore::TestObjInternal::overloadedMethod1Callback):
      (WebCore::TestObjInternal::overloadedMethod2Callback):
      (WebCore::TestObjInternal::overloadedMethod3Callback):
      (WebCore::TestObjInternal::overloadedMethod4Callback):
      (WebCore::TestObjInternal::classMethodWithOptionalCallback):
      (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
      (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
      * bindings/v8/V8Binding.h:
      (WebCore::V8ParameterBase::prepareBase): The fact that V8ParameterBase does not have any object means that we do not need to prepare anything, i.e. we should just return true in this case.
      (WebCore::::prepare): If V8ParameterBase does not have any object, then we set a null string.
      * bindings/v8/custom/V8BindingMacros.h: MAYBE_MISSING_PARAMETER() returns the parameter of a given index if the parameter exists. If the parameter does not exist and MissingIsUndefined is set, this macro returns an object that represents undefined. If the parameter does not exist and MissingIsEmpty is set, this macro returns an empty object.
      * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Removed.
      * css/WebKitCSSMatrix.idl: Added the 'Constructor' extended attribute.
      
      LayoutTests:
      
      Added a test case for "new WebKitCSSMatrix(null)" and "new WebKitCSSMatrix(undefined)".
      
      * fast/dom/Window/custom-constructors-expected.txt:
      * fast/dom/Window/custom-constructors.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e15f97a
    • ggaren@apple.com's avatar
      2011-09-09 Geoffrey Garen <ggaren@apple.com> · 41cc2535
      ggaren@apple.com authored
              Reviewed by Dan Bernstein.
      
              Removed ENABLE(SINGLE_THREADED) support, since it is always false
              https://bugs.webkit.org/show_bug.cgi?id=67862
      
              Next step toward making the baseline platform assumption that threads exist.
      
              * wtf/wtf.pri:
              * JavaScriptCore.gypi:
              * JavaScriptCore.vcproj/WTF/WTF.vcproj: Removed references to
              ThreadingNone.cpp, which was only compiled in single-threaded mode.
      
              * wtf/Platform.h:
              * wtf/ThreadSpecific.h:
              (WTF::::destroy):
              * wtf/qt/ThreadingQt.cpp: Removed now-dead code.
      
              * wtf/ThreadingNone.cpp: Removed.
      2011-09-09  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Dan Bernstein.
      
              Removed ENABLE(SINGLE_THREADED) support, since it is always false
              https://bugs.webkit.org/show_bug.cgi?id=67862
      
              Next step toward making the baseline platform assumption that threads exist.
      
              * WebCore.pri:
              * features.pri: 
              * platform/sql/SQLiteDatabase.cpp:
              (WebCore::SQLiteDatabase::interrupt): Removed now-dead code.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94890 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41cc2535
    • fsamuel@chromium.org's avatar
      Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp} · c43a7d1c
      fsamuel@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67250
      
      Reviewed by Simon Fraser.
      
      Source/WebCore:
      
      No new tests because there's no change in functionality.
      
      * WebCore.exp.in:
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::styleForDocument):
      * dom/Element.cpp:
      (WebCore::Element::getClientRects):
      (WebCore::Element::getBoundingClientRect):
      * dom/Range.cpp:
      (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale):
      * loader/HistoryController.cpp:
      (WebCore::HistoryController::restoreScrollPositionAndViewState):
      * page/Frame.cpp:
      (WebCore::Frame::Frame):
      (WebCore::Frame::pageScaleFactor):
      * page/Frame.h:
      * page/Page.cpp:
      (WebCore::Page::Page):
      (WebCore::Page::setPageScaleFactor):
      * page/Page.h:
      (WebCore::Page::pageScaleFactor):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
      (WebCore::RenderLayerCompositor::pageScaleFactor):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::paintBoxDecorations):
      
      Source/WebKit/chromium:
      
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::pageScaleFactor):
      (WebKit::WebViewImpl::scalePage):
      
      Source/WebKit/gtk:
      
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      (DumpRenderTreeSupportGtk::scalePageBy):
      
      Source/WebKit/mac:
      
      * WebView/WebView.mm:
      (-[WebView _scaleWebView:atOrigin:]):
      (-[WebView _viewScaleFactor]):
      
      Source/WebKit/qt:
      
      * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
      (DumpRenderTreeSupportQt::scalePageBy):
      
      Source/WebKit2:
      
      * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
      (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::scalePage):
      (WebKit::WebPage::pageScaleFactor):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c43a7d1c
    • commit-queue@webkit.org's avatar
      Source/WebCore: AX: Images within anchors causes crash · 3dbf0bb6
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=44149
      
      Patch by Dominic Mazzoni <dmazzoni@google.com> on 2011-09-09
      Reviewed by Chris Fleizach.
      
      Fixes the way parent RenderObject of an AccessibilityRenderObject
      is computed in the presence of adjacent continuations.
      
      Test: accessibility/div-within-anchors-causes-crash.html
      
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::renderParentObject):
      
      LayoutTests: Add a test to catch a case where an assertion failure or
      crash is triggered in AccessibilityRenderObject when deleting
      a node that includes a continuation.
      https://bugs.webkit.org/show_bug.cgi?id=44149
      
      Patch by Dominic Mazzoni <dmazzoni@google.com> on 2011-09-09
      Reviewed by Chris Fleizach.
      
      * accessibility/div-within-anchors-causes-crash.html: Added.
      * platform/mac/accessibility/div-within-anchors-causes-crash-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94888 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3dbf0bb6
    • commit-queue@webkit.org's avatar
      CSS rules not being applied when a hidden field is inserted between an... · 01754773
      commit-queue@webkit.org authored
      CSS rules not being applied when a hidden field is inserted between an input[type=checkbox] and a label
      https://bugs.webkit.org/show_bug.cgi?id=66887
      
      Patch by Kulanthaivel Palanichamy <kulanthaivel@codeaurora.org> on 2011-09-09
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      Test: fast/css/adjacent-sibling-selector.html
      
      This patch addresses the problem of elements not getting their style recomputed
      when they are affected by direct adjacent sibling rules and one of their sibling in
      their corresponding rules is modified dynamically.
      
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::canShareStyleWithElement):
      (WebCore::parentStylePreventsSharing):
      * css/SelectorChecker.cpp:
      (WebCore::SelectorChecker::checkSelector):
      * dom/Element.cpp:
      (WebCore::Element::recalcStyle):
      (WebCore::checkForSiblingStyleChanges):
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::RenderStyle):
      * rendering/style/RenderStyle.h:
      (WebCore::InheritedFlags::affectedByDirectAdjacentRules):
      (WebCore::InheritedFlags::setAffectedByDirectAdjacentRules):
      
      LayoutTests:
      
      * fast/css/adjacent-sibling-selector-expected.txt: Added.
      * fast/css/adjacent-sibling-selector.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01754773
    • commit-queue@webkit.org's avatar
      Make the EFL port use the correct rendering file. · 7febe4d2
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66323
      
      Patch by Rafael Antognolli <antognolli@profusion.mobi> on 2011-09-09
      Reviewed by Martin Robinson.
      
      When compiling with Pango support, the EFL port should use
      FontPango.cpp instead of FontEfl.cpp (which is just full of stubs).
      
      No new functionality so no new tests.
      
      * CMakeListsEfl.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94886 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7febe4d2
    • crogers@google.com's avatar
      AudioBufferSourceNode must validate AudioBuffer in .buffer attribute setter · 569fcdda
      crogers@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67749
      
      Reviewed by Kenneth Russell.
      
      Source/WebCore:
      
      Test: webaudio/audiobuffersource-channels.html
      
      * WebCore.gypi:
      * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
      (WebCore::JSAudioBufferSourceNode::setBuffer):
      * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp: Copied from Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp.
      (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
      * webaudio/AudioBufferSourceNode.cpp:
      (WebCore::AudioBufferSourceNode::setBuffer):
      * webaudio/AudioBufferSourceNode.h:
      * webaudio/AudioBufferSourceNode.idl:
      
      LayoutTests:
      
      * webaudio/audiobuffersource-channels-expected.txt: Added.
      * webaudio/audiobuffersource-channels.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      569fcdda
    • mitz@apple.com's avatar
      RenderBlock::addOverhangingFloats() takes superfluous parameters · af6b8e17
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67863
      
      Reviewed by Dave Hyatt.
      
      No new tests, because behavior is unchanged.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::layoutBlockChild):
      (WebCore::RenderBlock::addOverhangingFloats): Removed the logical{Left, Top}Offset parameters,
      since they were always the inverse of the logical{Left, Top}() of the child parameter.
      * rendering/RenderBlock.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      af6b8e17
    • commit-queue@webkit.org's avatar
      Add replacement functions for gdk ones. · 1cd9c170
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66323
      
      Patch by Rafael Antognolli <antognolli@profusion.mobi> on 2011-09-09
      Reviewed by Martin Robinson.
      
      .:
      
      * Source/cmake/FindPango.cmake:
      
      Source/WebCore:
      
      This will allow the EFL port to don't depend on gdk anymore.
      
      No new functionality so no new tests.
      
      * CMakeListsEfl.txt:
      * platform/graphics/cairo/CairoUtilities.cpp:
      (WebCore::appendRegionToCairoContext):
      * platform/graphics/cairo/CairoUtilities.h:
      * platform/graphics/pango/FontPango.cpp:
      (WebCore::drawGlyphsShadow):
      (WebCore::Font::drawComplexText):
      * platform/graphics/pango/PangoUtilities.cpp: Added.
      (WebCore::getLineClipRegionFromLayoutIter):
      (WebCore::getClipRegionFromPangoLayoutLine):
      * platform/graphics/pango/PangoUtilities.h: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94876 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1cd9c170
    • mhahnenberg@apple.com's avatar
      Unzip initialization lists and constructors in JSCell hierarchy (5/7) · 7317a7f6
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67420
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      Completed the fifth level of the refactoring to add finishCreation()
      methods to all classes within the JSCell hierarchy with non-trivial
      constructor bodies.
      
      This primarily consists of pushing the calls to finishCreation() down
      into the constructors of the subclasses of the second level of the hierarchy
      as well as pulling the finishCreation() calls out into the class's corresponding
      create() method if it has one.  Doing both simultaneously allows us to
      maintain the invariant that the finishCreation() method chain is called exactly
      once during the creation of an object, since calling it any other number of
      times (0, 2, or more) will cause an assertion failure.
      
      * API/JSCallbackConstructor.cpp:
      (JSC::JSCallbackConstructor::JSCallbackConstructor):
      * API/JSCallbackConstructor.h:
      (JSC::JSCallbackConstructor::create):
      * API/JSCallbackFunction.cpp:
      (JSC::JSCallbackFunction::JSCallbackFunction):
      (JSC::JSCallbackFunction::finishCreation):
      * API/JSCallbackFunction.h:
      * API/JSCallbackObject.h:
      * API/JSCallbackObjectFunctions.h:
      (JSC::::JSCallbackObject):
      (JSC::::finishCreation):
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * debugger/DebuggerActivation.cpp:
      * debugger/DebuggerActivation.h:
      (JSC::DebuggerActivation::create):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (GlobalObject::GlobalObject):
      * runtime/ArrayConstructor.cpp:
      (JSC::ArrayConstructor::ArrayConstructor):
      (JSC::ArrayConstructor::finishCreation):
      * runtime/ArrayConstructor.h:
      * runtime/ArrayPrototype.cpp:
      (JSC::ArrayPrototype::ArrayPrototype):
      * runtime/ArrayPrototype.h:
      (JSC::ArrayPrototype::create):
      * runtime/BooleanConstructor.cpp:
      (JSC::BooleanConstructor::BooleanConstructor):
      (JSC::BooleanConstructor::finishCreation):
      * runtime/BooleanConstructor.h:
      * runtime/BooleanObject.cpp:
      (JSC::BooleanObject::BooleanObject):
      * runtime/BooleanObject.h:
      (JSC::BooleanObject::create):
      * runtime/BooleanPrototype.cpp:
      (JSC::BooleanPrototype::BooleanPrototype):
      (JSC::BooleanPrototype::finishCreation):
      * runtime/BooleanPrototype.h:
      * runtime/DateConstructor.cpp:
      (JSC::DateConstructor::DateConstructor):
      (JSC::DateConstructor::finishCreation):
      * runtime/DateConstructor.h:
      * runtime/DateInstance.cpp:
      (JSC::DateInstance::DateInstance):
      * runtime/DateInstance.h:
      (JSC::DateInstance::create):
      * runtime/DatePrototype.cpp:
      (JSC::DatePrototype::DatePrototype):
      (JSC::DatePrototype::finishCreation):
      * runtime/DatePrototype.h:
      * runtime/Error.cpp:
      (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
      * runtime/ErrorConstructor.cpp:
      (JSC::ErrorConstructor::ErrorConstructor):
      (JSC::ErrorConstructor::finishCreation):
      * runtime/ErrorConstructor.h:
      * runtime/ErrorPrototype.cpp:
      (JSC::ErrorPrototype::ErrorPrototype):
      * runtime/ErrorPrototype.h:
      (JSC::ErrorPrototype::create):
      * runtime/FunctionConstructor.cpp:
      (JSC::FunctionConstructor::FunctionConstructor):
      (JSC::FunctionConstructor::finishCreation):
      * runtime/FunctionConstructor.h:
      * runtime/FunctionPrototype.cpp:
      (JSC::FunctionPrototype::FunctionPrototype):
      (JSC::FunctionPrototype::finishCreation):
      * runtime/FunctionPrototype.h:
      * runtime/InternalFunction.cpp:
      (JSC::InternalFunction::InternalFunction):
      * runtime/InternalFunction.h:
      * runtime/JSActivation.cpp:
      (JSC::JSActivation::JSActivation):
      * runtime/JSActivation.h:
      (JSC::JSActivation::create):
      * runtime/JSGlobalObject.h:
      (JSC::JSGlobalObject::create):
      (JSC::JSGlobalObject::JSGlobalObject):
      * runtime/JSONObject.cpp:
      (JSC::JSONObject::JSONObject):
      * runtime/JSONObject.h:
      (JSC::JSONObject::create):
      * runtime/JSStaticScopeObject.h:
      (JSC::JSStaticScopeObject::create):
      (JSC::JSStaticScopeObject::JSStaticScopeObject):
      * runtime/JSString.cpp:
      (JSC::StringObject::create):
      * runtime/MathObject.cpp:
      (JSC::MathObject::MathObject):
      * runtime/MathObject.h:
      (JSC::MathObject::create):
      * runtime/NativeErrorConstructor.cpp:
      (JSC::NativeErrorConstructor::NativeErrorConstructor):
      * runtime/NativeErrorConstructor.h:
      (JSC::NativeErrorConstructor::finishCreation):
      * runtime/NativeErrorPrototype.cpp:
      (JSC::NativeErrorPrototype::NativeErrorPrototype):
      (JSC::NativeErrorPrototype::finishCreation):
      * runtime/NativeErrorPrototype.h:
      * runtime/NumberConstructor.cpp:
      (JSC::NumberConstructor::NumberConstructor):
      (JSC::NumberConstructor::finishCreation):
      * runtime/NumberConstructor.h:
      * runtime/NumberObject.cpp:
      (JSC::NumberObject::NumberObject):
      * runtime/NumberObject.h:
      (JSC::NumberObject::create):
      * runtime/NumberPrototype.cpp:
      (JSC::NumberPrototype::NumberPrototype):
      (JSC::NumberPrototype::finishCreation):
      * runtime/NumberPrototype.h:
      * runtime/ObjectConstructor.cpp:
      (JSC::ObjectConstructor::ObjectConstructor):
      (JSC::ObjectConstructor::finishCreation):
      * runtime/ObjectConstructor.h:
      * runtime/RegExpConstructor.cpp:
      (JSC::RegExpConstructor::RegExpConstructor):
      (JSC::RegExpConstructor::finishCreation):
      (JSC::RegExpMatchesArray::RegExpMatchesArray):
      * runtime/RegExpConstructor.h:
      * runtime/RegExpMatchesArray.h:
      (JSC::RegExpMatchesArray::create):
      * runtime/RegExpObject.cpp:
      (JSC::RegExpObject::RegExpObject):
      * runtime/RegExpObject.h:
      (JSC::RegExpObject::create):
      * runtime/RegExpPrototype.cpp:
      (JSC::RegExpPrototype::RegExpPrototype):
      * runtime/StringConstructor.cpp:
      (JSC::StringConstructor::StringConstructor):
      (JSC::StringConstructor::finishCreation):
      * runtime/StringConstructor.h:
      * runtime/StringObject.cpp:
      (JSC::StringObject::StringObject):
      * runtime/StringObject.h:
      (JSC::StringObject::create):
      * runtime/StringObjectThatMasqueradesAsUndefined.h:
      (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
      * runtime/StringPrototype.cpp:
      (JSC::StringPrototype::StringPrototype):
      (JSC::StringPrototype::finishCreation):
      * runtime/StringPrototype.h:
      
      Source/JavaScriptGlue:
      
      Completed the fifth level of the refactoring to add finishCreation()
      methods to all classes within the JSCell hierarchy with non-trivial
      constructor bodies.
      
      This primarily consists of pushing the calls to finishCreation() down
      into the constructors of the subclasses of the second level of the hierarchy
      as well as pulling the finishCreation() calls out into the class's corresponding
      create() method if it has one.  Doing both simultaneously allows us to
      maintain the invariant that the finishCreation() method chain is called exactly
      once during the creation of an object, since calling it any other number of
      times (0, 2, or more) will cause an assertion failure.
      
      * JSRun.cpp:
      (JSGlueGlobalObject::JSGlueGlobalObject):
      
      Source/WebCore:
      
      No new tests.
      
      Completed the fifth level of the refactoring to add finishCreation()
      methods to all classes within the JSCell hierarchy with non-trivial
      constructor bodies.
      
      This primarily consists of pushing the calls to finishCreation() down
      into the constructors of the subclasses of the second level of the hierarchy
      as well as pulling the finishCreation() calls out into the class's corresponding
      create() method if it has one.  Doing both simultaneously allows us to
      maintain the invariant that the finishCreation() method chain is called exactly
      once during the creation of an object, since calling it any other number of
      times (0, 2, or more) will cause an assertion failure.
      
      * WebCore.exp.in:
      * bindings/js/JSDOMBinding.h:
      (WebCore::DOMConstructorObject::DOMConstructorObject):
      * bindings/js/JSDOMGlobalObject.cpp:
      (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
      (WebCore::JSDOMGlobalObject::finishCreation):
      * bindings/js/JSDOMGlobalObject.h:
      * bindings/js/JSDOMWindowShell.cpp:
      * bindings/js/JSDOMWindowShell.h:
      (WebCore::JSDOMWindowShell::create):
      * bindings/js/JSDOMWrapper.h:
      (WebCore::JSDOMWrapper::JSDOMWrapper):
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateImplementation):
      * bindings/scripts/test/JS/JSTestInterface.cpp:
      (WebCore::JSTestInterface::JSTestInterface):
      * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
      (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
      * bindings/scripts/test/JS/JSTestObj.cpp:
      (WebCore::JSTestObj::JSTestObj):
      * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
      (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
      * bridge/c/CRuntimeObject.cpp:
      (JSC::Bindings::CRuntimeObject::CRuntimeObject):
      (JSC::Bindings::CRuntimeObject::finishCreation):
      * bridge/c/CRuntimeObject.h:
      * bridge/jni/jsc/JavaRuntimeObject.cpp:
      (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
      (JSC::Bindings::JavaRuntimeObject::finishCreation):
      * bridge/jni/jsc/JavaRuntimeObject.h:
      * bridge/objc/ObjCRuntimeObject.h:
      * bridge/objc/ObjCRuntimeObject.mm:
      (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
      (JSC::Bindings::ObjCRuntimeObject::finishCreation):
      * bridge/objc/objc_runtime.h:
      (JSC::Bindings::ObjcFallbackObjectImp::create):
      * bridge/objc/objc_runtime.mm:
      (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
      * bridge/qt/qt_instance.cpp:
      (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
      * bridge/qt/qt_pixmapruntime.cpp:
      (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
      * bridge/qt/qt_runtime.cpp:
      (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
      (JSC::Bindings::QtRuntimeMethod::finishCreation):
      * bridge/qt/qt_runtime.h:
      * bridge/runtime_array.cpp:
      (JSC::RuntimeArray::RuntimeArray):
      * bridge/runtime_array.h:
      (JSC::RuntimeArray::create):
      * bridge/runtime_method.cpp:
      (JSC::RuntimeMethod::RuntimeMethod):
      (JSC::RuntimeMethod::finishCreation):
      * bridge/runtime_method.h:
      * bridge/runtime_object.cpp:
      (JSC::Bindings::RuntimeObject::RuntimeObject):
      * bridge/runtime_object.h:
      (JSC::Bindings::RuntimeObject::create):
      
      Source/WebKit/mac:
      
      Completed the fifth level of the refactoring to add finishCreation()
      methods to all classes within the JSCell hierarchy with non-trivial
      constructor bodies.
      
      This primarily consists of pushing the calls to finishCreation() down
      into the constructors of the subclasses of the second level of the hierarchy
      as well as pulling the finishCreation() calls out into the class's corresponding
      create() method if it has one.  Doing both simultaneously allows us to
      maintain the invariant that the finishCreation() method chain is called exactly
      once during the creation of an object, since calling it any other number of
      times (0, 2, or more) will cause an assertion failure.
      
      * Plugins/Hosted/ProxyRuntimeObject.h:
      * Plugins/Hosted/ProxyRuntimeObject.mm:
      (WebKit::ProxyRuntimeObject::ProxyRuntimeObject):
      (WebKit::ProxyRuntimeObject::finishCreation):
      
      Source/WebKit2:
      
      Completed the fifth level of the refactoring to add finishCreation()
      methods to all classes within the JSCell hierarchy with non-trivial
      constructor bodies.
      
      This primarily consists of pushing the calls to finishCreation() down
      into the constructors of the subclasses of the second level of the hierarchy
      as well as pulling the finishCreation() calls out into the class's corresponding
      create() method if it has one.  Doing both simultaneously allows us to
      maintain the invariant that the finishCreation() method chain is called exactly
      once during the creation of an object, since calling it any other number of
      times (0, 2, or more) will cause an assertion failure.
      
      * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
      (WebKit::JSNPMethod::JSNPMethod):
      (WebKit::JSNPMethod::finishCreation):
      * WebProcess/Plugins/Netscape/JSNPMethod.h:
      (WebKit::JSNPMethod::create):
      * WebProcess/Plugins/Netscape/JSNPObject.cpp:
      (WebKit::JSNPObject::JSNPObject):
      * WebProcess/Plugins/Netscape/JSNPObject.h:
      (WebKit::JSNPObject::create):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7317a7f6
    • commit-queue@webkit.org's avatar
      Rename FontGtk.cpp to FontPango.cpp · b400177d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66323
      
      Patch by Rafael Antognolli <antognolli@profusion.mobi> on 2011-09-09
      Reviewed by Martin Robinson.
      
      This file will be used by the EFL port too, and since it's not GTK
      specific anymore, rename it to something better.
      
      No new functionality so no new tests.
      
      * GNUmakefile.list.am:
      * platform/graphics/pango/FontPango.cpp: Renamed from Source/WebCore/platform/graphics/gtk/FontGtk.cpp.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b400177d
    • ggaren@apple.com's avatar
      2011-09-09 Geoffrey Garen <ggaren@apple.com> · 6d32daa5
      ggaren@apple.com authored
              Build fix: Guard against double-#define for something already #defined
              by the build system.
      
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d32daa5
    • ggaren@apple.com's avatar
      2011-09-09 Geoffrey Garen <ggaren@apple.com> · fc7983db
      ggaren@apple.com authored
              Reviewed by Dan Bernstein.
      
              Never #define ENABLE_SINGLE_THREADED, !ENABLE_JSC_MULTIPLE_THREADS, or
              !ENABLE_WTF_MULTIPLE_THREADS
              https://bugs.webkit.org/show_bug.cgi?id=67860
      
              First step toward making the baseline platform assumption that threads
              exist: Never #define ENABLE_SINGLE_THREADED, !ENABLE_JSC_MULTIPLE_THREADS,
              or !ENABLE_WTF_MULTIPLE_THREADS.
      
              * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc7983db
    • adamk@chromium.org's avatar
      Initialize ExceptionCode in Element::removeAttribute · 99dc179c
      adamk@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67820
      
      Reviewed by Darin Adler.
      
      Silences valgrind warning reported in http://crbug.com/76490.
      
      No new tests since this would only very occasionally be flaky,
      and in the codepath in the valgrind report, the ec is ignored anyway.
      
      * dom/Element.cpp:
      (WebCore::Element::removeAttribute): Initialize ec to 0.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      99dc179c
    • laszlo.1.gombos@nokia.com's avatar
      [Qt] Remove common.pri · 554e8937
      laszlo.1.gombos@nokia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67814
      
      Reviewed by Andreas Kling.
      
      .:
      
      * Source/WebKit.pri: Move rules from common.pri to WebKit.pri.
      * Source/common.pri: Removed.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.pri:
      
      Source/WebCore:
      
      No new tests, no change in functionality.
      
      * CodeGenerators.pri:
      * WebCore.pri:
      
      Tools:
      
      * Tools.pro:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      554e8937
    • commit-queue@webkit.org's avatar
      Source/WebCore: Assert being hit in AccessibilityRenderObject::addChildren() · 177e37cf
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=61805
      
      Patch by Dominic Mazzoni <dmazzoni@google.com> on 2011-09-09
      Reviewed by Chris Fleizach.
      
      Fix nextSibling and previousSibling to handle adjacent continuations
      properly, otherwise nodes end up appearing in the accessibility
      tree twice (or a debug assertion could be raised).
      
      Test: accessibility/adjacent-continuations-cause-assertion-failure.html
      
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::previousSibling):
      (WebCore::AccessibilityRenderObject::nextSibling):
      
      LayoutTests: Add a test to catch a case where adjacent continuations were
      causing nodes to get added to the accessibility tree twice, leading
      to an assertion failure or a crash. The test expectations are
      currently Mac-specific, so added the test to the Skipped file for
      gtk and win.
      https://bugs.webkit.org/show_bug.cgi?id=61805
      
      Patch by Dominic Mazzoni <dmazzoni@google.com> on 2011-09-09
      Reviewed by Chris Fleizach.
      
      * accessibility/adjacent-continuations-cause-assertion-failure.html: Added.
      * platform/mac/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      177e37cf