Timeline



Aug 25, 2015:

11:49 PM Changeset in webkit [188947] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

AX: Enable accessibility/aria-controls.html test for mac
https://bugs.webkit.org/show_bug.cgi?id=148458

Patch by Nan Wang <n_wang@apple.com> on 2015-08-25
Reviewed by Chris Fleizach.

Source/WebCore:

Re-enabled accessibility/aria-controls.html test for mac.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Implemented ariaControlsElementAtIndex(unsigned index).

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::ariaControlsElementAtIndex):
(AccessibilityUIElement::disclosedRowAtIndex):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::ariaControlsElementAtIndex):

LayoutTests:

  • accessibility/aria-controls.html:
  • platform/mac/TestExpectations:
  • platform/mac/accessibility/aria-controls-expected.txt: Added.
11:29 PM Changeset in webkit [188946] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: message dispatch metrics should use high-resolution timing data
https://bugs.webkit.org/show_bug.cgi?id=135467

Reviewed by Timothy Hatcher.

Use performance.now if it's available, otherwise fallback to Date.now().
Format timestamps with fixed decimal point, and sprinkle some ES6.

  • UserInterface/Base/Utilities.js:

(timestamp): Added.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._dispatchEvent):

  • UserInterface/Protocol/MessageDispatcher.js:

(WebInspector.dispatchNextQueuedMessageFromBackend):
(WebInspector.dispatchMessageFromBackend): Be consistent about using this.

10:47 PM Changeset in webkit [188945] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Remove python tests for PassRefPtr
https://bugs.webkit.org/show_bug.cgi?id=148463

Reviewed by Andy Estes.

As we're removing uses of PassRefPtr, we need to remove all python tests for PassRefPtr as well.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(PassPtrTest): Deleted.
(PassPtrTest.assert_pass_ptr_check): Deleted.
(PassPtrTest.test_pass_ref_ptr_in_function): Deleted.
(PassPtrTest.test_pass_other_type_ptr_in_function): Deleted.
(PassPtrTest.test_pass_ref_ptr_return_value): Deleted.
(PassPtrTest.test_ref_ptr_parameter_value): Deleted.
(PassPtrTest.test_ref_ptr_member_variable): Deleted.
(PassPtrTest.test_ref_ptr_member_variable.Foo): Deleted.

10:17 PM Changeset in webkit [188944] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

More test gardening of css3/line-break-language-sensitive.

Unreviewed.

  • css3/line-break-language-sensitive/line-break-auto-hyphens-expected.html:
  • css3/line-break-language-sensitive/line-break-auto-hyphens.html:
  • css3/line-break-language-sensitive/line-break-auto-sound-marks-expected.html:
  • css3/line-break-language-sensitive/line-break-auto-sound-marks.html:
8:41 PM Changeset in webkit [188943] by aestes@apple.com
  • 3 edits in trunk/Tools

[iOS] run-webkit-tests fails if watchOS SDK is installed
https://bugs.webkit.org/show_bug.cgi?id=148453

Reviewed by David Kilzer.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator): Taught Simulator how to parse watchOS runtimes and devices.

  • Scripts/webkitpy/xcode/simulator_unittest.py: Added tests.
7:01 PM Changeset in webkit [188942] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

iOS Simulator layout-tests fail to start while cleaning a directory structure if simulator is already running
https://bugs.webkit.org/show_bug.cgi?id=148197
rdar://problem/22334382

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-08-25
Reviewed by Daniel Bates.

  • BuildSlaveSupport/kill-old-processes: Add Simulator to the list of processes to kill (for iOS builders).
  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort): Converted bundle id com.apple.iphonesimulator to a variable SIMULATOR_BUNDLE_ID.
(IOSSimulatorPort._quitIOSSimulator): Common function to quit iOS Simulator.
(IOSSimulatorPort.clean_up_test_run): Quit the simulator during the cleanup.
(IOSSimulatorPort.check_sys_deps): No need to quit the simulator here as its now being quit in reset_preferences().
(IOSSimulatorPort.reset_preferences): Quit the simulator before trying to delete associated data directory.

6:35 PM Changeset in webkit [188941] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

AX: accessibility/mac/misspelled-attributed-string.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148455

Patch by Nan Wang <n_wang@apple.com> on 2015-08-25
Reviewed by Chris Fleizach.

Updated the test case to be more stable since the client's text checker
might change over time.

  • accessibility/mac/misspelled-attributed-string-expected.txt:
  • accessibility/mac/misspelled-attributed-string.html:
  • platform/mac/TestExpectations:
6:02 PM Changeset in webkit [188940] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Remove PassRefPtr style check rule
https://bugs.webkit.org/show_bug.cgi?id=148432

Reviewed by Andreas Kling.

PassRefPtr is being removed. Thus style rule needs to be removed as well.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_check_parameter_name_against_text): Deleted.
(check_function_definition_and_pass_ptr): Deleted.
(check_function_definition): Deleted.
(check_pass_ptr_usage): Deleted.
(process_line): Deleted.
(CppChecker): Deleted.

5:16 PM Changeset in webkit [188939] by Brent Fulgham
  • 5 edits in trunk/Tools

[Win] Expose "Inverted Colors" option in WinLauncher
https://bugs.webkit.org/show_bug.cgi?id=148451

Reviewed by Tim Horton.

Add the ability to toggle the "Inverted Colors" preference
in WinLauncher.

  • WinLauncher/Common.cpp:

(ToggleMenuItem): Toggle the feature when the menu item
is selected.
(WndProc): Recognize the new menu option.

  • WinLauncher/WinLauncher.cpp:

(WinLauncher::setToDefaultPreferences): Launch with "Invert
Colors" turned off.

  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc: Add menu

entry for "Invert Colors".

  • WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h:
4:45 PM Changeset in webkit [188938] by commit-queue@webkit.org
  • 2 edits in trunk

Unreviewed, rolling out r188919.
https://bugs.webkit.org/show_bug.cgi?id=148452

broke build (Requested by alexchristensen on #webkit).

Reverted changeset:

"[Win] Build does not generate debug info."
https://bugs.webkit.org/show_bug.cgi?id=148431
http://trac.webkit.org/changeset/188919

3:59 PM Changeset in webkit [188937] by basile_clement@apple.com
  • 13 edits
    6 adds in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: We should reuse the frame efficiently in the DFG instead of doing a memmove
https://bugs.webkit.org/show_bug.cgi?id=147508

Reviewed by Michael Saboff.

This introduces a new class (CallFrameShuffler) that is responsible for
efficiently building the new frames when performing a tail call. In
order for Repatch to know about the position of arguments on the
stack/registers (e.g. for polymorphic call inline caches), we store a
CallFrameShuffleData in the CallLinkInfo. Otherwise, the JIT and DFG
compiler are now using CallFrameShuffler instead of
CCallHelpers::prepareForTailCallSlow() to build the frame for a tail
call.

When taking a slow path, we still build the frame as if doing a regular
call, because we could throw an exception and need the caller's frame
at that point. This means that for virtual calls, we don't benefit from
the efficient frame move. We will take care of this in a subsequent patch.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/AbortReason.h:
  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::setFrameShuffleData):
(JSC::CallLinkInfo::frameShuffleData):

  • dfg/DFGGenerationInfo.h:

(JSC::DFG::GenerationInfo::recovery):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • jit/CallFrameShuffleData.cpp: Added.

(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):

  • jit/CallFrameShuffleData.h: Added.
  • jit/CallFrameShuffler.cpp: Added.

(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump):
(JSC::CallFrameShuffler::getCachedRecovery):
(JSC::CallFrameShuffler::setCachedRecovery):
(JSC::CallFrameShuffler::spill):
(JSC::CallFrameShuffler::emitDeltaCheck):
(JSC::CallFrameShuffler::prepareForSlowPath):
(JSC::CallFrameShuffler::prepareForTailCall):
(JSC::CallFrameShuffler::tryWrites):
(JSC::CallFrameShuffler::performSafeWrites):
(JSC::CallFrameShuffler::prepareAny):

  • jit/CallFrameShuffler.h: Added.

(JSC::CachedRecovery::CachedRecovery):
(JSC::CachedRecovery::targets):
(JSC::CachedRecovery::addTarget):
(JSC::CachedRecovery::removeTarget):
(JSC::CachedRecovery::clearTargets):
(JSC::CachedRecovery::setWantedJSValueRegs):
(JSC::CachedRecovery::boxingRequiresGPR):
(JSC::CachedRecovery::boxingRequiresFPR):
(JSC::CachedRecovery::recovery):
(JSC::CachedRecovery::setRecovery):
(JSC::CachedRecovery::wantedJSValueRegs):
(JSC::CallFrameShuffler::lockGPR):
(JSC::CallFrameShuffler::acquireGPR):
(JSC::CallFrameShuffler::releaseGPR):
(JSC::CallFrameShuffler::snapshot):
(JSC::CallFrameShuffler::setCalleeJSValueRegs):
(JSC::CallFrameShuffler::assumeCalleeIsCell):
(JSC::CallFrameShuffler::canBox):
(JSC::CallFrameShuffler::ensureBox):
(JSC::CallFrameShuffler::ensureLoad):
(JSC::CallFrameShuffler::canLoadAndBox):
(JSC::CallFrameShuffler::updateRecovery):
(JSC::CallFrameShuffler::clearCachedRecovery):
(JSC::CallFrameShuffler::addCachedRecovery):
(JSC::CallFrameShuffler::numLocals):
(JSC::CallFrameShuffler::getOld):
(JSC::CallFrameShuffler::setOld):
(JSC::CallFrameShuffler::firstOld):
(JSC::CallFrameShuffler::lastOld):
(JSC::CallFrameShuffler::isValidOld):
(JSC::CallFrameShuffler::argCount):
(JSC::CallFrameShuffler::getNew):
(JSC::CallFrameShuffler::setNew):
(JSC::CallFrameShuffler::addNew):
(JSC::CallFrameShuffler::firstNew):
(JSC::CallFrameShuffler::lastNew):
(JSC::CallFrameShuffler::isValidNew):
(JSC::CallFrameShuffler::newAsOld):
(JSC::CallFrameShuffler::getFreeRegister):
(JSC::CallFrameShuffler::getFreeGPR):
(JSC::CallFrameShuffler::getFreeFPR):
(JSC::CallFrameShuffler::hasFreeRegister):
(JSC::CallFrameShuffler::ensureRegister):
(JSC::CallFrameShuffler::ensureGPR):
(JSC::CallFrameShuffler::ensureFPR):
(JSC::CallFrameShuffler::addressForOld):
(JSC::CallFrameShuffler::isUndecided):
(JSC::CallFrameShuffler::isSlowPath):
(JSC::CallFrameShuffler::addressForNew):
(JSC::CallFrameShuffler::dangerFrontier):
(JSC::CallFrameShuffler::isDangerNew):
(JSC::CallFrameShuffler::updateDangerFrontier):
(JSC::CallFrameShuffler::hasOnlySafeWrites):

  • jit/CallFrameShuffler32_64.cpp: Added.

(JSC::CallFrameShuffler::emitStore):
(JSC::CallFrameShuffler::emitBox):
(JSC::CallFrameShuffler::emitLoad):
(JSC::CallFrameShuffler::canLoad):
(JSC::CachedRecovery::loadsIntoFPR):
(JSC::CachedRecovery::loadsIntoGPR):
(JSC::CallFrameShuffler::emitDisplace):

  • jit/CallFrameShuffler64.cpp: Added.

(JSC::CallFrameShuffler::emitStore):
(JSC::CallFrameShuffler::emitBox):
(JSC::CallFrameShuffler::emitLoad):
(JSC::CallFrameShuffler::canLoad):
(JSC::CachedRecovery::loadsIntoFPR):
(JSC::CachedRecovery::loadsIntoGPR):
(JSC::CallFrameShuffler::emitDisplace):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):

  • jit/RegisterMap.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

3:50 PM Changeset in webkit [188936] by basile_clement@apple.com
  • 15 edits
    1 move
    1 delete in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Get rid of FTLValueFormat
https://bugs.webkit.org/show_bug.cgi?id=148448

Reviewed by Michael Saboff.

FTL::ValueFormat is nothing more than DataFormat (and is actually
slightly less). Let's get rid of it.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/DataFormat.cpp: Renamed from Source/JavaScriptCore/ftl/FTLValueFormat.h.

(WTF::printInternal):

  • bytecode/DataFormat.h:
  • ftl/FTLAvailableRecovery.h:

(JSC::FTL::AvailableRecovery::AvailableRecovery):
(JSC::FTL::AvailableRecovery::format):

  • ftl/FTLExitArgument.h:

(JSC::FTL::ExitArgument::ExitArgument):
(JSC::FTL::ExitArgument::operator!):
(JSC::FTL::ExitArgument::format):
(JSC::FTL::ExitArgument::withFormat):

  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dataFormat):

  • ftl/FTLExitValue.h:

(JSC::FTL::ExitValue::recovery):
(JSC::FTL::ExitValue::recoveryFormat):

  • ftl/FTLFormattedValue.h:

(JSC::FTL::FormattedValue::FormattedValue):
(JSC::FTL::FormattedValue::operator!):
(JSC::FTL::FormattedValue::format):
(JSC::FTL::int32Value):
(JSC::FTL::booleanValue):
(JSC::FTL::jsValueValue):
(JSC::FTL::doubleValue):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::convertDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForNode):
(JSC::FTL::DFG::LowerDFGToLLVM::exitArgument):
(JSC::FTL::DFG::LowerDFGToLLVM::addAvailableRecovery):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExit::OSRExit):

  • ftl/FTLOSRExit.h:
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::reboxAccordingToFormat):
(JSC::FTL::compileRecovery):
(JSC::FTL::compileStub):

  • ftl/FTLValueFormat.cpp: Removed.
3:44 PM Changeset in webkit [188935] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Using the filter functional notation for background images results in wrong background-size rendering
https://bugs.webkit.org/show_bug.cgi?id=148221
rdar://problem/22379518

Reviewed by Daniel Bates.

Do not ignore the size argument, when the filter image is being drawn onto the context.
When the size is ignored, we end up painting the image with its native size while the filter
is applied on the size of the generated image.

Source/WebCore:

Test: fast/filter-image/background-filter-image.html

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

LayoutTests:

  • fast/filter-image/background-filter-image-expected.html: Added.
  • fast/filter-image/background-filter-image.html: Added.
3:09 PM Changeset in webkit [188934] by basile_clement@apple.com
  • 3 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Add an option to disable tail calls
https://bugs.webkit.org/show_bug.cgi?id=148447

Reviewed by Michael Saboff.

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode):

  • runtime/Options.h:
3:01 PM Changeset in webkit [188933] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Speculative build fix.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):

12:40 PM Changeset in webkit [188932] by saambarati1@gmail.com
  • 28 edits in trunk/Source/JavaScriptCore

Lets rename codeOriginIndex to callSiteIndex and get rid of CallFrame::Location.
https://bugs.webkit.org/show_bug.cgi?id=148213

Reviewed by Filip Pizlo.

This patch introduces a struct called CallSiteIndex which is
used as a wrapper for a 32-bit int to place things in the tag for ArgumentCount
in the call frame. On 32-bit we place Instruction* into this slot for LLInt and Basline.
For 32-bit DFG we place a an index into the code origin table in this slot.
On 64-bit we place a bytecode offset into this slot for LLInt and Baseline.
On 64-bit we place the index into the code origin table in this slot in the
DFG/FTL.

This patch also gets rid of the encoding scheme that describes if something is a
bytecode index or a code origin table index. This information can always
be determined based on the CodeBlock's' JITType.

StructureStubInfo now also has a CallSiteIndex which it stores to
the call frame when making a call.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasCodeOrigins):
(JSC::CodeBlock::canGetCodeOrigin):
(JSC::CodeBlock::codeOrigin):
(JSC::CodeBlock::addFrequentExitSite):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::StructureStubInfo):

  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::notifyCompilingStructureTransition):
(JSC::DFG::CommonData::addCodeOrigin):
(JSC::DFG::CommonData::shrinkToFit):

  • dfg/DFGCommonData.h:

(JSC::DFG::CommonData::CommonData):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::setEndOfCode):
(JSC::DFG::JITCompiler::addCallSite):
(JSC::DFG::JITCompiler::emitStoreCodeOrigin):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIn):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLInlineCacheDescriptor.h:

(JSC::FTL::InlineCacheDescriptor::InlineCacheDescriptor):
(JSC::FTL::InlineCacheDescriptor::stackmapID):
(JSC::FTL::InlineCacheDescriptor::callSiteIndex):
(JSC::FTL::InlineCacheDescriptor::uid):
(JSC::FTL::GetByIdDescriptor::GetByIdDescriptor):
(JSC::FTL::PutByIdDescriptor::PutByIdDescriptor):
(JSC::FTL::CheckInDescriptor::CheckInDescriptor):
(JSC::FTL::InlineCacheDescriptor::codeOrigin): Deleted.

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileIn):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::callPreflight):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::storeCodeOrigin):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::currentVPC):
(JSC::CallFrame::setCurrentVPC):
(JSC::CallFrame::callSiteBitsAsBytecodeOffset):
(JSC::CallFrame::bytecodeOffset):
(JSC::CallFrame::codeOrigin):
(JSC::CallFrame::topOfFrameInternal):
(JSC::CallFrame::locationAsBytecodeOffset): Deleted.
(JSC::CallFrame::setLocationAsBytecodeOffset): Deleted.
(JSC::CallFrame::bytecodeOffsetFromCodeOriginIndex): Deleted.

  • interpreter/CallFrame.h:

(JSC::CallSiteIndex::CallSiteIndex):
(JSC::CallSiteIndex::bits):
(JSC::ExecState::returnPCOffset):
(JSC::ExecState::abstractReturnPC):
(JSC::ExecState::topOfFrame):
(JSC::ExecState::setCallerFrame):
(JSC::ExecState::setScope):
(JSC::ExecState::currentVPC): Deleted.
(JSC::ExecState::setCurrentVPC): Deleted.

  • interpreter/CallFrameInlines.h:

(JSC::CallFrame::callSiteBitsAreBytecodeOffset):
(JSC::CallFrame::callSiteBitsAreCodeOriginIndex):
(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::hasActivation):
(JSC::CallFrame::Location::encode): Deleted.
(JSC::CallFrame::Location::decode): Deleted.
(JSC::CallFrame::Location::encodeAsBytecodeOffset): Deleted.
(JSC::CallFrame::Location::encodeAsBytecodeInstruction): Deleted.
(JSC::CallFrame::Location::encodeAsCodeOriginIndex): Deleted.
(JSC::CallFrame::Location::isBytecodeLocation): Deleted.
(JSC::CallFrame::Location::isCodeOriginIndex): Deleted.
(JSC::CallFrame::hasLocationAsBytecodeOffset): Deleted.
(JSC::CallFrame::hasLocationAsCodeOriginIndex): Deleted.
(JSC::CallFrame::locationAsRawBits): Deleted.
(JSC::CallFrame::setLocationAsRawBits): Deleted.
(JSC::CallFrame::locationAsBytecodeOffset): Deleted.
(JSC::CallFrame::setLocationAsBytecodeOffset): Deleted.
(JSC::CallFrame::locationAsCodeOriginIndex): Deleted.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::readFrame):
(JSC::StackVisitor::readNonInlinedFrame):
(JSC::StackVisitor::Frame::print):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::garbageStubInfo):
(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::generateFastPathChecks):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::stubInfo):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):

  • jit/JITInlines.h:

(JSC::JIT::updateTopCallFrame):

  • jit/JITOperations.cpp:

(JSC::getByVal):
(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):

  • jit/Repatch.cpp:

(JSC::generateByIdStub):

12:16 PM Changeset in webkit [188931] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

IconDatabase: syncThreadMainLoop() is unlocking m_syncLock twice when thread termination is requested
https://bugs.webkit.org/show_bug.cgi?id=148429

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2015-08-25
Reviewed by Filip Pizlo.

The lock is released an locked on every loop iteration, and then
unlocked again after the loop. There's an early break in the loop
when thread termination is requested that happens after the lock
is released but before is locked again, so that the unlock after
the loop is trying to unlock the lock again. This was not a
problem before, but the new Lock has an assertion to ensure that a
lock is not released twice.

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::syncThreadMainLoop): Clean up the thread
and return instead of breaking the loop when thread termination is
requested.

12:14 PM Changeset in webkit [188930] by commit-queue@webkit.org
  • 7 edits in trunk

[Mac] accessibility/document-attributes.html fails
https://bugs.webkit.org/show_bug.cgi?id=116636

Patch by Nan Wang <n_wang@apple.com> on 2015-08-25
Reviewed by Chris Fleizach.

Source/WebCore:

Re-enabled accessibility/document-attributes.html test.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Implemented documentURI() and documentEncoding().

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::documentEncoding):
(AccessibilityUIElement::documentURI):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):

LayoutTests:

  • platform/mac/TestExpectations:
12:13 PM Changeset in webkit [188929] by Michael Catanzaro
  • 3 edits in trunk

[GTK] r186800 broke the build on Ubuntu 14.04
https://bugs.webkit.org/show_bug.cgi?id=147559

Reviewed by Martin Robinson.

  • Source/cmake/FindGTK3.cmake: Always define GTK3_SUPPORTS_X11 and GTK3_SUPPORTS_WAYLAND.
  • Source/cmake/OptionsGTK.cmake: Autodetect support for X11 and Wayland backends.
12:10 PM Changeset in webkit [188928] by commit-queue@webkit.org
  • 8 edits
    4 adds in trunk

Function.prototype.toString is incorrect for ArrowFunction
https://bugs.webkit.org/show_bug.cgi?id=148148

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-08-25
Reviewed by Saam Barati.

Added correct support of toString() method for arrow function.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionMetadata):
(JSC::ASTBuilder::createArrowFunctionExpr):

  • parser/Nodes.cpp:

(JSC::FunctionMetadataNode::FunctionMetadataNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createFunctionMetadata):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • tests/stress/arrowfunction-tostring.js: Added.

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-08-25
Reviewed by Saam Barati.

Added test of toString() method.

  • js/arrowfunction-tostring-expected.txt: Added.
  • js/arrowfunction-tostring.html: Added.
  • js/script-tests/arrowfunction-tostring.js: Added.
12:07 PM Changeset in webkit [188927] by mmaxfield@apple.com
  • 5 edits in trunk/LayoutTests

Test gardening
<rdar://problem/22420410>

Unreviewed.

Updating test expected results according to Kinsoku Shori.

  • css3/line-break-language-sensitive/line-break-auto-hyphens-expected.html:
  • css3/line-break-language-sensitive/line-break-auto-sound-marks-expected.html:
11:40 AM Changeset in webkit [188926] by saambarati1@gmail.com
  • 4 edits
    2 adds in trunk/Source/JavaScriptCore

Callee can be incorrectly overridden when it's captured
https://bugs.webkit.org/show_bug.cgi?id=148400

Reviewed by Filip Pizlo.

We now resort to always creating the function name scope
when the function name is in scope. Because the bytecode
generator now has a notion of local lexical scoping,
this incurs no runtime penalty for function expression names
that aren't heap allocated. If they are heap allocated,
this means we may now have one more scope on the runtime
scope stack than before. This modification simplifies the
callee initialization code and uses the lexical scoping constructs
to implement this. This implementation also ensures
that everything Just Works for function's with default
parameter values. Before this patch, IIFE functions
with default parameter values and a captured function
name would crash JSC.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitThrowTypeError):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):

  • bytecompiler/BytecodeGenerator.h:

(JSC::Variable::isReadOnly):
(JSC::Variable::isSpecial):
(JSC::Variable::isConst):
(JSC::Variable::setIsReadOnly):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::BindingNode::bindValue):

  • tests/stress/IIFE-es6-default-parameters.js: Added.

(assert):
(.):

  • tests/stress/IIFE-function-name-captured.js: Added.

(assert):
(.):

11:38 AM Changeset in webkit [188925] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, fix typo introduced in r188917

11:19 AM Changeset in webkit [188924] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Long press gesture recognizer should adjust delay based on other recognizers
https://bugs.webkit.org/show_bug.cgi?id=148402
-and corresponding-
rdar://problem/22278723

Reviewed by Tim Horton.

Call _setAdjustsDelayBasedOnOtherRecognizers with a value of YES.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):

11:13 AM Changeset in webkit [188923] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(VIDEO) build after r188693
https://bugs.webkit.org/show_bug.cgi?id=148424

Reviewed by Tim Horton.

  • page/ChromeClient.h:
11:10 AM Changeset in webkit [188922] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Don't clear AVPlayerItem when pausing if AirPlay is active
https://bugs.webkit.org/show_bug.cgi?id=148319

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Do nothing if the session

is allowed to load data when in the background and we are not under memory pressure.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionCanLoadMedia): Call base class.

11:04 AM Changeset in webkit [188921] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_REGIONS) build after r188663
https://bugs.webkit.org/show_bug.cgi?id=148425

Reviewed by Chris Dumez.

  • bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
11:03 AM Changeset in webkit [188920] by Brent Fulgham
  • 5 edits
    2 adds in trunk

Wheel events stop propagating when target element is removed from DOM
https://bugs.webkit.org/show_bug.cgi?id=148384
<rdar://problem/19732211>

Reviewed by David Hyatt.

Source/WebCore:

Tested by tiled-drawing/scrolling/latched-to-deleted-node.html

We need to reset our latching state if the targeted node is removed from the DOM.
Add a check in 'platformPrepareForWheelEvents' that checks if the expected latching
target node was already removed from the DOM. If it was, we should not send events
to it, and should reset latching state so we can attach to the next relevant node.

  • dom/Element.cpp:

(WebCore::Element::removedFrom): Remove any latched wheel event state objects that
match the current element.

  • page/MainFrame.cpp:

(WebCore::MainFrame::removeLatchingStateForTarget): Remove any latched wheel event
state structures that match the passed wheel event target.

  • page/MainFrame.h:

LayoutTests:

  • tiled-drawing/scrolling/latched-to-deleted-node-expected.txt: Added.
  • tiled-drawing/scrolling/latched-to-deleted-node.html: Added.
11:01 AM Changeset in webkit [188919] by peavo@outlook.com
  • 2 edits in trunk

[Win] Build does not generate debug info.
https://bugs.webkit.org/show_bug.cgi?id=148431

Reviewed by Brent Fulgham.

Generate debug info for Windows builds.

  • Source/cmake/OptionsWin.cmake:
11:00 AM Changeset in webkit [188918] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Fix crash due to search field disappearing when showing results menu
https://bugs.webkit.org/show_bug.cgi?id=148410
<rdar://problem/22399850>

Reviewed by Brent Fulgham.

When clicking on the results button of a search field that hides upon being focused, WebKit will crash because we
attempt to toggle the results menu using the search field's renderer which is null. This is addressed by adding a null
check to make sure the search field has not been hidden before toggling the menu.

Test: fast/forms/search/search-results-hidden-crash.html

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Add a null check for the search field's renderer.

10:58 AM Changeset in webkit [188917] by Chris Dumez
  • 9 edits in trunk

compareDocumentPosition() should report PRECEDING or FOLLOWING information even if nodes are disconnected
https://bugs.webkit.org/show_bug.cgi?id=119316

Reviewed by Darin Adler.

Source/WebCore:

As the latest DOM specification, compareDocumentPosition() should report
PRECEDING or FOLLOWING information even if nodes are disconnected:

This behavior is consistent with both IE10, Firefox and Chrome.

The implementation relies on the comparison of cryptographic hashes
(SHA1) of the Node pointers so that the results returned by the function
are consistent. We don't compare Node pointers directly as it was done
previously in r153660 to avoid leaking information about our memory
model to the Web.

Test: fast/dom/compare-document-position-disconnected-nodes.html
W3C Test suite: http://w3c-test.org/dom/nodes/Node-compareDocumentPosition.html

  • dom/Node.cpp:

(WebCore::hashPointer):
(WebCore::compareDetachedElementsPosition):
(WebCore::Node::compareDocumentPosition):

LayoutTests:

Update fast/dom/compare-document-position-disconnected-nodes.html to check that compareDocumentPosition()
now returns one of the following values for disconnected nodes:

  • DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_PRECEDING
  • DOCUMENT_POSITION_DISCONNECTED | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | DOCUMENT_POSITION_FOLLOWING

Several dom/xhtml/level3 are skipped and marked as WonfFix because they are outdated and no longer match
the latest DOM specification. They expect compareDocumentPosition() not to return PRECEDING / FOLLOWING
information for disconnected nodes.

  • dom/xhtml/level3/core/nodecomparedocumentposition38-expected.txt:
  • fast/dom/compare-document-position-disconnected-nodes-expected.txt:
  • fast/dom/compare-document-position-disconnected-nodes.html:
  • fast/dom/shadow/compare-document-position-expected.txt:
  • fast/dom/shadow/compare-document-position.html:
10:55 AM Changeset in webkit [188916] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frames pie chart should use the needsLayout/updateLayout idiom
https://bugs.webkit.org/show_bug.cgi?id=148412

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
Schedule a layout.
(WebInspector.ChartDetailsSectionRow.prototype.set data): Deleted.
Replaced by addItem, setItemValue, and clearItems.
(WebInspector.ChartDetailsSectionRow.prototype.addItem):
(WebInspector.ChartDetailsSectionRow.prototype.setItemValue):
(WebInspector.ChartDetailsSectionRow.prototype.clearItems):
Add/update data points and schedule a layout.
(WebInspector.ChartDetailsSectionRow.prototype._needsLayout):
(WebInspector.ChartDetailsSectionRow.prototype.updateLayout):
Update legend and draw pie chart.
(WebInspector.ChartDetailsSectionRow.prototype._createLegend): Deleted.
Refactored as _updateLegend.
(WebInspector.ChartDetailsSectionRow.prototype._refresh): Deleted.
Refactored as updateLayout.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
Add chart data points once.
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart):
Update chart values.

10:36 AM Changeset in webkit [188915] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Tools

Merge r188701 - Unreviewed, shorten a test that runs too long and times out.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

10:35 AM Changeset in webkit [188914] by Carlos Garcia Campos
  • 8 edits
    1 delete in releases/WebKitGTK/webkit-2.10/Source

Merge r188677 - Remove WTF::SpinLock
https://bugs.webkit.org/show_bug.cgi?id=148208

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Remove the one remaining use of SpinLock.

  • API/JSValue.mm:

(handerForStructTag):

Source/WTF:

Remove the SpinLock.h file and remove references to the SpinLock class. Put the old SpinLock
algorithm in LockSpeedTest.cpp - which isn't compiled as part of a WTF or WebKit build - just
so we can still benchmark our locking algorithms against a spinlock baseline.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CMakeLists.txt:
  • wtf/Lock.h:
  • wtf/SpinLock.h: Removed.
  • wtf/WordLock.h:
10:04 AM Changeset in webkit [188913] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Add support for callback interfaces using other callback names than "handleEvent"
https://bugs.webkit.org/show_bug.cgi?id=148418

Reviewed by Ryosuke Niwa.

Add support for callback interfaces using other callback names than
"handleEvent" [1].

This is a pre-requirement for Bug 148415, as NodeFilter's callback
function name is "acceptNode":

[1] https://heycam.github.io/webidl/#es-user-objects

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCallbackData.h:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithArrayParam):
(WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):

10:02 AM Changeset in webkit [188912] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Require GCC version at least 4.9
https://bugs.webkit.org/show_bug.cgi?id=148430

Reviewed by Darin Adler.

  • wtf/Compiler.h:
10:01 AM WebKitGTK/2.10.x edited by Michael Catanzaro
propose r188902 (diff)
9:53 AM Changeset in webkit [188911] by Carlos Garcia Campos
  • 67 edits in releases/WebKitGTK/webkit-2.10/Source

Merge r188642 - Replace all uses of std::mutex/std::condition_variable with WTF::Lock/WTF::Condition
https://bugs.webkit.org/show_bug.cgi?id=148140

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::registerDebuggable):
(Inspector::RemoteInspector::unregisterDebuggable):
(Inspector::RemoteInspector::updateDebuggable):
(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate):
(Inspector::RemoteInspector::sendMessageToRemoteFrontend):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupCompleted):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stop):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::setParentProcessInformation):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::pushListingSoon):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):

  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::close):
(Inspector::RemoteInspectorXPCConnection::closeFromMessage):
(Inspector::RemoteInspectorXPCConnection::deserializeMessage):
(Inspector::RemoteInspectorXPCConnection::handleEvent):

Source/WebCore:

No new tests because no new behavior.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::process):
(WebCore::ConvolverNode::reset):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::process):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::process):
(WebCore::OscillatorNode::setPeriodicWave):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):
(WebCore::WaveShaperProcessor::process):

  • Modules/webaudio/WaveShaperProcessor.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::retrieveTextResultFromDatabase):
(WebCore::guidToVersionMap):
(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::closeDatabase):
(WebCore::Database::getCachedVersion):
(WebCore::Database::setCachedVersion):
(WebCore::guidMutex): Deleted.

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::didConstructDatabaseContext):
(WebCore::DatabaseManager::didDestructDatabaseContext):
(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • Modules/webdatabase/DatabaseManager.h:
  • bindings/objc/DOMInternal.mm:

(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):
(wrapperCacheLock): Deleted.

  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::singleton):
(WebCore::CryptoAlgorithmRegistry::CryptoAlgorithmRegistry):
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
(WebCore::registryMutex): Deleted.

  • inspector/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::interruptAndDispatchInspectorCommands):

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::clearAllTestDeferrals):
(WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer):
(WebCore::WheelEventTestTrigger::deferTestsForReason):
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason):
(WebCore::WheelEventTestTrigger::triggerTestTimerFired):

  • page/WheelEventTestTrigger.h:
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):

  • page/scrolling/ScrollingThread.h:
  • page/scrolling/mac/ScrollingThreadMac.mm:

(WebCore::ScrollingThread::initializeRunLoop):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::~ReverbConvolver):
(WebCore::ReverbConvolver::backgroundThreadEntry):
(WebCore::ReverbConvolver::process):
(WebCore::ReverbConvolver::reset):

  • platform/audio/ReverbConvolver.h:
  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/Language.mm:

(WebCore::preferredLanguages):
(+[WebLanguageChangeObserver languagePreferencesDidChange:]):
(WebCore::platformUserPreferredLanguages):
(WebCore::preferredLanguagesMutex): Deleted.

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::emptyPerform):
(WebCore::runLoaderThread):
(WebCore::loaderRunLoop):
(WebCore::loaderRunLoopMutex): Deleted.
(WebCore::loaderRunLoopConditionVariable): Deleted.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::callOnMainThreadAndWait):

  • platform/network/curl/SocketStreamHandle.h:
  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::sendData):

  • platform/sql/SQLiteDatabaseTracker.cpp:

(WebCore::SQLiteDatabaseTracker::setClient):
(WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::transactionInProgressMutex): Deleted.

  • platform/text/TextBreakIterator.cpp:

(WebCore::compareAndSwapNonSharedCharacterBreakIterator):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::newTextCodec):
(WebCore::atomicCanonicalTextEncodingName):
(WebCore::dumpTextEncodingNameMap):
(WebCore::encodingRegistryMutex): Deleted.

  • workers/WorkerThread.cpp:

(WebCore::workerThreads):
(WebCore::WorkerThread::workerThreadCount):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::~WorkerThread):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
(WebCore::threadSetMutex): Deleted.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::traverse):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::SyncMessageState::dispatchMessageAndResetDidScheduleDispatchMessagesForConnection):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
(IPC::Connection::hasIncomingSyncMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchOneMessage):

  • Platform/IPC/Connection.h:
  • Shared/BlockingResponseMap.h:

(BlockingResponseMap::waitForResponse):
(BlockingResponseMap::didReceiveResponse):
(BlockingResponseMap::cancel):

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/Plugins/gtk/PluginInfoCache.h:
  • UIProcess/mac/WKPrintingView.h:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(prepareDataForPrintingOnSecondaryThread):
(-[WKPrintingView knowsPageRange:]):

Source/WTF:

Also beef up Condition by giving it a StaticCondition variant.

  • wtf/Condition.h:

(WTF::ConditionBase::notifyAll):
(WTF::ConditionBase::waitForSecondsImpl):
(WTF::ConditionBase::absoluteFromRelative):
(WTF::Condition::Condition):
(WTF::Condition::notifyAll): Deleted.
(WTF::Condition::waitForSecondsImpl): Deleted.
(WTF::Condition::absoluteFromRelative): Deleted.

  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/HashTable.cpp:

(WTF::HashTableStats::recordCollisionAtCount):
(WTF::HashTableStats::dumpStats):
(WTF::hashTableStatsMutex): Deleted.

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):
(WTF::KeyTraits>::invalidateIterators):
(WTF::addIterator):
(WTF::removeIterator):

  • wtf/Lock.h:
  • wtf/MainThread.cpp:

(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
(WTF::cancelCallOnMainThread):
(WTF::mainThreadFunctionQueueMutex): Deleted.

  • wtf/StackStats.cpp:

(WTF::StackStats::PerThreadStats::PerThreadStats):
(WTF::StackStats::CheckPoint::CheckPoint):
(WTF::StackStats::CheckPoint::~CheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
(WTF::StackStats::initialize): Deleted.

  • wtf/StackStats.h:

(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::initialize): Deleted.

  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::callOnMainThread):
(WTF::lockAtomicallyInitializedStaticMutex):
(WTF::unlockAtomicallyInitializedStaticMutex):
(WTF::atomicallyInitializedStaticMutex): Deleted.

  • wtf/text/StringView.cpp:

(WTF::StringView::UnderlyingString::UnderlyingString):
(WTF::underlyingStrings):
(WTF::StringView::invalidate):
(WTF::StringView::adoptUnderlyingString):
(WTF::StringView::setUnderlyingString):
(WTF::underlyingStringsMutex): Deleted.

  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::Collator):
(WTF::Collator::~Collator):
(WTF::cachedCollatorMutex): Deleted.

9:17 AM Changeset in webkit [188910] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WTF

Merge r188605 - WTF::Condition should have a fast path for notifyOne/notifyAll that avoids calling unparkOne/unparkAll
https://bugs.webkit.org/show_bug.cgi?id=148090

Reviewed by Geoffrey Garen.

This change makes notifyOne()/notifyAll() blazing fast when nobody is waiting, by using the
various hooks that ParkingLot gives us to maintain a m_hasWaiters variable. When it's false, it
means that any unpark operation would simply return immediately.

This is a 45% speed-up for the 1-producer/1-consumer scenario with a 100-element queue when you
use the notifyOne()-per-enqueue style. What's cool about this change is that you can now safely
call notifyOne() (or notifyAll()) out of paranoia, just in case someone might be waiting. It's
free to do so if nobody is waiting!

  • wtf/Condition.h:

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):

8:53 AM WebKitGTK/2.10.x edited by Michael Catanzaro
Propose bug #148430 (diff)
8:50 AM Changeset in webkit [188909] by Carlos Garcia Campos
  • 108 edits
    1 add in releases/WebKitGTK/webkit-2.10

Merge r188594 - Replace all remaining uses of WTF::Mutex with WTF::Lock
https://bugs.webkit.org/show_bug.cgi?id=148089

Reviewed by Geoffrey Garen.

Source/WebCore:

No new tests because no new behavior.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::runLoop):

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::addAudioConsumer):
(WebCore::MediaStreamAudioSource::removeAudioConsumer):
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/MediaStreamAudioSource.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::close):
(WebCore::Database::runTransaction):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::hasPendingTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTaskSynchronizer::taskCompleted):

  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::setDatabaseDirectoryPath):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::closeAllDatabases):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::DatabaseTracker::setClient):
(WebCore::notificationMutex):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::notifyDatabasesChanged):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/webdatabase/OriginLock.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):
(WebCore::SQLCallbackWrapper::hasCallback):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::enqueueStatementBackend):
(WebCore::SQLTransactionBackend::getNextStatement):

  • Modules/webdatabase/SQLTransactionBackend.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::scheduleExecutionTermination):
(WebCore::WorkerScriptController::isExecutionTerminating):

  • bindings/js/WorkerScriptController.h:
  • dom/default/PlatformMessagePortChannel.cpp:

(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::MessagePortChannel::locallyEntangledPort):
(WebCore::PlatformMessagePortChannel::setRemotePort):
(WebCore::PlatformMessagePortChannel::entangledChannel):
(WebCore::PlatformMessagePortChannel::closeInternal):

  • dom/default/PlatformMessagePortChannel.h:
  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::removeAllIcons):
(WebCore::IconDatabase::synchronousIconForPageURL):
(WebCore::IconDatabase::synchronousNativeIconForPageURL):
(WebCore::IconDatabase::synchronousIconURLForPageURL):
(WebCore::IconDatabase::retainIconForPageURL):
(WebCore::IconDatabase::performRetainIconForPageURL):
(WebCore::IconDatabase::releaseIconForPageURL):
(WebCore::IconDatabase::performReleaseIconForPageURL):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::setIconURLForPageURL):
(WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
(WebCore::IconDatabase::synchronousIconDataKnownForIconURL):
(WebCore::IconDatabase::pageURLMappingCount):
(WebCore::IconDatabase::retainedPageURLCount):
(WebCore::IconDatabase::iconRecordCount):
(WebCore::IconDatabase::iconRecordCountWithData):
(WebCore::IconDatabase::wakeSyncThread):
(WebCore::IconDatabase::scheduleOrDeferSyncTimer):
(WebCore::IconDatabase::isOpenBesidesMainThreadCallbacks):
(WebCore::IconDatabase::databasePath):
(WebCore::IconDatabase::getOrCreatePageURLRecord):
(WebCore::IconDatabase::iconDatabaseSyncThread):
(WebCore::IconDatabase::performOpenInitialization):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::syncThreadMainLoop):
(WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
(WebCore::IconDatabase::readFromDatabase):
(WebCore::IconDatabase::writeToDatabase):
(WebCore::IconDatabase::pruneUnretainedIcons):
(WebCore::IconDatabase::cleanupSyncThread):

  • loader/icon/IconDatabase.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFramePinState):
(WebCore::ScrollingTree::mainFrameScrollPosition):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion):
(WebCore::ScrollingTree::isRubberBandInProgress):
(WebCore::ScrollingTree::setMainFrameIsRubberBanding):
(WebCore::ScrollingTree::isScrollSnapInProgress):
(WebCore::ScrollingTree::setMainFrameIsScrollSnapping):
(WebCore::ScrollingTree::setCanRubberBandState):
(WebCore::ScrollingTree::rubberBandsAtLeft):
(WebCore::ScrollingTree::rubberBandsAtRight):
(WebCore::ScrollingTree::rubberBandsAtBottom):
(WebCore::ScrollingTree::rubberBandsAtTop):
(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
(WebCore::ScrollingTree::latchedNode):
(WebCore::ScrollingTree::setLatchedNode):
(WebCore::ScrollingTree::clearLatchedNode):

  • page/scrolling/ScrollingTree.h:
  • platform/MemoryPressureHandler.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):

  • platform/audio/HRTFDatabaseLoader.h:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setMonotonicAnimationStartTime):
(WebCore::DisplayRefreshMonitor::mutex):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setDelayCallbacks):
(WebCore::MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::callbackContext):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::mapLock):
(WebCore::AVFWrapper::addToMap):
(WebCore::AVFWrapper::removeFromMap):
(WebCore::AVFWrapper::periodicTimeObserverCallback):
(WebCore::AVFWrapper::processNotification):
(WebCore::AVFWrapper::loadPlayableCompletionCallback):
(WebCore::AVFWrapper::loadMetadataCompletionCallback):
(WebCore::AVFWrapper::seekCompletedCallback):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::processShouldWaitForLoadingOfResource):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::handleSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::addListener):
(WebCore::MediaPlayerPrivateMediaFoundation::removeListener):
(WebCore::MediaPlayerPrivateMediaFoundation::notifyDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Invoke):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::onMediaPlayerDeleted):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
  • platform/ios/LegacyTileCache.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::setTilesOpaque):
(WebCore::LegacyTileCache::doLayoutTiles):
(WebCore::LegacyTileCache::setCurrentScale):
(WebCore::LegacyTileCache::commitScaleChange):
(WebCore::LegacyTileCache::layoutTilesNow):
(WebCore::LegacyTileCache::layoutTilesNowForRect):
(WebCore::LegacyTileCache::removeAllNonVisibleTiles):
(WebCore::LegacyTileCache::removeAllTiles):
(WebCore::LegacyTileCache::removeForegroundTiles):
(WebCore::LegacyTileCache::setContentReplacementImage):
(WebCore::LegacyTileCache::contentReplacementImage):
(WebCore::LegacyTileCache::tileCreationTimerFired):
(WebCore::LegacyTileCache::setNeedsDisplayInRect):
(WebCore::LegacyTileCache::updateTilingMode):
(WebCore::LegacyTileCache::setTilingMode):
(WebCore::LegacyTileCache::doPendingRepaints):
(WebCore::LegacyTileCache::flushSavedDisplayRects):
(WebCore::LegacyTileCache::prepareToDraw):

  • platform/ios/LegacyTileLayerPool.h:
  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::takeLayerWithSize):
(WebCore::LegacyTileLayerPool::setCapacity):
(WebCore::LegacyTileLayerPool::prune):
(WebCore::LegacyTileLayerPool::drain):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownloadManager::add):
(WebCore::CurlDownloadManager::remove):
(WebCore::CurlDownloadManager::getActiveDownloadCount):
(WebCore::CurlDownloadManager::getPendingDownloadCount):
(WebCore::CurlDownloadManager::stopThreadIfIdle):
(WebCore::CurlDownloadManager::updateHandleList):
(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::getTempPath):
(WebCore::CurlDownload::getUrl):
(WebCore::CurlDownload::getResponse):
(WebCore::CurlDownload::closeFile):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData):
(WebCore::CurlDownload::didFail):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::cookieJarPath):
(WebCore::sharedResourceMutex):
(WebCore::curl_lock_callback):
(WebCore::curl_unlock_callback):

  • platform/network/ios/QuickLook.mm:

(WebCore::QLDirectoryAttributes):
(qlPreviewConverterDictionaryMutex):
(WebCore::addQLPreviewConverterWithFileForURL):
(WebCore::qlPreviewConverterUTIForURL):
(WebCore::removeQLPreviewConverterForURL):
(WebCore::safeQLURLForDocumentURLAndResourceURL):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
(WebCore::SQLiteDatabase::setAuthorizer):

  • platform/sql/SQLiteDatabase.h:

(WebCore::SQLiteDatabase::databaseMutex):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::prepare):
(WebCore::SQLiteStatement::step):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThread::stop):

  • workers/WorkerThread.h:

Source/WebKit:

  • Storage/StorageAreaSync.cpp:

(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::markImported):
(WebCore::StorageAreaSync::blockUntilImportComplete):
(WebCore::StorageAreaSync::performSync):

  • Storage/StorageAreaSync.h:
  • Storage/StorageTracker.cpp:

(WebCore::StorageTracker::setDatabaseDirectoryPath):
(WebCore::StorageTracker::finishedImportingOriginIdentifiers):
(WebCore::StorageTracker::syncImportOriginIdentifiers):
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
(WebCore::StorageTracker::syncSetOriginDetails):
(WebCore::StorageTracker::origins):
(WebCore::StorageTracker::deleteAllOrigins):
(WebCore::StorageTracker::syncDeleteAllOrigins):
(WebCore::StorageTracker::deleteOrigin):
(WebCore::StorageTracker::syncDeleteOrigin):
(WebCore::StorageTracker::canDeleteOrigin):
(WebCore::StorageTracker::cancelDeletingOrigin):
(WebCore::StorageTracker::diskUsageForOrigin):

  • Storage/StorageTracker.h:

Source/WebKit/ios:

  • WebCoreSupport/WebFixedPositionContent.mm:

(WebFixedPositionContentDataLock):
(-[WebFixedPositionContent scrollOrZoomChanged:]):
(-[WebFixedPositionContent overflowScrollPositionForLayer:changedTo:]):
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):
(-[WebFixedPositionContent hasFixedOrStickyPositionLayers]):
(-[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]):

Source/WebKit/mac:

  • Storage/WebDatabaseManager.mm:

(transactionBackgroundTaskIdentifierLock):
(+[WebDatabaseManager startBackgroundTask]):
(+[WebDatabaseManager endBackgroundTask]):

  • WebView/WebView.mm:

(-[WebView _synchronizeCustomFixedPositionLayoutRect]):
(-[WebView _setCustomFixedPositionLayoutRectInWebThread:synchronize:]):
(-[WebView _setCustomFixedPositionLayoutRect:]):
(-[WebView _fetchCustomFixedPositionLayoutRect:]):

  • WebView/WebViewData.h:

Source/WebKit/win:

  • Plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::registerPlugin):
(WebCore::PluginMainThreadScheduler::unregisterPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):

  • Plugins/PluginMainThreadScheduler.h:
  • WebIconDatabase.cpp:

(WebIconDatabase::didRemoveAllIcons):
(WebIconDatabase::didImportIconURLForPageURL):
(WebIconDatabase::deliverNotifications):

  • WebIconDatabase.h:
  • WebLocalizableStrings.cpp:

(mainBundleLocStrings):
(frameworkLocStringsMutex):
(findCachedString):
(cacheString):

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::shutdown):
(WebKit::UniqueIDBDatabase::postMainThreadTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask):
(WebKit::UniqueIDBDatabase::performNextDatabaseTask):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):

  • Platform/IPC/Connection.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::appendUpdate):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createCompositingThread):
(WebKit::ThreadedCompositor::runCompositingThread):
(WebKit::ThreadedCompositor::terminateCompositingThread):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(WebKit::CustomProtocolManager::addCustomProtocol):
(WebKit::CustomProtocolManager::removeCustomProtocol):
(WebKit::CustomProtocolManager::registerScheme):
(WebKit::CustomProtocolManager::unregisterScheme):
(WebKit::CustomProtocolManager::supportsScheme):
(WebKit::CustomProtocolManager::protocolForID):

  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/linux/SeccompFilters/SeccompBroker.cpp:
  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
(WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):

  • WebProcess/Plugins/PluginProcessConnectionManager.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::removeScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamAddData):

Source/WTF:

This also beefs up and rationalizes the Condition API, so that it can deal with units of time
other than just steady_clock. This makes it easier to port ThreadCondition and
std::condition_variable code over to Condition. This patch does not take a position on what
kind of time is best; from reading a lot of the uses in WebCore, it seems like our use of
double to measure seconds is often nicer than the many different classes in std::chrono.

Also added a Condition speed test, to make sure that all of this is a good idea. And indeed it
is. The 1-producer/1-consumer scenario with a 100-element queue runs 36x faster using
Lock/Condition than Mutex/ThreadCondition when you use the notifyOne()-per-enqueue style. It
runs 58x faster with Lock/Condition when you use the notifyAll()-at-boundary style. Note that
I have a bug open for making the notifyOne()-per-enqueue style even faster:
https://bugs.webkit.org/show_bug.cgi?id=148090. Also, the 10-consumer/10-producer scenario with
a 100-element queue runs 20x faster with Lock/Condition for notifyOne()-per-enqueue and 30x
faster with notifyAll()-at-boundary. The only way to tweak the test to get
Mutex/ThreadCondition to win is to have one producer, one consumer, a 1-element queue, and use
the notifyOne()-per-enqueue style. In that case, one of the two threads is going to be waiting
most of the time and the test basically measures wake-up latency and nothing else. Because
Condition::wait() does a little bit more work than ThreadCondition::wait(),
Mutex/ThreadCondition end up running 3% faster in this test case. But if you vary any of the
parameters of the test, Mutex/ThreadCondition ends up losing - all it takes is more threads or
a queue size of 5 or more. To my knowledge, we never do producer/consumer with a queue bounded
to one element precisely because that approach is the least efficient regardless of locking
algorithm. For example, neither WTF::MessageQueue nor DFG::Worklist have any bounds on their
queue size. So, it seems that replacing all uses of system mutexes and condition variables with
our own thing is a great idea.

  • benchmarks/LockSpeedTest.cpp:
  • benchmarks/ConditionSpeedTest.cpp: Added.
  • wtf/Condition.h:

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::waitFor):
(WTF::Condition::wait):
(WTF::Condition::waitUntilWallClockSeconds):
(WTF::Condition::waitUntilMonotonicClockSeconds):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):
(WTF::Condition::waitForSecondsImpl):
(WTF::Condition::waitForImpl):
(WTF::Condition::absoluteFromRelative):

  • wtf/MessageQueue.h:

(WTF::MessageQueue::infiniteTime):
(WTF::MessageQueue<DataType>::append):
(WTF::MessageQueue<DataType>::appendAndKill):
(WTF::MessageQueue<DataType>::appendAndCheckEmpty):
(WTF::MessageQueue<DataType>::prepend):
(WTF::MessageQueue<DataType>::removeIf):
(WTF::MessageQueue<DataType>::isEmpty):
(WTF::MessageQueue<DataType>::kill):
(WTF::MessageQueue<DataType>::killed):

  • wtf/ParallelJobsGeneric.cpp:

(WTF::ParallelEnvironment::ThreadPrivate::execute):
(WTF::ParallelEnvironment::ThreadPrivate::waitForFinish):
(WTF::ParallelEnvironment::ThreadPrivate::workerThread):

  • wtf/ParallelJobsGeneric.h:
  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::compareAndPark):

  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading):

  • wtf/dtoa.cpp:

(WTF::pow5mult):

  • wtf/dtoa.h:

Tools:

  • DumpRenderTree/JavaScriptThreading.cpp:

(javaScriptThreadsMutex):
(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):

  • TestWebKitAPI/Tests/WTF/Condition.cpp: Fixed a bug in the test that I found from turning the test into a benchmark.
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:

(TestWebKitAPI::TEST):

5:41 AM Changeset in webkit [188908] by Carlos Garcia Campos
  • 35 edits in releases/WebKitGTK/webkit-2.10/Source

Merge r188499 - Use WTF::Lock and WTF::Condition instead of WTF::Mutex, WTF::ThreadCondition, std::mutex, and std::condition_variable
https://bugs.webkit.org/show_bug.cgi?id=147999

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:

(initWrapperCache):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(wrapperCacheMutex): Deleted.

  • bytecode/SamplingTool.cpp:

(JSC::SamplingTool::doRun):
(JSC::SamplingTool::notifyOfScope):

  • bytecode/SamplingTool.h:
  • dfg/DFGThreadData.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::~Worklist):
(JSC::DFG::Worklist::isActiveForVM):
(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::dump):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • disassembler/Disassembler.cpp:
  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::doneFillingBlock):
(JSC::CopiedSpace::doneCopying):

  • heap/CopiedSpace.h:
  • heap/CopiedSpaceInlines.h:

(JSC::CopiedSpace::recycleBorrowedBlock):
(JSC::CopiedSpace::allocateBlockForCopyingPhase):

  • heap/GCThread.cpp:

(JSC::GCThread::waitForNextPhase):
(JSC::GCThread::gcThreadMain):

  • heap/GCThreadSharedData.cpp:

(JSC::GCThreadSharedData::GCThreadSharedData):
(JSC::GCThreadSharedData::~GCThreadSharedData):
(JSC::GCThreadSharedData::startNextPhase):
(JSC::GCThreadSharedData::endCurrentPhase):
(JSC::GCThreadSharedData::didStartMarking):
(JSC::GCThreadSharedData::didFinishMarking):

  • heap/GCThreadSharedData.h:
  • heap/HeapTimer.h:
  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):
(JSC::MachineThreads::gatherConservativeRoots):

  • heap/MachineStackMarker.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::donateKnownParallel):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::mergeOpaqueRoots):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::containsOpaqueRootTriState):

  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorHandleRunSourceGlobal):
(Inspector::RemoteInspectorQueueTaskOnGlobalQueue):
(Inspector::RemoteInspectorInitializeGlobalQueue):
(Inspector::RemoteInspectorHandleRunSourceWithInfo):
(Inspector::RemoteInspectorDebuggableConnection::setup):
(Inspector::RemoteInspectorDebuggableConnection::closeFromDebuggable):
(Inspector::RemoteInspectorDebuggableConnection::close):
(Inspector::RemoteInspectorDebuggableConnection::sendMessageToBackend):
(Inspector::RemoteInspectorDebuggableConnection::queueTaskOnPrivateRunLoop):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::releaseExcessCapacity):
(JSC::JSStack::addToCommittedByteCount):
(JSC::JSStack::committedByteCount):
(JSC::stackStatisticsMutex): Deleted.
(JSC::JSStack::initializeThreading): Deleted.

  • interpreter/JSStack.h:

(JSC::JSStack::gatherConservativeRoots):
(JSC::JSStack::sanitizeStack):
(JSC::JSStack::size):
(JSC::JSStack::initializeThreading): Deleted.

  • jit/ExecutableAllocator.cpp:

(JSC::DemandExecutableAllocator::DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::~DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::bytesAllocatedByAllAllocators):
(JSC::DemandExecutableAllocator::bytesCommittedByAllocactors):
(JSC::DemandExecutableAllocator::dumpProfileFromAllAllocators):
(JSC::DemandExecutableAllocator::allocators):
(JSC::DemandExecutableAllocator::allocatorsMutex):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiStub):

  • jit/JITThunks.h:
  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::ensureBytecodesFor):
(JSC::Profiler::Database::notifyDestruction):

  • profiler/ProfilerDatabase.h:
  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSLock.cpp:

(JSC::GlobalJSLock::GlobalJSLock):
(JSC::GlobalJSLock::~GlobalJSLock):
(JSC::JSLockHolder::JSLockHolder):
(JSC::GlobalJSLock::initialize): Deleted.

  • runtime/JSLock.h:

Source/WTF:

Relanding after fixing a deadlock on Linux.

  • wtf/Condition.h: "using WTF::Condition".
  • wtf/Lock.h:

(WTF::LockBase::lock):
(WTF::LockBase::tryLock): Add tryLock() because it turns out that we use it sometimes.
(WTF::LockBase::try_lock): unique_lock needs this.
(WTF::LockBase::unlock):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally): Work around a Linux C++ bug where wait_until with time_point::max() immediately returns and doesn't flash the lock.

5:40 AM Changeset in webkit [188907] by Carlos Garcia Campos
  • 12 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r188400 - WTF should have a compact Condition object to use with Lock
https://bugs.webkit.org/show_bug.cgi?id=147986

Reviewed by Geoffrey Garen.

Source/WTF:

Adds a condition variable implementation based on ParkingLot, called simply WTF::Condition.
It can be used with WTF::Lock or actually any lock implementation. It should even work with
WTF::SpinLock, WTF::Mutex, or std::mutex. Best of all, Condition only requires one byte.

ParkingLot almost contained all of the functionality needed to implemenet wait/notify. We
could have implemented Condition using a 32-bit (or even 64-bit) version that protects
against a notify that happens just before we park. But, this changes the ParkingLot API to
give us the ability to run some code between when ParkingLot enqueues the current thread
and when it actually sleeps. This callback is called with no locks held, so it can call
unlock() on any kind of lock, so long as that lock's unlock() method doesn't recurse into
ParkingLot::parkConditionally(). That seems unlikely; unlock() is more likely to call
ParkingLot::unparkOne() or unparkAll(). WTF::Lock will never call parkConditionally()
inside unlock(), so WTF::Lock is definitely appropriate for use with Condition.

Condition supports most of the API that std::condition_variable supports. It does some
things to try to reduce footgun potential. The preferred timeout form is waitUntil() which
takes an absolute time from the steady_clock. The only relative timeout form also takes a
predicate callback, so it's impossible to write the subtly incorrect
"while (...) wait_for(...)" idiom.

This patch doesn't actually introduce any uses of WTF::Condition other than the unit tests.
I'll start switching code over to using WTF::Condition in another patch.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Condition.h: Added.

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::waitFor):
(WTF::Condition::wait):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):

  • wtf/Lock.cpp:

(WTF::LockBase::unlockSlow): Make this useful assertion be a release assertion. It catches cases where you unlock the lock even though you don't hold it.

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally): Add the beforeSleep() callback.
(WTF::ParkingLot::unparkOne):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::compareAndPark):

Tools:

Add a test for WTF::Condition.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Condition.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::runLockTest): Change the name of the thread.

3:42 AM Changeset in webkit [188906] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r188858 - Unreviewed. Fix cairo performance regression introduced in r188379.

A missing break in a switch was making us to use High image
interpolation quality by default.

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::drawSurfaceToContext): Add the
missing break.

3:11 AM Changeset in webkit [188905] by Chris Dumez
  • 9 edits
    1 delete in trunk/Source/WebCore

Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
https://bugs.webkit.org/show_bug.cgi?id=148417

Reviewed by Sam Weinig.

Get rid of custom bindings for RequestAnimationFrameCallback.handleEvent()
by improving the bindings generator. In this case, the problem was that the
bindings generator did not know how to convert a double parameter into a
JSValue. The new code leverages the pre-existing NativeToJSValue subroutine
to do the conversion instead of duplicating complex support here.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSRequestAnimationFrameCallbackCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithArrayParam):
(WebCore::JSTestCallback::callbackWithSerializedScriptValueParam):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):

  • dom/RequestAnimationFrameCallback.idl:

Aug 24, 2015:

10:31 PM Changeset in webkit [188904] by saambarati1@gmail.com
  • 1 edit
    1 add in trunk/Websites/webkit.org

Add mp4 version of types-changing video.

  • blog-files/type-profiler-and-code-coverage-profiler/types-changing.mp4: Added.
8:25 PM Changeset in webkit [188903] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed test gardening.

Fix another case where the logging string is constructed using the variable 'frame',
but the method argument is not given a name. This causes the global 'frame' value to
be used, producing incorrect output.

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::didReceiveServerRedirectForProvisionalLoadForFrame): Use 'frame'
argument.

6:56 PM Changeset in webkit [188902] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Clear cairo-gl surface for initialization
https://bugs.webkit.org/show_bug.cgi?id=148307

Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-08-24
Reviewed by Martin Robinson.

A cairo-gl surface that is created from an uninitialized texture, should be cleared before use.
A texture memory created by calling glTexImage2D with null data parameter, is uninitialized.
And cairo_gl_surface_create_for_texture doesn't clear the provided texture for initialization.
So it seems safe to clear the surface explicitly.

It is hard to verify this behavior change because the texture memory status is undefined. Undefined means
it can be either initialized or not, though mostly initialized in my experiences.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::clearSurface):
(WebCore::createCairoGLSurface):

6:48 PM Changeset in webkit [188901] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

AX: Fix accessibility/mac/search-with-frames.html test
https://bugs.webkit.org/show_bug.cgi?id=148313

Patch by Nan Wang <n_wang@apple.com> on 2015-08-24
Reviewed by Chris Fleizach.

Fixed the test by making sure that search is performed after all frames
have been loaded.

  • accessibility/mac/search-with-frames.html:
  • platform/mac/TestExpectations:
6:22 PM Changeset in webkit [188900] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Unreviewed, EFL and GTK build fix since r188895.

  • CMakeLists.txt: Rename Rename VisitedLinkProvider to VisitedLinkStore.
5:33 PM Changeset in webkit [188899] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Marking more scroll-snap tests as flaky.

  • platform/mac-wk2/TestExpectations:
5:22 PM Changeset in webkit [188898] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Roll out r188827, because it didn't help.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
4:58 PM Changeset in webkit [188897] by BJ Burg
  • 5 edits
    4 adds in trunk

Web Inspector: add protocol test for existing error handling performed by the backend
https://bugs.webkit.org/show_bug.cgi?id=147097

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

A new test revealed that the protocol "method" parameter was being parsed in a naive way.
Rewrite it to use String::split and improve error checking to avoid failing later.

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::dispatch):

Source/WebInspectorUI:

Add a way to send raw messages to the backend while still awaiting on responses.
This is necessary to test protocol error handling in the inspector backend.

  • UserInterface/Test/InspectorProtocol.js:

(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand): Use awaitMessage internally.
(InspectorProtocol.awaitMessage): Added. Use a dummy requestId if none is supplied.
(InspectorProtocol._sendMessage): Added.
(InspectorProtocol.dispatchMessageFromBackend):
Reject with the error object instead of the error message, so error code/data can be checked.
(InspectorProtocol.sendMessage): Deleted, it is now a private method.

LayoutTests:

Add a bunch of test cases to cover existing error handling by the backend dispatcher.

  • inspector/protocol/backend-dispatcher-argument-errors-expected.txt: Added.
  • inspector/protocol/backend-dispatcher-argument-errors.html: Added.
  • inspector/protocol/backend-dispatcher-malformed-message-errors-expected.txt: Added.
  • inspector/protocol/backend-dispatcher-malformed-message-errors.html: Added.
4:53 PM Changeset in webkit [188896] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark flaky scrolling tests as such.

  • platform/mac-wk2/TestExpectations:
4:51 PM Changeset in webkit [188895] by andersca@apple.com
  • 18 edits
    3 moves in trunk/Source/WebKit2

Rename VisitedLinkProvider to VisitedLinkStore
https://bugs.webkit.org/show_bug.cgi?id=148406

Reviewed by Tim Horton.

  • DerivedSources.make:
  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy):
(API::PageConfiguration::visitedLinkStore):
(API::PageConfiguration::setVisitedLinkStore):
(API::PageConfiguration::visitedLinkProvider): Deleted.
(API::PageConfiguration::setVisitedLinkProvider): Deleted.

  • UIProcess/API/APIPageConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextAddVisitedLink):
(WKContextClearVisitedLinks):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/_WKVisitedLinkStore.mm:

(-[_WKVisitedLinkStore init]):
(-[_WKVisitedLinkStore dealloc]):
(-[_WKVisitedLinkStore addVisitedLinkWithURL:]):
(-[_WKVisitedLinkStore removeAll]):
(-[_WKVisitedLinkStore _apiObject]):

  • UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h:

(WebKit::wrapper):

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::generateIdentifier): Deleted.
(WebKit::VisitedLinkProvider::create): Deleted.
(WebKit::VisitedLinkProvider::~VisitedLinkProvider): Deleted.
(WebKit::VisitedLinkProvider::VisitedLinkProvider): Deleted.
(WebKit::VisitedLinkProvider::addProcess): Deleted.
(WebKit::VisitedLinkProvider::removeProcess): Deleted.
(WebKit::VisitedLinkProvider::addVisitedLinkHash): Deleted.
(WebKit::VisitedLinkProvider::removeAll): Deleted.
(WebKit::VisitedLinkProvider::webProcessWillOpenConnection): Deleted.
(WebKit::VisitedLinkProvider::webProcessDidCloseConnection): Deleted.
(WebKit::VisitedLinkProvider::addVisitedLinkHashFromPage): Deleted.
(WebKit::nextPowerOf2): Deleted.
(WebKit::tableSizeForKeyCount): Deleted.
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): Deleted.
(WebKit::VisitedLinkProvider::resizeTable): Deleted.
(WebKit::VisitedLinkProvider::sendTable): Deleted.

  • UIProcess/VisitedLinkStore.cpp: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.cpp.

(WebKit::generateIdentifier):
(WebKit::VisitedLinkStore::create):
(WebKit::VisitedLinkStore::~VisitedLinkStore):
(WebKit::VisitedLinkStore::VisitedLinkStore):
(WebKit::VisitedLinkStore::addProcess):
(WebKit::VisitedLinkStore::removeProcess):
(WebKit::VisitedLinkStore::addVisitedLinkHash):
(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::webProcessWillOpenConnection):
(WebKit::VisitedLinkStore::webProcessDidCloseConnection):
(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):
(WebKit::nextPowerOf2):
(WebKit::tableSizeForKeyCount):
(WebKit::VisitedLinkStore::pendingVisitedLinksTimerFired):
(WebKit::VisitedLinkStore::resizeTable):
(WebKit::VisitedLinkStore::sendTable):

  • UIProcess/VisitedLinkStore.h: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.h.
  • UIProcess/VisitedLinkStore.messages.in: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.messages.in.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::processDidFinishLaunching):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::addVisitedLinkStore):
(WebKit::WebProcessProxy::didDestroyVisitedLinkStore):
(WebKit::WebProcessProxy::addVisitedLinkProvider): Deleted.
(WebKit::WebProcessProxy::didDestroyVisitedLinkProvider): Deleted.

  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::addVisitedLink):

4:48 PM Changeset in webkit [188894] by Yusuke Suzuki
  • 9 edits in trunk/Source/JavaScriptCore

[ES6] Return JSInternalPromise as result of evaluateModule
https://bugs.webkit.org/show_bug.cgi?id=148173

Reviewed by Saam Barati.

Now evaluateModule returns JSInternalPromise* as its result value.
When an error occurs while loading or executing the modules,
this promise is rejected by that error. By leveraging this, we implemented
asynchronous error reporting when executing the modules in JSC shell.

And this patch also changes the evaluateModule signature to accept the entry
point by the moduleName. By using it, JSC shell can start executing the modules
with the entry point module name.

  • builtins/ModuleLoaderObject.js:

(loadModule):

  • jsc.cpp:

(dumpException):
(runWithScripts):

  • runtime/Completion.cpp:

(JSC::evaluateModule):

  • runtime/Completion.h:
  • runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

  • runtime/JSInternalPromise.h:
  • runtime/ModuleLoaderObject.cpp:

(JSC::ModuleLoaderObject::requestInstantiateAll):
(JSC::ModuleLoaderObject::loadModule):
(JSC::ModuleLoaderObject::resolve):
(JSC::ModuleLoaderObject::fetch):
(JSC::ModuleLoaderObject::translate):
(JSC::ModuleLoaderObject::instantiate):
(JSC::moduleLoaderObjectParseModule):

  • runtime/ModuleLoaderObject.h:
4:31 PM Changeset in webkit [188893] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

AX: Fix accessibility/mac/mathml-elements.html test
https://bugs.webkit.org/show_bug.cgi?id=148393

Patch by Nan Wang <n_wang@apple.com> on 2015-08-24
Reviewed by Chris Fleizach.

Updated the test to match the structure changes of mfenced/mo operators in bug 124838.

  • accessibility/mac/mathml-elements-expected.txt:
  • accessibility/mac/mathml-elements.html:
  • platform/mac/TestExpectations:
4:11 PM Changeset in webkit [188892] by timothy_horton@apple.com
  • 25 edits
    1 delete in trunk

(Finally...) get rid of WKViewIOS
https://bugs.webkit.org/show_bug.cgi?id=148404

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKView.h:
  • UIProcess/API/ios/WKViewIOS.mm: Removed.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::PageClientImpl): Deleted.
(WebKit::PageClientImpl::didRelaunchProcess): Deleted.
(WebKit::PageClientImpl::refView): Deleted.
(WebKit::PageClientImpl::derefView): Deleted.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView initWithFrame:processPool:configuration:wkView:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:

Get rid of WKViewIOS and references to it.

  • DatabaseProcess/ios/DatabaseProcessIOS.mm:

(WebKit::DatabaseProcess::initializeSandbox):

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::initializeSandbox):

  • Shared/Plugins/mac/PluginSandboxProfile.mm:

(WebKit::pluginSandboxProfileDirectory):

  • Shared/ios/ChildProcessIOS.mm:

(WebKit::ChildProcess::initializeSandbox):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):
Look for WKWebView instead of WKView if we have it.

  • TestWebKitAPI/Tests/CustomProtocolsSyncXHRTest.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/PreventImageLoadWithAutoResizing.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextGroupTest.mm:
  • TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextLoadDelegateTest.mm:
  • TestWebKitAPI/mac/TestBrowsingContextLoadDelegate.h:
  • TestWebKitAPI/mac/TestBrowsingContextLoadDelegate.mm:

Mark tests that use WKBrowsingContextController as Mac-only.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:

(WTR::AccessibilityController::addNotificationListener):

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp applicationDidEnterBackground:]):
Import UIKit instead of depending on WKView.h to do so.

3:45 PM Changeset in webkit [188891] by andersca@apple.com
  • 9 edits
    2 copies
    1 move in trunk/Source/WebKit2

Rename _WKVisitedLinkProvider to _WKVisitedLinkStore for consistency
https://bugs.webkit.org/show_bug.cgi?id=148398

Reviewed by Tim Horton.

We'd like to call the abstract classes providers and the concrete classes stores in WebKit. Begin by renaming
_WKVisitedLinkProvider to _WKVisitedLinkStore, but keep the former around as a deprecated class.

  • Shared/API/Cocoa/WebKitPrivate.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _visitedLinkStore]):
(-[WKWebViewConfiguration _setVisitedLinkStore:]):
(-[WKWebViewConfiguration _visitedLinkProvider]):
(-[WKWebViewConfiguration _setVisitedLinkProvider:]):
(-[WKWebViewConfiguration _validate]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:

(-[_WKVisitedLinkProvider init]): Deleted.
(-[_WKVisitedLinkProvider dealloc]): Deleted.
(-[_WKVisitedLinkProvider addVisitedLinkWithURL:]): Deleted.
(-[_WKVisitedLinkProvider removeAll]): Deleted.
(-[_WKVisitedLinkProvider _apiObject]): Deleted.

  • UIProcess/API/Cocoa/_WKVisitedLinkStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProvider.h.
  • UIProcess/API/Cocoa/_WKVisitedLinkStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm.

(-[_WKVisitedLinkStore init]):
(-[_WKVisitedLinkStore dealloc]):
(-[_WKVisitedLinkStore addVisitedLinkWithURL:]):
(-[_WKVisitedLinkStore removeAll]):
(-[_WKVisitedLinkStore _apiObject]):

  • UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProviderInternal.h.

(WebKit::wrapper):

  • WebKit2.xcodeproj/project.pbxproj:
3:42 PM Changeset in webkit [188890] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Add support to dashboard for displaying Git SHA's as revisions.
https://bugs.webkit.org/show_bug.cgi?id=148387

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-24
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(parseRevisionProperty): Added support to dashboard for displaying Git SHA's as revisions.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Ditto.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Added

"isSVN" property to Dashboard.Repository.(OpenSource|Internal).

3:40 PM Changeset in webkit [188889] by msaboff@apple.com
  • 3 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Specialized thunks need to save / restore callee save "tag" registers
https://bugs.webkit.org/show_bug.cgi?id=148345

Reviewed by Basile Clement.

Since these thunks can be called by FTL compiled functions, we can't count on the
tagTypeNumberRegister and tagMaskRegister. In fact, the same registers could be used
for other purposes. Since they are callee saves, save the current values on entry to
these thunks and materialize the tag constant values. On function exit we restore
the caller's values.

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):
(JSC::SpecializedThunkJIT::loadDoubleArgument):
(JSC::SpecializedThunkJIT::returnJSValue):
(JSC::SpecializedThunkJIT::returnDouble):
(JSC::SpecializedThunkJIT::returnInt32):
(JSC::SpecializedThunkJIT::returnJSCell):
(JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn):
(JSC::SpecializedThunkJIT::emitSaveThenMaterializeTagRegisters):
(JSC::SpecializedThunkJIT::emitRestoreSavedTagRegisters):
(JSC::SpecializedThunkJIT::tagReturnAsInt32):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator): Since the nativeForGenerator can be called via a tail call
by various specialized thunks, we need to restore the values of the tag constant callee
save registers. The specialized thunks is the only code that make such tail calls
to nativeForGenerator generated code.

2:56 PM Changeset in webkit [188888] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REPTACH is not a word
https://bugs.webkit.org/show_bug.cgi?id=148401

Reviewed by Saam Barati.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::tailRecursiveCall):
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
(JSC::MacroAssemblerX86_64::readCallTarget):
(JSC::MacroAssemblerX86_64::linkCall):
(JSC::MacroAssemblerX86_64::repatchCall):

2:51 PM Changeset in webkit [188887] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add support for setting JSC options from a file.
https://bugs.webkit.org/show_bug.cgi?id=148394

Reviewed by Saam Barati.

This is needed for environments where the JSC executable does not have access to
environmental variables. This is only needed for debugging, and is currently
guarded under a #define USE_OPTIONS_FILE in Options.cpp, and is disabled by
default.

Also fixed Options::setOptions() to be allow for whitespace that is not a single
' '. This makes setOptions() much more flexible and friendlier to use for loading
options in general.

For example, this current use case of loading options from a file may have '\n's
in the character stream, and this feature is easier to implement if setOptions()
just support more than 1 whitespace char between options, and recognize whitespace
characters other than ' '.

  • runtime/Options.cpp:

(JSC::parse):
(JSC::Options::initialize):
(JSC::Options::setOptions):

2:44 PM Changeset in webkit [188886] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::FixupPhase should use the lambda form of m_graph.doToChildren() rather than the old macro
https://bugs.webkit.org/show_bug.cgi?id=148397

Reviewed by Geoffrey Garen.

We used to iterate the edges of a node by using the DFG_NODE_DO_TO_CHILDREN macro. We
don't need to do that anymore since we have the lambda-based m_graph.doToChildren(). This
allows us to get rid of a bunch of helper methods in DFG::FixupPhase.

I also took the opportunity to give the injectTypeConversionsInBlock() method a more
generic name, since after https://bugs.webkit.org/show_bug.cgi?id=145204 it will be used
for fix-up of checks more broadly.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::run):
(JSC::DFG::FixupPhase::attemptToMakeGetTypedArrayByteOffset):
(JSC::DFG::FixupPhase::fixupChecksInBlock):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock): Deleted.
(JSC::DFG::FixupPhase::tryToRelaxRepresentation): Deleted.
(JSC::DFG::FixupPhase::fixEdgeRepresentation): Deleted.
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge): Deleted.

2:44 PM Changeset in webkit [188885] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests

NodeList should not have a named getter
https://bugs.webkit.org/show_bug.cgi?id=148117

Reviewed by Geoffrey Garen.

Add a layout test to check that NodeList no longer has a named property
getter after r188829.

  • fast/dom/NodeList/no-named-getter-expected.txt: Added.
  • fast/dom/NodeList/no-named-getter.html: Added.
2:43 PM Changeset in webkit [188884] by ggaren@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Some renaming to clarify CodeBlock and UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=148391

Reviewed by Saam Barati.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::generateFunctionCodeBlock): Deleted.
(JSC::UnlinkedFunctionExecutable::codeBlockFor): Deleted.

  • bytecode/UnlinkedFunctionExecutable.h: Call our CodeBlocks "unlinked"

in the name for clarity, since we are unlinked.

  • heap/Heap.cpp:

(JSC::Heap::objectTypeCounts):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::clearUnmarkedExecutables):
(JSC::Heap::deleteOldCode):
(JSC::Heap::FinalizerOwner::finalize):
(JSC::Heap::addExecutable):
(JSC::Heap::collectAllGarbageIfNotDoneRecently):
(JSC::Heap::deleteAllCompiledCode): Deleted.
(JSC::Heap::deleteAllUnlinkedFunctionCode): Deleted.
(JSC::Heap::addCompiledCode): Deleted.

  • heap/Heap.h:

(JSC::Heap::notifyIsSafeToCollect):
(JSC::Heap::isSafeToCollect):
(JSC::Heap::sizeBeforeLastFullCollection):
(JSC::Heap::sizeAfterLastFullCollection):
(JSC::Heap::compiledCode): Deleted.

deleteAllCompiledCode => deleteAllCodeBlocks because "compiled"
is a broad phrase these days.

m_compiledCode => m_executables for the same reason.

addCompiledCode => addExecutable for the same reason.

deleteAllUnlinkedFunctionCode => deleteAllUnlinkedCodeBlocks
for consistency.

  • jsc.cpp:

(functionDeleteAllCompiledCode):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor): codeBlockFor => unlinkedCodeBlockFor

(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilation): Deleted.
It was strange to put this function on executable, since its name implied
that it only changed the executable, but it actually changed all cached
code. Now, a client that wants to change cached code must do so explicitly.

  • runtime/Executable.h:

(JSC::ScriptExecutable::finishCreation):

  • runtime/VM.cpp:

(JSC::VM::deleteAllCode):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope): Updated for renames above.

2:41 PM Changeset in webkit [188883] by basile_clement@apple.com
  • 3 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: We can't assert that registers are flushed when making a tail call
https://bugs.webkit.org/show_bug.cgi?id=148396

Reviewed by Michael Saboff.

We should be able to assert that registers are flushed when making a
tail call, since no additional code should ever be executed after the
tail call. However, because we can have Phantom() nodes keeping values
alive across a tail call, this assertion can (and does) fail in some
cases - even though those nodes are dead nodes that will not actually
generate any code. So we can't have the assertion.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

2:39 PM Changeset in webkit [188882] by basile_clement@apple.com
  • 4 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: TailCallForwardVarargs must be considered as a terminal node
https://bugs.webkit.org/show_bug.cgi?id=148395

Reviewed by Michael Saboff.

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::findTerminal):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::mergeToSuccessors):

  • dfg/DFGNode.h:

(JSC::DFG::Node::isTerminal):

2:31 PM Changeset in webkit [188881] by aestes@apple.com
  • 1 edit in trunk/Tools/ChangeLog

Specify the corrent regression revision.

2:25 PM Changeset in webkit [188880] by aestes@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r182356): WebKit2.BundleParameters fails on iOS

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Specify LD_RUNPATH_SEARCH_PATHS correctly for iOS.
2:11 PM Changeset in webkit [188879] by fpizlo@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

DFG::InsertionSet should be tolerant of occasional out-of-order insertions
https://bugs.webkit.org/show_bug.cgi?id=148367

Reviewed by Geoffrey Garen and Saam Barati.

Since forever, the DFG::InsertionSet has been the way we insert nodes into DFG IR, and it
requires that you walk a block in order and perform insertions in order: you can't insert
something at index J, then at index I where I < J, except if you do a second pass.

This restriction makes sense, because it enables a very fast algorithm. And it's very
rare that a phase would need to insert things out of order.

But sometimes - rarely - we need to insert things slightly out-of-order. For example we
may want to insert a node at index J, but to insert a check associated with that node, we
may need to use index I where I < J. This will come up from the work on
https://bugs.webkit.org/show_bug.cgi?id=145204. And it has already come up in the past.
It seems like it would be best to just lift this restriction.

(JSC::DFG::InsertionSet::insertSlow):

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::InsertionSet):
(JSC::DFG::InsertionSet::graph):
(JSC::DFG::InsertionSet::insert):
(JSC::DFG::InsertionSet::execute):

1:26 PM Changeset in webkit [188878] by Yusuke Suzuki
  • 16 edits in trunk

Create ById IC for ByVal operation only when the specific Id comes more than once
https://bugs.webkit.org/show_bug.cgi?id=148288

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

After introducing byId ICs into byVal ops, byVal ops creates much ICs than before.
The failure fixed in r188767 figures out these ICs are created even if this op is executed only once.

The situation is the following;
In the current code, when byVal op is executed with the Id, we immediately set up the byId IC for that byVal op.
But setting up JITGetByIdGenerator generates the fast path IC code and consumes executable memory.
As a result, if we call eval("contains byVal ops") with the different strings repeatedly under no-llint environment, each eval call creates byId IC for byVal and consumes executable memory.

To solve it, we will add "seen" flag to ByValInfo.
And we will create the IC on the second byVal op call with the same Id.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • jit/JITOperations.cpp:

(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByValWithCachedId): Deleted.
(JSC::JIT::privateCompilePutByValWithCachedId): Deleted.

LayoutTests:

Revert the skip marks introduced in r188767.

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
1:18 PM Changeset in webkit [188877] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Fix the build fixes in r188875 and r188874

Unreviewed.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toNSFontTraits):

12:52 PM Changeset in webkit [188876] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Change webkitAnimationEnd use, should be animationEnd
https://bugs.webkit.org/show_bug.cgi?id=148385

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):

  • UserInterface/Views/DashboardContainerView.js:

(WebInspector.DashboardContainerView.prototype._showDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
(WebInspector.DashboardContainerView.prototype._hideDashboardView.animationEnded):
(WebInspector.DashboardContainerView.prototype._hideDashboardView):

  • UserInterface/Views/DefaultDashboardView.js:

(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue.animationEnded):
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
(WebInspector.TextEditor.prototype.revealPosition):
(WebInspector.TextEditor.prototype._revealSearchResult):

12:03 PM Changeset in webkit [188875] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the build.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::createFontPlatformData):

11:50 AM Changeset in webkit [188874] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toNSFontWeight):
(WebCore::toNSFontTraits):
(WebCore::platformFontWithFamilySpecialCase):

11:48 AM Changeset in webkit [188873] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

Use Optionals in RenderBox height computations
https://bugs.webkit.org/show_bug.cgi?id=147253

Reviewed by David Hyatt.

No new tests because there is no behavior change.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalHeightByMinMax):
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalHeightForContent):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computeLogicalHeightUsing):
(WebCore::RenderBox::computeContentLogicalHeight):
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeight):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::RenderBox::computePositionedLogicalHeightUsing):
(WebCore::logicalWidthIsResolvable):
(WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock):
(WebCore::RenderBox::hasDefiniteLogicalHeight):

  • rendering/RenderBox.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

  • rendering/RenderFlexibleBox.h:
  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::addForcedRegionBreak):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):

11:46 AM Changeset in webkit [188872] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix failing tests.

It's OK to call runStateMachine with an idle state. Just bail early when that happens.

  • Modules/webdatabase/SQLTransactionStateMachine.h:

(WebCore::SQLTransactionStateMachine<T>::runStateMachine):

11:37 AM Changeset in webkit [188871] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

[Cocoa] Unify FontCache
https://bugs.webkit.org/show_bug.cgi?id=148358

Reviewed by Antti Koivisto.

Move all the duplicate code to FontCacheCoreText.

No new tests because there is no behavior change.

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::fontWeightFromCoreText):
(WebCore::toTraitsMask):
(WebCore::isFontWeightBold):
(WebCore::toCoreTextFontWeight):
(WebCore::invalidateFontCache):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
(WebCore::FontCache::platformInit):
(WebCore::FontCache::systemFontFamilies):
(WebCore::computeTraits):
(WebCore::computeNecessarySynthesis):
(WebCore::fontWhitelist):
(WebCore::FontCache::setFontWhitelist):
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):
(WebCore::shouldAutoActivateFontIfNeeded):
(WebCore::FontCache::createFontPlatformData):
(WebCore::fallbackDedupSet):
(WebCore::FontCache::platformPurgeInactiveFontData):
(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::platformInvalidateFontCache):
(WebCore::getSystemFontFallbackForCharacters):
(WebCore::platformLookupFallbackFont):
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::FontCache::weightOfCTFont):
(WebCore::platformFontWithFamilySpecialCase):
(WebCore::FontCache::platformInit): Deleted.
(WebCore::isFontWeightBold): Deleted.
(WebCore::FontCache::getSystemFontFallbackForCharacters): Deleted.
(WebCore::FontCache::systemFallbackForCharacters): Deleted.
(WebCore::FontCache::systemFontFamilies): Deleted.
(WebCore::createCTFontWithTextStyle): Deleted.
(WebCore::createCTFontWithFamilyNameAndWeight): Deleted.
(WebCore::toCTFontWeight): Deleted.
(WebCore::FontCache::createFontPlatformData): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::appkitWeightToFontWeight):
(WebCore::toNSFontTraits):
(WebCore::platformFontWithFamilySpecialCase):
(WebCore::platformFontWithFamily):
(WebCore::platformInvalidateFontCache):
(WebCore::platformLookupFallbackFont):
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::toCoreTextFontWeight): Deleted.
(WebCore::fontWhitelist): Deleted.
(WebCore::FontCache::setFontWhitelist): Deleted.
(WebCore::fontWithFamilySpecialCase): Deleted.
(WebCore::fontWithFamily): Deleted.
(WebCore::invalidateFontCache): Deleted.
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Deleted.
(WebCore::FontCache::platformInit): Deleted.
(WebCore::isAppKitFontWeightBold): Deleted.
(WebCore::shouldAutoActivateFontIfNeeded): Deleted.
(WebCore::fallbackDedupSet): Deleted.
(WebCore::FontCache::platformPurgeInactiveFontData): Deleted.
(WebCore::lookupCTFont): Deleted.
(WebCore::FontCache::systemFallbackForCharacters): Deleted.
(WebCore::FontCache::systemFontFamilies): Deleted.
(WebCore::FontCache::createFontPlatformData): Deleted.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):
(WebCore::fromCTFontWeight): Deleted.

11:07 AM Changeset in webkit [188870] by basile_clement@apple.com
  • 3 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Add a bunch of operators
https://bugs.webkit.org/show_bug.cgi?id=148337

Reviewed by Saam Barati.

  • jit/GPRInfo.h:

(JSC::JSValueRegs::operator bool):
(JSC::JSValueRegs::operator==):
(JSC::JSValueRegs::operator!=):
(JSC::JSValueSource::operator bool):
(JSC::JSValueRegs::operator!):
(JSC::JSValueSource::operator!):

  • jit/Reg.h:

(JSC::Reg::operator bool):

10:38 AM Changeset in webkit [188869] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Unreviewed, attempt to fix iOS build after r188860

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::isFilteringDeltas): Moved implementation out of header.
(WebCore::WheelEventDeltaFilter::filteredDelta): Moved implementation out of header.

  • page/WheelEventDeltaFilter.h:

(WebCore::WheelEventDeltaFilter::isFilteringDeltas): Deleted.
(WebCore::WheelEventDeltaFilter::filteredDelta): Deleted.

10:31 AM Changeset in webkit [188868] by basile_clement@apple.com
  • 6 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: ValueRecovery should distinguish between doubles in an FPR and JSValues in an FPR
https://bugs.webkit.org/show_bug.cgi?id=148336

Reviewed by Michael Saboff.

Currently, ValueRecovery::InFPR means "this is a *double* value in an
FPR". Let's change the semantics to be "this is a *JSVAlue* in an FPR"
(to match ValueRecovery::InGPR), and introduce
ValueRecovery::UnboxedDoubleInFPR to mean "this is a double value in an
FPR".

  • bytecode/ValueRecovery.cpp:

(JSC::ValueRecovery::dumpInContext):

  • bytecode/ValueRecovery.h:

(JSC::ValueRecovery::operator bool):
(JSC::ValueRecovery::inFPR):
(JSC::ValueRecovery::isInGPR):
(JSC::ValueRecovery::isInFPR):
(JSC::ValueRecovery::isInRegisters):
(JSC::ValueRecovery::isInJSStack):
(JSC::ValueRecovery::dataFormat):
(JSC::ValueRecovery::gpr):
(JSC::ValueRecovery::isInJSValueRegs):
(JSC::ValueRecovery::jsValueRegs):
(JSC::ValueRecovery::fpr):
(JSC::ValueRecovery::virtualRegister):
(JSC::ValueRecovery::constant):

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct):

10:25 AM Changeset in webkit [188867] by basile_clement@apple.com
  • 4 edits
    1 add in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Introduce RegisterMap<T>
https://bugs.webkit.org/show_bug.cgi?id=148335

Reviewed by Michael Saboff.

Introduce RegisterMap<T>, GPRMap<T> and FPRMap<T> dense mappings for
Reg, GPRReg and FPRReg.

(JSC::RegisterMap::operator[]):
(JSC::GPRMap::operator[]):
(JSC::FPRMap::operator[]):

10:24 AM Changeset in webkit [188866] by basile_clement@apple.com
  • 8 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Make a bunch of MacroAssembler operations constexpr
https://bugs.webkit.org/show_bug.cgi?id=148334

Reviewed by Saam Barati.

This is in preparation of https://bugs.webkit.org/show_bug.cgi?id=148335 .

  • assembler/ARM64Assembler.h:

(JSC::ARM64Registers::isSp):
(JSC::ARM64Registers::isZr):
(JSC::ARM64Assembler::firstRegister):
(JSC::ARM64Assembler::lastRegister):
(JSC::ARM64Assembler::firstFPRegister):
(JSC::ARM64Assembler::lastFPRegister):
(JSC::ARM64Assembler::isSp):
(JSC::ARM64Assembler::isZr):

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::firstRegister):
(JSC::ARMAssembler::lastRegister):
(JSC::ARMAssembler::firstFPRegister):
(JSC::ARMAssembler::lastFPRegister):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::firstRegister):
(JSC::AbstractMacroAssembler::lastRegister):
(JSC::AbstractMacroAssembler::firstFPRegister):
(JSC::AbstractMacroAssembler::lastFPRegister):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::firstRegister):
(JSC::MIPSAssembler::lastRegister):
(JSC::MIPSAssembler::firstFPRegister):
(JSC::MIPSAssembler::lastFPRegister):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::nextRegister):
(JSC::MacroAssembler::nextFPRegister):
(JSC::MacroAssembler::numberOfRegisters):
(JSC::MacroAssembler::registerIndex):
(JSC::MacroAssembler::numberOfFPRegisters):
(JSC::MacroAssembler::fpRegisterIndex):
(JSC::MacroAssembler::totalNumberOfRegisters):

  • assembler/SH4Assembler.h:

(JSC::SH4Assembler::firstRegister):
(JSC::SH4Assembler::lastRegister):
(JSC::SH4Assembler::firstFPRegister):
(JSC::SH4Assembler::lastFPRegister):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::firstRegister):
(JSC::X86Assembler::lastRegister):
(JSC::X86Assembler::firstFPRegister):
(JSC::X86Assembler::lastFPRegister):

10:16 AM Changeset in webkit [188865] by andersca@apple.com
  • 6 edits in trunk/Source/WebCore

Remove unused return values from SQLTransaction state functions
https://bugs.webkit.org/show_bug.cgi?id=148344

Reviewed by Tim Horton.

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::deliverSuccessCallback):
(WebCore::SQLTransaction::unreachableState):

  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::unreachableState):

  • Modules/webdatabase/SQLTransactionBackend.h:
  • Modules/webdatabase/SQLTransactionStateMachine.h:

(WebCore::SQLTransactionStateMachine<T>::runStateMachine):

10:13 AM Changeset in webkit [188864] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build after r188860

  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::updateFromDelta): Convert argument explicitly to an NSPoint.

10:03 AM WebInspectorCodingStyleGuide edited by BJ Burg
Update style guide (diff)
10:02 AM Changeset in webkit [188863] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, slight layout test clean up after r188829.

Remove a useless blank line.

  • fast/dom/named-items-with-symbol-name-expected.txt:
  • fast/dom/named-items-with-symbol-name.html:
8:57 AM Changeset in webkit [188862] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r188581): Web Inspector: Console user command isn't visible when it's expected to be
https://bugs.webkit.org/show_bug.cgi?id=148283

One of the improvements of r188581 "Option-Enter should commit console command
without erasing the prompt" was not to show a console user command if it's the
same as the previous one.

However, there could be a lot of other messages between the last two user
commands - console.log, CSS warnings, etc. In that case we should show a console
user command again by resetting _lastCommitted.

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
Reset _lastCommitted for all messages except for user commands and use command results.

8:55 AM Changeset in webkit [188861] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Rendering Frames filter checkboxes all become checked during recording
https://bugs.webkit.org/show_bug.cgi?id=148375

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow.prototype._createLegend):
Removed incorrect code that forced checked to true.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart):
Persist legend item checkbox state when updating the chart.

8:23 AM Changeset in webkit [188860] by Wenson Hsieh
  • 14 edits
    1 copy
    2 moves
    2 adds in trunk/Source

Use _NSScrollingPredominantAxisFilter for wheel event filtering on Mac
https://bugs.webkit.org/show_bug.cgi?id=147320

Reviewed by Simon Fraser.

Refactored to use a predominant axis filter instead of a predominant axis tracker. This allows us to
employ AppKit's _NSScrollingPredominantAxisFilter when possible, and use the wheel event delta tracker
Source/WebCore:

as a fallback. Here, we refactor EventHandler to use the new filters for overflow scrolling and replace
the MainFrame's WheelEventDeltaTracker with an appropriate type of WheelEventDeltaFilter.

In the case where an _NSScrollingPredominantAxisFilter is unavailable, the platform-invariant wheel
event delta filter simply uses the existing wheel event delta tracker to compute the current predominant
axis. It uses the predominant axis to determine which axis (if any) should have its delta zeroed out.

This patch also introduces NSScrollingInputFilterSPI.h, which either imports the internal input filter
header from AppKit or declares relevant interfaces and functions.

No new tests, since this change does not add new functionality.

  • CMakeLists.txt: Add page/WheelEventDeltaFilter.cpp.
  • WebCore.vcxproj/WebCore.vcxproj: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Add WheelEventDeltaFilter.cpp and WheelEventDeltaFilter.h.
  • WebCore.xcodeproj/project.pbxproj: Add WheelEventDeltaFilter.cpp, WheelEventDeltaFilter.h, and their Mac counterparts.
  • page/EventHandler.cpp:

(WebCore::didScrollInScrollableArea): Refactored to no longer handle axes separately.
(WebCore::handleWheelEventInAppropriateEnclosingBox): Ditto.
(WebCore::EventHandler::platformRecordWheelEvent): Refactored to update the wheel delta filter.
(WebCore::EventHandler::clearLatchedState): Ditto.
(WebCore::EventHandler::defaultWheelEventHandler): Refactored to use wheel delta filters. No longer splits wheel events

and handles them on separate axes.

(WebCore::didScrollInScrollableAreaForSingleAxis): Deleted.
(WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Deleted.

  • page/EventHandler.h:
  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame): Initializes the appropriate type of WheelEventDeltaFilter.

  • page/MainFrame.h:
  • page/WheelEventDeltaFilter.cpp: Added.

(WebCore::WheelEventDeltaFilter::WheelEventDeltaFilter):
(WebCore::WheelEventDeltaFilter::~WheelEventDeltaFilter):
(WebCore::WheelEventDeltaFilter::create):
(WebCore::BasicWheelEventDeltaFilter::BasicWheelEventDeltaFilter):
(WebCore::BasicWheelEventDeltaFilter::updateFromDelta):
(WebCore::BasicWheelEventDeltaFilter::beginFilteringDeltas):
(WebCore::BasicWheelEventDeltaFilter::endFilteringDeltas):
(WebCore::deltaIsPredominantlyVertical):
(WebCore::BasicWheelEventDeltaFilter::dominantScrollGestureDirection):

  • page/WheelEventDeltaFilter.h: Refactored WheelEventDeltaTracker logic to work as a filter instead.
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformPrepareForWheelEvents): Refactored to use wheel delta filters.
(WebCore::EventHandler::platformRecordWheelEvent): Ditto.

  • page/mac/WheelEventDeltaFilterMac.h: Wraps the new _NSScrollingPredominantAxisFilter.
  • page/mac/WheelEventDeltaFilterMac.mm: Added.

(WebCore::WheelEventDeltaFilterMac::WheelEventDeltaFilterMac):
(WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas):
(WebCore::WheelEventDeltaFilterMac::updateFromDelta):
(WebCore::WheelEventDeltaFilterMac::endFilteringDeltas):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::copyWithDeltas): Used to create a copy of the platform wheel event with filtered deltas.
(WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta): Deleted. No longer necessary, since we won't be handling wheel

events on separate axes.

(WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta): Ditto.

  • platform/spi/mac/NSScrollingInputFilterSPI.h: Added.

Source/WebKit2:

as a fallback. Here, we refactor EventDispatcher to use the new filters for mainframe scrolling.

No new tests, since this change does not add new functionality.

  • WebProcess/WebPage/EventDispatcher.cpp: Include WheelEventDeltaFilterMac.h when necessary.

(WebKit::EventDispatcher::EventDispatcher): Initialize a WheelEventDeltaFilterMac when possible. Otherwise,

fall back to a BasicWheelEventDeltaFilter.

(WebKit::EventDispatcher::wheelEvent): Use filtered deltas to initialize the platform wheel event instead

of zeroing out non-predominant axes.

  • WebProcess/WebPage/EventDispatcher.h: Replace m_recentWheelEventDeltaTracker with m_recentWheelEventDeltaFilter.
6:39 AM Changeset in webkit [188859] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix typo in a comment ("unsused" -> "unused")

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction):

6:23 AM Changeset in webkit [188858] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix cairo performance regression introduced in r188379.

A missing break in a switch was making us to use High image
interpolation quality by default.

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::drawSurfaceToContext): Add the
missing break.

4:33 AM Changeset in webkit [188857] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break test after r188809.

element.getElementsByTagName and element.getElementsByClassName
were also changed in r188809 to return an HTMLCollection. The
build didn't fail because we don't use those in our tests, but the
API breaks need to be fixed too.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_element_get_elements_by_tag_name):
(webkit_dom_element_get_elements_by_tag_name_ns):
(webkit_dom_element_get_elements_by_class_name):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
  • bindings/gobject/webkitdom.symbols:
  • bindings/scripts/CodeGeneratorGObject.pm:

(GetEffectiveFunctionName):

4:15 AM Changeset in webkit [188856] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break test after r188735.

document.getElementsByClassName returns an HTMLCollection since
r188735. So, rename it as
webkit_dom_document_get_elements_by_class_name_as_html_collection,
and deprecate the old method returning a NodeList.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_elements_by_class_name): Use the
implementation returning a NodeList.

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
  • bindings/gobject/webkitdom.symbols: Ditto.
  • bindings/scripts/CodeGeneratorGObject.pm:

(GetEffectiveFunctionName): Also check getElementsByClassName.

3:23 AM Changeset in webkit [188855] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ build after r188711.

Since r188711 document.createNodeIterator and
document.createTreeWalker, don't raise exceptions anymore. Keep
the GError parameter even if it's ignored to not break the API
compatibility.

  • bindings/scripts/CodeGeneratorGObject.pm:

(FunctionUsedToRaiseException):
(GenerateFunction):

3:19 AM Changeset in webkit [188854] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ build after r188809.

document.getElementsByTagName returns an HTMLCollection since
r188809. So, rename it as
webkit_dom_document_get_elements_by_tag_name_as_html_collection,
and deprecate the old methods returning a NodeList.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_elements_by_tag_name): Use the
implementation returning a NodeList.
(webkit_dom_document_get_elements_by_tag_name_ns): Ditto.

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols: Add new symbols.
  • bindings/gobject/webkitdom.symbols: Ditto.
  • bindings/scripts/CodeGeneratorGObject.pm:

(GetEffectiveFunctionName): Bring back this method, now that we
have deprecated API again and add the checks for
getElementsByTagName methods.
(GenerateFunction): Use GetEffectiveFunctionName().

1:06 AM Changeset in webkit [188853] by mmaxfield@apple.com
  • 12 edits in trunk/Source/WebCore

@font-face related cleanup
https://bugs.webkit.org/show_bug.cgi?id=148355

Reviewed by Darin Adler.

This patch cleans up much of our code related to web fonts. In general, it
migrates to using C++ for-each style loops, uses Ref instead of RefPtr when
things can't be nullptr, migrates to C++ Rvalue-references instead of
PassRefPtr, and refactors CSSFontSelector::addFontFaceRule() to use helper
functions.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::fontLoaded): Use a C++ for-each loop.

  • css/CSSFontFace.h:

(WebCore::CSSFontFace::create): Use C++ Rvalue-references instead of
PassRefPtr.
(WebCore::CSSFontFace::CSSFontFace): Ditto.

  • css/CSSFontSelector.cpp:

(WebCore::computeTraitsMask): Migrated a chunk of
CSSFontSelector::addFontFaceRule() into this helper function.
(WebCore::createFontFace): Ditto.
(WebCore::familyNameFromPrimitive): Ditto.
(WebCore::CSSFontSelector::addFontFaceRule): Call the newly-created helper
functions. In addition, migrate to Refs instead of RefPtrs.
(WebCore::compareFontFaces): Migrate to references instead of pointers.
(WebCore::CSSFontSelector::getFontFace): Migrate to Refs instead of
RefPtrs. Also use C++ for-each loops.

  • css/CSSFontSelector.h:
  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): Use C++ for-each
loops.
(WebCore::CSSSegmentedFontFace::isValid): Ditto.
(WebCore::CSSSegmentedFontFace::appendFontFace): Migrate to Rvalue-
references instead of PassRefPtr.

  • css/CSSSegmentedFontFace.h:
  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::getTraitsInFamily): Return the result instead of being
passed an out parameter.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::getTraitsInFamily): Ditto.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::traitsInFamilyEnumProc): Ditto.
(WebCore::FontCache::getTraitsInFamily): Ditto.

Aug 23, 2015:

11:54 PM Changeset in webkit [188852] by aestes@apple.com
  • 2 edits in trunk/Tools

Addressed a missed piece of review feedback from r188851.

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:
11:48 PM Changeset in webkit [188851] by aestes@apple.com
  • 20 edits
    1 copy
    2 moves
    1 add in trunk

[Content Filtering] REGRESSION (r182356): Provisional URL is incorrect in didReceiveServerRedirectForProvisionalLoadForFrame when Content Filtering is enabled
https://bugs.webkit.org/show_bug.cgi?id=147872
rdar://problem/22044000

Reviewed by Dan Bernstein.
Source/WebCore:

Passed the ResourceLoader request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().

New API test: ContentFiltering.ServerRedirect

  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h: Added a URL argument to dispatchDidReceiveServerRedirectForProvisionalLoad().
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal): Passed the request URL to dispatchDidReceiveServerRedirectForProvisionalLoad().

  • testing/Internals.cpp:

(WebCore::Internals::Internals): Stopped calling MockContentFilter::ensureInstalled().

  • testing/MockContentFilterSettings.cpp:

(WebCore::MockContentFilterSettings::setEnabled): Called MockContentFilter::ensureInstalled() to ensure the
mock is installed whenever the filter is enabled.

  • testing/MockContentFilterSettings.h: Exported member functions used by TestWebKitAPI.

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): Set provisionalURL using the URL argument.

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): Added the URL argument.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

The provisional DocumentLoader request URL does not reflect redirects when content filtering is enabled, but
the URL argument passed to dispatchDidReceiveServerRedirectForProvisionalLoad() does, so use it intead.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
Sent DidReceiveServerRedirectForProvisionalLoadForFrame using the URL argument.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Added an API test.

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Linked libWebCoreTestSupport in order to use MockContentFilter.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: Added.

(-[ServerRedirectNavigationDelegate webView:didStartProvisionalNavigation:]): Expect the initial request URL.
(-[ServerRedirectNavigationDelegate webView:didReceiveServerRedirectForProvisionalNavigation:]): Expect the redirect URL.
(-[ServerRedirectNavigationDelegate webView:didCommitNavigation:]):
(TEST): Tested that -[WKWebView URL] is updated after a redirect when content filtering is enabled.

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm: Added.

(+[ServerRedirectPlugIn initialize]): Enable MockContentFilter.

  • TestWebKitAPI/cocoa/TestProtocol.h: Renamed from Tools/TestWebKitAPI/mac/TestProtocol.h.
  • TestWebKitAPI/cocoa/TestProtocol.mm: Renamed from Tools/TestWebKitAPI/mac/TestProtocol.mm.
11:32 PM WebKitGTK/2.8.x edited by berto@igalia.com
(diff)
11:19 PM Changeset in webkit [188850] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Get rid of NodePointerTraits
https://bugs.webkit.org/show_bug.cgi?id=148340

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-23
Reviewed by Anders Carlsson.

NodePointerTraits does exactly the same thing has the default trait.

  • dfg/DFGBasicBlock.h:
  • dfg/DFGCommon.h:

(JSC::DFG::NodePointerTraits::defaultValue): Deleted.
(JSC::DFG::NodePointerTraits::isEmptyForDump): Deleted.

11:18 PM Changeset in webkit [188849] by benjamin@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Reduce the memory usage of BytecodeLivenessAnalysis
https://bugs.webkit.org/show_bug.cgi?id=148353

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-23
Reviewed by Darin Adler.

BytecodeLivenessAnalysis easily takes kilobytes of memory for
non trivial blocks and that memory sticks around because
it stored on CodeBlock.

This patch reduces that memory use a bit.

Most of the memory is in the array of BytecodeBasicBlock.
BytecodeBasicBlock is shrunk by:
-Making it not ref-counted.
-Removing m_predecessors, it was only used for debugging and

is usually big.

-Added a shrinkToFit() phase to shrink the vectors once we are

done building the BytecodeBasicBlock.

There are more things we should do in the future:
-Store all the BytecodeBasicBlock direclty in the array.

We know the size ahead of time, this would be a pure win.
The only tricky part is changing m_successors to have the
index of the successor instead of a pointer.

-Stop putting duplicates in m_successors.

  • bytecode/BytecodeBasicBlock.cpp:

(JSC::computeBytecodeBasicBlocks):
(JSC::BytecodeBasicBlock::shrinkToFit): Deleted.
(JSC::linkBlocks): Deleted.

  • bytecode/BytecodeBasicBlock.h:

(JSC::BytecodeBasicBlock::addSuccessor):
(JSC::BytecodeBasicBlock::addPredecessor): Deleted.
(JSC::BytecodeBasicBlock::predecessors): Deleted.

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::getLeaderOffsetForBasicBlock):
(JSC::findBasicBlockWithLeaderOffset):
(JSC::findBasicBlockForBytecodeOffset):
(JSC::stepOverInstruction):
(JSC::computeLocalLivenessForBytecodeOffset):
(JSC::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessAnalysis::dumpResults): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:
10:33 PM Changeset in webkit [188848] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtered style not applied to graph elements during timeline recording
https://bugs.webkit.org/show_bug.cgi?id=148339

Reviewed by Brian Burg.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Check for hidden state change when applying filters to newly added tree elements.

10:27 PM Changeset in webkit [188847] by saambarati1@gmail.com
  • 1 edit
    2 adds
    1 delete in trunk/Websites/webkit.org

Change compiler-pipeline image for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline.png: Removed.
7:07 PM Changeset in webkit [188846] by ggaren@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling back in r188792.
https://bugs.webkit.org/show_bug.cgi?id=148347

Previously reverted changesets:

"Unify code paths for manually deleting all code"
https://bugs.webkit.org/show_bug.cgi?id=148280
http://trac.webkit.org/changeset/188792

The previous patch caused some inspector tests to hang because it
introduced extra calls to sourceParsed, and sourceParsed is
pathologically slow in WK1 debug builds. This patch restores pre-existing
code to limit calls to sourceParsed, excluding code not being debugged
(i.e., inspector code).

3:51 PM Changeset in webkit [188845] by aestes@apple.com
  • 3 edits in trunk/Tools

Fixed the 32-bit Mac build after r188844.

  • TestWebKitAPI/WKWebViewConfigurationExtras.h:
  • TestWebKitAPI/WKWebViewConfigurationExtras.mm:
3:31 PM Changeset in webkit [188844] by aestes@apple.com
  • 4 edits
    2 copies
    6 adds in trunk/Tools

[Cocoa] API tests using the Modern WebKit API should be able to create web process plug-ins
https://bugs.webkit.org/show_bug.cgi?id=148317

Reviewed by Dan Bernstein.

Added the ability for Modern WebKit API tests to create WKWebProcessPlugIns. A test can create a plug-in by
creating a class that conforms to WKWebProcessPlugIn, adding it to the WebProcessPlugIn target, and using the
WKWebViewConfiguration returned by +[WKWebViewConfiguration testwebkitapi_configurationWithTestPlugInClassName:]
when creating WKWebViews.

Since TestWebKitAPI relies on a bundle parameter to know which test class to instantiate in the plug-in, I also
added a new API test for bundle parameters.

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Added. Named the bundle TestWebKitAPI.wkbundle and

named its executable TestWebKitAPI.bundle.

  • TestWebKitAPI/PlatformUtilities.h: Declared TestPlugInClassNameParameter.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added the WebProcessPlugIn target.
  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm: Added.

(TEST): Tested bundle parameters by verifying that parameter changes in the UI process are observed in the bundle.

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleParametersPlugIn.mm: Added.

(-[BundleParametersPlugIn webProcessPlugIn:didCreateBrowserContextController:]): Started observing changes to a
bundle parameter and asked for an initial notification.
(-[BundleParametersPlugIn dealloc]): Stopped observing changes to a bundle parameter.
(-[BundleParametersPlugIn observeValueForKeyPath:ofObject:change:context:]): When a bundle parameter changes,
mirror its value in the main frame's JSContext.

  • TestWebKitAPI/WKWebViewConfigurationExtras.h: Added.
  • TestWebKitAPI/WKWebViewConfigurationExtras.mm: Added.

(+[WKWebViewConfiguration testwebkitapi_configurationWithTestPlugInClassName:]): Created a configuration with
TestWebKitAPI's bundle URL and set a bundle parameter indicating the test plug-in's class name.

  • TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm: Defined TestPlugInClassNameParameter.
  • TestWebKitAPI/cocoa/WebProcessPlugIn/Info.plist: Added. Set the principal class to WebProcessPlugIn.
  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm: Added.

(-[WebProcessPlugIn webProcessPlugIn:initializeWithObject:]): Forwarded to a newly-created test class instance.
(-[WebProcessPlugIn respondsToSelector:]): Returned YES if the test class instance response.
(-[WebProcessPlugIn forwardingTargetForSelector:]): Forwarded unimplemented methods to the test class instance.

2:42 PM Changeset in webkit [188843] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Typo fix after r188842.

  • CMakeLists.txt:
2:37 PM Changeset in webkit [188842] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Speculative buildfix after r188828.

  • CMakeLists.txt:
2:28 PM Changeset in webkit [188841] by ggaren@apple.com
  • 12 edits in trunk/Source

Unreviewed, rolling back in r188803.

"Debugger's VM should never be null"
https://bugs.webkit.org/show_bug.cgi?id=148341
http://trac.webkit.org/changeset/188803

Source/JavaScriptCore:

  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::attach):
(JSC::Debugger::detach):
(JSC::Debugger::isAttached):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::registerCodeBlock):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::recompileAllJSFunctions):
(JSC::Debugger::setBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):
(JSC::Debugger::setBreakpointsActivated):
(JSC::Debugger::breakProgram):
(JSC::Debugger::stepOutOfFunction):
(JSC::Debugger::returnEvent):
(JSC::Debugger::didExecuteProgram):

  • debugger/Debugger.h:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::JSGlobalObjectScriptDebugServer):
(Inspector::JSGlobalObjectScriptDebugServer::removeListener):
(Inspector::JSGlobalObjectScriptDebugServer::runEventLoopWhilePaused):
(Inspector::JSGlobalObjectScriptDebugServer::recompileAllJSFunctions): Deleted.

  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::ScriptDebugServer):

  • inspector/ScriptDebugServer.h:

Source/WebCore:

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::PageScriptDebugServer):
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didPause):
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):

Source/WebKit/mac:

  • WebView/WebScriptDebugger.mm:

(toWebFrame):
(WebScriptDebugger::WebScriptDebugger):

2:27 PM Changeset in webkit [188840] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

URTBF after r188828.

  • WebKitTestRunner/PlatformWebView.h:
9:37 AM Changeset in webkit [188839] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Remove SVGFrameLoaderClient and dataProtocolFrameLoader
https://bugs.webkit.org/show_bug.cgi?id=148370

Reviewed by Darin Adler.

With data protocol handled internally in WebKit these are no longer needed.

This mostly reverts code changes from http://trac.webkit.org/179626 keeping the tests.

  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::setDataBufferingPolicy):
(WebCore::ResourceLoader::dataProtocolFrameLoader): Deleted.

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::documentLoader):
(WebCore::ResourceLoader::originalRequest):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::finishLoading):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageClients.h:
9:33 AM Changeset in webkit [188838] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard: Combined queues don't turn orange on internal failure
https://bugs.webkit.org/show_bug.cgi?id=148356

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView.prototype.update):

9:31 AM Changeset in webkit [188837] by timothy@apple.com
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Drop webkit prefixes from animation, keyframes and transform
https://bugs.webkit.org/show_bug.cgi?id=148364

Reviewed by Darin Adler.

  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-generic-line-icon .icon > span):
(.data-updated.breakpoint-generic-line-icon .icon > span):

  • UserInterface/Views/ColorPicker.css:

(.color-picker > .slider):

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard):
(.toolbar .dashboard.slide-out-up):
(.toolbar .dashboard.slide-out-down):
(.toolbar .dashboard.slide-in-up):
(.toolbar .dashboard.slide-in-down):
(@keyframes slide-top-edge):
(@keyframes slide-bottom-edge):
(@-webkit-keyframes slide-top-edge): Deleted.
(@-webkit-keyframes slide-bottom-edge): Deleted.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger .navigation-bar .item.button > .glyph):
(@keyframes pulse-pause-button):
(@-webkit-keyframes pulse-pause-button): Deleted.

  • UserInterface/Views/DefaultDashboardView.css:

(.toolbar .dashboard.default > .item.pulsing):
(@keyframes console-item-pulse):
(@-webkit-keyframes console-item-pulse): Deleted.

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog):

  • UserInterface/Views/HoverMenu.css:

(.hover-menu):

  • UserInterface/Views/IndeterminateProgressSpinner.css:

(@keyframes discrete-spinner):
(.indeterminate-progress-spinner):
(@-webkit-keyframes discrete-spinner): Deleted.

  • UserInterface/Views/Main.css:

(.bouncy-highlight):
(@keyframes bouncy-highlight-animation):
(@-webkit-keyframes bouncy-highlight-animation): Deleted.

  • UserInterface/Views/ProbeSetDataGrid.css:

(.details-section.probe-set .data-grid tr.revealed.highlighted):
(@keyframes blink-frame-highlight):
(.details-section.probe-set .data-grid > tr.data-updated):
(@keyframes blink-probe-frame):
(@-webkit-keyframes blink-frame-highlight): Deleted.
(@-webkit-keyframes blink-probe-frame): Deleted.

  • UserInterface/Views/TextEditor.css:

(.text-editor > .CodeMirror .highlighted):
(@keyframes text-editor-highlight-fadeout):
(.text-editor > .CodeMirror .hovered-expression-highlight):
(@keyframes text-editor-hovered-expression-highlight-fadeout):
(@-webkit-keyframes text-editor-highlight-fadeout): Deleted.
(@-webkit-keyframes text-editor-hovered-expression-highlight-fadeout): Deleted.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.frames > .timeline-ruler > .markers > .divider):
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .header > .divider):
(.timeline-ruler > .markers > .divider):
(.timeline-ruler > .markers > .marker):
(.timeline-ruler > .selection-handle.left):
(.timeline-ruler > .selection-handle.right):

9:29 AM Changeset in webkit [188836] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard: Respect step's hidden flag
https://bugs.webkit.org/show_bug.cgi?id=148357

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype._parseData):

9:26 AM Changeset in webkit [188835] by commit-queue@webkit.org
  • 5 edits in trunk

AX: Fix accessibility/deleting-iframe-destroys-axcache.html test
https://bugs.webkit.org/show_bug.cgi?id=148328

Patch by Nan Wang <n_wang@apple.com> on 2015-08-23
Reviewed by Darin Adler.

Tools:

We should only expose stringValue() when value attribute is set.

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::stringValue):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::stringValue):

LayoutTests:

  • platform/mac/TestExpectations:
3:35 AM Changeset in webkit [188834] by Gyuyoung Kim
  • 3 edits in trunk/Tools

Remove style checking rule regarding OwnPtr and PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=148360

Reviewed by Darin Adler.

OwnPtr and PassOwnPtr were totally removed though, style rule is still alive.
Removed it.

  • Scripts/do-webcore-rename:
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(PassPtrTest.test_pass_own_ptr_in_function): Deleted.
(PassPtrTest.test_pass_ref_ptr_return_value): Deleted.
(PassPtrTest.test_own_ptr_parameter_value): Deleted.
(WebKitStyleTest.test_names): Deleted.

Aug 22, 2015:

9:14 PM Changeset in webkit [188833] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Factor out and add logging to swipe-start hysteresis code
https://bugs.webkit.org/show_bug.cgi?id=148361

Reviewed by Darin Adler.

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):

  • UIProcess/mac/ViewGestureController.h:

(WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
(WebKit::ViewGestureController::shouldIgnorePinnedState):
(WebKit::ViewGestureController::setShouldIgnorePinnedState):
(WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker):
(WebKit::ViewGestureController::PendingSwipeTracker::shouldIgnorePinnedState):
(WebKit::ViewGestureController::PendingSwipeTracker::setShouldIgnorePinnedState):
Move pending-swipe members into PendingSwipeTracker.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::scrollEventCanInfluenceSwipe):
(WebKit::deltaShouldCancelSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::handleScrollWheelEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::handleEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::eventWasNotHandledByWebCore):
(WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::reset):
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback):
Move pending-swipe methods into PendingSwipeTracker.
Clean up the logic a bit.
Add some logging.

7:28 PM Changeset in webkit [188832] by saambarati1@gmail.com
  • 3 edits in trunk/Websites/webkit.org

Change image for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png:
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png:
4:05 PM Changeset in webkit [188831] by saambarati1@gmail.com
  • 2 edits in trunk/Websites/webkit.org

Change video for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov:
3:46 PM Changeset in webkit [188830] by saambarati1@gmail.com
  • 1 edit
    8 adds
    4 deletes in trunk/Websites/webkit.org

Add 1x/2x resources for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Removed.
3:29 PM Changeset in webkit [188829] by Chris Dumez
  • 14 edits
    2 deletes in trunk

NodeList should not have a named getter
https://bugs.webkit.org/show_bug.cgi?id=148117

Reviewed by Darin Adler.

Source/WebCore:

Drop the named property getter on NodeList to match the specification:
https://dom.spec.whatwg.org/#interface-nodelist

This change could be a bit risky but:

  1. Firefox and IE never had this named property getter on NodeList.
  2. Chrome successfuly dropped this named property getter in early 2014: https://src.chromium.org/viewvc/blink?revision=166356&view=revision
  3. Our named property getter on NodeList is only partly functional: It only matches by 'id' attribute, not by 'name' attribute.
  4. Our APIs that were wrongly returning a NodeList instead of an HTMLCollection (getElementsByTagName() / getElementsByClassName()) have been fixed in r188735 and r188809. HTMLCollection does have a named property getter.
  5. This named getter adds code complexity.
  • bindings/js/JSNodeListCustom.cpp:

(WebCore::createWrapper): Deleted.

  • dom/ChildNodeList.cpp:

(WebCore::ChildNodeList::invalidateCache): Deleted.

  • dom/ChildNodeList.h:
  • dom/LiveNodeList.cpp:
  • dom/LiveNodeList.h:
  • dom/NodeList.h:
  • dom/NodeList.idl:
  • dom/StaticNodeList.cpp:

(WebCore::StaticElementList::length): Deleted.
(WebCore::StaticElementList::item): Deleted.

  • dom/StaticNodeList.h:
  • html/HTMLCollection.h:

LayoutTests:

  • fast/dom/childnode-item-after-itemname-expected.txt: Removed.
  • fast/dom/childnode-item-after-itemname.html: Removed.

Drop test as it is no longer relevant now that NodeList no longer
has a named property getter.

3:20 PM Changeset in webkit [188828] by timothy_horton@apple.com
  • 23 edits
    1 add in trunk

WebKitTestRunner should use WKWebView on OS X and iOS
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

Reviewed by Anders Carlsson.
Patch by Enrica Casucci and myself.

  • WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::windowSnapshotEnabled): Deleted.
Add a PlatformWebView constructor that takes a WKWebViewConfiguration
instead of WKContext and WKPageGroup.

Remove the unused, always-true windowSnapshotEnabled().
While technically some platforms don't have window snapshotting,
they just return null instead of implementing windowSnapshotEnabled().

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):
Delegate to the various platforms for creating PlatformWebView instances,
for creating WKContexts, and for accessing WKPreferences,
so that they can do special things (like, use WKWebView instead!).

(WTR::TestController::resetPreferencesToConsistentValues):
Make explicit WebKitTestRunner's desired default for two preferences
which have differing defaults between the antique and modern API,
for consistency's sake.

(WTR::TestController::resetStateToConsistentValues):
Add platformResetStateToConsistentValues.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
Adjust to the aforementioned removal of windowSnapshotEnabled().

  • WebKitTestRunner/ios/TestControllerCocoa.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformInitializeConfiguration):
Implement the new platform functions for the Modern WebKit2 API,
in a new TestControllerCocoa file that is shared between iOS and Mac.

For platformMaybeCreateContext, use the trick that we know we can cast
the WKProcessPool to a WKContextRef to retrieve a WKContextRef from
WKWebView's configuration.

Ditto for WKPreferencesRef and WKPreferences.

Remove user content filters on the WKWebView's userContentController.

  • WebKitTestRunner/mac/TestControllerMac.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

Move code into TestControllerCocoa.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::addUserScript):
(WTR::TestRunner::addUserStyleSheet):
Adopt WKBundlePage API for user scripts/sheets.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

Make and keep a WKWebView instead of a WKView.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
Reach inside the WKWebView to the WKView when dispatching events.
This is fairly ugly and we should come up with a better solution.
Also, fix some flipping and style errors.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add SPI to disable window occlusion detection, for WebKitTestRunner's use.

  • Shared/WebPreferencesDefinitions.h:

Remove a completely unused WebPreference. It is a WebCore Setting,
but in the API it's exposed as a WKPage setter and WKView and WKWebView property
instead of as a WKPreference, so there's no need for the WebPreference.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageAddUserScript):
(WKBundlePageAddUserStyleSheet):
(WKBundlePageRemoveAllUserContent):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
(WebKit::WebPage::removeAllUserContent):

  • WebProcess/WebPage/WebPage.h:

Add WKBundlePage functions for user script and style sheet manipulation.
These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's
(used by the WKBundle functions), so they work correctly with the modern API.

12:29 PM Changeset in webkit [188827] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Tweak a test that became flaky on some machines after r188793.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
11:38 AM Changeset in webkit [188826] by Michael Catanzaro
  • 5 edits in trunk

Unreviewed, attempt to fix GTK build after r188718

Source/WebKit2:

  • CMakeLists.txt: Build WKPageConfigurationRef.cpp
  • PlatformEfl.cmake: Don't build WKPageConfigurationRef.cpp

Tools:

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView):

11:35 AM Changeset in webkit [188825] by fpizlo@apple.com
  • 20 edits
    3 adds in trunk/Source/JavaScriptCore

DFG string concatenation shouldn't be playing fast and loose with effects and OSR exit
https://bugs.webkit.org/show_bug.cgi?id=148338

Reviewed by Michael Saboff and Saam Barati.

Prior to this change, DFG string concatenation appeared to have various different ways of
creating an OSR exit right after a side effect. That's bad, because the exit will cause
us to reexecute the side effect. The code appears to have some hacks for avoiding this,
but some cases are basically unavoidable, like the OOM case of string concatenation: in
trunk that could cause two executions of the toString operation.

This changes the string concatenation code to either be speculative or effectful but
never both. It's already the case that when this code needs to be effectful, it also
needs to be slow (it does int->string conversions, calls JS functions, etc). So, this is
a small price to pay for sanity.

The biggest part of this change is the introduction of StrCat, which is like MakeRope but
does toString conversions on its own instead of relying on separate nodes. StrCat can
take either 2 or 3 children. It's the effectful but not speculative version of MakeRope.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertStringAddUse):
(JSC::DFG::FixupPhase::fixupToStringOrCallStringConstructor):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::JSValueOperand::JSValueOperand):
(JSC::DFG::JSValueOperand::~JSValueOperand):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStrCat):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):

  • jit/JITOperations.h:
  • tests/stress/exception-effect-strcat.js: Added. This test previously failed.
  • tests/stress/exception-in-strcat-string-overflow.js: Added. An earlier version of this patch made this fail.
  • tests/stress/exception-in-strcat.js: Added.
11:05 AM Changeset in webkit [188824] by akling@apple.com
  • 21 edits in trunk/Source

[JSC] Static hash tables should be 100% compile-time constant.
<https://webkit.org/b/148359>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

We were dirtying the memory pages containing static hash tables the
first time they were used, when a dynamically allocated index-to-key
table was built and cached in the HashTable struct.

It turns out that this "optimization" was completely useless, since
we've long since decoupled static hash tables from the JSC::VM and
we can get the key for an index via HashTable::values[index].m_key!

We also get rid of VM::keywords which was a little wrapper around
a VM-specific copy of JSC::mainTable. There was nothing VM-specific
about it at all, so clients now use JSC::mainTable directly.

After this change all fooHashTable structs end up in DATA const
and no runtime initialization/allocation takes place.

  • create_hash_table:
  • jsc.cpp:
  • parser/Lexer.cpp:

(JSC::isLexerKeyword):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
(JSC::Keywords::Keywords): Deleted.

  • parser/Lexer.h:

(JSC::Keywords::isKeyword): Deleted.
(JSC::Keywords::getKeyword): Deleted.
(JSC::Keywords::~Keywords): Deleted.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::tryJSONPParse):

  • runtime/Lookup.cpp:

(JSC::HashTable::createTable): Deleted.
(JSC::HashTable::deleteTable): Deleted.

  • runtime/Lookup.h:

(JSC::HashTable::entry):
(JSC::HashTable::ConstIterator::key):
(JSC::HashTable::ConstIterator::skipInvalidKeys):
(JSC::HashTable::copy): Deleted.
(JSC::HashTable::initializeIfNeeded): Deleted.
(JSC::HashTable::begin): Deleted.
(JSC::HashTable::end): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
  • testRegExp.cpp:

Source/WebCore:

Adjust WebCore bindings generator for new JSC::HashTable layout
and rebaseline the bindings tests for that change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHashTable):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
10:42 AM Changeset in webkit [188823] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build without ENABLE_CSS_GRID_LAYOUT after r188582

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):

10:14 AM Changeset in webkit [188822] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

std::once_flag needs to be static.

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::MainThreadFunctionTracker::singleton):

6:38 AM Changeset in webkit [188821] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Page::renderTreeSize() does not include anonymous renderers.
https://bugs.webkit.org/show_bug.cgi?id=148352

Reviewed by Andreas Kling.

Anonymous renderes take the document as their node. Instead
of checking whether the node is the document, we could just check
if the RenderView is available.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::~RenderObject):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView): Deleted.

  • rendering/RenderView.h: Include the RenderView in render tree size as well.
2:57 AM Changeset in webkit [188820] by Antti Koivisto
  • 13 edits
    2 adds in trunk/Source

Decode data URLs in web process
https://bugs.webkit.org/show_bug.cgi?id=148128

Reviewed by Darin Adler.

Source/WebCore:

We currenly send data URLs to networking layer for decoding. This involves a long and slow roundtrip through IPC and API layers.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Deleted.

Remove this awkward interface for WebKit2.

  • loader/ResourceLoadScheduler.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::loadDataURL):

Load using DataURLDecoder.

  • loader/ResourceLoader.h:

Make start() public and export it so it can be called directly from WebKit2.

  • platform/network/DataURLDecoder.cpp: Added.

(WebCore::DataURLDecoder::decodeQueue):
(WebCore::DataURLDecoder::DecodeTask::DecodeTask):
(WebCore::DataURLDecoder::createDecodeTask):

Parse data URL metadata and initialize the decode task.

(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decodeEscaped):
(WebCore::DataURLDecoder::decode):

Asynchronously decode in a concurrent distpatch queue.

  • platform/network/DataURLDecoder.h: Added.
  • platform/network/ios/QuickLook.h:
  • platform/text/DecodeEscapeSequences.h:

(WebCore::URLEscapeSequence::findEndOfRun):
(WebCore::URLEscapeSequence::decodeRun):

Factor buffer generation to a function.

(WebCore::decodeEscapeSequences):
(WebCore::decodeURLEscapeSequencesAsData):

Add decode function that produces bytes instead of a String.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

Don't send data: loads to the network process, handle them locally.

(WebKit::WebResourceLoadScheduler::startLocalLoad):

Call ResourceLoder::start() directly.

12:20 AM Changeset in webkit [188819] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

AX: aria-table-content.html test failing on windows
https://bugs.webkit.org/show_bug.cgi?id=148354

Update TestExpectation for Windows to Skip test.

Patch by Doug Russell <d_russell@apple.com> on 2015-08-22
Reviewed by Tim Horton.

  • platform/win/TestExpectations:

Aug 21, 2015:

8:27 PM Changeset in webkit [188818] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Type profiler shows 'Undefined' annotation for functions with no return statements
https://bugs.webkit.org/show_bug.cgi?id=146882

Patch by Saam barati <sbarati@apple.com> on 2015-08-21
Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/TypeTokenAnnotator.js:

(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):

  • UserInterface/Models/ScriptSyntaxTree.js:

(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):

7:32 PM Changeset in webkit [188817] by commit-queue@webkit.org
  • 24 edits
    1 delete in trunk

Unreviewed, rolling out r188807, r188813, and r188815.
https://bugs.webkit.org/show_bug.cgi?id=148349

lots of 32-bit build problems, better to resolve separately
and try again (Requested by thorton on #webkit).

Reverted changesets:

"WebKitTestRunner should use WKWebView on OS X and iOS"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188807

"Stop building WebKitTestRunner for 32-bit platforms"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188813

"Stop building WebKitTestRunner for 32-bit platforms"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188815

7:27 PM Changeset in webkit [188816] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: WebInspector.domTreeManager.regionLayoutUpdated does not exist
https://bugs.webkit.org/show_bug.cgi?id=148348

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-21
Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/CSSObserver.js:

(WebInspector.CSSObserver.prototype.regionLayoutUpdated):
Just do the same as the new event name.

6:43 PM Changeset in webkit [188815] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Stop building WebKitTestRunner for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:

This is a restriction on the valid set, not the desired set.

6:39 PM Changeset in webkit [188814] by commit-queue@webkit.org
  • 8 edits in trunk/Tools

Make Dashboard.Branches be objects of the form (repository, "branch name") and update existing code
to work with these new objects.
https://bugs.webkit.org/show_bug.cgi?id=148188

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-21
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:

(Buildbot.prototype._normalizeQueueInfo): Renamed BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView): Changed to work with new branch objects which represent a
(repository, "branch name")-pair.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue): Renamed BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Changed to work with new branch
objects which represent a (repository, "branch name")-pair.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Ditto.
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Ditto.
(BuildbotQueueView.prototype._addDividerToPopover): Ditto.
(BuildbotQueueView.prototype.revisionContentForIteration): Ditto.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Renamed

BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot.prototype.get defaultBranches): Changed to new (repository, "branch name") format.

6:34 PM Changeset in webkit [188813] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Stop building WebKitTestRunner for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:

WKWebView is not available on 32-bit OS X.

6:26 PM Changeset in webkit [188812] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed test correction after r188709.

I removed a function argument that happened to be mirrored by a global
value with the same name. This prevented a compile error, but testing
showed that the wrong value was being used in the function.

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::willPerformClientRedirectToURL): Put function argument
back

5:56 PM Changeset in webkit [188811] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.20

New tag.

5:53 PM Changeset in webkit [188810] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Unreviewed, rolling out r188792 and r188803.
https://bugs.webkit.org/show_bug.cgi?id=148347

broke lots of tests, ggaren is going to investigate and reland
(Requested by thorton on #webkit).

Reverted changesets:

"Unify code paths for manually deleting all code"
https://bugs.webkit.org/show_bug.cgi?id=148280
http://trac.webkit.org/changeset/188792

"Debugger's VM should never be null"
https://bugs.webkit.org/show_bug.cgi?id=148341
http://trac.webkit.org/changeset/188803

5:50 PM Changeset in webkit [188809] by Chris Dumez
  • 41 edits
    2 moves
    2 adds in trunk

document.getElementsByTagName should return an HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=110611

Reviewed by Darin Adler.

Source/WebCore:

Update getElementsByTagName*() to return an HTMLCollection as per
the specification:

Firefox, Chrome and IE all match the specification but WebKit was
returning a NodeList.

Performance:
DOM/get-elements-by-tag-name-traversal-uncached.html is ~4.5% faster.

Test: fast/dom/getElementsByTagName-return-type.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:

Rename TagNodeList.* to TagCollection.*

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
Update the function to use descendantsOfType<>() instead of
getElementsByTagName(). The code is both shorter and more efficient.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameForObjC):
(WebCore::ContainerNode::getElementsByTagNameNS):
(WebCore::ContainerNode::getElementsByTagNameNSForObjC):

  • dom/ContainerNode.h:
  • Have getElementsByTagName*() return an HTMLCollection.
  • Introduce versions used by the ObjC bindings that return a NodeList for API compatibility reasons.
  • Move the localName null check to the *ForObjC versions and use a simple assertion for the non ObjC versions. This gets rid of a branch for our JS bindings as this function is hot. It is currently impossible to get a null AtomicString from our JS bindings code because getElementsByTagName() and getElementsByTagName(undefined) in JS end up calling ContainerNode::getElementsByTagName("undefined"). Also getElementsByTagName(null) in JS ends up calling ContainerNode::getElementsByTagName("null"). I have also gotten rid of most of the getElementsByTagName() calls from our native code. The remaining ones either call with a non-null AtomicString and they now have a null-check.
  • dom/Document.idl:
  • dom/Element.idl:

Have getElementsByTagName*() return an HTMLCollection except for ObjC
bindings in order to maintain legacy API compatibility.

  • dom/Node.cpp:

(WebCore::Document::invalidateNodeListAndCollectionCaches):
(WebCore::NodeListsNodeData::invalidateCaches):
HTMLCollection::invalidateCache(attr) is now renamed to
invalidateCacheForAttribute(attr) to avoid ambiguity with
HTMLCollection::invalidateCache(doc) and for consistency
with LiveNodeList.

  • dom/NodeRareData.h:

Make necessary updates now that TagNodeList is renamed to TagCollection
and is an HTMLCollection.

  • dom/TagCollection.cpp: Renamed from Source/WebCore/dom/TagNodeList.cpp.
  • dom/TagCollection.h: Renamed from Source/WebCore/dom/TagNodeList.h.

Rename TagNodeList / HTMLTagNodeList to TagCollection / HTMLTagCollection
and inherit CachedHTMLCollection instead of CachedLiveNodeList.

  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToBodyElement):
Update code using getElementsByTagName() to reflect the fact that it
now returns an HTMLCollection and item() returns an Element*. This
function is matching any Element with "body" tag, not just HTMLBodyElement
so I did not refactor it to use an descendantsOfType<HTMLBodyElement>().
It is not clear to me what the intention of this code is.

  • editing/markup.cpp:

(WebCore::createFragmentFromMarkup):

  • editing/markup.h:
  • Return a Ref<> instead of a PassRefPtr<> as it can never return null.
  • Use descendantsOfType<HTMLAttachmentElement>(fragment) instead of getElementsByTagName() as it results in both shorter and more efficient code.
  • html/CollectionType.h:

Add new ByTag / ByHTMLTag collection types for TagCollection /
HTMLTabCollection.

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
Handle new ByTag / ByHTMLTag collection types in the switch statement.

  • html/HTMLCollection.cpp:

(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::HTMLCollection::~HTMLCollection):
Handle new ByTag / ByHTMLTag collection types in switch statements.

(WebCore::HTMLCollection::tags):
Add a null-check on localName() before calling getElementsByTagName().
This function is currently for ObjC bindings only.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::restartSimilarPlugIns):
Simplify / optimize the code by using descendantsOfType<HTMLPlugInImageElement>()
instead of getElementsByTagName().

  • html/MediaDocument.cpp:

(WebCore::descendantVideoElement):
Use descendantsOfType<HTMLVideoElement> instead of getElementsByTagNameNS().

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _documentFragmentWithMarkupString:baseURLString:]):
Use .ptr() as createFragmentFromMarkup() now returns a
Ref<> instead of a RefPtr<>.

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMDocument::getElementsByTagName):
(DOMDocument::getElementsByTagNameNS):
Add null checks for localName() before calling
ContainerNode::getElementsByTagName*().

LayoutTests:

  • fast/dom/getElementsByTagName-return-type-expected.txt: Added.
  • fast/dom/getElementsByTagName-return-type.html: Added.

New test checking that getElementsByTagName*() returns an HTMLcollection.

  • fast/dom/NodeList/script-tests/nodelist-item-call-as-function.js:
  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/named-items-with-symbol-name-expected.txt:
  • fast/dom/script-tests/domListEnumeration.js:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • js/dom/constructor-expected.txt:
  • js/dom/script-tests/constructor.js:
  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
  • platform/mac/fast/dom/wrapper-classes-objc.html:

Rebaseline / update.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:

One of the checks is now failing because HTMLCollection.item()'s
parameter is optional. The specification says the parameter should
be mandatory so I did not update the test. It was previously passing
because NodeList.item()'s parameter is mandatory.

5:49 PM Changeset in webkit [188808] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

Parse control flow statements in WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=148333

Patch by Sukolsak Sakshuwong <Sukolsak Sakshuwong> on 2015-08-21
Reviewed by Geoffrey Garen.

Parse control flow statements in WebAssembly files generated by pack-asmjs
<https://github.com/WebAssembly/polyfill-prototype-1>.

  • wasm/WASMConstants.h:
  • wasm/WASMFunctionParser.cpp:

(JSC::WASMFunctionParser::parseStatement):
(JSC::WASMFunctionParser::parseIfStatement):
(JSC::WASMFunctionParser::parseIfElseStatement):
(JSC::WASMFunctionParser::parseWhileStatement):
(JSC::WASMFunctionParser::parseDoStatement):
(JSC::WASMFunctionParser::parseLabelStatement):
(JSC::WASMFunctionParser::parseBreakStatement):
(JSC::WASMFunctionParser::parseBreakLabelStatement):
(JSC::WASMFunctionParser::parseContinueStatement):
(JSC::WASMFunctionParser::parseContinueLabelStatement):
(JSC::WASMFunctionParser::parseSwitchStatement):

  • wasm/WASMFunctionParser.h:

(JSC::WASMFunctionParser::WASMFunctionParser):

  • wasm/WASMReader.cpp:

(JSC::WASMReader::readCompactInt32):
(JSC::WASMReader::readSwitchCase):

  • wasm/WASMReader.h:
5:34 PM Changeset in webkit [188807] by timothy_horton@apple.com
  • 23 edits
    1 add in trunk

WebKitTestRunner should use WKWebView on OS X and iOS
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

Reviewed by Anders Carlsson.
Patch by Enrica Casucci and myself.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add SPI to disable window occlusion detection, for WebKitTestRunner's use.

  • Shared/WebPreferencesDefinitions.h:

Remove a completely unused WebPreference. It is a WebCore Setting,
but in the API it's exposed as a WKPage setter and WKView and WKWebView property
instead of as a WKPreference, so there's no need for the WebPreference.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageAddUserScript):
(WKBundlePageAddUserStyleSheet):
(WKBundlePageRemoveAllUserContent):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
(WebKit::WebPage::removeAllUserContent):

  • WebProcess/WebPage/WebPage.h:

Add WKBundlePage functions for user script and style sheet manipulation.
These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's
(used by the WKBundle functions), so they work correctly with the modern API.

  • WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::windowSnapshotEnabled): Deleted.
Add a PlatformWebView constructor that takes a WKWebViewConfiguration
instead of WKContext and WKPageGroup.

Remove the unused, always-true windowSnapshotEnabled().
While technically some platforms don't have window snapshotting,
they just return null instead of implementing windowSnapshotEnabled().

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):
Delegate to the various platforms for creating PlatformWebView instances,
for creating WKContexts, and for accessing WKPreferences,
so that they can do special things (like, use WKWebView instead!).

(WTR::TestController::resetPreferencesToConsistentValues):
Make explicit WebKitTestRunner's desired default for two preferences
which have differing defaults between the antique and modern API,
for consistency's sake.

(WTR::TestController::resetStateToConsistentValues):
Add platformResetStateToConsistentValues.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
Adjust to the aforementioned removal of windowSnapshotEnabled().

  • WebKitTestRunner/ios/TestControllerCocoa.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformInitializeConfiguration):
Implement the new platform functions for the Modern WebKit2 API,
in a new TestControllerCocoa file that is shared between iOS and Mac.

For platformMaybeCreateContext, use the trick that we know we can cast
the WKProcessPool to a WKContextRef to retrieve a WKContextRef from
WKWebView's configuration.

Ditto for WKPreferencesRef and WKPreferences.

Remove user content filters on the WKWebView's userContentController.

  • WebKitTestRunner/mac/TestControllerMac.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

Move code into TestControllerCocoa.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::addUserScript):
(WTR::TestRunner::addUserStyleSheet):
Adopt WKBundlePage API for user scripts/sheets.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

Make and keep a WKWebView instead of a WKView.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
Reach inside the WKWebView to the WKView when dispatching events.
This is fairly ugly and we should come up with a better solution.
Also, fix some flipping and style errors.

5:07 PM Changeset in webkit [188806] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

5:05 PM Changeset in webkit [188805] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.55

New Tag.

5:03 PM Changeset in webkit [188804] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

Build fix.

  • wtf/MainThread.h:
4:57 PM Changeset in webkit [188803] by ggaren@apple.com
  • 11 edits in trunk/Source

Debugger's VM should never be null
https://bugs.webkit.org/show_bug.cgi?id=148341

Reviewed by Joseph Pecoraro.

It doesn't make sense for a Debugger's VM to be null, and code related
to maintaining that illusion just caused the Web Inspector to crash on
launch (https://bugs.webkit.org/show_bug.cgi?id=148312). So, let's stop
doing that.

Now, Debugger requires its subclass to provide a never-null VM&.

Source/JavaScriptCore:

Also took the opportunity, based on review feedback, to remove some
confusion in the virtual recompileAllJSFunctions hierarchy, by eliminating
the pure virtual in ScriptDebugServer and the unnecessary override in
JSGlobalObjectScriptDebugServer.

  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::attach):
(JSC::Debugger::detach):
(JSC::Debugger::isAttached):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::registerCodeBlock):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::recompileAllJSFunctions):
(JSC::Debugger::setBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):
(JSC::Debugger::setBreakpointsActivated):
(JSC::Debugger::breakProgram):
(JSC::Debugger::stepOutOfFunction):
(JSC::Debugger::returnEvent):
(JSC::Debugger::didExecuteProgram):

  • debugger/Debugger.h:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::JSGlobalObjectScriptDebugServer):
(Inspector::JSGlobalObjectScriptDebugServer::recompileAllJSFunctions):
(Inspector::JSGlobalObjectScriptDebugServer::runEventLoopWhilePaused):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::ScriptDebugServer):

  • inspector/ScriptDebugServer.h:

Source/WebCore:

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didPause):

4:50 PM Changeset in webkit [188802] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[OS X] Remove dead code from FontCache::systemFallbackForCharacters()
https://bugs.webkit.org/show_bug.cgi?id=148218

Reviewed by Daniel Bates.

lookupCTFont() in FontCacheMac.mm will always return the best font (because
CTFontCreateForCharactersWithLanguage() does so). Also, all fonts that will
be created on WebKit's behalf are already printer fonts.

No new tests because there is no behavior change.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::systemFallbackForCharacters): Deleted.

4:48 PM Changeset in webkit [188801] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix.

  • win/tools/vsprops/common.props: Ignore a warning that is filling the

build logs with useless cruft.

4:46 PM Changeset in webkit [188800] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Re-mark accessibility/mac/search-with-frames.html flaky

  • platform/mac/TestExpectations:

It's still not 100%.

4:41 PM Changeset in webkit [188799] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • platform/network/win/NetworkStateNotifierWin.cpp:

(WebCore::NetworkStateNotifier::addrChangeCallback):
(WebCore::NetworkStateNotifier::callAddressChanged): Deleted.

4:37 PM Changeset in webkit [188798] by andersca@apple.com
  • 3 edits in trunk/Source/WTF

Address review feedback from Darin.

  • wtf/MainThread.h:
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::callOnMainThread):
(WTF::cancelCallOnMainThread):

4:34 PM Changeset in webkit [188797] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Clean up Font class
https://bugs.webkit.org/show_bug.cgi?id=148216

Reviewed by Dean Jackson.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit): Deleted.

  • platform/graphics/Font.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

4:30 PM Changeset in webkit [188796] by basile_clement@apple.com
  • 5 edits
    1 delete in trunk/Source/JavaScriptCore

Remove unused code relative to allocation sinking
https://bugs.webkit.org/show_bug.cgi?id=148342

Reviewed by Mark Lam.

This removes two things:

  • The DFGPromoteHeapAccess.h file which is a relic of the old sinking phase and is no longer used (it has been subsumed by ObjectAllocationSinking::promoteLocalHeap)
  • Code in the allocation sinking phase for sinking MaterializeCreateActivation and MaterializeNewObject. Handling those is no longer necessary since the phase no longer runs in a fixpoint and thus will never see those nodes, since no other phase creates them.
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPromoteHeapAccess.h: Removed.
4:28 PM Changeset in webkit [188795] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] Unify two more FontCache functions
https://bugs.webkit.org/show_bug.cgi?id=148217

Reviewed by Dean Jackson.

Move duplicated code from FontCacheMac and FontCacheIOS into
FontCacheCoreText.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::toTraitsMask):
(WebCore::isFontWeightBold):
(WebCore::FontCache::similarFont):
(WebCore::FontCache::getTraitsInFamily):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::similarFont): Deleted.
(WebCore::toTraitsMask): Deleted.
(WebCore::FontCache::getTraitsInFamily): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toTraitsMask): Deleted.
(WebCore::FontCache::similarFont): Deleted.
(WebCore::FontCache::getTraitsInFamily): Deleted.

4:16 PM Changeset in webkit [188794] by saambarati1@gmail.com
  • 2 edits in trunk/Websites/webkit.org

Edit a resource for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png:
4:09 PM Changeset in webkit [188793] by ap@apple.com
  • 90 edits in trunk

Improve how UI events are dispatched by WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=148326

Reviewed by Anders Carlsson.

Source/WebKit2:

Added "fully synchronous mode for testing", in which all messages are dispatched
synchronously.

When an async message is sent in this mode, it is wrapped into a sync one automatically.

A client must opt in, either by using WKBundlePagePostSynchronousMessageForTesting(),
or by calling WKContextConfigurationAllowFullySynchronousModeForTesting().
This makes sure that we don't increase potential for IPC misuse.

  • WebProcess/WebPage/WebPage.messages.in: Yay, fewer messages!
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetShouldSendEventsSynchronously): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:

We no longer need WKPageSetShouldSendEventsSynchronously and associated custom messages.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::updateWheelEventTestTriggersIfNeeded): Deleted.
Removed code that was only needed to support pseudo-syncronous scrolling in tests.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::allowFullySynchronousModeForTesting):
(IPC::Connection::sendSync):

  • Platform/IPC/MessageDecoder.cpp:

(IPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageDecoder::shouldUseFullySynchronousModeForTesting):
(IPC::MessageDecoder::setImportanceAssertion):
(IPC::MessageDecoder::unwrapForTesting):

  • Platform/IPC/MessageDecoder.h:

(IPC::MessageDecoder::UUID):

  • Platform/IPC/MessageEncoder.cpp:

(IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageEncoder::setFullySynchronousModeForTesting):
(IPC::MessageEncoder::wrapForTesting):

  • Platform/IPC/MessageEncoder.h:

(IPC::MessageEncoder::UUID):

  • Platform/IPC/MessageFlags.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationSetMediaKeysStorageDirectory):
(WKContextConfigurationAllowFullySynchronousModeForTesting):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleTouchEvent):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::renderTreeSize):
(WebKit::WebPageProxy::setShouldSendEventsSynchronously): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostMessage):
(WKBundlePagePostSynchronousMessageForTesting):
(WKBundlePagePostSynchronousMessage): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mouseEvent):
(WebKit::handleWheelEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::touchEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::postMessage):
(WebKit::WebPage::postSynchronousMessageForTesting):
(WebKit::WebPage::mouseEventSyncForTesting): Deleted.
(WebKit::WebPage::wheelEventSyncForTesting): Deleted.
(WebKit::WebPage::keyEventSyncForTesting): Deleted.
(WebKit::WebPage::touchEventSyncForTesting): Deleted.
(WebKit::WebPage::postSynchronousMessage): Deleted.

  • WebProcess/WebPage/WebPage.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
  • WebKitTestRunner/InjectedBundle/EventSendingController.h:

Removed asyncScrolling from mouseScrollByWithWheelAndMomentumPhases, it's now always
asynchronous (and really, it has always been for the most part).

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::mouseDown): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::mouseUp): Ditto.
(WTR::EventSendingController::mouseMoveTo): Ditto.
(WTR::EventSendingController::mouseForceDown): Ditto.
(WTR::EventSendingController::mouseForceUp): Ditto.
(WTR::EventSendingController::mouseForceChanged): Ditto.
(WTR::EventSendingController::leapForward): Ditto.
(WTR::EventSendingController::scheduleAsynchronousClick): Ditto.
(WTR::EventSendingController::keyDown): Ditto.
(WTR::EventSendingController::scheduleAsynchronousKeyDown): Ditto.
(WTR::EventSendingController::mouseScrollBy): Force a scrolling tree commit. It used
to be done in custom WebKit2 code for test wheel event handling.
(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Got rid of sync version.
(WTR::EventSendingController::continuousMouseScrollBy): Added a FIXME. This one is weird.
(WTR::EventSendingController::contextClick): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::addTouchPoint): Ditto.
(WTR::EventSendingController::updateTouchPoint): Ditto.
(WTR::EventSendingController::setTouchModifier): Ditto.
(WTR::EventSendingController::setTouchPointRadius): Ditto.
(WTR::EventSendingController::touchStart): Ditto.
(WTR::EventSendingController::touchMove): Ditto.
(WTR::EventSendingController::touchEnd): Ditto.
(WTR::EventSendingController::touchCancel): Ditto.
(WTR::EventSendingController::clearTouchPoints): Ditto.
(WTR::EventSendingController::releaseTouchPoint): Ditto.
(WTR::EventSendingController::cancelTouchPoint): Ditto.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::postSetWindowIsKey):
(WTR::InjectedBundle::postSimulateWebNotificationClick):
(WTR::InjectedBundle::isGeolocationProviderActive):
(WTR::InjectedBundle::shouldProcessWorkQueue):
Updated for WKBundlePagePostSynchronousMessage renaming.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::secureEventInputIsEnabled): Ditto.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Allow handling the new test style messages.
(WTR::TestController::didReceiveKeyDownMessageFromInjectedBundle): Removed calls
to WKPageSetShouldSendEventsSynchronously, which we no longer need.
(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Moved
"MouseScrollBy" to async section, and got rid of WKPageSetShouldSendEventsSynchronously.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseMoveTo): Got rid of WKPageSetShouldSendEventsSynchronously.
(WTR::EventSenderProxy::keyDown): Ditto.
(WTR::EventSenderProxy::mouseScrollBy): Ditto.
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.

LayoutTests:

  • fast/events/clear-drag-state-expected.txt:
  • fast/events/clear-drag-state.html:
  • platform/mac-wk2/TestExpectations:

This test used to accidentally pass in WebKit2, but it didn't actually check
for the problem. This patch improves WK2 behavior, which makes the test fail.
Changed the test to not pass accidentally, and added it to WK2 test expectations.

  • fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
  • fast/events/scroll-in-scaled-page-with-overflow-hidden.html:

Updated the test to be fully async.

  • fast/events/wheelevent-basic-expected.txt:
  • fast/events/wheelevent-basic.html:

Updated the test to be fully async, got rid of tab characters.

  • fast/events/wheelevent-mousewheel-interaction.html:
  • fast/forms/search/search-scroll-hidden-decoration-container-crash.html:
  • fast/frames/flattening/scrolling-in-object.html:

Updated these tests to be fully async. Since they check for something that happens
asynchronously, and doesn't have an end event, they have to use setTimeout.

  • fast/scrolling/latching/iframe_in_iframe.html:
  • fast/scrolling/latching/scroll-div-latched-div.html:
  • fast/scrolling/latching/scroll-div-latched-mainframe.html:
  • fast/scrolling/latching/scroll-div-no-latching.html:
  • fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
  • fast/scrolling/latching/scroll-iframe-fragment.html:
  • fast/scrolling/latching/scroll-iframe-latched-iframe.html:
  • fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
  • fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
  • fast/scrolling/latching/scroll-latched-nested-div.html:
  • fast/scrolling/latching/scroll-nested-iframe.html:
  • fast/scrolling/latching/scroll-select-bottom-test.html:
  • fast/scrolling/latching/scroll-select-latched-mainframe.html:
  • fast/scrolling/latching/scroll-select-latched-select.html:

Removed extra testRunner.mouseScrollByWithWheelAndMomentumPhases() calls.
We no longer need multiple events for scroll snap animation to start, and due to
the way we coalesce events, having multiple events resulted in getting too high velocity.
Removed async scrolling argument form the function calls, because it's now always async.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:

Moved fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html
to WK1 expectations, because the test needn't be skipped on WK2.

  • scrollbars/scroll-rtl-or-bt-layer.html: Made the test fully async, and refactored

it for clarity.

  • tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
  • tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • tiled-drawing/scrolling/iframe_in_iframe.html:
  • tiled-drawing/scrolling/overflow-scroll-reduced-content.html:
  • tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
  • tiled-drawing/scrolling/wheel-events-with-no-delta.html:

Same testRunner.mouseScrollByWithWheelAndMomentumPhases changes as in fast/scrolling/latching.

  • tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:

Removed debug output about how many events are received. The number may vary due
to coalescing.

3:48 PM Changeset in webkit [188792] by ggaren@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Unify code paths for manually deleting all code
https://bugs.webkit.org/show_bug.cgi?id=148280

Reviewed by Saam Barati.

We used to have three paths for manually deleting all code. Now we have
one shared path.

  • debugger/Debugger.cpp:

(JSC::Debugger::attach): Notify the debugger of all previous code when
it attaches. We used to do this when recompiling, which was only correct
by accident.

(JSC::Debugger::recompileAllJSFunctions): Switch to the shared path.

  • heap/Heap.h:

(JSC::Heap::compiledCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
(Inspector::InspectorRuntimeAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorRuntimeAgent::setTypeProfilerEnabledState):
(Inspector::InspectorRuntimeAgent::getBasicBlocks):
(Inspector::TypeRecompiler::visit): Deleted.
(Inspector::TypeRecompiler::operator()): Deleted.
(Inspector::recompileAllJSFunctionsForTypeProfiling): Deleted. Switch
to the shared path.

  • runtime/VM.cpp:

(JSC::VM::afterVMExit): Added a helper for scheduling an activity after
VM exit. We can't delete code while it's on the stack, and we can't
delete auxiliary profiling data while profiling code is on the stack,
so in those cases, we schedule the deletion for the next time we exit.

(JSC::VM::deleteAllCode): Use afterVMExit because we might have code
on the stack when debugger, profiler, or watchdog state changes.

  • runtime/VM.h:
  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::addDidPopListener):
(JSC::VMEntryScope::~VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener): Deleted.

  • runtime/VMEntryScope.h:

(JSC::VMEntryScope::globalObject): Removed the uniquing feature from
the scope pop listener list because we don't have a client that wants
it, and it's not convenient to use correctly since you can't take
the address of a member function, a lambda, or an std::function. We can
add this feature back if we discover that we want it.

3:42 PM Changeset in webkit [188791] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601.1-branch

Merge r188769. rdar://problem/22354983

3:42 PM Changeset in webkit [188790] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r188765. rdar://problem/22356782

3:12 PM Changeset in webkit [188789] by saambarati1@gmail.com
  • 1 edit
    8 adds in trunk/Websites/webkit.org

Add resources for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-video.mp4: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Added.
3:06 PM Changeset in webkit [188788] by andersca@apple.com
  • 4 edits in trunk/Source/WTF

Deprecate the old school callOnMainThread/cancelCallOnMainThread functions
https://bugs.webkit.org/show_bug.cgi?id=148327

Reviewed by Sam Weinig.

  • wtf/MainThread.cpp:

(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
Change the function queue to be a queue of std::function<void ()> and get rid of dead code.

  • wtf/MainThread.h:

Conditionalize callOnMainThread and cancelCallOnMainThread because Safari on Mavericks still expects to them to be
declared in MainThread.h under 10.9.

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

Add a MainThreadFunctionTracker singleton that keeps track of scheduled functions so we can ensure that they're not
called if they're cancelled.

(WTF::MainThreadFunctionTracker::singleton):
Return the singleton.

(WTF::MainThreadFunctionTracker::callOnMainThread):
Add the function/context pair to our map and schedule the function to be run on the main thread.
If the function has been removed, don't call it.

(WTF::MainThreadFunctionTracker::cancelCallOnMainThread):
Remove all entries with the given function/context pair.

(WTF::MainThreadFunctionTracker::addFunction):
Add the function/context pair to the map and return the unique identifier.

(WTF::MainThreadFunctionTracker::removeIdentifier):
Look up the identifier and remove it if it still exists. If it exists we know that it hasn't been canceled and that we can call it.

(WTF::MainThreadFunctionTracker::removeFunctions):
Remove all function identifiers matched by the function/context pair.

(WTF::callOnMainThread):
Implement using MainThreadFunctionTracker.

(WTF::cancelCallOnMainThread):
Implement using MainThreadFunctionTracker.

3:01 PM Changeset in webkit [188787] by andersca@apple.com
  • 9 edits in trunk/Source

Stop using the old callOnMainThread variant on Windows
https://bugs.webkit.org/show_bug.cgi?id=148332

Reviewed by Tim Horton.

Source/WebCore:

  • platform/network/cf/CookieStorageCFNet.cpp:

(WebCore::notifyCookiesChanged):
(WebCore::notifyCookiesChangedOnMainThread): Deleted.

  • platform/network/win/NetworkStateNotifierWin.cpp:

(WebCore::NetworkStateNotifier::addrChangeCallback):

Source/WebKit/win:

  • Plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::mainThreadCallback): Deleted.

  • Plugins/PluginMainThreadScheduler.h:
  • WebDatabaseManager.cpp:

(DidModifyOriginData::dispatchToMainThread):

  • WebIconDatabase.cpp:

(WebIconDatabase::scheduleNotificationDelivery):

2:59 PM Changeset in webkit [188786] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r188659. rdar://problem/22375877

2:58 PM Changeset in webkit [188785] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r188370. rdar://problem/22375876

2:57 PM Changeset in webkit [188784] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r188340. rdar://problem/22375876

2:56 PM Changeset in webkit [188783] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merged r188067. rdar://problem/22375897

2:54 PM Changeset in webkit [188782] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r188014. rdar://problem/22375872

2:53 PM Changeset in webkit [188781] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r187758. rdar://problem/22375884

2:52 PM Changeset in webkit [188780] by bshafiei@apple.com
  • 3 edits
    3 copies in branches/safari-601.1.46-branch

Merged r187685. rdar://problem/22375865

2:49 PM Changeset in webkit [188779] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r187564. rdar://problem/22375880

2:46 PM Changeset in webkit [188778] by commit-queue@webkit.org
  • 10 edits
    1 move
    3 adds in trunk/Source/JavaScriptCore

Implement WebAssembly function parser
https://bugs.webkit.org/show_bug.cgi?id=147738

Patch by Sukolsak Sakshuwong <Sukolsak Sakshuwong> on 2015-08-21
Reviewed by Filip Pizlo.

Implement WebAssembly function parser for WebAssembly files produced by pack-asmjs
<https://github.com/WebAssembly/polyfill-prototype-1>. This patch parses only
some instructions on statements and int32 expressions. Parsing of the rest
will be implemented in subsequent patches. The instruction lists in WASMConstants.h
are slightly modified from
<https://github.com/WebAssembly/polyfill-prototype-1/blob/master/src/shared.h>.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • wasm/WASMConstants.h: Added.
  • wasm/WASMFormat.h:
  • wasm/WASMFunctionParser.cpp: Added.

(JSC::WASMFunctionParser::checkSyntax):
(JSC::WASMFunctionParser::parseFunction):
(JSC::WASMFunctionParser::parseLocalVariables):
(JSC::WASMFunctionParser::parseStatement):
(JSC::WASMFunctionParser::parseSetLocalStatement):
(JSC::WASMFunctionParser::parseReturnStatement):
(JSC::WASMFunctionParser::parseBlockStatement):
(JSC::WASMFunctionParser::parseExpression):
(JSC::WASMFunctionParser::parseExpressionI32):
(JSC::WASMFunctionParser::parseImmediateExpressionI32):

  • wasm/WASMFunctionParser.h: Added.

(JSC::WASMFunctionParser::WASMFunctionParser):

  • wasm/WASMFunctionSyntaxChecker.h: Renamed from Source/JavaScriptCore/wasm/WASMMagicNumber.h.
  • wasm/WASMModuleParser.cpp:

(JSC::WASMModuleParser::WASMModuleParser):
(JSC::WASMModuleParser::parseFunctionDefinitionSection):
(JSC::WASMModuleParser::parseFunctionDefinition):

  • wasm/WASMModuleParser.h:
  • wasm/WASMReader.cpp:

(JSC::WASMReader::readType):
(JSC::WASMReader::readExpressionType):
(JSC::WASMReader::readExportFormat):
(JSC::WASMReader::readOpStatement):
(JSC::WASMReader::readOpExpressionI32):
(JSC::WASMReader::readVariableTypes):
(JSC::WASMReader::readOp):

  • wasm/WASMReader.h:

(JSC::WASMReader::offset):
(JSC::WASMReader::setOffset):

2:44 PM Changeset in webkit [188777] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r186984. rdar://problem/22375869

2:44 PM Changeset in webkit [188776] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::PutStackSinkingPhase doesn't need to emit KillStack nodes
https://bugs.webkit.org/show_bug.cgi?id=148331

Reviewed by Geoffrey Garen.

PutStackSinkingPhase previously emitted a KillStack node when it sank a PutStack. This
isn't necessary because KillStack is only interesting for OSR exit, and PutStack nodes
that are relevant to OSR will already be preceded by a KillStack/MovHint pair.

  • dfg/DFGPutStackSinkingPhase.cpp:
2:41 PM Changeset in webkit [188775] by mrajca@apple.com
  • 13 edits in trunk/Source

Media Session: let UI clients change the volume of the focused media element
https://bugs.webkit.org/show_bug.cgi?id=148289

Reviewed by Tim Horton.

WebCore:

  • page/Page.cpp:

(WebCore::Page::setVolumeOfMediaElement):

  • page/Page.h:

WebKit2:

  • UIProcess/API/C/WKMediaSessionFocusManager.cpp:

(WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement):

  • UIProcess/API/C/WKMediaSessionFocusManager.h:
  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::updatePlaybackAttribute):
(WebKit::WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement):

  • UIProcess/WebMediaSessionFocusManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setVolumeOfMediaElement):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setVolumeOfMediaElement):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:41 PM Changeset in webkit [188774] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

2:35 PM Changeset in webkit [188773] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: We should not assume that only the baseline JIT can have ById accesses
https://bugs.webkit.org/show_bug.cgi?id=148330

Reviewed by Michael Saboff.

We currently restore the stack pointer after a ById access by using
JIT::stackPointerOffsetFor, which will compute the *baseline* stack
pointer offset. Let's use CodeBlock::stackPointerOffset instead, so
that we have the correct result for non-baseline JIT tiers as well.

  • jit/Repatch.cpp:

(JSC::generateByIdStub):

1:50 PM Changeset in webkit [188772] by andersca@apple.com
  • 22 edits in trunk/Source

Get rid of uses of the old callOnMainThread function that takes a function ptr + context
https://bugs.webkit.org/show_bug.cgi?id=148324

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::DecodingTask::decode):
(WebCore::AsyncAudioDecoder::DecodingTask::notifyCompleteDispatch): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::offlineRender):
(WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch): Deleted.

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):
(WebCore::ScriptProcessorNode::fireProcessEventDispatch): Deleted.

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::scheduleForNotification):
(WebCore::DatabaseTracker::notifyDatabasesChanged):

  • Modules/webdatabase/DatabaseTracker.h:
  • platform/graphics/cg/ImageCG.cpp:

(WebCore::patternReleaseCallback):
(WebCore::patternReleaseOnMainThreadCallback): Deleted.

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::patternReleaseCallback):
(WebCore::patternReleaseOnMainThreadCallback): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::invalidateFontCache):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::doNotifyFinish):
(WebCore::BlobResourceHandle::notifyFinish):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::formFinalize):
(WebCore::formFinishFinalizationOnMainThread): Deleted.

Source/WebKit/mac:

  • Storage/WebDatabaseManagerClient.mm:

(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::dispatchDidModifyOriginOnMainThread): Deleted.

  • Storage/WebStorageTrackerClient.h:
  • Storage/WebStorageTrackerClient.mm:

(WebStorageTrackerClient::dispatchDidModifyOrigin):
(WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Deleted.

Source/WebKit2:

  • UIProcess/mac/WKPrintingView.mm:

(prepareDataForPrintingOnSecondaryThread):
(-[WKPrintingView knowsPageRange:]):

Source/WTF:

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::deallocate):
(WTF::StringWrapperCFAllocator::deallocateOnMainThread): Deleted.

1:48 PM Changeset in webkit [188771] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

DFG::NodeOrigin should have a flag determining if exiting is OK right now
https://bugs.webkit.org/show_bug.cgi?id=148323

Reviewed by Saam Barati.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::branchData):

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertConstant):
(JSC::DFG::InsertionSet::insertConstantForUse):
(JSC::DFG::InsertionSet::insertBottomConstantForUse):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGNodeOrigin.h:

(JSC::DFG::NodeOrigin::NodeOrigin):
(JSC::DFG::NodeOrigin::isSet):
(JSC::DFG::NodeOrigin::withSemantic):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
1:00 PM Changeset in webkit [188770] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

AX: Fix accessibility/mac/search-with-frames.html test
https://bugs.webkit.org/show_bug.cgi?id=148313

Patch by Nan Wang <n_wang@apple.com> on 2015-08-21
Reviewed by Chris Fleizach.

uiElementForSearchPredicate function needs five parameters for DumpRenderTree.

  • accessibility/mac/search-with-frames.html:
  • platform/mac/TestExpectations:
12:55 PM Changeset in webkit [188769] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

AX: Table with CSS that makes a row anonymous can return NULL from cellForColumnAndRow
https://bugs.webkit.org/show_bug.cgi?id=148293

Patch by Doug Russell <d_russell@apple.com> on 2015-08-21
Reviewed by Chris Fleizach.

When RenderTableRows are anonymous, they may not be added to the accessible data
table's internal row list. However, when calculating the row range for a cell,
we were still accounting for those anonymous sections.
Change how the row range is calculated to directly ask the accessible parent row
for its index. This will ensure it’s more inline with what’s being represented to
the accessibility API.

Source/WebCore:

Test: accessibility/aria-table-content.html

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentRow):
(WebCore::AccessibilityTableCell::rowIndexRange):

  • accessibility/AccessibilityTableCell.h:

LayoutTests:

  • accessibility/aria-table-content-expected.txt: Added.
  • accessibility/aria-table-content.html: Added.
12:36 PM Changeset in webkit [188768] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Web Inspector: REGRESSION(173684): Edit as HTML not working
https://bugs.webkit.org/show_bug.cgi?id=148268

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-21
Reviewed by Chris Dumez.

Source/WebCore:

Tests: inspector/dom/getOuterHTML.html

inspector/dom/setOuterHTML.html

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::innerPatchChildren):
Revert the optimization change made in r173684. The optimization changes
had a few issues. It changed the logic to potentially drop out of the
loop before all new items were processed and using a node reference
to track an index did not account for the modifications insertBefore
may have made to that node's index in the list.

LayoutTests:

  • inspector/dom/getOuterHTML-expected.txt: Added.
  • inspector/dom/getOuterHTML.html: Added.
  • inspector/dom/setOuterHTML-expected.txt: Added.
  • inspector/dom/setOuterHTML.html: Added.
12:33 PM Changeset in webkit [188767] by Yusuke Suzuki
  • 14 edits in trunk

Skip no-llint tests that fail due to running out of executable memory after r188969
https://bugs.webkit.org/show_bug.cgi?id=148273

Reviewed by Michael Saboff.

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

r188969 is causing the "no-llint" variation of some tests to fail due to "ran out of executable memory".
These failures are caused because put_by_val and get_by_val aggressively generate the ICs even if the op is executed only once.
The failing tests call eval("contains byVal ops") with the different strings repeatedly under the "no-llint" variation.
In those cases, each eval call creates byId IC for byVal and exhausts executable memory.

We will fix this issue by generating the IC in the second call[1]. In the meantime, we skip these tests.

[1]: https://bugs.webkit.org/show_bug.cgi?id=148288

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
12:25 PM Changeset in webkit [188766] by BJ Burg
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/css/modify-rule-selector.html is flaky on some bots
https://bugs.webkit.org/show_bug.cgi?id=148321

Unreviewed, enable extra logging to stderr so we can hopefully see
why the test is occasionally timing out with no output to the test page.

  • inspector/css/modify-rule-selector.html:
12:23 PM Changeset in webkit [188765] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

HistoryItems will null CachedPages should never be left in the list of items;
causes crash
https://bugs.webkit.org/show_bug.cgi?id=148237
-and corresponding-
rdar://problem/22356782

Reviewed by Brady Eidson.

Setting the CachedPage to nullptr will destroy the CachedPage, destroy the
FrameView, re-enter layout, and potentially try to modify items in the PageCache
based on that layout. So, we should not modify CachedPage in this way while the
item is still in the list of HistoryItems.

  • history/PageCache.cpp:

(WebCore::PageCache::take):
(WebCore::PageCache::remove):
(WebCore::PageCache::prune):

12:11 PM Changeset in webkit [188764] by saambarati1@gmail.com
  • 19 edits in trunk/Source/JavaScriptCore

DFG callOperations should not implicitly emit an exception check. At callOperation call sites, we should explicitly emit exception checks
https://bugs.webkit.org/show_bug.cgi?id=147988

Reviewed by Geoffrey Garen.

This is in preparation for the DFG being able to handle exceptions.
To do this, we need more control over when we emit exception checks.
Specifically, we want to be able to silentFill before emitting an exception check.
This patch does that. This patch also allows us to easily see which
operations do and do not emit exception checks. Finding this information
out before was a pain.

  • assembler/AbortReason.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendCall):
(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGSaneStringGetByValSlowPathGenerator.h:
  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::CallSlowPathGenerator::CallSlowPathGenerator):
(JSC::DFG::CallSlowPathGenerator::tearDown):
(JSC::DFG::CallResultAndNoArgumentsSlowPathGenerator::CallResultAndNoArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndOneArgumentSlowPathGenerator::CallResultAndOneArgumentSlowPathGenerator):
(JSC::DFG::CallResultAndTwoArgumentsSlowPathGenerator::CallResultAndTwoArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndThreeArgumentsSlowPathGenerator::CallResultAndThreeArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndFourArgumentsSlowPathGenerator::CallResultAndFourArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndFiveArgumentsSlowPathGenerator::CallResultAndFiveArgumentsSlowPathGenerator):
(JSC::DFG::slowPathCall):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIn):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileArithRound):
(JSC::DFG::SpeculativeJIT::compileNewFunction):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateScopedArguments):
(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
(JSC::DFG::SpeculativeJIT::compileNotifyWrite):
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::prepareForExternalCall):
(JSC::DFG::SpeculativeJIT::appendCall):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnExceptionSetResult):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheck): Deleted.
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheckSetResult): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::jitAssertNoException):
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::jitAssertIsInt32):
(JSC::AssemblyHelpers::jitAssertIsJSInt32):
(JSC::AssemblyHelpers::jitAssertIsNull):
(JSC::AssemblyHelpers::jitAssertTagsInPlace):
(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::jitAssertNoException):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • runtime/VM.h:

(JSC::VM::scratchBufferForSize):
(JSC::VM::exceptionFuzzingBuffer):

11:48 AM Changeset in webkit [188763] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

Unreviewed, fixes the build.
https://bugs.webkit.org/show_bug.cgi?id=148316

11:39 AM Changeset in webkit [188762] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r188714): RELEASE_ASSERT in JSC::Heap::incrementDeferralDepth() opening Web Inspector on daringfireball.net
https://bugs.webkit.org/show_bug.cgi?id=148312

Reviewed by Mark Lam.

  • debugger/Debugger.cpp:

(JSC::Debugger::recompileAllJSFunctions): Use our vm argument instead of
m_vm because sometimes they are different and m_vm is null. (This behavior
is very strange, and we should probably eliminate it -- but we need a
fix for this serious regression right now.)

11:37 AM Changeset in webkit [188761] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

dispatch_group_t objects may not be retained properly when not backed by Objective-C objects under garbage collection
<http://webkit.org/b/148229>

Reviewed by Eric Carlson.

When compiled with garbage collection enabled, libdispatch
objects are not backed by Objective-C objects, so they don't get
the benefit of automatic reference counting when captured by a
block or a lambda. To address this, we use OSObjectPtr<> which
always increments the reference count of the contained object.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata):
Switch to use OSObjectPtr<>.

11:27 AM Changeset in webkit [188760] by BJ Burg
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: clean up uses of new with zero-argument constructors and factory methods
https://bugs.webkit.org/show_bug.cgi?id=148311

Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/InspectorFrontendHostStub.js:
  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView):

  • UserInterface/Views/ColorPicker.js:

(WebInspector.ColorPicker):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject): This was causing a console assertion
when a breakpoint tree element was selected and the inspector tried to restore the view state
after a reload or back/forward navigation.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):

11:26 AM Changeset in webkit [188759] by commit-queue@webkit.org
  • 7 edits in trunk

[Mac] accessibility/selection-states.html fails
https://bugs.webkit.org/show_bug.cgi?id=116637

Patch by Nan Wang <n_wang@apple.com> on 2015-08-21
Reviewed by Chris Fleizach.

Source/WebCore:

Added accessibilityAttributeValue callback for isMultiSelectable attribute.

Updated expectation for accessibility/selection-states.html on mac.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Implemented isSelectable() and isMultiSelectable().

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::isSelectable):
(AccessibilityUIElement::isMultiSelectable):
(AccessibilityUIElement::isSelectedOptionActive):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isSelectable):
(WTR::AccessibilityUIElement::isMultiSelectable):
(WTR::AccessibilityUIElement::isVisible):

LayoutTests:

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [188758] by ap@apple.com
  • 2 edits in trunk/Tools

Fix iteration over repositories on bot watcher's dashboard.

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-21
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Don't reuse the same index variable.

10:10 AM Changeset in webkit [188757] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Fixed status features JSON formatting.

10:05 AM Changeset in webkit [188756] by BJ Burg
  • 5 edits
    5 adds in trunk

Web Inspector: add a regression test for the fix introduced in r188679
https://bugs.webkit.org/show_bug.cgi?id=148223

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Turns out that we were possibly leaking a single DOMTree on reload.
Always clear the main frame's DOMTree as well as those of sub-frames.

  • UserInterface/Base/Object.js: Add back single-fire listeners.

(WebInspector.Object.singleFireEventListener.let.wrappedCallback):
(WebInspector.Object.singleFireEventListener):
(WebInspector.Object.retainedObjectsWithPrototype):
(WebInspector.Object.prototype.singleFireEventListener):
(WebInspector.Object.prototype.retainedObjectsWithPrototype):

  • UserInterface/Models/Frame.js:

(WebInspector.Frame.prototype.removeAllChildFrames): Clear own tree too.

LayoutTests:

Add a regression test to check the number of DOMTree instances that
listen to DOMTreeManager.

  • TestExpectations: Don't skip the inspector/dom/ directory.
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation-expected.txt: Added.
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-1-deep.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-2-deep.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-base.html: Added.
9:18 AM Changeset in webkit [188755] by Chris Dumez
  • 4 edits in trunk

Regression(r188698): http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=148205

Reviewed by Antti Koivisto.

Source/WebKit2:

After r188640, successful revalidation of resources in the memory cache
would cause us to drop the corresponding resource in the disk cache.
This patch addresses the issue by not removing the cache entry if the
response is a successful revalidation (i.e. status code == 304).

Longer term, we should probably update the entry in the disk cache (if
it exists) when it is revalidated by the memory cache. Currently,
revalidation by the memory cache bypasses the disk cache and goes
straight to the network. Then, when the response comes back as a 304,
we try and store the response in the cache. However, a 304 status code
is not cacheable so the cache rejects it.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html:

Drop temporary fix landed in r188698 to make the test less flaky.

9:05 AM Changeset in webkit [188754] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Have more getElementsBy*() methods return a Ref<>
https://bugs.webkit.org/show_bug.cgi?id=148287

Reviewed by Sam Weinig.

Have more getElementsBy*() methods return a Ref<> instaed of a RefPtr<>
as they cannot return null.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::getElementsByClassNameForObjC):
(WebCore::ContainerNode::radioNodeList):

  • dom/ContainerNode.h:
1:28 AM Changeset in webkit [188753] by Chris Dumez
  • 7 edits
    1 delete in trunk/Source/WebCore

Drop NodeListBase class
https://bugs.webkit.org/show_bug.cgi?id=148290

Reviewed by Ryosuke Niwa.

Drop NodeListBase class and have HTMLCollection subclass NodeList
directly. There is no reason we need another base class.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorObjC.pm:

(GetImplClassName): Deleted.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByClassNameForObjC):

  • dom/ContainerNode.h:
  • dom/NodeList.h:
  • dom/NodeListBase.h: Removed.
  • html/HTMLCollection.h:
Note: See TracTimeline for information about the timeline view.