WebKit-https.git
19 months agoReplace WebRTCLegacyAPIDisabled by WebRTCLegacyAPIEnabled and switch off WebRTC legac...
commit-queue@webkit.org [Thu, 11 Jan 2018 19:48:36 +0000 (19:48 +0000)]
Replace WebRTCLegacyAPIDisabled by WebRTCLegacyAPIEnabled and switch off WebRTC legacy flag by default
https://bugs.webkit.org/show_bug.cgi?id=181480

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-11
Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

* page/RuntimeEnabledFeatures.h: Set default value to false.

Source/WebKit:

Renaming preference to WebRTCLegacyAPIEnabled for simplification and removing it from experimental feature.
Set it to off by default.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebRTCLegacyAPIEnabled):
(WKPreferencesGetWebRTCLegacyAPIEnabled):
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _webRTCLegacyAPIEnabled]):
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMerge sync and async code paths for getting context menus
achristensen@apple.com [Thu, 11 Jan 2018 19:22:46 +0000 (19:22 +0000)]
Merge sync and async code paths for getting context menus
https://bugs.webkit.org/show_bug.cgi?id=181423

Reviewed by Joseph Pecoraro.

What a mess.  We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation.
This makes it so there is just one.  At the API level we see if there is an asynchronous delegate to call, then synchronous.
There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous
case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything!

* UIProcess/API/APIContextMenuClient.h:
(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
* UIProcess/API/glib/WebKitContextMenuClient.cpp:
* UIProcess/WebContextMenuProxy.h:
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::show):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
* UIProcess/gtk/WebContextMenuProxyGtk.h:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
(WebKit::WebContextMenuProxyMac::showContextMenu):
* UIProcess/wpe/WebContextMenuProxyWPE.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoEnsure there are no unsafe uses of MacroAssemblerARM64::dataTempRegister
msaboff@apple.com [Thu, 11 Jan 2018 19:13:28 +0000 (19:13 +0000)]
Ensure there are no unsafe uses of MacroAssemblerARM64::dataTempRegister
https://bugs.webkit.org/show_bug.cgi?id=181512

Reviewed by Saam Barati.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::abortWithReason):
(JSC::MacroAssemblerARM64::pushToSaveImmediateWithoutTouchingRegisters):
All current uses of dataTempRegister in these functions are safe, but it makes sense to
fix them in case they might be used elsewhere.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Attachment Support] Support moving attachment elements in editable areas using drag...
wenson_hsieh@apple.com [Thu, 11 Jan 2018 18:42:14 +0000 (18:42 +0000)]
[Attachment Support] Support moving attachment elements in editable areas using drag and drop
https://bugs.webkit.org/show_bug.cgi?id=181337
<rdar://problem/36324813>

Reviewed by Tim Horton.

Source/WebCore:

Makes slight adjustments to attachment-specific drag and drop logic to ensure that moving attachments via drag
and drop behaves correctly. See per-change comments for more detail.

Tests:  WKAttachmentTests.DragInPlaceVideoAttachmentElement
        WKAttachmentTests.MoveAttachmentElementAsIconByDragging
        WKAttachmentTests.MoveInPlaceAttachmentElementByDragging

* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment):

Stop vending the private web archive pasteboard type for attachments, for now. This works around issues where an
attachment element that is dragged and dropped within the same page may lose its blob backing data if we try to
remove and insert it as a fragment from the archive. Providing a web archive would allow us to avoid destroying
and recreating an attachment element when dragging within the same page, but this is a nice-to-have optimization
we can re-enable after investigation in a subsequent patch.

* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary):

Add `draggable=false` to the image element of an in-place attachment element.

* page/DragController.cpp:
(WebCore::enclosingAttachmentElement):
(WebCore::DragController::draggableElement const):

Tweak single-selected-attachment handling to account for in-place attachments. Since the hit-tested node is
inside the shadow subtree of the attachment element, the condition needs to check for the startElement as well
as the startElement's shadow host.

(WebCore::DragController::startDrag):

Make two tweaks here. First, don't require a RenderAttachment to drag an attachment element (this is required
for dragging in-place attachments). This was added in r217083 to address <rdar://problem/32282831>, but is no
longer correct, since attachments may now be displayed in-place.

Secondly, only restore the previous selection if the attachment is in a richly contenteditable area. This was
added to prevent the selection highlight from appearing in when dragging non-editable attachment elements in the
Mail viewer. However, to allow drag moves to occur, we need the selection to persist after drag start.

Tools:

Add 3 new API tests for attachment element dragging.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView expectElementTag:toComeBefore:]):
(-[NSItemProvider expectType:withData:]):
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r225856): Incorrectly managing 'future' baseline_search_paths.
jbedard@apple.com [Thu, 11 Jan 2018 18:26:26 +0000 (18:26 +0000)]
REGRESSION(r225856): Incorrectly managing 'future' baseline_search_paths.
https://bugs.webkit.org/show_bug.cgi?id=179621
<rdar://problem/35589585>

Unreviewed infrastructure fix.

* Scripts/webkitpy/port/mac.py:
(MacPort.default_baseline_search_path): Include 'future' in the version_fallback
list if we are the VERSION_MAX, which usually corresponds with future.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoLayout Test media/event-queue-crash.html is flaky
eric.carlson@apple.com [Thu, 11 Jan 2018 18:20:14 +0000 (18:20 +0000)]
Layout Test media/event-queue-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=180493
<rdar://problem/35914377>

Reviewed by Jer Noble.

* TestExpectations: Add DumpJSConsoleLogInStdErr.
* media/event-queue-crash.html: Increase the timeout from 10ms to 100ms.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoReserve a fast TLS key for GC TLC
fpizlo@apple.com [Thu, 11 Jan 2018 17:58:46 +0000 (17:58 +0000)]
Reserve a fast TLS key for GC TLC
https://bugs.webkit.org/show_bug.cgi?id=181539

Reviewed by Alexey Proskuryakov.

Who knew that thread-local caches would be a mitigation for timing attacks. Here's how it
works: if we have TLCs then we can "context switch" them when we "context switch" origins.
This allows us to put some minimal distance between objects from different origins, which
gives us the ability to allow small overflows when doing certain bounds checks without
creating a useful Spectre information leak.

So I think that means we have to implement thread-local caches (also known as thread-local
allocation buffers, but I prefer the TLC terminology).

* wtf/FastTLS.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoCodeBlocks should be in IsoSubspaces
fpizlo@apple.com [Thu, 11 Jan 2018 16:43:07 +0000 (16:43 +0000)]
CodeBlocks should be in IsoSubspaces
https://bugs.webkit.org/show_bug.cgi?id=180884

Reviewed by Saam Barati.
Source/JavaScriptCore:

This moves CodeBlocks into IsoSubspaces. Doing so means that we no longer need to have the
special CodeBlockSet HashSets of new and old CodeBlocks. We also no longer use
WeakReferenceHarvester or UnconditionalFinalizer. Instead:

- Code block sweeping is now just eager sweeping. This means that it automatically takes
  advantage of our unswept set, which roughly corresponds to what CodeBlockSet used to use
  its eden set for.

- Those idea of Executable "weakly visiting" the CodeBlock is replaced by Executable
  marking a ExecutableToCodeBlockEdge object. That object being marked corresponds to what
  we used to call CodeBlock "having been weakly visited". This means that CodeBlockSet no
  longer has to clear the set of weakly visited code blocks. This also means that
  determining CodeBlock liveness, propagating CodeBlock transitions, and jettisoning
  CodeBlocks during GC are now the edge's job. The edge is also in an IsoSubspace and it
  has IsoCellSets to tell us which edges have output constraints (what we used to call
  CodeBlock's weak reference harvester) and which have unconditional finalizers.

- CodeBlock now uses an IsoCellSet to tell if it has an unconditional finalizer.

- CodeBlockSet still exists!  It has one unified HashSet of CodeBlocks that we use to
  handle requests from the sampler, debugger, and other facilities. They may want to ask
  if some pointer corresponds to a CodeBlock during stages of execution during which the
  GC is unable to answer isLive() queries. The trickiest is the sampling profiler thread.
  There is no way that the GC's isLive could tell us of a CodeBlock that had already been
  allocated has now been full constructed.

Rolling this back in because it was rolled out by mistake. There was a flaky crash that was
happening before and after this change, but we misread the revision numbers at first and
thought that this was the cause.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finishCreationCommon):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::hasInstalledVMTrapBreakpoints const):
(JSC::CodeBlock::installVMTrapBreakpoints):
(JSC::CodeBlock::dumpMathICStats):
(JSC::CodeBlock::visitWeakly): Deleted.
(JSC::CodeBlock::WeakReferenceHarvester::visitWeakReferences): Deleted.
(JSC::CodeBlock::UnconditionalFinalizer::finalizeUnconditionally): Deleted.
* bytecode/CodeBlock.h:
(JSC::CodeBlock::subspaceFor):
(JSC::CodeBlock::ownerEdge const):
(JSC::CodeBlock::clearVisitWeaklyHasBeenCalled): Deleted.
* bytecode/EvalCodeBlock.h:
(JSC::EvalCodeBlock::create): Deleted.
(JSC::EvalCodeBlock::createStructure): Deleted.
(JSC::EvalCodeBlock::variable): Deleted.
(JSC::EvalCodeBlock::numVariables): Deleted.
(JSC::EvalCodeBlock::functionHoistingCandidate): Deleted.
(JSC::EvalCodeBlock::numFunctionHoistingCandidates): Deleted.
(JSC::EvalCodeBlock::EvalCodeBlock): Deleted.
(JSC::EvalCodeBlock::unlinkedEvalCodeBlock const): Deleted.
* bytecode/ExecutableToCodeBlockEdge.cpp: Added.
(JSC::ExecutableToCodeBlockEdge::createStructure):
(JSC::ExecutableToCodeBlockEdge::create):
(JSC::ExecutableToCodeBlockEdge::visitChildren):
(JSC::ExecutableToCodeBlockEdge::visitOutputConstraints):
(JSC::ExecutableToCodeBlockEdge::finalizeUnconditionally):
(JSC::ExecutableToCodeBlockEdge::activate):
(JSC::ExecutableToCodeBlockEdge::deactivate):
(JSC::ExecutableToCodeBlockEdge::deactivateAndUnwrap):
(JSC::ExecutableToCodeBlockEdge::wrap):
(JSC::ExecutableToCodeBlockEdge::wrapAndActivate):
(JSC::ExecutableToCodeBlockEdge::ExecutableToCodeBlockEdge):
(JSC::ExecutableToCodeBlockEdge::runConstraint):
* bytecode/ExecutableToCodeBlockEdge.h: Added.
(JSC::ExecutableToCodeBlockEdge::subspaceFor):
(JSC::ExecutableToCodeBlockEdge::codeBlock const):
(JSC::ExecutableToCodeBlockEdge::unwrap):
* bytecode/FunctionCodeBlock.h:
(JSC::FunctionCodeBlock::subspaceFor):
(JSC::FunctionCodeBlock::createStructure):
* bytecode/ModuleProgramCodeBlock.h:
(JSC::ModuleProgramCodeBlock::create): Deleted.
(JSC::ModuleProgramCodeBlock::createStructure): Deleted.
(JSC::ModuleProgramCodeBlock::ModuleProgramCodeBlock): Deleted.
* bytecode/ProgramCodeBlock.h:
(JSC::ProgramCodeBlock::create): Deleted.
(JSC::ProgramCodeBlock::createStructure): Deleted.
(JSC::ProgramCodeBlock::ProgramCodeBlock): Deleted.
* debugger/Debugger.cpp:
(JSC::Debugger::SetSteppingModeFunctor::operator() const):
(JSC::Debugger::ToggleBreakpointFunctor::operator() const):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::operator() const):
(JSC::Debugger::ClearDebuggerRequestsFunctor::operator() const):
* heap/CodeBlockSet.cpp:
(JSC::CodeBlockSet::contains):
(JSC::CodeBlockSet::dump const):
(JSC::CodeBlockSet::add):
(JSC::CodeBlockSet::remove):
(JSC::CodeBlockSet::promoteYoungCodeBlocks): Deleted.
(JSC::CodeBlockSet::clearMarksForFullCollection): Deleted.
(JSC::CodeBlockSet::lastChanceToFinalize): Deleted.
(JSC::CodeBlockSet::deleteUnmarkedAndUnreferenced): Deleted.
* heap/CodeBlockSet.h:
* heap/CodeBlockSetInlines.h:
(JSC::CodeBlockSet::iterate):
(JSC::CodeBlockSet::iterateViaSubspaces):
* heap/ConservativeRoots.cpp:
(JSC::ConservativeRoots::genericAddPointer):
(JSC::DummyMarkHook::markKnownJSCell):
(JSC::CompositeMarkHook::mark):
(JSC::CompositeMarkHook::markKnownJSCell):
* heap/ConservativeRoots.h:
* heap/Heap.cpp:
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::finalizeMarkedUnconditionalFinalizers):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::beginMarking):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):
(JSC::Heap::forEachCodeBlockImpl):
(JSC::Heap::forEachCodeBlockIgnoringJITPlansImpl):
(JSC::Heap::addCoreConstraints):
(JSC::Heap::finalizeUnconditionalFinalizersInIsoSubspace): Deleted.
* heap/Heap.h:
* heap/HeapCell.h:
* heap/HeapCellInlines.h:
(JSC::HeapCell::subspace const):
* heap/HeapInlines.h:
(JSC::Heap::forEachCodeBlock):
(JSC::Heap::forEachCodeBlockIgnoringJITPlans):
* heap/HeapUtil.h:
(JSC::HeapUtil::findGCObjectPointersForMarking):
* heap/IsoCellSet.cpp:
(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):
* heap/IsoCellSet.h:
* heap/IsoCellSetInlines.h:
(JSC::IsoCellSet::forEachMarkedCellInParallel):
(JSC::IsoCellSet::forEachLiveCell):
* heap/LargeAllocation.h:
(JSC::LargeAllocation::subspace const):
* heap/MarkStackMergingConstraint.cpp:
(JSC::MarkStackMergingConstraint::executeImpl):
* heap/MarkStackMergingConstraint.h:
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::parallelNotEmptyBlockSource):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::Handle::didAddToAllocator):
(JSC::MarkedBlock::Handle::didRemoveFromAllocator):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::subspace const):
* heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::Handle::forEachLiveCell):
* heap/MarkedSpaceInlines.h:
(JSC::MarkedSpace::forEachLiveCell):
* heap/MarkingConstraint.cpp:
(JSC::MarkingConstraint::execute):
(JSC::MarkingConstraint::doParallelWork):
(JSC::MarkingConstraint::finishParallelWork): Deleted.
(JSC::MarkingConstraint::doParallelWorkImpl): Deleted.
(JSC::MarkingConstraint::finishParallelWorkImpl): Deleted.
* heap/MarkingConstraint.h:
* heap/MarkingConstraintSet.cpp:
(JSC::MarkingConstraintSet::add):
* heap/MarkingConstraintSet.h:
(JSC::MarkingConstraintSet::add):
* heap/MarkingConstraintSolver.cpp:
(JSC::MarkingConstraintSolver::execute):
(JSC::MarkingConstraintSolver::addParallelTask):
(JSC::MarkingConstraintSolver::runExecutionThread):
(JSC::MarkingConstraintSolver::didExecute): Deleted.
* heap/MarkingConstraintSolver.h:
(JSC::MarkingConstraintSolver::TaskWithConstraint::TaskWithConstraint):
(JSC::MarkingConstraintSolver::TaskWithConstraint::operator== const):
* heap/SimpleMarkingConstraint.cpp:
(JSC::SimpleMarkingConstraint::SimpleMarkingConstraint):
(JSC::SimpleMarkingConstraint::executeImpl):
* heap/SimpleMarkingConstraint.h:
(JSC::SimpleMarkingConstraint::SimpleMarkingConstraint):
* heap/SlotVisitor.cpp:
(JSC::SlotVisitor::addParallelConstraintTask):
* heap/SlotVisitor.h:
* heap/Subspace.cpp:
(JSC::Subspace::sweep):
* heap/Subspace.h:
* heap/SubspaceInlines.h:
(JSC::Subspace::forEachLiveCell):
* llint/LowLevelInterpreter.asm:
* runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::visitChildren):
* runtime/EvalExecutable.h:
(JSC::EvalExecutable::codeBlock):
* runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::baselineCodeBlockFor):
(JSC::FunctionExecutable::visitChildren):
* runtime/FunctionExecutable.h:
* runtime/JSType.h:
* runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::visitChildren):
* runtime/ModuleProgramExecutable.h:
* runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::visitChildren):
* runtime/ProgramExecutable.h:
* runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::SpaceAndFinalizerSet::SpaceAndFinalizerSet):
(JSC::VM::SpaceAndFinalizerSet::finalizerSetFor):
(JSC::VM::forEachCodeBlockSpace):
* runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
* tools/VMInspector.cpp:
(JSC::VMInspector::codeBlockForMachinePC):
(JSC::VMInspector::isValidCodeBlock):

Source/WebCore:

No new tests because no new behavior.

Adopting new parallel constraint API, so that more of the logic of doing parallel
constraint solving is shared between the DOM's output constraints and JSC's output
constraints.

* bindings/js/DOMGCOutputConstraint.cpp:
(WebCore::DOMGCOutputConstraint::executeImpl):
(WebCore::DOMGCOutputConstraint::doParallelWorkImpl): Deleted.
(WebCore::DOMGCOutputConstraint::finishParallelWorkImpl): Deleted.
* bindings/js/DOMGCOutputConstraint.h:

Source/WTF:

Deque<>::contains() is helpful for a debug ASSERT.

* wtf/Deque.h:
(WTF::inlineCapacity>::contains):

Tools:

Remove some less important benchmarks from the default run. Doing run-jsc-benchmarks
shouldn't take a long time due to benchmarks we don't optimize for.

* Scripts/run-jsc-benchmarks:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoTest gardening for GTK.
Ms2ger@igalia.com [Thu, 11 Jan 2018 16:23:53 +0000 (16:23 +0000)]
Test gardening for GTK.
https://bugs.webkit.org/show_bug.cgi?id=181477

Unreviewed test gardening.

Tools:

* TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: Correct the file name.
* TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: Adjust the expected console message.

LayoutTests:

* http/tests/performance/performance-resource-timing-cached-entries-expected.txt:
* http/tests/performance/performance-resource-timing-cached-entries.html:
  The code to debug this test's flakiness made it more flaky, as the
  resources are not logged in a consistent order. This ensures they are
  logged only in case of failure.
* platform/gtk/TestExpectations:
  - svg/custom/non-scaling-stroke.svg was fixed in r226443.
  - imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-001.html
    was fixed in r226404.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoNFC reorder headers
jfbastien@apple.com [Thu, 11 Jan 2018 15:54:43 +0000 (15:54 +0000)]
NFC reorder headers
https://bugs.webkit.org/show_bug.cgi?id=181521

Reviewed by Darin Adler.

Follow-up on r226752. I misunderstood the header include order
style. No functional change.

* wtf/Poisoned.h:
* wtf/PoisonedUniquePtr.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd the new JSCOnly bot to the scheduler.
clopez@igalia.com [Thu, 11 Jan 2018 15:42:54 +0000 (15:42 +0000)]
Add the new JSCOnly bot to the scheduler.
https://bugs.webkit.org/show_bug.cgi?id=181487

Unreviewed follow-up patch after r226729

On r226729 I missed to add the new JSCOnly bot the default scheduler.
This is needed to make the bot automatically pick each commit for testing.

* BuildSlaveSupport/build.webkit.org-config/config.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Attachment Support] Support dragging attachment elements out as files on iOS
wenson_hsieh@apple.com [Thu, 11 Jan 2018 15:41:39 +0000 (15:41 +0000)]
[Attachment Support] Support dragging attachment elements out as files on iOS
https://bugs.webkit.org/show_bug.cgi?id=181199
<rdar://problem/36299316>

Reviewed by Tim Horton, Andy Estes and Joseph Pecoraro.

Source/WebCore:

Adds support for dragging "files" (i.e. creating item providers with preferred attachment presentation styles)
from attachment elements on iOS for Mail. See below for more detail.

Tests:  WKAttachmentTestsIOS.DragAttachmentInsertedAsData
        WKAttachmentTestsIOS.DragAttachmentInsertedAsFile

* page/DragController.cpp:
(WebCore::DragController::platformContentTypeForBlobType const):
(WebCore::DragController::dragAttachmentElement):
* page/DragController.h:
* page/mac/DragControllerMac.mm:
(WebCore::DragController::platformContentTypeForBlobType const):

Add a private method to convert the type of a promised blob to a platform type. For Cocoa platforms, this
converts the blob type (either a UTI or a MIME type) to a UTI for the platform to consume.

* platform/ios/WebItemProviderPasteboard.h:
* platform/ios/WebItemProviderPasteboard.mm:

Refactor WebItemProviderRegistrationInfo. WebItemProviderRegistrationInfo currently encapsulates a single item
provider registration call, and contains either a type identifier and data buffer, or an NSItemProviderWriting-
conformant object. To register an item provider using a WebItemProviderRegistrationInfo, the item provider
pasteboard currently checks to see whether the info contains an object or a type and data.

This patch removes WebItemProviderRegistrationInfo and replaces it with WebItemProviderDataRegistrar. Objects
that implement this protocol know how to take an NSItemProvider and register data to it. So far, there are
three implementations below.

(-[WebItemProviderDataRegistrar initWithData:type:]):
(-[WebItemProviderDataRegistrar typeIdentifier]):
(-[WebItemProviderDataRegistrar data]):
(-[WebItemProviderDataRegistrar typeIdentifierForClient]):
(-[WebItemProviderDataRegistrar dataForClient]):
(-[WebItemProviderDataRegistrar registerItemProvider:]):
(-[WebItemProviderDataRegistrar description]):

A data registrar takes a UTI and data buffer, and registers the UTI to the data. This replaces a
WebItemProviderRegistrationInfo with both a type and data, but no representing object.

(-[WebItemProviderWritableObjectRegistrar initWithObject:]):
(-[WebItemProviderWritableObjectRegistrar representingObjectForClient]):
(-[WebItemProviderWritableObjectRegistrar registerItemProvider:]):
(-[WebItemProviderWritableObjectRegistrar description]):

The writable object registrar writes an NSItemProviderWriting-conformant object to an item provider. This
replaces a WebItemProviderRegistrationInfo with only a representing object.

(-[WebItemProviderPromisedFileRegistrar initWithType:callback:]):
(-[WebItemProviderPromisedFileRegistrar registerItemProvider:]):
(-[WebItemProviderPromisedFileRegistrar description]):
(-[WebItemProviderRegistrationInfoList addData:forType:]):
(-[WebItemProviderRegistrationInfoList addRepresentingObject:]):
(-[WebItemProviderRegistrationInfoList addPromisedType:fileCallback:]):

Helper methods to add new registrars to a registration info list.

(-[WebItemProviderRegistrationInfoList itemAtIndex:]):
(-[WebItemProviderRegistrationInfoList enumerateItems:]):
(-[WebItemProviderRegistrationInfoList itemProvider]):
(-[WebItemProviderRegistrationInfoList description]):
(-[WebItemProviderRegistrationInfo initWithRepresentingObject:typeIdentifier:data:]): Deleted.
(-[WebItemProviderRegistrationInfo representingObject]): Deleted.
(-[WebItemProviderRegistrationInfo typeIdentifier]): Deleted.

Source/WebKit:

Implement support for registering and beginning a drag with promised blob info. See below for more detail.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKDragSessionContext addTemporaryDirectory:]):
(-[WKDragSessionContext cleanUpTemporaryDirectories]):

Introduce WKDragSessionContext, which represents the localContext of a UIDragSession initiated in WebKit. The
blob promise dragging codepath uses this to register temporary directories when saving blob data to a location
on disk; when all data transfers are finished, or if the drag interaction is being reset, we then use
-cleanUpTemporaryDirectories to remove each temporary directory.

(existingLocalDragSessionContext):
(ensureLocalDragSessionContext):

Helper methods to set the UIDragSession's localContext to a WKDragSessionContext and query for any existing
context.

(-[WKContentView cleanupInteraction]):

Before the content view's UIDragInteraction goes away, clean up any temporary directories added to the
UIDragSession.

(-[WKContentView _prepareToDragPromisedBlob:]):

When dragging with a promised blob, register a new item provider on the pasteboard representing the blob data,
along with any additional metadata associated with the blob. For the promise callback, call out to the network
process to write the blob data to a temporary path; when done, call the NSItemProvider's completion handler with
the temporary blob data location.

(-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]):
(-[WKContentView dragInteraction:sessionDidTransferItems:]):

Use this delegate hook as an opportunity to remove any temporary directories created when promised blob data is
requested upon drop. Since we know the drag session that has finished transferring data, we simply ask its local
context (a WKDragSessionContext) to remove any temporary filepaths it has created.

Tools:

Add support in the drag and drop simulator for testing blob-backed attachment element dragging, and also add new
attachment API tests.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[NSItemProvider expectType:withData:]):
(TestWebKitAPI::TEST):

Add two new WKAttachmentTests to exercise dragging data- and file-backed blobs via attachment elements. These
tests first insert attachments via drop or WKWebView SPI, and then drag these attachments out and use the
-expectType:withData: helper to inspect the item providers created from the drag source.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/DataInteractionSimulator.h:
* TestWebKitAPI/ios/DataInteractionSimulator.mm:
(-[MockDragSession localContext]):
(-[MockDragSession setLocalContext:]):
(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator simulateAllTouchesCanceled:]):
(-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator endDataTransfer]):

Make some tweaks to the iOS drag and drop simulator. In particular, this patch (1) adds a new hook to tell
WebKit that data transfers have been completed, (2) fixes incorrect drop proposal handling when returning
UIDropOperationForbidden by replacing _shouldPerformOperation with a UIDropProposal, and (3) teach the
MockDragSession to hold on to a localContext.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd a DOM gadget for Spectre testing
msaboff@apple.com [Thu, 11 Jan 2018 15:28:38 +0000 (15:28 +0000)]
Add a DOM gadget for Spectre testing
https://bugs.webkit.org/show_bug.cgi?id=181351

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* runtime/Options.h:

Source/WebCore:

This change is used to test Spectre mitigations.

Added a new DOM class to test for Spectre issues in the DOM layer.
This additional functionality is disabled by default and must be enabled
through the JSC option "enableSpectreGadgets".

* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/SpectreGadget.cpp: Added.
(WebCore::SpectreGadget::SpectreGadget):
(WebCore::SpectreGadget::create):
(WebCore::SpectreGadget::setReadLength):
(WebCore::SpectreGadget::charCodeAt):
(WebCore::SpectreGadget::clflushReadLength):
* dom/SpectreGadget.h: Added.
* dom/SpectreGadget.idl: Added.
* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::spectreGadgetsEnabled const):
* page/RuntimeEnabledFeatures.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed GTK+ and WPE gardening after r226773.
magomez@igalia.com [Thu, 11 Jan 2018 15:21:05 +0000 (15:21 +0000)]
Unreviewed GTK+ and WPE gardening after r226773.

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Add Ali Juma as contributor
annulen@yandex.ru [Thu, 11 Jan 2018 14:47:38 +0000 (14:47 +0000)]
Unreviewed. Add Ali Juma as contributor

Patch by Ali Juma <ajuma@chromium.org> on 2018-01-11

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[DFG][FTL] regExpMatchFast should be handled
utatane.tea@gmail.com [Thu, 11 Jan 2018 14:20:40 +0000 (14:20 +0000)]
[DFG][FTL] regExpMatchFast should be handled
https://bugs.webkit.org/show_bug.cgi?id=180988

Reviewed by Mark Lam.

RegExp.prototype.@@match has a fast path, @regExpMatchFast. This patch annotates this function
with RegExpMatchFastIntrinsic, and introduces RegExpMatch DFG node. This paves the way to
make NewRegexp PhantomNewRegexp if it is not used except for setting/getting its lastIndex property.

To improve RegExp.prototype.@@match's performance more, we make this builtin function small by moving
slow path part to `@matchSlow()` private function.

It improves SixSpeed regex-u.{es5,es6} largely since they stress String.prototype.match, which calls
this regExpMatchFast function.

                         baseline                  patched

regex-u.es5          55.3835+-6.3002     ^     36.2431+-2.0797        ^ definitely 1.5281x faster
regex-u.es6         110.4624+-6.2896     ^     94.1012+-7.2433        ^ definitely 1.1739x faster

* builtins/RegExpPrototype.js:
(globalPrivate.matchSlow):
(overriddenName.string_appeared_here.match):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpMatch):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileRegExpMatch):
* runtime/Intrinsic.cpp:
(JSC::intrinsicName):
* runtime/Intrinsic.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncMatchFast):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226775 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK] Enable css2.1/20110323/vertical-align-boxes-001.htm.
Ms2ger@igalia.com [Thu, 11 Jan 2018 14:06:18 +0000 (14:06 +0000)]
[GTK] Enable css2.1/20110323/vertical-align-boxes-001.htm.
https://bugs.webkit.org/show_bug.cgi?id=91339

Unreviewed test gardening.

It was fixed in r226404.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226774 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Update Selenium WebDriver imported tests.
carlosgc@webkit.org [Thu, 11 Jan 2018 12:13:40 +0000 (12:13 +0000)]
Unreviewed. Update Selenium WebDriver imported tests.

Tools:

New version of selenium uses command line options to pass driver and browser binaries to pytest instead of
environment variables.

* Scripts/webkitpy/webdriver_tests/pytest_runner.py:
(collect): Reorder the arguments to make pytest happy.
(run): Ditto.
* Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:
(WebDriverSeleniumExecutor.__init__): Add driver binary, browser binary and browser args as arguments.

WebDriverTests:

* imported/selenium/importer.json:
* imported/selenium/py/conftest.py:
* imported/selenium/py/selenium/__init__.py:
* imported/selenium/py/selenium/webdriver/__init__.py:
* imported/selenium/py/selenium/webdriver/common/action_chains.py:
* imported/selenium/py/selenium/webdriver/common/service.py:
* imported/selenium/py/selenium/webdriver/remote/remote_connection.py:
* imported/selenium/py/selenium/webdriver/remote/switch_to.py:
* imported/selenium/py/selenium/webdriver/remote/webdriver.py:
* imported/selenium/py/selenium/webdriver/remote/webelement.py:
* imported/selenium/py/selenium/webdriver/support/expected_conditions.py:
* imported/selenium/py/selenium/webdriver/webkitgtk/options.py:
* imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/appcache_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/driver_element_finding_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/interactions_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/position_and_size_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/visibility_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/w3c_interaction_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/window_tests.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226773 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMove Commit Queue and EWS Queues to Sierra on Bot Watcher's Dasboard
lingcherd_ho@apple.com [Thu, 11 Jan 2018 12:07:00 +0000 (12:07 +0000)]
Move Commit Queue and EWS Queues to Sierra on Bot Watcher's Dasboard
https://bugs.webkit.org/show_bug.cgi?id=181492
<rdar://problem/36359679>

Reviewed by Alexey Proskuryakov.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoLayoutTests/http/tests/workers/service/resources/service-worker-importScript.js does...
commit-queue@webkit.org [Thu, 11 Jan 2018 11:08:47 +0000 (11:08 +0000)]
LayoutTests/http/tests/workers/service/resources/service-worker-importScript.js does not need to register two service workers
https://bugs.webkit.org/show_bug.cgi?id=181490

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-11
Reviewed by Chris Dumez.

* http/tests/workers/service/resources/service-worker-importScript.js:
* http/tests/workers/service/service-worker-importScript-expected.txt:
* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWebDriver: implement get timeouts command
carlosgc@webkit.org [Thu, 11 Jan 2018 10:00:31 +0000 (10:00 +0000)]
WebDriver: implement get timeouts command
https://bugs.webkit.org/show_bug.cgi?id=181524

Reviewed by Žan Doberšek.

8.4 Get Timeouts
https://w3c.github.io/webdriver/webdriver-spec.html#get-timeouts

Also simplify the way timeouts are handled in Session. Stop using Timeouts struct, because once the session is
created the timeouts are no longer optional, they have a default value. Use individual members instead that are
initialized to their default values on construction and only overriden by capabilities or set timeouts command.

Fixes: imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_timeouts
       imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_default_timeouts
       imported/w3c/webdriver/tests/sessions/get_timeouts.py::test_get_new_timeouts

* Session.cpp:
(WebDriver::Session::Session):
(WebDriver::Session::getTimeouts):
(WebDriver::Session::setTimeouts):
(WebDriver::Session::go):
(WebDriver::Session::back):
(WebDriver::Session::forward):
(WebDriver::Session::refresh):
(WebDriver::Session::findElements):
(WebDriver::Session::waitForNavigationToComplete):
(WebDriver::Session::executeScript):
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::getTimeouts):
* WebDriverService.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK] media/muted-video-is-playing-audio.html is timing out
philn@webkit.org [Thu, 11 Jan 2018 09:24:50 +0000 (09:24 +0000)]
[GTK] media/muted-video-is-playing-audio.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=163781

Reviewed by Carlos Garcia Campos.

Source/WebCore:

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Sprinkle some debugging.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::setMuted): Ditto.

LayoutTests:

The test should un-mute the page because the IsPlayingAudio flag indirectly depends on this.

* media/muted-video-is-playing-audio.html: Un-mute the page.
* platform/gtk/TestExpectations: Unflag now-passing test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Remove unused variable in WI.DebuggerSidebarPanel
commit-queue@webkit.org [Thu, 11 Jan 2018 08:19:08 +0000 (08:19 +0000)]
Web Inspector: Remove unused variable in WI.DebuggerSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=181517

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-11
Reviewed by Matt Baker.

* UserInterface/Views/DebuggerSidebarPanel.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoOur for-in caching is wrong when we add indexed properties on things in the prototype...
sbarati@apple.com [Thu, 11 Jan 2018 08:16:06 +0000 (08:16 +0000)]
Our for-in caching is wrong when we add indexed properties on things in the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=181508

Reviewed by Yusuke Suzuki.

JSTests:

* stress/for-in-prototype-with-indexed-properties-should-prevent-caching.js: Added.
(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):

Source/JavaScriptCore:

Our for-in caching would cache structure chains that had prototypes with
indexed properties. Clearly this is wrong. This caching breaks when a prototype
adds new indexed properties. We would continue to enumerate the old cached
state of properties, and not include the new indexed properties.

The old code used to prevent caching only if the base structure had
indexed properties. This patch extends it to prevent caching if the
base, or any structure in the prototype chain, has indexed properties.

* runtime/Structure.cpp:
(JSC::Structure::canCachePropertyNameEnumerator const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Payment Request] Rename ApplePayMerchantValidationEvent to MerchantValidationEvent
aestes@apple.com [Thu, 11 Jan 2018 07:26:55 +0000 (07:26 +0000)]
[Payment Request] Rename ApplePayMerchantValidationEvent to MerchantValidationEvent
https://bugs.webkit.org/show_bug.cgi?id=181437
<rdar://problem/36376481>

Reviewed by Tim Horton.
Source/WebCore:

Renamed ApplePayMerchantValidationEvent to MerchantValidationEvent and changed complete() to accept a Promise.

Test: http/tests/paymentrequest/payment-request-merchant-validation.https.html

* DerivedSources.make:
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::merchantValidationCompleted):
(WebCore::ApplePayPaymentHandler::validateMerchant):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
* Modules/paymentrequest/MerchantValidationEvent.cpp: Renamed from Source/WebCore/Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.cpp.
(WebCore::MerchantValidationEvent::create):
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
(WebCore::MerchantValidationEvent::eventInterface const):
(WebCore::MerchantValidationEvent::complete):
* Modules/paymentrequest/MerchantValidationEvent.h: Renamed from Source/WebCore/Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.h.
* Modules/paymentrequest/MerchantValidationEvent.idl: Renamed from Source/WebCore/Modules/applepay/paymentrequest/ApplePayMerchantValidationEvent.idl.
* Modules/paymentrequest/PaymentHandler.h:
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::completeMerchantValidation):
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentRequest.idl:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
* dom/EventNames.in:

LayoutTests:

* http/tests/paymentrequest/payment-request-change-shipping-address.https.html:
* http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
* http/tests/paymentrequest/payment-request-merchant-validation.https-expected.txt: Added.
* http/tests/paymentrequest/payment-request-merchant-validation.https.html: Added.
* http/tests/paymentrequest/resources/helpers.js:
(async.getPaymentRequestResponse):
* http/tests/paymentrequest/updateWith-method-pmi-handling.https.html:
* http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https-expected.txt: Removed.
* http/tests/ssl/applepay/ApplePayMerchantValidationEvent.https.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r218975): Web Inspector: Add back NavigationSidebarPanel initialization...
commit-queue@webkit.org [Thu, 11 Jan 2018 07:07:52 +0000 (07:07 +0000)]
REGRESSION(r218975): Web Inspector: Add back NavigationSidebarPanel initialization parameter used by SearchSidebarPanel (top overflow shadow)
https://bugs.webkit.org/show_bug.cgi?id=181518
<rdar://problem/36427197>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-10
Reviewed by Matt Baker.

* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow.top):
* UserInterface/Views/NavigationSidebarPanel.js:
(WI.NavigationSidebarPanel):
Add back the initialization parameter still used by SearchSidebarPanel
and add back its implementation. There were still references to
dynamically update _topOverflowShadowElement in NavigationSidebarPanel.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226765 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Update W3C WebDriver imported tests.
carlosgc@webkit.org [Thu, 11 Jan 2018 07:05:24 +0000 (07:05 +0000)]
Unreviewed. Update W3C WebDriver imported tests.

* imported/w3c/importer.json:
* imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py:
* imported/w3c/webdriver/tests/sessions/new_session/support/create.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Incorrect check with WI.debuggableType
commit-queue@webkit.org [Thu, 11 Jan 2018 07:05:12 +0000 (07:05 +0000)]
Web Inspector: Incorrect check with WI.debuggableType
https://bugs.webkit.org/show_bug.cgi?id=181515
<rdar://problem/36425509>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-10
Reviewed by Brian Burg.

* UserInterface/Base/Main.js:
(WI.contentLoaded):
This moved to WI.sharedApp a while ago.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago-[WKWebView _web_gestureEventWasNotHandledByWebCore:] should call -_gestureEventWasNo...
jeffm@apple.com [Thu, 11 Jan 2018 06:34:22 +0000 (06:34 +0000)]
-[WKWebView _web_gestureEventWasNotHandledByWebCore:] should call -_gestureEventWasNotHandledByWebCore:
https://bugs.webkit.org/show_bug.cgi?id=181498

Reviewed by Alex Christensen.

WKView's API contract allows clients to override -_gestureEventWasNotHandledByWebCore:, and -[WKView
_web_gestureEventWasNotHandledByWebCore:] calls -_gestureEventWasNotHandledByWebCore: instead of
invoking WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly() directly. WKWebView should do
the same thing.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _web_gestureEventWasNotHandledByWebCore:]):
Call -_gestureEventWasNotHandledByWebCore:, which will call gestureEventWasNotHandledByWebCoreFromViewOnly().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK] Tools/gtk/install-dependencies: Packages geoclue, ruby-highline, xorg-utils...
aperez@igalia.com [Thu, 11 Jan 2018 06:13:01 +0000 (06:13 +0000)]
[GTK] Tools/gtk/install-dependencies: Packages geoclue, ruby-highline, xorg-utils do not exist in Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=181475

Reviewed by Michael Catanzaro.

* gtk/install-dependencies: Update package list for Arch Linux, extend
message shown at end of installation with additional tips.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUpdate TestExpectations for http/tests/misc/submit-post-keygen.html.
ryanhaddad@apple.com [Thu, 11 Jan 2018 05:15:12 +0000 (05:15 +0000)]
Update TestExpectations for http/tests/misc/submit-post-keygen.html.
https://bugs.webkit.org/show_bug.cgi?id=121331

Unreviewed test gardening.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226760 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMark swipe/pushstate-with-manual-scrollrestoration.html as failing.
ryanhaddad@apple.com [Thu, 11 Jan 2018 05:06:26 +0000 (05:06 +0000)]
Mark swipe/pushstate-with-manual-scrollrestoration.html as failing.
https://bugs.webkit.org/show_bug.cgi?id=181502

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226759 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Win] WebKitLegacy should be a dll, not a static library.
pvollan@apple.com [Thu, 11 Jan 2018 04:57:51 +0000 (04:57 +0000)]
[Win] WebKitLegacy should be a dll, not a static library.
https://bugs.webkit.org/show_bug.cgi?id=181500

Reviewed by Alex Christensen.

Set WebKitLegacy library type to shared.

* Source/cmake/OptionsWin.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMark accessibility/mac/aria-multiple-liveregions-notification.html as flaky.
ryanhaddad@apple.com [Thu, 11 Jan 2018 04:16:34 +0000 (04:16 +0000)]
Mark accessibility/mac/aria-multiple-liveregions-notification.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181494

Unreviewed test gardening.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMark http/tests/misc/slow-loading-animated-image.html as flaky.
ryanhaddad@apple.com [Thu, 11 Jan 2018 04:06:59 +0000 (04:06 +0000)]
Mark http/tests/misc/slow-loading-animated-image.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181479

Unreviewed test gardening.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Canvas tab: throttle recording slider updates
mattbaker@apple.com [Thu, 11 Jan 2018 03:36:29 +0000 (03:36 +0000)]
Web Inspector: Canvas tab: throttle recording slider updates
https://bugs.webkit.org/show_bug.cgi?id=180839
<rdar://problem/36057849>

Reviewed by Joseph Pecoraro

Source/WebInspectorUI:

* UserInterface/Base/Utilities.js:
Add Object.throttle and Function.cancelThrottle. Repeated calls to a
function on a throttled object are delayed, so that the function isn't
invoked more frequently than the specified delay value.

For a description of throttling behavior see:
  - http://www.chrislondon.co/throttling-vs-debouncing
  - http://benalman.com/projects/jquery-throttle-debounce-plugin

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView.prototype.updateActionIndex):
Throttle frequency of canvas snapshot creation to 200ms.
(WI.RecordingContentView.prototype.hidden):
Prevent trailing edge call after hiding the view.

LayoutTests:

* inspector/unit-tests/throttle-expected.txt: Added.
* inspector/unit-tests/throttle.html: Added.
Added function throttling tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Curl] Cross-protocol, cross-site scripting (XPXSS) using HTML forms
don.olmstead@sony.com [Thu, 11 Jan 2018 03:30:25 +0000 (03:30 +0000)]
[Curl] Cross-protocol, cross-site scripting (XPXSS) using HTML forms
Nhttps://bugs.webkit.org/show_bug.cgi?id=153088

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-01-10
Reviewed by Alex Christensen.

No new tests because it's covered by existing tests.

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::getHttpVersion):
* platform/network/curl/CurlContext.h:
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::didReceiveHeader):
* platform/network/curl/CurlResponse.h:
(WebCore::CurlResponse::isolatedCopy const):
* platform/network/curl/ResourceResponseCurl.cpp:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::setStatusLine):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r222507): Composition highlight doesn't render when using IME
wenson_hsieh@apple.com [Thu, 11 Jan 2018 03:05:10 +0000 (03:05 +0000)]
REGRESSION(r222507): Composition highlight doesn't render when using IME
https://bugs.webkit.org/show_bug.cgi?id=181485
<rdar://problem/35896516>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixes the order of arguments passed to paintTextSubrangeBackground from paintCompositionBackground.

Test: editing/marked-text-appearance.html

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCompositionBackground):

Source/WebKit:

Add plumbing for a `suppressUnderline` argument when setting marked text.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetComposition):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setCompositionForTesting):
* WebProcess/WebPage/WebPage.h:

Tools:

Add a `suppressUnderline` argument to TextInputController.setMarkedText. This suppresses the custom underlines
rendered when testing IME on iOS in WebKit2. In this new test, suppressing underline rendering is needed to
allow rendering composition backgrounds (see InlineTextBox::paint).

* DumpRenderTree/ios/TextInputControllerIOS.m:
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]):
(-[TextInputController setMarkedText:selectedFrom:length:]): Deleted.
* DumpRenderTree/mac/TextInputControllerMac.m:
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController setMarkedText:selectedFrom:length:suppressUnderline:]):
(-[TextInputController setMarkedText:selectedFrom:length:]): Deleted.
* WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl:
* WebKitTestRunner/InjectedBundle/TextInputController.cpp:
(WTR::TextInputController::setMarkedText):
* WebKitTestRunner/InjectedBundle/TextInputController.h:

LayoutTests:

Add a new layout test to ensure that in the absence of custom composition underlines, a marked composition
string appears different once it is confirmed.

* editing/marked-text-appearance-expected-mismatch.html: Added.
* editing/marked-text-appearance.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoPoison small JSObject derivatives which only contain pointers
jfbastien@apple.com [Thu, 11 Jan 2018 03:03:35 +0000 (03:03 +0000)]
Poison small JSObject derivatives which only contain pointers
https://bugs.webkit.org/show_bug.cgi?id=181483
<rdar://problem/36407127>

Reviewed by Mark Lam.

Source/JavaScriptCore:

I wrote a script that finds interesting things to poison or
generally harden. These stood out because they derive from
JSObject and only contain a few pointer or pointer-like fields,
and could therefore just be poisoned. This also requires some
template "improvements" to our poisoning machinery. Worth noting
is that I'm making PoisonedUniquePtr move-assignable and
move-constructible from unique_ptr, which makes it a better
drop-in replacement because we don't need to use
makePoisonedUniquePtr. This means function-locals can be
unique_ptr and get the nice RAII pattern, and once the function is
done you can just move to the class' PoisonedUniquePtr without
worrying.

* API/JSAPIWrapperObject.h:
(JSC::JSAPIWrapperObject::wrappedObject):
* API/JSAPIWrapperObject.mm:
(JSC::JSAPIWrapperObject::JSAPIWrapperObject):
* API/JSCallbackObject.h:
* runtime/ArrayPrototype.h:
* runtime/DateInstance.h:
* runtime/JSArrayBuffer.cpp:
(JSC::JSArrayBuffer::finishCreation):
(JSC::JSArrayBuffer::isShared const):
(JSC::JSArrayBuffer::sharingMode const):
* runtime/JSArrayBuffer.h:
* runtime/JSCPoison.h:

Source/WTF:

The associated JSC poisoning change requires some template
"improvements" to our poisoning machinery. Worth noting is that
I'm making PoisonedUniquePtr move-assignable and
move-constructible from unique_ptr, which makes it a better
drop-in replacement because we don't need to use
makePoisonedUniquePtr. This means function-locals can be
unique_ptr and get the nice RAII pattern, and once the function is
done you can just move to the class' PoisonedUniquePtr without
worrying.

* wtf/Poisoned.h:
(WTF::PoisonedImpl::PoisonedImpl):
* wtf/PoisonedUniquePtr.h:
(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::operator=):

Tools:

Test the new move-assign and move-copy from unique_ptr, as well as
nullptr_t ctors.

* TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMultiple http/wpt/beacon/contentextensions/ test are flaky.
cdumez@apple.com [Thu, 11 Jan 2018 02:30:51 +0000 (02:30 +0000)]
Multiple http/wpt/beacon/contentextensions/ test are flaky.
https://bugs.webkit.org/show_bug.cgi?id=179256
<rdar://problem/35401978>

Reviewed by Alex Christensen.

Tools:

Update WebKitTestRunner to set a temporary path for content extensions so that its WKTR
instance gets its own folder to avoid conflicts and flakiness.

* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Stop marking content extensions tests as flaky.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION (r213590): Swipe from edge to go to previous page is significantly slower...
timothy_horton@apple.com [Thu, 11 Jan 2018 02:18:45 +0000 (02:18 +0000)]
REGRESSION (r213590): Swipe from edge to go to previous page is significantly slower than tapping back button on Twitter
https://bugs.webkit.org/show_bug.cgi?id=181269
<rdar://problem/35110344>

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
(-[WKWebView _didCommitLayerTree:]):
When swiping to a page that set history.scrollRestoration = "manual",
we will never restore the scroll position. We will still restore
"state", but won't have a location. Currently, the code assumes that
it should wait to remove the swipe snapshot until the scroll position
is restored. Instead, wait until the "state" is restored, whether
or not that includes a scroll position/center point restoration.

Do this by making _firstTransactionIDAfterPageRestore an optional,
and reset it after it fires, so that we only run the restoration code
in _didCommitLayerTree for the first commit after state restoration,
not all subsequent commits. Then, tell ViewGestureController that
the scroll position has been restored even if the page opted out.

The reason that this is specific to pushState is that normal,
non-same-document loads bail from waiting for the scroll position
restoration in VGC::didReachMainFrameLoadTerminalState() (see the long
comment there for an explanation).

(-[WKWebView _beginBackSwipeForTesting]):
(-[WKWebView _completeBackSwipeForTesting]):
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/ViewGestureController.h:
* UIProcess/ios/ViewGestureControllerIOS.mm:
(-[WKSwipeTransitionController transitionForDirection:]):
(WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
(WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
(WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting):
Add a mechanism to forcefully test swipe back. Instead of simulating
events like on Mac, we just talk to the UIKit internals and force
the interaction to start, pause, and then complete when we want.

* swipe/pushstate-with-manual-scrollrestoration-expected.txt: Added.
* swipe/pushstate-with-manual-scrollrestoration.html: Added.
Add a test (which previously would complain about taking too long)
that using manual scroll position restoration and pushState together
doesn't cause swipes to hang until the watchdog fires.

* DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):
* TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):
(WTR::UIScriptController::overridePreference):
(WTR::UIScriptController::replaceTextAtRange):
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::setNavigationGesturesEnabled):
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):
Implement beginBackSwipe and completeBackSwipe on iOS (they already
exist on Mac) in terms of the new WKWebView testing SPI.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoSkip http/tests/workers/service/cors-image-fetch.html.
ryanhaddad@apple.com [Thu, 11 Jan 2018 01:45:14 +0000 (01:45 +0000)]
Skip http/tests/workers/service/cors-image-fetch.html.
https://bugs.webkit.org/show_bug.cgi?id=181222

Unreviewed test gardening.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd nullptr_t specialization of poison
annulen@yandex.ru [Thu, 11 Jan 2018 01:38:29 +0000 (01:38 +0000)]
Add nullptr_t specialization of poison
https://bugs.webkit.org/show_bug.cgi?id=181469

Patch by Don Olmstead <don.olmstead@sony.com> on 2018-01-10
Reviewed by JF Bastien.

* wtf/Poisoned.h:
(WTF::PoisonedImpl::poison):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226747 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse no-cache fetch mode when loading main documents with location.reload()
commit-queue@webkit.org [Thu, 11 Jan 2018 00:45:49 +0000 (00:45 +0000)]
Use no-cache fetch mode when loading main documents with location.reload()
https://bugs.webkit.org/show_bug.cgi?id=181285
LayoutTests/imported/w3c:

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-10
Reviewed by Alex Christensen.

* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-10
Reviewed by Alex Christensen.

Covered by rebased tests.

Start to translate cache policy used for navigation as FetchOptions::Cache.
This allows ensuring service workers receive the right cache mode when intercepting navigation loads.
To not change current navigation behavior, ReturnCacheDataElseLoad and ReturnCacheDataDontLoad still trigger default fetch cache mode.

For Reload and ReloadExpiredOnly frame load types, using no-cache mode is more efficient than reload mode,
as a conditional request will be sent if possible. This applies to location.reload which is consistent with other browsers.
Keep reload mode for ReloadFromOrigin.

* loader/DocumentLoader.cpp:
(WebCore::toFetchOptionsCache):
(WebCore::DocumentLoader::loadMainResource):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::defaultRequestCachingPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
* loader/NavigationScheduler.cpp:

LayoutTests:

<rdar://problem/36356831>

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-10
Reviewed by Alex Christensen.

* http/tests/inspector/network/har/har-page-expected.txt:
* http/tests/inspector/network/har/har-page.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse protectedThis for the 'updatePrevalentDomainsToPartitionOrBlockCookies' lambda
bfulgham@apple.com [Thu, 11 Jan 2018 00:06:55 +0000 (00:06 +0000)]
Use protectedThis for the 'updatePrevalentDomainsToPartitionOrBlockCookies' lambda
https://bugs.webkit.org/show_bug.cgi?id=181452
<rdar://problem/36416912>

Reviewed by Chris Dumez.

We forgot to use a 'protectedThis' back in r225006 for one of the lambdas used by
the WebsiteDataStore for processing.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMark accessibility/table-header-calculation-for-header-rows.html as failure on Windows.
pvollan@apple.com [Wed, 10 Jan 2018 23:29:37 +0000 (23:29 +0000)]
Mark accessibility/table-header-calculation-for-header-rows.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=181501

Unreviewed test gardening.

* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoVersioning.
jmarcell@apple.com [Wed, 10 Jan 2018 23:19:56 +0000 (23:19 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdjusted expectations for webrtc/video-unmute.html.
jlewis3@apple.com [Wed, 10 Jan 2018 22:51:22 +0000 (22:51 +0000)]
Adjusted expectations for webrtc/video-unmute.html.
https://bugs.webkit.org/show_bug.cgi?id=172879

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226737 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION (r226715): ignore WARNING output in linter tests
jbedard@apple.com [Wed, 10 Jan 2018 22:46:30 +0000 (22:46 +0000)]
REGRESSION (r226715): ignore WARNING output in linter tests
https://bugs.webkit.org/show_bug.cgi?id=181486
<rdar://problem/36408847>

Reviewed by Aakash Jain.

Linter unit tests should not be interested in logs at the the INFO or WARNING levels.

* Scripts/webkitpy/common/system/outputcapture.py:
(OutputCapture.__init__): Pass logging level to be captured.
* Scripts/webkitpy/style/main_unittest.py:
(ExpectationLinterInStyleCheckerTest.test_no_linter_errors): Capture logging at the ERROR level.
(ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_no_edit): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_edit_in_file): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_only_deletes): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_added_file_with_error): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_deleted_file): Ditto.
(ExpectationLinterInStyleCheckerTest.test_linter_deleted_file_no_edit): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoSkip http/wpt/service-workers/fetchEvent.https.html in Debug
commit-queue@webkit.org [Wed, 10 Jan 2018 22:43:52 +0000 (22:43 +0000)]
Skip http/wpt/service-workers/fetchEvent.https.html in Debug
https://bugs.webkit.org/show_bug.cgi?id=181481

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-10

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMarked http/tests/workers/service/service-worker-importScript.html as flaky on macOS...
jlewis3@apple.com [Wed, 10 Jan 2018 21:57:21 +0000 (21:57 +0000)]
Marked http/tests/workers/service/service-worker-importScript.html as flaky on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181097

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMarked imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits...
jlewis3@apple.com [Wed, 10 Jan 2018 21:53:44 +0000 (21:53 +0000)]
Marked imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html as flaky on macOS and iOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181392

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd a JSCOnly MIPS buildbot
clopez@igalia.com [Wed, 10 Jan 2018 21:00:10 +0000 (21:00 +0000)]
Add a JSCOnly MIPS buildbot
https://bugs.webkit.org/show_bug.cgi?id=181487

Reviewed by Michael Catanzaro.

Add the new bot configs definitions for the master and update the unit tests.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Should not try to autocomplete subsections of a string
commit-queue@webkit.org [Wed, 10 Jan 2018 20:19:20 +0000 (20:19 +0000)]
Web Inspector: Should not try to autocomplete subsections of a string
https://bugs.webkit.org/show_bug.cgi?id=181461
<rdar://problem/36369421>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-10
Reviewed by Brian Burg.

* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WI.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
Disable autocompletion within strings.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Win] Rebaseline test after r225366.
pvollan@apple.com [Wed, 10 Jan 2018 20:07:09 +0000 (20:07 +0000)]
[Win] Rebaseline test after r225366.

Unreviewed test gardening.

* platform/win/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION (r226715): don't re-check number of simulators in child processes
jbedard@apple.com [Wed, 10 Jan 2018 19:58:25 +0000 (19:58 +0000)]
REGRESSION (r226715): don't re-check number of simulators in child processes
https://bugs.webkit.org/show_bug.cgi?id=181484
<rdar://problem/36407151>

Reviewed by Aakash Jain.

* Scripts/webkitpy/port/ios_simulator.py:
(IOSSimulatorPort.__init__): Skip the number of simulators check if simulators
are already initialized.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226667 and r226673.
commit-queue@webkit.org [Wed, 10 Jan 2018 19:41:12 +0000 (19:41 +0000)]
Unreviewed, rolling out r226667 and r226673.
https://bugs.webkit.org/show_bug.cgi?id=181488

This caused a flaky crash. (Requested by mlewis13 on #webkit).

Reverted changesets:

"CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226667

"REGRESSION (r226667): CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226673

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoFollow-up fix to r226715
jbedard@apple.com [Wed, 10 Jan 2018 19:03:33 +0000 (19:03 +0000)]
Follow-up fix to r226715
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Unreviewed infrastructure fix.

* Scripts/webkitpy/xcode/new_simulated_device.py:
(SimulatedDeviceManager._create_or_find_device_for_request): Use _delete instead
of delete.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION (r224301?): LayoutTest http/tests/workers/service/registration-task-queue...
cdumez@apple.com [Wed, 10 Jan 2018 18:20:30 +0000 (18:20 +0000)]
REGRESSION (r224301?): LayoutTest http/tests/workers/service/registration-task-queue-scheduling-1.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179342
<rdar://problem/35478161>

Reviewed by Youenn Fablet.

* TestExpectations:
Unmark the test as flaky.

* http/tests/workers/service/registration-task-queue-scheduling-1-expected.txt:
* http/tests/workers/service/resources/registration-task-queue-scheduling-1-second-window.html:
* http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
Update test to register a scriptURL that actually fails. When registration succeeds, the test
logs lines indicating that registration succeeded unexpectedly. Also, when registration
succeeds, the registration of the top frame are no longer guaranteed to be resolved before
the ones of the subframe (because it involves things like network loads).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r225650): The scores of MotionMark tests Multiply and Leaves dropped by 8%
antti@apple.com [Wed, 10 Jan 2018 18:19:37 +0000 (18:19 +0000)]
REGRESSION(r225650): The scores of MotionMark tests Multiply and Leaves dropped by 8%
https://bugs.webkit.org/show_bug.cgi?id=181460
<rdar://problem/36379776>

Reviewed by Ryosuke Niwa.

* css/parser/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):

Don't do the expensive security origin test if the sheet base URL and document URL are identical.
This is true for inline style and inline stylesheets.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, skip http/tests/workers/service/other_resources folder.
cdumez@apple.com [Wed, 10 Jan 2018 17:51:45 +0000 (17:51 +0000)]
Unreviewed, skip http/tests/workers/service/other_resources folder.

It is a resources folder and does not contain tests.

* TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Win] Rebaseline tests after r225366.
pvollan@apple.com [Wed, 10 Jan 2018 17:29:39 +0000 (17:29 +0000)]
[Win] Rebaseline tests after r225366.

Unreviewed test gardening.

* platform/win/svg/custom/feComponentTransfer-Discrete-expected.txt:
* platform/win/svg/custom/feComponentTransfer-Gamma-expected.txt:
* platform/win/svg/custom/feComponentTransfer-Linear-expected.txt:
* platform/win/svg/custom/feComponentTransfer-Table-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoTry to fix windows build.
antti@apple.com [Wed, 10 Jan 2018 17:01:23 +0000 (17:01 +0000)]
Try to fix windows build.

* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::computeNextMatchElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed GTK gardening
philn@webkit.org [Wed, 10 Jan 2018 16:38:12 +0000 (16:38 +0000)]
Unreviewed GTK gardening

* platform/gtk/TestExpectations: Unflag now-passing test and skip
mediastream tests, useless without any webrtc backend.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWebDriver: deserializeTimeouts() shouldn't reject double timeout values
zandobersek@gmail.com [Wed, 10 Jan 2018 16:16:22 +0000 (16:16 +0000)]
WebDriver: deserializeTimeouts() shouldn't reject double timeout values
https://bugs.webkit.org/show_bug.cgi?id=181473

Reviewed by Carlos Garcia Campos.

With these changes, the following tests are fixed:
    imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldTimeoutIfScriptDoesNotInvokeCallbackWithLongTimeout
    imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldDetectPageLoadsWhileWaitingOnAnAsyncScriptAndReturnAnError
    imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py::testShouldBeAbleToExecuteAsynchronousScripts
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitForASingleElement
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElementWhenImplicitWaitsAreEnabled
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindOneAfterDisablingImplicitWaits
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldImplicitlyWaitUntilAtLeastOneElementIsFoundWhenSearchingForMany
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldStillFailToFindAnElemenstWhenImplicitWaitsAreEnabled
    imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py::testShouldReturnAfterFirstAttemptToFindManyAfterDisablingImplicitWaits
    imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong
    imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py::testShouldTimeoutOnPageLoadTakingTooLong
    imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testShouldWaitOnlyAsLongAsTimeoutSpecifiedWhenImplicitWaitsAreSet

The following two tests regress, and will be looked into separately:
    imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid
    imported/w3c/webdriver/tests/sessions/new_session/merge.py::test_merge_invalid

* WebDriverService.cpp:
(WebDriver::integerValue): Helper function that retrieves an integer value
from a given JSON::Value object, if possible.
(WebDriver::deserializeTimeouts): Timeout JSON value has to be converted to
an integer, which is allowed if the value is of either Integer or Double type.
Helper integerValue() function retrieves the integer value, in addition to
ensuring that possible double value that we convert to an integer is already
in integer form to begin with.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agowebkitpy: Refactor simulator code (Part 2)
jbedard@apple.com [Wed, 10 Jan 2018 16:05:18 +0000 (16:05 +0000)]
webkitpy: Refactor simulator code (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Reviewed by Aakash Jain.

The patch leverages the SimulatedDeviceManager when running layout tests.
This patch is primarily code removal, since much of the IOSSimulatorPort
was dedicated to managing simulators. The removed code is either now owned by the
SimulatedDeviceManager (and committed in Part 1) or supported a technique to
boot multiple simulators which was made obsolete in Xcode 9.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._custom_device_for_test.in): Device names now have spaces in them,
strip those spaces.
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Remove '--runtime' flag, this is achieved with the --version flag.
* Scripts/webkitpy/port/ios.py:
(IOSPort.__init__): The _current_device idiom is no longer required since the
SimulatedDeviceManager keeps track of any previously booted devices.
(IOSPort.target_host): Even when only a single device is used, it will be accessed
through the array of managed devices.
(IOSPort.using_multiple_devices): Deleted.
* Scripts/webkitpy/port/ios_device.py:
(IOSDevicePort.using_multiple_devices): Deleted.
* Scripts/webkitpy/port/ios_simulator.py:
(IOSSimulatorPort): Remove constants required to manage simulators, change device
class strings so they can be parsed by the DeviceType class.
(IOSSimulatorPort.__init__): Determine the number of processes to use by checking
the number of simulators currently booted, the number of child processes specified
and the maximum number of simulators supported by this system.
(IOSSimulatorPort._device_for_worker_number_map):Return the array of initialized
devices owned by the SimulatedDeviceManager.
(IOSSimulatorPort.ios_version): Remove support for the --runtime option.
(IOSSimulatorPort.default_child_processes): Use the SimulatedDeviceManager to check
the maximum number of supported simulators on this system.
(IOSSimulatorPort._create_devices): Construct a list of device requests with a
request for each child process and send this list to the SimulatedDeviceManager to
initialize the devices.
(IOSSimulatorPort.clean_up_test_run):
(IOSSimulatorPort.check_sys_deps): Check that there are simulators running the
specified version of iOS.
(IOSSimulatorPort.reset_preferences):
(IOSSimulatorPort.simulator_runtime): Deleted.
(IOSSimulatorPort.simulator_device_type): Deleted.
(IOSSimulatorPort._teardown_managed_simulators): Deleted.
(IOSSimulatorPort.use_multiple_simulator_apps): Deleted.
(IOSSimulatorPort._create_simulators): Deleted.
(IOSSimulatorPort._quit_ios_simulator): Deleted.
(IOSSimulatorPort._using_dedicated_simulators): Deleted.
(IOSSimulatorPort.using_multiple_devices): Deleted.
(IOSSimulatorPort._create_device): Deleted.
(IOSSimulatorPort.get_simulator_path): Deleted.
(IOSSimulatorPort._createSimulatorApps): Deleted.
(IOSSimulatorPort._createSimulatorApp): Deleted.
* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(TestRebaseline.test_rebaseline): Filter out commands run when determining the
maximum number of simulators run on this system.
(TestRebaselineExpectations.test_rebaseline_expectations): Ditto.
* Scripts/webkitpy/xcode/new_simulated_device.py:
(SimulatedDeviceManager._does_fulfill_request): Fixed log statement.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[RenderTreeBuilder] Move RenderRuby's moveChildren logic to RenderTreeBuilder
zalan@apple.com [Wed, 10 Jan 2018 15:54:31 +0000 (15:54 +0000)]
[RenderTreeBuilder] Move RenderRuby's moveChildren logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181470
<rdar://problem/36397683>

Reviewed by Antti Koivisto.

This is about moving code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* rendering/RenderBlockFlow.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveChildren): Deleted.
(WebCore::RenderRubyBase::mergeChildrenWithBase): Deleted.
(WebCore::RenderRubyBase::moveInlineChildren): Deleted.
(WebCore::RenderRubyBase::moveBlockChildren): Deleted.
* rendering/RenderRubyBase.h:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::takeChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::moveRubyChildren):
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveInlineChildren):
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
(WebCore::RenderTreeBuilder::Ruby::moveChildren):
(WebCore::RenderTreeBuilder::Ruby::moveChildrenInternal):
(WebCore::RenderTreeBuilder::Ruby::insertChild):
* rendering/updating/RenderTreeBuilderRuby.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GStreamer] fix critical GObject warning
philn@webkit.org [Wed, 10 Jan 2018 15:29:00 +0000 (15:29 +0000)]
[GStreamer] fix critical GObject warning

Rubber-stamped by Carlos Garcia Campos.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): No need to
resort to complicated things to get the element name...

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GStreamer] REGRESSION(r226629): broke media/video-interruption-with-resume-allowing...
philn@webkit.org [Wed, 10 Jan 2018 15:26:07 +0000 (15:26 +0000)]
[GStreamer] REGRESSION(r226629): broke media/video-interruption-with-resume-allowing-play.html
https://bugs.webkit.org/show_bug.cgi?id=181471
<rdar://problem/36402323>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

This patch mainly reduces the amount of playback state changes
emitted by the GStreamer player to its client. Emitting those
notifications too often has bad side effects.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::paused const): Add debug messages.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): This debug message appears too much. Demote.
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded const): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Try to emit
playback state change notification only when going to PLAYING.
(WebCore::MediaPlayerPrivateGStreamer::loadingFailed): Add warning message.

LayoutTests:

* platform/gtk/TestExpectations: These 2 tests shall pass now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWebDriver: run-webdriver-tests doesn't handle test names with a '/' correctly
carlosgc@webkit.org [Wed, 10 Jan 2018 14:44:53 +0000 (14:44 +0000)]
WebDriver: run-webdriver-tests doesn't handle test names with a '/' correctly
https://bugs.webkit.org/show_bug.cgi?id=181474

Reviewed by Carlos Alberto Lopez Perez.

We use os.path.basename() to get the subtest name. If the test name contains a slash we get part of the subtest
name as the name.

* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
(WebDriverTestRunnerW3C._subtest_name): Helper function to get the subtest name.
(WebDriverTestRunnerW3C.run): Use _subtest_name() instead of os.path.basename().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK] Enable css2.1/20110323/c541-word-sp-000.htm.
Ms2ger@igalia.com [Wed, 10 Jan 2018 12:29:21 +0000 (12:29 +0000)]
[GTK] Enable css2.1/20110323/c541-word-sp-000.htm.
https://bugs.webkit.org/show_bug.cgi?id=94009

Unreviewed test gardening.

It was fixed in r226404.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, updating expectations for media test timing out on GTK
philn@webkit.org [Wed, 10 Jan 2018 12:13:17 +0000 (12:13 +0000)]
Unreviewed, updating expectations for media test timing out on GTK

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Update W3C WebDriver imported tests.
carlosgc@webkit.org [Wed, 10 Jan 2018 11:25:51 +0000 (11:25 +0000)]
Unreviewed. Update W3C WebDriver imported tests.

* imported/w3c/importer.json:
* imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
* imported/w3c/tools/wptrunner/wptrunner/environment.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py:
* imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
* imported/w3c/tools/wptrunner/wptrunner/update/update.py:
* imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
* imported/w3c/tools/wptrunner/wptrunner/wptlogging.py:
* imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
* imported/w3c/webdriver/OWNERS:
* imported/w3c/webdriver/interface/interface.html: Removed.
* imported/w3c/webdriver/tests/actions/modifier_click.py:
* imported/w3c/webdriver/tests/actions/mouse.py:
* imported/w3c/webdriver/tests/actions/mouse_dblclick.py: Added.
* imported/w3c/webdriver/tests/actions/sequence.py:
* imported/w3c/webdriver/tests/actions/support/mouse.py: Added.
* imported/w3c/webdriver/tests/cookies/add_cookie.py:
* imported/w3c/webdriver/tests/cookies/get_named_cookie.py:
* imported/w3c/webdriver/tests/element_retrieval/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/retrieval/__init__.py.
* imported/w3c/webdriver/tests/element_retrieval/find_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element.py.
* imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element_from_element.py.
* imported/w3c/webdriver/tests/element_retrieval/find_elements.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_elements.py.
* imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/find_element_from_elements.py.
* imported/w3c/webdriver/tests/element_send_keys/__init__.py: Renamed from WebDriverTests/imported/w3c/webdriver/tests/retrieval/__init__.py.
* imported/w3c/webdriver/tests/element_send_keys/interactability.py: Added.
* imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py: Added.
* imported/w3c/webdriver/tests/execute_script/cyclic.py: Added.
* imported/w3c/webdriver/tests/get_window_rect.py:
* imported/w3c/webdriver/tests/interface.html:
* imported/w3c/webdriver/tests/navigation/current_url.py:
* imported/w3c/webdriver/tests/support/asserts.py:
* imported/w3c/webdriver/tests/support/fixtures.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd Service Worker CSP persistency
commit-queue@webkit.org [Wed, 10 Jan 2018 10:16:40 +0000 (10:16 +0000)]
Add Service Worker CSP persistency
https://bugs.webkit.org/show_bug.cgi?id=181434

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-10
Reviewed by Alex Christensen.

Covered by manual testing.
Future work on service worker test infrastructure should allow automating such tests.

Add support for service worker CSP data persistency.
Add a version parameter to increment each time the schema is changing.
This allows the same store to be used by multiple WebKits.

* workers/service/server/RegistrationDatabase.cpp:
(WebCore::v1RecordsTableSchema):
(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, updating expectations for media test timing out on GTK
philn@webkit.org [Wed, 10 Jan 2018 10:15:42 +0000 (10:15 +0000)]
Unreviewed, updating expectations for media test timing out on GTK

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226704 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoInvalidate current element style on class change accurately
antti@apple.com [Wed, 10 Jan 2018 09:01:53 +0000 (09:01 +0000)]
Invalidate current element style on class change accurately
https://bugs.webkit.org/show_bug.cgi?id=181210

Reviewed by Zalan Bujtas.

Source/WebCore:

* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectFeatures const):
(WebCore::DocumentRuleSets::subjectClassRules const):

    New rule set containing class rules affecting the subject element.

(WebCore::DocumentRuleSets::ancestorClassRules const):
* css/DocumentRuleSets.h:
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

    Classify selector components into various buckets based on the elements they match relative to
    the subject element. There are more categories than this patch strictly needs, for future use.

(WebCore::RuleFeatureSet::collectFeatures):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
(WebCore::RuleFeatureSet::shrinkToFit):
* css/RuleFeature.h:
* css/StyleResolver.h:
(WebCore::StyleResolver::hasSelectorForClass const): Deleted.
* style/ClassChangeInvalidation.cpp:
(WebCore::Style::elementNeedsInvalidation):
(WebCore::Style::ClassChangeInvalidation::computeInvalidation):

    Don't invalidate current element unconditionally on class change. Instead find the subject rulesets
    that might affect it use them to perform invalidation.

(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle): Deleted.
(WebCore::Style::ClassChangeInvalidation::invalidateDescendantStyle): Deleted.
* style/ClassChangeInvalidation.h:
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):
* style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::classNamesAffectedByRules const):

LayoutTests:

* fast/css/set-inline-style-recalc-expected.txt:
* fast/css/set-inline-style-recalc.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226703 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Web Animations] Expose the id property on Animation
graouts@webkit.org [Wed, 10 Jan 2018 06:15:52 +0000 (06:15 +0000)]
[Web Animations] Expose the id property on Animation
https://bugs.webkit.org/show_bug.cgi?id=181450
<rdar://problem/36383600>

Reviewed by Dean Jackson.

Source/WebCore:

Expose the "id" property on Animation and handle the "id" property on the optional KeyframeAnimationOptions object
passed to Element.animate(). All of the WPT tests related to this property are now passing.

* animation/WebAnimation.h:
* animation/WebAnimation.idl:
* dom/Element.cpp:
(WebCore::Element::animate):

LayoutTests:

Mark all tests related to the "id" property as passing.

* http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
* http/wpt/web-animations/interfaces/Animation/id-expected.txt:
* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226697 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMerge the latest version of Speedometer 2.0 to browserbench.org against at r226694.
rniwa@webkit.org [Wed, 10 Jan 2018 05:02:36 +0000 (05:02 +0000)]
Merge the latest version of Speedometer 2.0 to browserbench.org against at r226694.

Rubber-stamped by Keith Miller.

* Speedometer2.0: Replaced with PerformanceTests/Speedometer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226695 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoSpeedometer 2.0: Update the About page.
rniwa@webkit.org [Wed, 10 Jan 2018 04:51:09 +0000 (04:51 +0000)]
Speedometer 2.0: Update the About page.
https://bugs.webkit.org/show_bug.cgi?id=175918

Reviewed by Keith Miller.

Updated the about page for Speedometer 2.0.

* Speedometer/index.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMake service workers behave correctly with regards to Page Cache
cdumez@apple.com [Wed, 10 Jan 2018 04:08:33 +0000 (04:08 +0000)]
Make service workers behave correctly with regards to Page Cache
https://bugs.webkit.org/show_bug.cgi?id=181446
<rdar://problem/36164291>

Reviewed by Youenn Fablet.

Source/WebCore:

Make service workers behave correctly with regards to Page Cache:
1. If a document has an active service worker, do not let it go into PageCache
2. When a document goes into page cache, unregister it from the list of service worker clients
3. When a document is restored from page cache, add it nack to the list of service worker clients

Tests: http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html
       http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html
       http/tests/workers/service/no-page-cache-when-controlled.html
       http/tests/workers/service/other_resources/test.html

* dom/Document.cpp:
(WebCore::Document::suspend):
(WebCore::Document::resume):
* history/PageCache.cpp:
(WebCore::canCacheFrame):
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::serviceWorkerKey):
* page/DiagnosticLoggingKeys.h:

LayoutTests:

Add layout test coverage.

* http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache-expected.txt: Added.
* http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html: Added.
* http/tests/workers/service/client-removed-from-clients-while-in-page-cache-expected.txt: Added.
* http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html: Added.
* http/tests/workers/service/no-page-cache-when-controlled-expected.txt: Added.
* http/tests/workers/service/no-page-cache-when-controlled.html: Added.
* http/tests/workers/service/other_resources/test.html: Added.
* http/tests/workers/service/resources/getClientCount-worker.js: Added.
(event.then):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226677 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWe should not return undefined for most properties of a detached Window
cdumez@apple.com [Wed, 10 Jan 2018 03:31:28 +0000 (03:31 +0000)]
We should not return undefined for most properties of a detached Window
https://bugs.webkit.org/show_bug.cgi?id=181416
<rdar://problem/36162489>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several WPT tests now that more checks are passing.

* web-platform-tests/custom-elements/custom-element-registry/per-global-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-append-to-child-document-expected.txt:
* web-platform-tests/service-workers/service-worker/detached-context.https-expected.txt:

Source/WebCore:

We should not return undefined for most properties on a detached Window. WebKit previously only exposed "closed"
and "close" properties on detached / frameless windows. However, this does not match the HTML specification [1]
or the behavior of Firefox and Chrome.

Note that Chrome does not seem to fully follow the HTML specification either, it seems to treat detached windows
the same way as cross-origin ones. As a result, it only exposed properties that are visible cross-origin when
a window is detached / frameless.

[1] https://html.spec.whatwg.org/#windowproxy-get

No new tests, updated existingt tests.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

LayoutTests:

Update existing tests to reflect behavior change.

* fast/dom/Window/orphaned-frame-access-expected.txt:
* fast/dom/Window/orphaned-frame-access.html:
* fast/frames/detached-frame-property-expected.txt:
* fast/frames/detached-frame-property.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226676 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoFurther refinement to list item and counter code after "list-item" counter fix
darin@apple.com [Wed, 10 Jan 2018 03:24:28 +0000 (03:24 +0000)]
Further refinement to list item and counter code after "list-item" counter fix
https://bugs.webkit.org/show_bug.cgi?id=181426

Reviewed by Zalan Bujtas.

Source/WebCore:

* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInheritCounter): Use auto.
(WebCore::StyleBuilderCustom::applyValueCounter): Use auto, removed unneeded
null checks for things that can never be null, moved the saturated addition
here and got rid of the addIncrementValue function from CounterDirectives.
Use the saturatedAddition function from SaturatedArithmetic.h instead of the
much less efficient one that did the same thing, CounterDirectives::addClamped.

* rendering/RenderCounter.cpp:
(WebCore::listItemCounterDirectives): Use aggregate syntax for the return
statements.
(WebCore::planCounter): Changed to use a struct return value instead of two
out arguments. Use the saturatedAddition function from SaturatedArithmetic.h
instead of the much less efficient one that did the same thing,
CounterDirectives::addClamped.
(WebCore::findPlaceForCounter): Changed to use a struct return value instead
of two out arguments.
(WebCore::makeCounterNode): Updated for the above changes. Changed code to
use add instead of both get and set. Updated to keep the counter maps inside
the values of the "map of maps" instead of using a unique_ptr and allocating
each one on the heap.
(WebCore::destroyCounterNodeWithoutMapRemoval): Changed argument to a reference
instead of a pointer. Updated for changes to the map. Use RefPtr more
consistently.
(WebCore::RenderCounter::destroyCounterNodes): Use iterators less.
(WebCore::RenderCounter::destroyCounterNode): Ditto.
(WebCore::RenderCounter::rendererRemovedFromTree): Add a check of
hasCounterNodeMap here before calling destroyCounterNodes, so that function
can assume the flag is true (both other callers already check it).
(WebCore::updateCounters): Use auto and update for changes above.
(WebCore::RenderCounter::rendererStyleChanged): Use modern for loops instead
of iterators.
(showCounterRendererTree): Use auto and udpate for changes above.

* rendering/RenderListItem.cpp:
(WebCore::enclosingList): Stop referring to elements as "nodes". Changed
the local variable names for clarity.
(WebCore::nextListItemHelper): Renamed from nextListItem since it's not
intended to be called directly and we want to use a function pointer to
nextListItem. Fixed the algorithm to correctly handle ad hoc "lists" that
are not actually HTML list elements, using the definition in the enclosingList
function as the previousListItem function already did.
(WebCore::nextListItem): Updated for name changes.
(WebCore::firstListItem): Renamed from nextListItem for clarity.
(WebCore::previousListItem): Rewrote loop so it doesn't have to do things
so strangely when we find another list.
(WebCore::RenderListItem::updateItemValuesForOrderedList): Use auto and
update local variable names.
(WebCore::RenderListItem::itemCountForOrderedList): Ditto.
(WebCore::RenderListItem::updateValueNow const): Rewrote to use an iterative
algorithm instead of a recursive one. Fixes the FIXME here.
(WebCore::RenderListItem::updateValue): Use m_valueWasSetExplicitly
instead of m_explicitValue.
(WebCore::RenderListItem::explicitValueChanged): Use auto and simplified
the loop a bit.
(WebCore::RenderListItem::setExplicitValue): Set m_valueWasSetExplicitly
instead of m_explicitValue.
(WebCore::previousOrNextItem): Deleted.
(WebCore::RenderListItem::updateListMarkerNumbers): Streamlined the loop
a bit and used a fucntion pointer to handle the two different directions.
(WebCore::RenderListItem::isInReversedOrderedList const): Simplified by
getting rid of an unneeded use of pointers and local variables.

* rendering/RenderListItem.h: Use a boolean, m_valueWasSetExplicitly,
instead of a separate optional m_explicitValue.

* rendering/style/CounterDirectives.h: Since all the code in this file was
rewritten, removed old copyrights. Deleted the addIncrementValue function,
since it is clear enough in the one call site in the style builder.
Deleted the addClamped function because it was just a much slower
version of the saturatedAddition function. Made == and != into constexpr
functions since they are simple enough to be.

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getCounterDirectives const): Deleted. Caller can
handle this just fine without a helper function.
* rendering/style/RenderStyle.h: Ditto.

LayoutTests:

* fast/css/counters/counter-list-item.html: Removed an extra newline at the end of
the file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226675 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r201855): Web Inspector: Should see "length" autocompletion suggestion...
commit-queue@webkit.org [Wed, 10 Jan 2018 03:17:27 +0000 (03:17 +0000)]
REGRESSION(r201855): Web Inspector: Should see "length" autocompletion suggestion on a string literal
https://bugs.webkit.org/show_bug.cgi?id=181462
<rdar://problem/36390699>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-09
Reviewed by Matt Baker.

* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getCompletions):
This is code that runs on the inspected target, which may have an old version of
WebKit/JavaScriptCore, so don't use new syntax like this.

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
We intended to return the result by as a JSON value instead of a RemoteObject.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226674 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION (r226667): CodeBlocks should be in IsoSubspaces
ddkilzer@apple.com [Wed, 10 Jan 2018 03:04:35 +0000 (03:04 +0000)]
REGRESSION (r226667): CodeBlocks should be in IsoSubspaces
<https://bugs.webkit.org/show_bug.cgi?id=180884>

Fixes the following build error:

    heap/Heap.cpp:2708:10: error: lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture]

* heap/Heap.cpp:
(JSC::Heap::addCoreConstraints): Remove 'this' from lambda to
fix the build.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226673 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoand32 with an Address source on ARM64 did not invalidate dataTempRegister
keith_miller@apple.com [Wed, 10 Jan 2018 03:00:11 +0000 (03:00 +0000)]
and32 with an Address source on ARM64 did not invalidate dataTempRegister
https://bugs.webkit.org/show_bug.cgi?id=181467

Reviewed by Michael Saboff.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::and32):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226672 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Layers sidebar shows popover on selection even when collapsed
ross.kirsling@sony.com [Wed, 10 Jan 2018 02:43:36 +0000 (02:43 +0000)]
Web Inspector: Layers sidebar shows popover on selection even when collapsed
https://bugs.webkit.org/show_bug.cgi?id=181465

Reviewed by Matt Baker.

* UserInterface/Views/LayerDetailsSidebarPanel.js:
(WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
Have sidebar show itself if necessary before displaying popover.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226671 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Xcode] Use the Apple Internal SDK if available when building ImageDiff
aestes@apple.com [Wed, 10 Jan 2018 02:37:05 +0000 (02:37 +0000)]
[Xcode] Use the Apple Internal SDK if available when building ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=181459

Reviewed by Dan Bernstein.

* ImageDiff/cg/Configurations/Base.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226670 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoStorage Access API: Turn feature on by default in WebPreferences.yaml
wilander@apple.com [Wed, 10 Jan 2018 01:34:56 +0000 (01:34 +0000)]
Storage Access API: Turn feature on by default in WebPreferences.yaml
https://bugs.webkit.org/show_bug.cgi?id=181458

Reviewed by Brent Fulgham.

* Shared/WebPreferences.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agofont-display:fallback can cause a visual flash (which is supposed to be impossible)
mmaxfield@apple.com [Wed, 10 Jan 2018 00:44:49 +0000 (00:44 +0000)]
font-display:fallback can cause a visual flash (which is supposed to be impossible)
https://bugs.webkit.org/show_bug.cgi?id=181374

Reviewed by Simon Fraser.

Source/WebCore:

A FontCascade represents an entire font-family fallback list, but sometimes we need to pull out a single
representative font from the list to calculate things like line height. Previously, if the first item in
the font-family list was in the middle of being downloaded, this representative font was hardcoded to be
Times. However, when actually laying out and drawing the glyphs, we have logic to skip the interstitial
Times if there are any installed fonts present in the font-family list (so you wouldn't ever actually
see Times). This means that line height (among other things) was being calculated as if Times was used,
but in reality, some other font from the font-family list was being used.

Alone, this isn't a huge problem, but font-display:fallback makes a font transition between "timed out"
and "failed," and when the font hits the failed state, the representative font skips over the cancelled
item and hits the next item in the fallback list. This means that line heights will change, which causes
a visual flash, even when font-display:fallback is specified.

The solution is simply to educate the logic which identifies this representative font so that it
understands what to do for currently-loading fonts.

Tests: fast/text/font-display/swap-flash.html

* platform/graphics/FontCascadeFonts.h:
(WebCore::FontCascadeFonts::primaryFont):
* rendering/line/BreakingContext.h:
(WebCore::textWidth):

Tools:

The test requires Palatino.

* DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet):
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::allowedFontFamilySet):

LayoutTests:

Move font-display tests into their common subfolder.

* fast/text/font-display/block-finish-expected.html: Renamed from LayoutTests/fast/text/loading-block-finish-expected.html.
* fast/text/font-display/block-finish.html: Renamed from LayoutTests/fast/text/loading-block-finish.html.
* fast/text/font-display/block-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-block-nofinish-expected.html.
* fast/text/font-display/block-nofinish.html: Renamed from LayoutTests/fast/text/loading-block-nofinish.html.
* fast/text/font-display/failure-finish-expected.html: Renamed from LayoutTests/fast/text/loading-failure-finish-expected.html.
* fast/text/font-display/failure-finish.html: Renamed from LayoutTests/fast/text/loading-failure-finish.html.
* fast/text/font-display/failure-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-failure-nofinish-expected.html.
* fast/text/font-display/failure-nofinish.html: Renamed from LayoutTests/fast/text/loading-failure-nofinish.html.
* fast/text/font-display/swap-finish-expected.html: Renamed from LayoutTests/fast/text/loading-swap-finish-expected.html.
* fast/text/font-display/swap-finish.html: Renamed from LayoutTests/fast/text/loading-swap-finish.html.
* fast/text/font-display/swap-nofinish-expected.html: Renamed from LayoutTests/fast/text/loading-swap-nofinish-expected.html.
* fast/text/font-display/swap-nofinish.html: Renamed from LayoutTests/fast/text/loading-swap-nofinish.html.
* fast/text/font-display/swap-flash-expected.html: Added.
* fast/text/font-display/swap-flash.html: Added.
* platform/win/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226668 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoCodeBlocks should be in IsoSubspaces
fpizlo@apple.com [Wed, 10 Jan 2018 00:30:38 +0000 (00:30 +0000)]
CodeBlocks should be in IsoSubspaces
https://bugs.webkit.org/show_bug.cgi?id=180884

Reviewed by Saam Barati.
Source/JavaScriptCore:

This moves CodeBlocks into IsoSubspaces. Doing so means that we no longer need to have the
special CodeBlockSet HashSets of new and old CodeBlocks. We also no longer use
WeakReferenceHarvester or UnconditionalFinalizer. Instead:

- Code block sweeping is now just eager sweeping. This means that it automatically takes
  advantage of our unswept set, which roughly corresponds to what CodeBlockSet used to use
  its eden set for.

- Those idea of Executable "weakly visiting" the CodeBlock is replaced by Executable
  marking a ExecutableToCodeBlockEdge object. That object being marked corresponds to what
  we used to call CodeBlock "having been weakly visited". This means that CodeBlockSet no
  longer has to clear the set of weakly visited code blocks. This also means that
  determining CodeBlock liveness, propagating CodeBlock transitions, and jettisoning
  CodeBlocks during GC are now the edge's job. The edge is also in an IsoSubspace and it
  has IsoCellSets to tell us which edges have output constraints (what we used to call
  CodeBlock's weak reference harvester) and which have unconditional finalizers.

- CodeBlock now uses an IsoCellSet to tell if it has an unconditional finalizer.

- CodeBlockSet still exists!  It has one unified HashSet of CodeBlocks that we use to
  handle requests from the sampler, debugger, and other facilities. They may want to ask
  if some pointer corresponds to a CodeBlock during stages of execution during which the
  GC is unable to answer isLive() queries. The trickiest is the sampling profiler thread.
  There is no way that the GC's isLive could tell us of a CodeBlock that had already been
  allocated has now been full constructed.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finishCreationCommon):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::hasInstalledVMTrapBreakpoints const):
(JSC::CodeBlock::installVMTrapBreakpoints):
(JSC::CodeBlock::dumpMathICStats):
(JSC::CodeBlock::visitWeakly): Deleted.
(JSC::CodeBlock::WeakReferenceHarvester::visitWeakReferences): Deleted.
(JSC::CodeBlock::UnconditionalFinalizer::finalizeUnconditionally): Deleted.
* bytecode/CodeBlock.h:
(JSC::CodeBlock::subspaceFor):
(JSC::CodeBlock::ownerEdge const):
(JSC::CodeBlock::clearVisitWeaklyHasBeenCalled): Deleted.
* bytecode/EvalCodeBlock.h:
(JSC::EvalCodeBlock::create): Deleted.
(JSC::EvalCodeBlock::createStructure): Deleted.
(JSC::EvalCodeBlock::variable): Deleted.
(JSC::EvalCodeBlock::numVariables): Deleted.
(JSC::EvalCodeBlock::functionHoistingCandidate): Deleted.
(JSC::EvalCodeBlock::numFunctionHoistingCandidates): Deleted.
(JSC::EvalCodeBlock::EvalCodeBlock): Deleted.
(JSC::EvalCodeBlock::unlinkedEvalCodeBlock const): Deleted.
* bytecode/ExecutableToCodeBlockEdge.cpp: Added.
(JSC::ExecutableToCodeBlockEdge::createStructure):
(JSC::ExecutableToCodeBlockEdge::create):
(JSC::ExecutableToCodeBlockEdge::visitChildren):
(JSC::ExecutableToCodeBlockEdge::visitOutputConstraints):
(JSC::ExecutableToCodeBlockEdge::finalizeUnconditionally):
(JSC::ExecutableToCodeBlockEdge::activate):
(JSC::ExecutableToCodeBlockEdge::deactivate):
(JSC::ExecutableToCodeBlockEdge::deactivateAndUnwrap):
(JSC::ExecutableToCodeBlockEdge::wrap):
(JSC::ExecutableToCodeBlockEdge::wrapAndActivate):
(JSC::ExecutableToCodeBlockEdge::ExecutableToCodeBlockEdge):
(JSC::ExecutableToCodeBlockEdge::runConstraint):
* bytecode/ExecutableToCodeBlockEdge.h: Added.
(JSC::ExecutableToCodeBlockEdge::subspaceFor):
(JSC::ExecutableToCodeBlockEdge::codeBlock const):
(JSC::ExecutableToCodeBlockEdge::unwrap):
* bytecode/FunctionCodeBlock.h:
(JSC::FunctionCodeBlock::subspaceFor):
(JSC::FunctionCodeBlock::createStructure):
* bytecode/ModuleProgramCodeBlock.h:
(JSC::ModuleProgramCodeBlock::create): Deleted.
(JSC::ModuleProgramCodeBlock::createStructure): Deleted.
(JSC::ModuleProgramCodeBlock::ModuleProgramCodeBlock): Deleted.
* bytecode/ProgramCodeBlock.h:
(JSC::ProgramCodeBlock::create): Deleted.
(JSC::ProgramCodeBlock::createStructure): Deleted.
(JSC::ProgramCodeBlock::ProgramCodeBlock): Deleted.
* debugger/Debugger.cpp:
(JSC::Debugger::SetSteppingModeFunctor::operator() const):
(JSC::Debugger::ToggleBreakpointFunctor::operator() const):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::operator() const):
(JSC::Debugger::ClearDebuggerRequestsFunctor::operator() const):
* heap/CodeBlockSet.cpp:
(JSC::CodeBlockSet::contains):
(JSC::CodeBlockSet::dump const):
(JSC::CodeBlockSet::add):
(JSC::CodeBlockSet::remove):
(JSC::CodeBlockSet::promoteYoungCodeBlocks): Deleted.
(JSC::CodeBlockSet::clearMarksForFullCollection): Deleted.
(JSC::CodeBlockSet::lastChanceToFinalize): Deleted.
(JSC::CodeBlockSet::deleteUnmarkedAndUnreferenced): Deleted.
* heap/CodeBlockSet.h:
* heap/CodeBlockSetInlines.h:
(JSC::CodeBlockSet::iterate):
(JSC::CodeBlockSet::iterateViaSubspaces):
* heap/ConservativeRoots.cpp:
(JSC::ConservativeRoots::genericAddPointer):
(JSC::DummyMarkHook::markKnownJSCell):
(JSC::CompositeMarkHook::mark):
(JSC::CompositeMarkHook::markKnownJSCell):
* heap/ConservativeRoots.h:
* heap/Heap.cpp:
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::finalizeMarkedUnconditionalFinalizers):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::beginMarking):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):
(JSC::Heap::forEachCodeBlockImpl):
(JSC::Heap::forEachCodeBlockIgnoringJITPlansImpl):
(JSC::Heap::addCoreConstraints):
(JSC::Heap::finalizeUnconditionalFinalizersInIsoSubspace): Deleted.
* heap/Heap.h:
* heap/HeapCell.h:
* heap/HeapCellInlines.h:
(JSC::HeapCell::subspace const):
* heap/HeapInlines.h:
(JSC::Heap::forEachCodeBlock):
(JSC::Heap::forEachCodeBlockIgnoringJITPlans):
* heap/HeapUtil.h:
(JSC::HeapUtil::findGCObjectPointersForMarking):
* heap/IsoCellSet.cpp:
(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):
* heap/IsoCellSet.h:
* heap/IsoCellSetInlines.h:
(JSC::IsoCellSet::forEachMarkedCellInParallel):
(JSC::IsoCellSet::forEachLiveCell):
* heap/LargeAllocation.h:
(JSC::LargeAllocation::subspace const):
* heap/MarkStackMergingConstraint.cpp:
(JSC::MarkStackMergingConstraint::executeImpl):
* heap/MarkStackMergingConstraint.h:
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::parallelNotEmptyBlockSource):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::Handle::didAddToAllocator):
(JSC::MarkedBlock::Handle::didRemoveFromAllocator):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::subspace const):
* heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::Handle::forEachLiveCell):
* heap/MarkedSpaceInlines.h:
(JSC::MarkedSpace::forEachLiveCell):
* heap/MarkingConstraint.cpp:
(JSC::MarkingConstraint::execute):
(JSC::MarkingConstraint::doParallelWork):
(JSC::MarkingConstraint::finishParallelWork): Deleted.
(JSC::MarkingConstraint::doParallelWorkImpl): Deleted.
(JSC::MarkingConstraint::finishParallelWorkImpl): Deleted.
* heap/MarkingConstraint.h:
* heap/MarkingConstraintSet.cpp:
(JSC::MarkingConstraintSet::add):
* heap/MarkingConstraintSet.h:
(JSC::MarkingConstraintSet::add):
* heap/MarkingConstraintSolver.cpp:
(JSC::MarkingConstraintSolver::execute):
(JSC::MarkingConstraintSolver::addParallelTask):
(JSC::MarkingConstraintSolver::runExecutionThread):
(JSC::MarkingConstraintSolver::didExecute): Deleted.
* heap/MarkingConstraintSolver.h:
(JSC::MarkingConstraintSolver::TaskWithConstraint::TaskWithConstraint):
(JSC::MarkingConstraintSolver::TaskWithConstraint::operator== const):
* heap/SimpleMarkingConstraint.cpp:
(JSC::SimpleMarkingConstraint::SimpleMarkingConstraint):
(JSC::SimpleMarkingConstraint::executeImpl):
* heap/SimpleMarkingConstraint.h:
(JSC::SimpleMarkingConstraint::SimpleMarkingConstraint):
* heap/SlotVisitor.cpp:
(JSC::SlotVisitor::addParallelConstraintTask):
* heap/SlotVisitor.h:
* heap/Subspace.cpp:
(JSC::Subspace::sweep):
* heap/Subspace.h:
* heap/SubspaceInlines.h:
(JSC::Subspace::forEachLiveCell):
* llint/LowLevelInterpreter.asm:
* runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::visitChildren):
* runtime/EvalExecutable.h:
(JSC::EvalExecutable::codeBlock):
* runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::baselineCodeBlockFor):
(JSC::FunctionExecutable::visitChildren):
* runtime/FunctionExecutable.h:
* runtime/JSType.h:
* runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::visitChildren):
* runtime/ModuleProgramExecutable.h:
* runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::visitChildren):
* runtime/ProgramExecutable.h:
* runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::SpaceAndFinalizerSet::SpaceAndFinalizerSet):
(JSC::VM::SpaceAndFinalizerSet::finalizerSetFor):
(JSC::VM::forEachCodeBlockSpace):
* runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
* tools/VMInspector.cpp:
(JSC::VMInspector::codeBlockForMachinePC):
(JSC::VMInspector::isValidCodeBlock):

Source/WebCore:

No new tests because no new behavior.

Adopting new parallel constraint API, so that more of the logic of doing parallel
constraint solving is shared between the DOM's output constraints and JSC's output
constraints.

* bindings/js/DOMGCOutputConstraint.cpp:
(WebCore::DOMGCOutputConstraint::executeImpl):
(WebCore::DOMGCOutputConstraint::doParallelWorkImpl): Deleted.
(WebCore::DOMGCOutputConstraint::finishParallelWorkImpl): Deleted.
* bindings/js/DOMGCOutputConstraint.h:

Source/WTF:

Deque<>::contains() is helpful for a debug ASSERT.

* wtf/Deque.h:
(WTF::inlineCapacity>::contains):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoClean up Marquee-related enums
simon.fraser@apple.com [Wed, 10 Jan 2018 00:05:46 +0000 (00:05 +0000)]
Clean up Marquee-related enums
https://bugs.webkit.org/show_bug.cgi?id=181347

Reviewed by Anders Carlsson.

Modernize EMarqueeBehavior and EMarqueeDirection enums. Stop using the weird negative
values in the MarqueeDirection and do manual reverse direction mapping.

Make some member functions of RenderMarquee private.

Stop using bitfields in RenderMarquee because the memory saving is not worth it, and doing so
allows us to use modern initialization.

No behavior change.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator MarqueeBehavior const):
(WebCore::CSSPrimitiveValue::operator MarqueeDirection const):
(WebCore::CSSPrimitiveValue::operator EMarqueeBehavior const): Deleted.
(WebCore::CSSPrimitiveValue::operator EMarqueeDirection const): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::sizesLogicalWidthToFitContent const):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::RenderMarquee):
(WebCore::reverseDirection):
(WebCore::RenderMarquee::direction const):
(WebCore::RenderMarquee::isHorizontal const):
(WebCore::RenderMarquee::computePosition):
(WebCore::RenderMarquee::start):
(WebCore::RenderMarquee::updateMarqueePosition):
(WebCore::RenderMarquee::updateMarqueeStyle):
(WebCore::RenderMarquee::timerFired):
* rendering/RenderMarquee.h:
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::marqueeBehavior const):
(WebCore::RenderStyle::marqueeDirection const):
(WebCore::RenderStyle::setMarqueeDirection):
(WebCore::RenderStyle::setMarqueeBehavior):
(WebCore::RenderStyle::initialMarqueeBehavior):
(WebCore::RenderStyle::initialMarqueeDirection):
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleMarqueeData.cpp:
(WebCore::StyleMarqueeData::StyleMarqueeData):
* rendering/style/StyleMarqueeData.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226666 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWKOpenPanelParameters SPI should return autoreleased objects
achristensen@apple.com [Tue, 9 Jan 2018 23:54:35 +0000 (23:54 +0000)]
WKOpenPanelParameters SPI should return autoreleased objects
https://bugs.webkit.org/show_bug.cgi?id=181457
<rdar://problem/35884960>

Reviewed by Tim Horton.

In r226607 I made a mistake by returning an object that has been released.
I instead follow a pattern of leaking and autoreleasing that we use elsewhere in the ObjC API.

* UIProcess/API/Cocoa/WKOpenPanelParameters.mm:
(-[WKOpenPanelParameters _acceptedMIMETypes]):
(-[WKOpenPanelParameters _acceptedFileExtensions]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226665 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMany CVDisplayLink threads created and destroyed while watching a YouTube video
jer.noble@apple.com [Tue, 9 Jan 2018 23:47:37 +0000 (23:47 +0000)]
Many CVDisplayLink threads created and destroyed while watching a YouTube video
https://bugs.webkit.org/show_bug.cgi?id=181396

Reviewed by Simon Fraser.

When watching some YouTube videos (or any video with default controls), event handlers for
the "timeupdate" event which use rAF will cause the underlying platform objects to be
destroyed in between "timeupdate" events being fired, since they occur every 250ms, and rAF
objects are destroyed every 166ms (or 10/60hz). Update this constant to destroy the
underlying objects every 333ms (or 20/60hz) so that this common pattern doesn't lead to
excessive rAF platform object turnover.

* platform/Logging.h:
* platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::shouldBeTerminated const):
* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
* platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226664 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoFixed test expectaions.
jlewis3@apple.com [Tue, 9 Jan 2018 23:46:48 +0000 (23:46 +0000)]
Fixed test expectaions.

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226663 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoGive some slack in display-profiler-outputs computation of the terminal window's...
sbarati@apple.com [Tue, 9 Jan 2018 23:43:41 +0000 (23:43 +0000)]
Give some slack in display-profiler-outputs computation of the terminal window's number of columns
https://bugs.webkit.org/show_bug.cgi?id=181449

Reviewed by JF Bastien.

This allows me to Cmd+f in my terminal to search for things without
having the results become misaligned.

* Scripts/display-profiler-output:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226661 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[RenderTreeBuilder] Move RenderElement addChild mutation logic to RenderTreeBuilder
zalan@apple.com [Tue, 9 Jan 2018 23:31:57 +0000 (23:31 +0000)]
[RenderTreeBuilder] Move RenderElement addChild mutation logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181451
<rdar://problem/36385562>

Reviewed by Antti Koivisto.

This is about moving code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::addChild):
(WebCore::RenderElement::childRequiresTable const): Deleted.
* rendering/RenderElement.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChildToRenderElement):
(WebCore::RenderTreeBuilder::childRequiresTable):
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::newChildIsInline):
(WebCore::newChildIsInline): Deleted.
* rendering/updating/RenderTreeBuilderInline.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226660 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226531.
jlewis3@apple.com [Tue, 9 Jan 2018 23:00:48 +0000 (23:00 +0000)]
Unreviewed, rolling out r226531.

This caused test failures on macOS WK2.

Reverted changeset:

"Use no-cache fetch mode when loading main documents with
location.reload()"
https://bugs.webkit.org/show_bug.cgi?id=181285
https://trac.webkit.org/changeset/226531

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226600 and r226603
msaboff@apple.com [Tue, 9 Jan 2018 21:47:22 +0000 (21:47 +0000)]
Unreviewed, rolling out r226600 and r226603
https://bugs.webkit.org/show_bug.cgi?id=181351

Add a DOM gadget for Spectre testing

* runtime/Options.h:

* dom/Comment.cpp:
(WebCore::Comment::Comment):
(WebCore::Comment::setReadLength): Deleted.
(WebCore::Comment::charCodeAt): Deleted.
(WebCore::Comment::clflushReadLength): Deleted.
* dom/Comment.h:
* dom/Comment.idl:
* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::spectreGadgetsEnabled const): Deleted.
* page/RuntimeEnabledFeatures.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd additional WEBCORE_EXPORTs
don.olmstead@sony.com [Tue, 9 Jan 2018 21:17:20 +0000 (21:17 +0000)]
Add additional WEBCORE_EXPORTs
https://bugs.webkit.org/show_bug.cgi?id=181414

Reviewed by Alex Christensen.

No new tests. No change in behavior.

* dom/Document.h:
* dom/ViewportArguments.h:
* page/DOMWindow.h:
* page/FrameView.h:
* page/PageOverlayController.h:
* platform/ContextMenuItem.h:
* platform/Pasteboard.h:
* platform/SharedBuffer.h:
* platform/UserAgent.h:
* platform/graphics/GLContext.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsLayerTransform.h:
* platform/graphics/PlatformDisplay.h:
* platform/graphics/cairo/BackingStoreBackendCairoImpl.h:
* platform/graphics/cairo/PlatformContextCairo.h:
* platform/graphics/cairo/RefPtrCairo.h:
* platform/graphics/nicosia/NicosiaBuffer.h:
* platform/graphics/nicosia/NicosiaPaintingEngine.h:
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperAnimation.h:
* platform/graphics/texmap/TextureMapperBackingStore.h:
* platform/graphics/texmap/TextureMapperFPSCounter.h:
* platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::TextureMapperLayer): Deleted.
(WebCore::TextureMapperLayer::setID): Deleted.
(WebCore::TextureMapperLayer::id): Deleted.
(WebCore::TextureMapperLayer:: const): Deleted.
(WebCore::TextureMapperLayer::setScrollClient): Deleted.
(WebCore::TextureMapperLayer::setIsScrollable): Deleted.
(WebCore::TextureMapperLayer::isScrollable const): Deleted.
(WebCore::TextureMapperLayer::textureMapper const): Deleted.
(WebCore::TextureMapperLayer::setTextureMapper): Deleted.
(WebCore::TextureMapperLayer::drawsContent const): Deleted.
(WebCore::TextureMapperLayer::contentsAreVisible const): Deleted.
(WebCore::TextureMapperLayer::size const): Deleted.
(WebCore::TextureMapperLayer::opacity const): Deleted.
(WebCore::TextureMapperLayer::transform const): Deleted.
(WebCore::TextureMapperLayer::hasFilters const): Deleted.
(WebCore::TextureMapperLayer::isShowingRepaintCounter const): Deleted.
(WebCore::TextureMapperLayer::fixedToViewport const): Deleted.
(WebCore::TextureMapperLayer::rootLayer const): Deleted.
(WebCore::TextureMapperLayer::texture): Deleted.
(WebCore::TextureMapperLayer::adjustedPosition const): Deleted.
(WebCore::TextureMapperLayer::layerRect const): Deleted.
(WebCore::TextureMapperLayer::State::State): Deleted.
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
* platform/graphics/texmap/TextureMapperTile.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
(WebCore::CoordinatedGraphicsLayer::isScrollable const): Deleted.
(WebCore::CoordinatedGraphicsLayer::id const): Deleted.
(WebCore::CoordinatedGraphicsLayer::coverRect const): Deleted.
(WebCore::CoordinatedGraphicsLayer::fixedToViewport const): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
(WebCore::CoordinatedImageBacking::id const): Deleted.
* platform/graphics/texmap/coordinated/TiledBackingStore.h:
* platform/graphics/texmap/coordinated/UpdateAtlas.h:
* platform/network/AuthenticationChallengeBase.h:
* platform/network/CredentialBase.h:
* platform/network/ProtectionSpaceBase.h:
* platform/network/curl/SocketStreamHandleImpl.h:
* replay/UserInputBridge.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226657 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Curl] Move FormData related tasks into new CurlFormDataStream class.
commit-queue@webkit.org [Tue, 9 Jan 2018 21:15:32 +0000 (21:15 +0000)]
[Curl] Move FormData related tasks into new CurlFormDataStream class.
https://bugs.webkit.org/show_bug.cgi?id=181106

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-01-09
Reviewed by Alex Christensen.

No new tests because no behavior change.

* platform/Curl.cmake:
* platform/network/curl/CurlFormDataStream.cpp: Added.
(WebCore::CurlFormDataStream::CurlFormDataStream):
(WebCore::CurlFormDataStream::~CurlFormDataStream):
(WebCore::CurlFormDataStream::clean):
(WebCore::CurlFormDataStream::shouldUseChunkTransfer):
(WebCore::CurlFormDataStream::totalSize):
(WebCore::CurlFormDataStream::computeContentLength):
(WebCore::CurlFormDataStream::read):
(WebCore::CurlFormDataStream::readFromFile):
(WebCore::CurlFormDataStream::readFromData):
* platform/network/curl/CurlFormDataStream.h: Renamed from Source/WebCore/platform/network/curl/FormDataStreamCurl.h.
(WebCore::CurlFormDataStream::elementSize):
(WebCore::CurlFormDataStream::totalReadSize):
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::willSendData):
(WebCore::CurlRequest::finalizeTransfer):
(WebCore::CurlRequest::setupPUT):
(WebCore::CurlRequest::setupPOST):
(WebCore::CurlRequest::setupSendData):
(WebCore::CurlRequest::resolveBlobReferences): Deleted.
(WebCore::CurlRequest::setupFormData): Deleted.
* platform/network/curl/CurlRequest.h:
* platform/network/curl/FormDataStreamCurl.cpp: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226656 268f45cc-cd09-0410-ab3c-d52691b4dbfc