WebKit-https.git
21 months agoREGRESSION (r225122): fePointLights don't work
simon.fraser@apple.com [Mon, 1 Jan 2018 20:32:33 +0000 (20:32 +0000)]
REGRESSION (r225122): fePointLights don't work
https://bugs.webkit.org/show_bug.cgi?id=181142

Reviewed by Dan Bates.

Source/WebCore:

r225122 refactored the initialLightingData code, but failed to set the lighting
color in the return value of PointLightSource::computePixelLightingData, so fePointLights
always used black.

Also fix a spelling error in initialLightingData.

Tests: svg/filters/fePointLight-color.svg

* platform/graphics/filters/DistantLightSource.cpp:
(WebCore::DistantLightSource::initPaintingData):
(WebCore::DistantLightSource::computePixelLightingData const):
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):
* platform/graphics/filters/LightSource.h:
* platform/graphics/filters/PointLightSource.cpp:
(WebCore::PointLightSource::computePixelLightingData const):
* platform/graphics/filters/SpotLightSource.cpp:
(WebCore::SpotLightSource::computePixelLightingData const):

LayoutTests:

Ref test that compares a point light with a flood color.

* svg/filters/fePointLight-color-expected.svg: Added.
* svg/filters/fePointLight-color.svg: Added.

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

21 months agoBottom right pixel of feDiffuseLighting has the wrong color
simon.fraser@apple.com [Mon, 1 Jan 2018 20:28:32 +0000 (20:28 +0000)]
Bottom right pixel of feDiffuseLighting has the wrong color
https://bugs.webkit.org/show_bug.cgi?id=181203

Reviewed by Antti Koivisto.

Source/WebCore:

The lower right pixel of a feDiffuseLighting was the wrong color, because the kernel
values didn't match the spec for the bottom right Y values.

Test: svg/filters/feDiffuseLighting-bottomRightPixel.html

* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::LightingData::bottomRightNormal const):

LayoutTests:

Test that draws an SVG image into a canvas, and scales it up without interpolation.

* svg/filters/feDiffuseLighting-bottomRightPixel-expected.html: Added.
* svg/filters/feDiffuseLighting-bottomRightPixel.html: Added.
* svg/filters/resources/feDiffuseLighting-rect.svg: Added.

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

21 months agoSVG lighting colors need to be converted into linearSRGB
simon.fraser@apple.com [Mon, 1 Jan 2018 19:53:39 +0000 (19:53 +0000)]
SVG lighting colors need to be converted into linearSRGB
https://bugs.webkit.org/show_bug.cgi?id=181196

Reviewed by Dan Bates.

Source/WebCore:

SVG filters, like feLighting, that poke values directly into buffers rather than going
through CG like feFlood, need to convert colors into the operating color space. So add
conversion functions to go between linear and sRGB colors, and use these in feLighting,
and in ImageBuffer (which is only used for non-CG platforms).

Tests: svg/filters/feSpotLight-color.svg

* platform/graphics/ColorUtilities.cpp:
(WebCore::linearToSRGBColorComponent):
(WebCore::sRGBToLinearColorComponent):
(WebCore::linearToSRGBColor):
(WebCore::sRGBToLinearColor):
* platform/graphics/ColorUtilities.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::transformColorSpace):
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):

LayoutTests:

Compare a far-away green spotlight with a green flood. The bottom right pixel always
has the wrong color (webkit.org/b/181203), so mask it out.

* svg/filters/feSpotLight-color-expected.svg: Added.
* svg/filters/feSpotLight-color.svg: Added.

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

21 months ago[WebCrypto] Avoid promises being destroyed in secondary threads
jiewen_tan@apple.com [Sun, 31 Dec 2017 09:25:47 +0000 (09:25 +0000)]
[WebCrypto] Avoid promises being destroyed in secondary threads
https://bugs.webkit.org/show_bug.cgi?id=180499
<rdar://problem/35890680>

Reviewed by Youenn Fablet.

This patch adds pending promise queue to SubtleCrypto such that it no longer
passes promises around different threads, which could cause crashes when
promises are destroyed in secondary threads.

Covered by existing tests.

* crypto/SubtleCrypto.cpp:
(WebCore::getPromise):
(WebCore::SubtleCrypto::encrypt):
(WebCore::SubtleCrypto::decrypt):
(WebCore::SubtleCrypto::sign):
(WebCore::SubtleCrypto::verify):
(WebCore::SubtleCrypto::digest):
(WebCore::SubtleCrypto::generateKey):
(WebCore::SubtleCrypto::deriveKey):
(WebCore::SubtleCrypto::deriveBits):
(WebCore::SubtleCrypto::importKey):
(WebCore::SubtleCrypto::exportKey):
(WebCore::SubtleCrypto::wrapKey):
(WebCore::SubtleCrypto::unwrapKey):
* crypto/SubtleCrypto.h:

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

21 months agoREGRESSION (r225494): Mouse pointer reappears shortly after hiding when scrolling...
mitz@apple.com [Sun, 31 Dec 2017 04:38:52 +0000 (04:38 +0000)]
REGRESSION (r225494): Mouse pointer reappears shortly after hiding when scrolling using arrow keys
https://bugs.webkit.org/show_bug.cgi?id=181193

Reviewed by Alexey Proskuryakov.

* page/EventHandler.cpp:
(WebCore::EventHandler::cancelAutoHideCursorTimer): Removed a call to unhide the cursor
  here.

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

21 months ago[Attachment Support] Remove current macOS support for dragging file-backed attachments
wenson_hsieh@apple.com [Sat, 30 Dec 2017 19:30:40 +0000 (19:30 +0000)]
[Attachment Support] Remove current macOS support for dragging file-backed attachments
https://bugs.webkit.org/show_bug.cgi?id=181188

Reviewed by Dan Bernstein.

Source/WebCore:

Support for dragging attachments out as files on the NSPasteboard was introduced in r181760. However, this is
(1) a macOS-specific implementation, and (2) does not support attachments whose files are backed by inline data
rather than a filepath. As part of adding further WebKit attachment element support, subsequent patches will
reimplement support for dragging attachment elements in a cross-Cocoa-platform way that also allows for either
data- or file-backed blobs to be written to the pasteboard.

No new functionality; no new tests. All existing layout and API tests still pass.

* page/DragClient.h:
(WebCore::DragClient::declareAndWriteDragImage):
(WebCore::DragClient::declareAndWriteAttachment): Deleted.
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* page/DragController.h:
(WebCore::DragController::draggingImageURL const):
(WebCore::DragController::draggingAttachmentURL const): Deleted.
* page/gtk/DragControllerGtk.cpp:
(WebCore::DragController::declareAndWriteAttachment): Deleted.
* page/mac/DragControllerMac.mm:
(WebCore::DragController::declareAndWriteAttachment): Deleted.
* page/win/DragControllerWin.cpp:
(WebCore::DragController::declareAndWriteAttachment): Deleted.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteAttachmentURL const): Deleted.
* rendering/HitTestResult.h:

Source/WebKit:

See WebCore/ChangeLog for more detail.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setPromisedDataForAttachment): Deleted.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setPromisedDataForAttachment): Deleted.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::setPromisedDataForAttachment): Deleted.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setPromisedDataForAttachment): Deleted.
* WebProcess/WebCoreSupport/WebDragClient.h:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteAttachment): Deleted.

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more detail.

* WebCoreSupport/WebDragClient.h:
* WebCoreSupport/WebDragClient.mm:
(WebDragClient::declareAndWriteAttachment): Deleted.
* WebView/WebHTMLView.mm:
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

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

21 months ago[JSC] Remove unused JSTypes
utatane.tea@gmail.com [Sat, 30 Dec 2017 19:05:32 +0000 (19:05 +0000)]
[JSC] Remove unused JSTypes
https://bugs.webkit.org/show_bug.cgi?id=181184

Reviewed by Saam Barati.

JSType includes some unused types such as NullType. They are for
primitive values in old days. But now JSType is only used for JSCells.

* runtime/JSType.h:
* runtime/TypedArrayType.cpp:
(JSC::typeForTypedArrayType):

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

21 months agoRemove op_assert and make @assert in builtins a function call so we have DFG/FTL...
sbarati@apple.com [Fri, 29 Dec 2017 07:52:24 +0000 (07:52 +0000)]
Remove op_assert and make @assert in builtins a function call so we have DFG/FTL coverage for builtins that use @assert in debug builds
https://bugs.webkit.org/show_bug.cgi?id=181176

Reviewed by Yusuke Suzuki.

Previously, op_assert was only implemented in the LLInt and baseline JIT. This
meant that any builtin that used @assert was not tiering up to the DFG/FTL
in debug builds. This patch changes @assert to just call a host function when
!ASSERT_DISABLED. It's a no-op when ASSERT_DISABLED. Now, builtins that use @assert
will tier up to the DFG/FTL on debug builds.

* builtins/BuiltinNames.h:
* bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::dumpBytecode):
* bytecode/BytecodeIntrinsicRegistry.h:
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitAssert): Deleted.
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_assert): Deleted.
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* llint/LowLevelInterpreter.asm:
* runtime/CommonSlowPaths.cpp:
* runtime/CommonSlowPaths.h:
* runtime/JSGlobalObject.cpp:
(JSC::assertCall):
(JSC::JSGlobalObject::init):

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

21 months agoRenderTreeUpdater::GeneratedContent should hold a weak reference to RenderQuote.
zalan@apple.com [Fri, 29 Dec 2017 06:18:48 +0000 (06:18 +0000)]
RenderTreeUpdater::GeneratedContent should hold a weak reference to RenderQuote.
https://bugs.webkit.org/show_bug.cgi?id=181185
<rdar://problem/36235307>

Reviewed by David Kilzer.

Source/WebCore:

Test: fast/css/content/content-quotes-crash-with-details.html

* rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
* rendering/updating/RenderTreeUpdaterGeneratedContent.h:
(): Deleted.

LayoutTests:

* fast/css/content/content-quotes-crash-with-details-expected.txt: Added.
* fast/css/content/content-quotes-crash-with-details.html: Added.

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

21 months agoAdd a ProcessIdentifier, vended from the UI process, to each child process
beidson@apple.com [Fri, 29 Dec 2017 05:56:29 +0000 (05:56 +0000)]
Add a ProcessIdentifier, vended from the UI process, to each child process
https://bugs.webkit.org/show_bug.cgi?id=181155

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests (Not yet testable)

More than once we've needed to create an identifier for an object that is unique across
all processes no matter which process it came from.

Sometimes we have an object or proxy object to the UI, Storage, or Network process
that allows us to augment a process-unique identifier to be globally unique. Due to multiple
sessions even this isn't good enough. Other times we have to create more hair-brained solutions.

In upcoming MessagePort work (Next step is https://bugs.webkit.org/show_bug.cgi?id=181172)
there was no truly workable solution for this.

By introducing a new ProcessIdentifier to each WK2 child processes that is guaranteed to be
unique over the run of a given UI process, we can easily create an object in any process and
identify it uniquely across all processes.

Obviously "process identifier" brings to mind a processes PID but that isn't good enough.
The number of PIDs on the system is fairly low and they are global across all
processes on the system. It is easy to see how a given UI process that runs for long enough
(such as a web browser that the user rarely quits) will start to run in to recycled PIDs,
therefore breaking the uniqueness guarantee that is required.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/Process.cpp: Added.
(WebCore::Process::setIdentifier): Sets the process-wise identifier (to be used during WK2
  child process initialization)
(WebCore::Process::identifier): Get the process-wide identifier.
* platform/Process.h: Added.

Source/WebKit:

* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::initialize): Set the process-wide identifier if the initialization
  parameters have it. Cocoa ASSERTS it exists; non-Cocoa platforms will have to figure this
  out soon.
* Shared/ChildProcess.h:

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getProcessIdentifier):

* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::getLaunchOptions):
* UIProcess/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::coreProcessIdentifier const):

* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):

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

21 months agoRemove std::chrono if it is not used for ArgumentCoder or PersistentCoder
utatane.tea@gmail.com [Fri, 29 Dec 2017 01:41:45 +0000 (01:41 +0000)]
Remove std::chrono if it is not used for ArgumentCoder or PersistentCoder
https://bugs.webkit.org/show_bug.cgi?id=181174

Reviewed by Konstantin Tokarev.

Source/WebCore:

We would like to remove std::chrono as much as possible due to the danger of
its overflow unawareness. This patch removes std::chrono if it is not used
for ArgumentCoder or PersistentCoder.

No behavior change.

* fileapi/FileReader.cpp:
(WebCore::FileReader::didReceiveData):
* fileapi/FileReader.h:
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::showPaintRect):
(WebCore::InspectorOverlay::updatePaintRectsTimerFired):
* inspector/InspectorOverlay.h:
* page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::threadBody):
* page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):
* platform/network/curl/SocketStreamHandleImpl.h:
* platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::SocketStreamHandleImpl::waitForAvailableData):
(WebCore::SocketStreamHandleImpl::startThread):

Source/WebKit:

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
* UIProcess/Cocoa/ViewGestureController.cpp:
(WebKit::ViewGestureController::SnapshotRemovalTracker::log const):
(WebKit::ViewGestureController::SnapshotRemovalTracker::start):
* UIProcess/Cocoa/ViewGestureController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::loadCommitTime const):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::registerWithStateDumper):

Source/WTF:

Make WallTime more constexpr friendly. This change is already applied to MonoTonicTime.

We would like to move std::{isfinite,isinf,isnan} overloadings from std:: to each class scope in a separate patch[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=181183

* wtf/WallTime.h:
(WTF::WallTime::WallTime):
(WTF::WallTime::fromRawSeconds):
(WTF::WallTime::infinity):
(WTF::WallTime::secondsSinceEpoch const):
(WTF::WallTime::operator bool const):
(WTF::WallTime::operator+ const):
(WTF::WallTime::operator- const):
(WTF::WallTime::operator== const):
(WTF::WallTime::operator!= const):
(WTF::WallTime::operator< const):
(WTF::WallTime::operator> const):
(WTF::WallTime::operator<= const):
(WTF::WallTime::operator>= const):

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

21 months ago[Win][CMake] Use add_custom_command to copy each forwarding header files
commit-queue@webkit.org [Thu, 28 Dec 2017 22:06:35 +0000 (22:06 +0000)]
[Win][CMake] Use add_custom_command to copy each forwarding header files
https://bugs.webkit.org/show_bug.cgi?id=180921

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-12-28
Reviewed by Brent Fulgham.

.:

Modifying WTF header files didn't trigger the recompilation of
TestWTF because Ninja doesn't know which command generates the
forwarding header.

Use add_custom_command to copy each forwarding header files.

* Source/cmake/WebKitMacros.cmake: Added a new function WEBKIT_MAKE_FORWARDING_HEADERS.

Source/JavaScriptCore:

* PlatformWin.cmake: Use WEBKIT_MAKE_FORWARDING_HEADERS.

Source/WebCore:

No new tests because there is no behavior change.

* PlatformWin.cmake: Use WEBKIT_MAKE_FORWARDING_HEADERS.

Source/WebKitLegacy:

* PlatformWin.cmake: Use WEBKIT_MAKE_FORWARDING_HEADERS.

Source/WTF:

* wtf/PlatformWin.cmake: Use WEBKIT_MAKE_FORWARDING_HEADERS.

Tools:

TestWTFLib needs forwarding headers of WebCore. Use
add_dependencies instead of invoking the DerivedSources/WebCore/preBuild.cmd.

* TestWebKitAPI/PlatformWin.cmake:

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

21 months agoAssertion used to determine if something is an async generator is wrong
sbarati@apple.com [Thu, 28 Dec 2017 18:13:15 +0000 (18:13 +0000)]
Assertion used to determine if something is an async generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=181168
<rdar://problem/35640560>

Reviewed by Yusuke Suzuki.

JSTests:

* stress/async-generator-assertion.js: Added.

Source/JavaScriptCore:

Previous assertions were doing a get on the base value for @@asyncIterator.
This symbol is defined on AsyncGeneratorPrototype. The base value may change
its prototype, but it's still an async generator as far as our system is
concerned. This patch updates the assertion to check for a private property
on the base value.

* builtins/AsyncGeneratorPrototype.js:
(globalPrivate.asyncGeneratorReject):
(globalPrivate.asyncGeneratorResolve):
(globalPrivate.asyncGeneratorResumeNext):

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

21 months ago[WTF] Add clock_gettime based monotonicallyIncreasingTime implementation for Linux...
utatane.tea@gmail.com [Thu, 28 Dec 2017 14:17:06 +0000 (14:17 +0000)]
[WTF] Add clock_gettime based monotonicallyIncreasingTime implementation for Linux and BSDs
https://bugs.webkit.org/show_bug.cgi?id=181175

Reviewed by Michael Catanzaro.

Use platform-provided POSIX APIs to get monotonic time.

* wtf/CurrentTime.cpp:
(WTF::monotonicallyIncreasingTime):

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

21 months agoTest freshness page should use build time instead of commit time to determine the...
dewei_zhu@apple.com [Wed, 27 Dec 2017 22:55:43 +0000 (22:55 +0000)]
Test freshness page should use build time instead of commit time to determine the freshness of the data point.
https://bugs.webkit.org/show_bug.cgi?id=181156

Reviewed by Alexey Proskuryakov.

Build time is a better data point freshness indicator. Test freshness page is designed to highlight test failures.
Using commit time will result in including the compiling and test running time which does not quite match the
definition of data point fresshness.

* public/v3/pages/test-freshness-page.js:
(TestFreshnessPage.prototype._fetchTestResults): Use build time instead of commit time.

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

21 months agoBuild fix after r226299 (3)
clopez@igalia.com [Wed, 27 Dec 2017 17:41:19 +0000 (17:41 +0000)]
Build fix after r226299 (3)
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

* API/tests/TypedArrayCTest.cpp: fix typo in header name.

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

21 months agoBuild fix after r226299 (2)
clopez@igalia.com [Wed, 27 Dec 2017 17:38:14 +0000 (17:38 +0000)]
Build fix after r226299 (2)
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

* API/tests/TypedArrayCTest.cpp: Add missing header include.

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

21 months agoBuild fix after r226299
clopez@igalia.com [Wed, 27 Dec 2017 17:29:28 +0000 (17:29 +0000)]
Build fix after r226299
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

Source/JavaScriptCore:

* API/tests/TypedArrayCTest.cpp:
(assertEqualsAsNumber): Disambiguate usage of isnan.

Source/WebCore:

No new tests, its a build fix.

* platform/graphics/FontSelectionAlgorithm.h: Add missing include.

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

21 months agoREGRESSION(r225769): Build error with constexpr std::max // std::min in libdstdc++4
clopez@igalia.com [Wed, 27 Dec 2017 16:46:02 +0000 (16:46 +0000)]
REGRESSION(r225769): Build error with constexpr std::max // std::min in libdstdc++4
https://bugs.webkit.org/show_bug.cgi?id=181160

Reviewed by Myles C. Maxfield.

Source/JavaScriptCore:

Disambiguate usage of min and max (Use the version from stdlib).

* runtime/JSArray.cpp:
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

Source/WebCore:

No new tests, its a build fix.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::currentMediaTime const): Disambiguate usage of max (Use the version from stdlib).
* platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionValue::clampFloat): Use WTF::min and WTF::max for constexpr result.
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem): Disambiguate usage of min and max (Use the version from stdlib).

Source/WebKitLegacy/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::handlePost): Disambiguate usage of min (Use the version from stdlib).

Source/WTF:

In libstdc++-4 std::max and std::min are not annotated with constexpr.
This patch adds a WTF::min and WTF::max for using where a constexpr result is expected.
Related: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60271

* wtf/StdLibExtras.h:
(WTF::min):
(WTF::max):

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

21 months agoREGRESSION(r225913): about 30 JSC test failures on ARMv7
zandobersek@gmail.com [Wed, 27 Dec 2017 10:52:39 +0000 (10:52 +0000)]
REGRESSION(r225913): about 30 JSC test failures on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=181162

Reviewed by Michael Catanzaro.

Fast case in DFG::SpeculativeJIT::compileArraySlice() was enabled in
r225913 on all but 32-bit x86 platform. Other 32-bit platforms have the
same lack of GP registers, so the conditional is changed here to only
enable this optimization explicitly on ARM64 and x86-64.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArraySlice):

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

21 months agoMarked imported/w3c/web-platform-tests/service-workers/service-worker/ServiceWorkerGl...
jlewis3@apple.com [Wed, 27 Dec 2017 02:12:59 +0000 (02:12 +0000)]
Marked imported/w3c/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html as failing on macOS and iOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181167

Unreviewed test gardening.

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

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

21 months agoMarked imported/w3c/web-platform-tests/service-workers/service-worker/register-same...
jlewis3@apple.com [Wed, 27 Dec 2017 01:52:56 +0000 (01:52 +0000)]
Marked imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html as flaky on macOS and iOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181166

Unreviewed test gardening.

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

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

21 months ago[JSC] Remove std::chrono completely
utatane.tea@gmail.com [Wed, 27 Dec 2017 00:33:11 +0000 (00:33 +0000)]
[JSC] Remove std::chrono completely
https://bugs.webkit.org/show_bug.cgi?id=181165

Reviewed by Konstantin Tokarev.

Source/JavaScriptCore:

This patch removes std::chrono use completely from JSC.

* API/JSContextRef.cpp:
(JSContextGroupSetExecutionTimeLimit):
* API/tests/ExecutionTimeLimitTest.cpp:
(currentCPUTimeAsJSFunctionCallback):
(testExecutionTimeLimit):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::timeToLive):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::timeSinceCreation):
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::timerLoop):
(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
* runtime/SamplingProfiler.h:
(JSC::SamplingProfiler::setTimingInterval):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/Watchdog.cpp:
(JSC::Watchdog::Watchdog):
(JSC::Watchdog::setTimeLimit):
(JSC::Watchdog::shouldTerminate):
(JSC::Watchdog::startTimer):
(JSC::currentWallClockTime): Deleted.
* runtime/Watchdog.h:

Source/WTF:

WTF::currentCPUTime now returns WTF::Seconds.
We also add the implementaiton for Linux and FreeBSD.

* wtf/CurrentTime.cpp:
(WTF::currentCPUTime):
* wtf/CurrentTime.h:

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

21 months agoREGRESSION(r226269): 60 JSC test failures on ARMv7
commit-queue@webkit.org [Tue, 26 Dec 2017 18:54:38 +0000 (18:54 +0000)]
REGRESSION(r226269): 60 JSC test failures on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=181163

Patch by Zan Dobersek <zdobersek@igalia.com> on 2017-12-26
Reviewed by Yusuke Suzuki.

In r226269, DFG::SpeculativeJIT::compile() changed behavior for the
GetDirectPname operation on non-x86 platforms, switching to using
GPRFlushedCallResult registers for the payload and tag pair of the
return value (through the JSValueRegsFlushedCallResult struct). This
tripped about 60 test cases on ARMv7.

As before this change, GPRTemporary registers should be used, but this
can now be done through a JSValueRegsTemporary object.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

21 months agoUnreviewed GTK test gardening
mcatanzaro@igalia.com [Tue, 26 Dec 2017 18:21:40 +0000 (18:21 +0000)]
Unreviewed GTK test gardening

* platform/gtk/TestExpectations:

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

21 months ago[macOS] On Retina displays, icon used as drag image for large image is scaled down
mitz@apple.com [Mon, 25 Dec 2017 23:35:30 +0000 (23:35 +0000)]
[macOS] On Retina displays, icon used as drag image for large image is scaled down
https://bugs.webkit.org/show_bug.cgi?id=181154

Reviewed by Wenson Hsieh.

* page/DragController.cpp:
(WebCore::DragController::doImageDrag): When using an icon for the drag image, also adjust
  its size for the device scale factor, like we do in the not-icon case.

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

21 months agoWebKit fixes to enable -Wstrict-prototypes for Safari
ddkilzer@apple.com [Sun, 24 Dec 2017 21:34:53 +0000 (21:34 +0000)]
WebKit fixes to enable -Wstrict-prototypes for Safari
<https://webkit.org/b/181146>

Reviewed by Dan Bernstein.

Source/WebCore:

* platform/ios/wak/WebCoreThread.h:
(WebThreadLockFromAnyThread):
(WebThreadLockFromAnyThreadNoLog):
(WebThreadUnlockFromAnyThread):
(WebThreadUnlockGuardForMail):
(WebThreadSetShouldYield):
- Add 'void' to C function declarations.
* platform/ios/wak/WebCoreThread.mm:
(WebThreadLockFromAnyThread):
(WebThreadLockFromAnyThreadNoLog):
(WebThreadUnlockFromAnyThread):
(WebThreadUnlockGuardForMail):
- Add 'void' to C function implementations.
* platform/ios/wak/WebCoreThreadRun.cpp:
(class WebThreadBlock): Add 'void' to block declarations.
Rename 'task' to 'block' for consistency.
(_WebThreadRun): Add 'void' to block declaration.  Make
argument name match declaration by changing 'task' to 'block'.
(WebThreadRun): Ditto.
* platform/ios/wak/WebCoreThreadRun.h:
(WebThreadRun): Add 'void' to block declaration.

Source/WebKit:

* Shared/API/c/WKGeometry.cpp:
(WKSizeGetTypeID):
(WKPointGetTypeID):
(WKRectGetTypeID):
* Shared/API/c/WKGeometry.h:
(WKSizeGetTypeID):
(WKPointGetTypeID):
(WKRectGetTypeID):
* Shared/API/c/WKImage.cpp:
(WKImageGetTypeID):
* Shared/API/c/WKImage.h:
(WKImageGetTypeID):
- Add 'void' to C function declarations and implementations as
  necessary.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
- Add 'void' to block declarations as necessary.

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

21 months agoREGRESSION (r224313): Fix build warning when compiling WebKit.xcassets
ddkilzer@apple.com [Sun, 24 Dec 2017 19:07:12 +0000 (19:07 +0000)]
REGRESSION (r224313): Fix build warning when compiling WebKit.xcassets
<https://webkit.org/b/181148>

Reviewed by Dan Bernstein.

Fixes the following build warning:

    Opensource/Source/WebKit/WebKit.xcassets: warning: Failed to read file attributes for "Opensource/Source/WebKit/WebKit.xcassets"
        Failure Reason: No such file or directory

* WebKit.xcodeproj/project.pbxproj: Fix relative path with
case-insensitive filesystem and repository name assumptions.

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

21 months ago[Web Animations] Implement Element.animate()
graouts@webkit.org [Sun, 24 Dec 2017 13:57:42 +0000 (13:57 +0000)]
[Web Animations] Implement Element.animate()
https://bugs.webkit.org/show_bug.cgi?id=180402
<rdar://problem/35851353>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Rebaselining a few tests using Element.animate(). They still fail, but no longer on
the Element.animate() calls.

* web-platform-tests/css-timing-1/cubic-bezier-timing-functions-output-expected.txt:
* web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
* web-platform-tests/css-timing-1/step-timing-functions-output-expected.txt:

Source/WebCore:

Now that we have added support for play() (webkit.org/b/178932) on Animation and parsing of multiple keyframes
(webkit.org/b/179708), we can add support Element.animate(). To support this simple task, we must add a series
of new IDL interfaces to support option parameters for Element.animate() (KeyframeAnimationOptions),
AnimationEffect (AnimationEffectTimingProperties), KeyframeEffect (KeyframeEffectOptions) and supporting
types CompositeOperation, FillMode, IterationCompositeOperation and PlaybackDirection. While we do not support
most parameters of those types, we at least define them for future support.

To support the most used form of the Element.animate() constructor across the WPT tests, we add support for
specifying the duration of an animation when constructing both a KeyframeEffect and calling Element.animate(),
either via a property on an options dictionary or as a double value.

The implementation of Element.animate() itself is relatively straightforward, we just need to create a supporting
KeyframeEffect based on the options provided, then an Animation with that effect set on it, and finally call play().

We also fix one crash that came up in WPT tests where we would try to access the DOMWindow when none was available
in http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context.html.

* CMakeLists.txt: Add new IDL files.
* DerivedSources.make: Add new IDL files.
* Sources.txt: Add new generated JS bindings.
* WebCore.xcodeproj/project.pbxproj: Add new IDL, header and C++ files.
* animation/Animatable.idl: Expose the animate() method.
* animation/AnimationEffectTiming.cpp:
(WebCore::AnimationEffectTiming::setBindingsDuration): Make the duration property spec-compliant and expect the right
kind of type (unrestricted double or DOMString).
* animation/AnimationEffectTiming.h:
* animation/AnimationEffectTiming.idl:
* animation/AnimationEffectTimingProperties.h: Added.
* animation/AnimationEffectTimingProperties.idl: Added.
* animation/CompositeOperation.h: Added.
* animation/CompositeOperation.idl: Added.
* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::currentTime): Check that there is DOMWindow before proceeding to querying the current time
through it, fixes a newly-apparent crash.
* animation/FillMode.h: Added.
* animation/FillMode.idl: Added.
* animation/IterationCompositeOperation.h: Added.
* animation/IterationCompositeOperation.idl: Added.
* animation/KeyframeAnimationOptions.h: Added.
* animation/KeyframeAnimationOptions.idl: Added.
* animation/KeyframeEffect.cpp: Update types that are no longer defined under KeyframeEffect.
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create): Add support for duration provided either directly as a double or through KeyframeEffectOptions.
* animation/KeyframeEffect.h:
* animation/KeyframeEffect.idl:
* animation/KeyframeEffectOptions.h: Added.
* animation/KeyframeEffectOptions.idl: Added.
* animation/PlaybackDirection.h: Added.
* animation/PlaybackDirection.idl: Added.
* dom/Element.cpp:
(WebCore::Element::animate): Implement Element.animate().
* dom/Element.h:

LayoutTests:

Turning on Element.animate() means that a ton of WPT tests that would immediately fail when Element.animate()
was used now progressed to either PASS, FAIL or TIMEOUT. We update the output to match the updated behavior
and TestExpectations for some cases of flaky outputs due to incomplete implementations that had not surfaced
until now.

We're also removing a Blink test that uses Web Animations to animate a bogus "rotate" property.

* TestExpectations:
* http/wpt/web-animations/animation-model/animation-types/discrete-animation-expected.txt:
* http/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt:
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt:
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes-expected.txt:
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt:
* http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility-expected.txt:
* http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
* http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt:
* http/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt:
* http/wpt/web-animations/interfaces/Animation/cancel-expected.txt:
* http/wpt/web-animations/interfaces/Animation/effect-expected.txt:
* http/wpt/web-animations/interfaces/Animation/finish-expected.txt:
* http/wpt/web-animations/interfaces/Animation/finished-expected.txt:
* http/wpt/web-animations/interfaces/Animation/id-expected.txt:
* http/wpt/web-animations/interfaces/Animation/oncancel-expected.txt:
* http/wpt/web-animations/interfaces/Animation/onfinish-expected.txt:
* http/wpt/web-animations/interfaces/Animation/pause-expected.txt:
* http/wpt/web-animations/interfaces/Animation/play-expected.txt:
* http/wpt/web-animations/interfaces/Animation/playState-expected.txt:
* http/wpt/web-animations/interfaces/Animation/playbackRate-expected.txt:
* http/wpt/web-animations/interfaces/Animation/ready-expected.txt:
* http/wpt/web-animations/interfaces/Animation/startTime-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt:
* http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt:
* http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt:
* http/wpt/web-animations/interfaces/Document/getAnimations-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/setTarget-expected.txt:
* http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt:
* http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt:
* http/wpt/web-animations/timing-model/animation-effects/local-time-expected.txt:
* http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt:
* http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt:
* http/wpt/web-animations/timing-model/animations/canceling-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:
* http/wpt/web-animations/timing-model/animations/updating-the-finished-state-expected.txt:
* http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:
* imported/blink/virtual/threaded/animations/compositor-rotate-zero-degrees-expected.html: Removed.
* imported/blink/virtual/threaded/animations/compositor-rotate-zero-degrees.html: Removed.

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

21 months agoUnreviewed GTK layout test gardening
mcatanzaro@igalia.com [Sun, 24 Dec 2017 03:59:00 +0000 (03:59 +0000)]
Unreviewed GTK layout test gardening

* platform/gtk/TestExpectations:

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

21 months agoAdd comments and improve code styles for RenderMathMLUnderOver::stretchHorizontalOper...
commit-queue@webkit.org [Sat, 23 Dec 2017 16:05:41 +0000 (16:05 +0000)]
Add comments and improve code styles for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren() and related functions
https://bugs.webkit.org/show_bug.cgi?id=180923

Patch by Minsheng Liu <lambda@liu.ms> on 2017-12-23
Reviewed by Frédéric Wang.

Source/WebCore:

The patch improves the code for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren()
and related function, incorporating the following suggestions from bug 179682:

- Remove several lines of trailing spaces.
- Change several pointers to references.
- Rewrite horizontalStretchyOperator() (formerly toHorizontalStretchyOperator())
  to make it more conforming to WebKit's coding style.
- Make unembellishedOperator() a const method.
- Add comments for stretchHorizontalOperatorsAndLayoutChildren().
- Eliminate an unnecessary call to fixLayoutAfterStretch() in stretchHorizontalOperatorsAndLayoutChildren().

Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.

Since there is no behavior change, no new test is required.

* rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::unembellishedOperator const):
(WebCore::RenderMathMLBlock::unembellishedOperator): Deleted.
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::unembellishedOperator const):
(WebCore::RenderMathMLFraction::unembellishedOperator): Deleted.
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::resetStretchSize):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::unembellishedOperator const):
(WebCore::RenderMathMLScripts::unembellishedOperator): Deleted.
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::horizontalStretchyOperator):
(WebCore::fixLayoutAfterStretch):
(WebCore::RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren):
(WebCore::RenderMathMLUnderOver::layoutBlock):
(WebCore::toHorizontalStretchyOperator): Deleted.

LayoutTests:

Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.

Since there is no behavior change, no new test is required.

* mathml/opentype/munderover-stretch-width-expected.txt:
* mathml/opentype/munderover-stretch-width.html:

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

21 months agoAllow WebsitePolicies API object to be bridged to _WKWebsitePolicies
jeffm@apple.com [Sat, 23 Dec 2017 00:00:42 +0000 (00:00 +0000)]
Allow WebsitePolicies API object to be bridged to _WKWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=181135

Reviewed by Dan Bernstein.

_WKWebsitePolicies already wraps WebsitePolicies, we just never hooked this up in newObject().

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):

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

21 months agoUnreviewed, continue to fix build failures due to AppKit API deprecation
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:50:11 +0000 (23:50 +0000)]
Unreviewed, continue to fix build failures due to AppKit API deprecation

Wraps more code in -Wdeprecated-declarations.

* Carbon/HIWebView.mm:
(overrideCGContext):

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

21 months agoUnreviewed, fix build failures due to using deprecated AppKit symbols when building...
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:34:54 +0000 (23:34 +0000)]
Unreviewed, fix build failures due to using deprecated AppKit symbols when building 32-bit

Wrap some more code in -Wdeprecated-declarations to try and fix the 32-bit build using the newest SDK.

* Carbon/CarbonWindowAdapter.mm:
(-[CarbonWindowAdapter setViewsNeedDisplay:]):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView sendDrawRectEvent:]):
(-[WebNetscapePluginView drawRect:]):

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

21 months ago[JSC] IntlCollator and IntlNumberFormat has static fields with same name
ticaiolima@gmail.com [Fri, 22 Dec 2017 23:33:15 +0000 (23:33 +0000)]
[JSC] IntlCollator and IntlNumberFormat has static fields with same name
https://bugs.webkit.org/show_bug.cgi?id=181128

Reviewed by Yusuke Suzuki.

Minor fixes into IntlNumberFormat::initializeNumberFormat and
IntlCollator::initializeCollator that makes JSC unified sources
compile. These files were generating compilation error when placed at
the same UnifiedSource.cpp, because they had static variables with same name.

* runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):

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

21 months agoUnreviewed GTK layout test gardening
mcatanzaro@igalia.com [Fri, 22 Dec 2017 23:29:18 +0000 (23:29 +0000)]
Unreviewed GTK layout test gardening

* TestExpectations:
* platform/gtk/TestExpectations:

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

21 months agoUnreviewed, try to fix the Sierra build again after r226277.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:11:20 +0000 (23:11 +0000)]
Unreviewed, try to fix the Sierra build again after r226277.

The macOS 10.12 SDK does not know about NSControlStateValue. Apply the same tweak in r226279, but to MiniBrowser
this time.

* MiniBrowser/AppKitCompatibilityDeclarations.h:

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

21 months agoUnreviewed, try to fix the build on recent SDKs after r226274.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:05:37 +0000 (23:05 +0000)]
Unreviewed, try to fix the build on recent SDKs after r226274.

Unused variables captured in a lambda now cause warnings the latest SDKs. It seems that after r226274, the block
in `SWContextManager::terminateWorker` no longer accesses `this->m_workerMap`, so `this` is now unused.

* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):

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

21 months agoUnreviewed, try to fix the Sierra build after r226277.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 22:53:07 +0000 (22:53 +0000)]
Unreviewed, try to fix the Sierra build after r226277.

The macOS 10.12 SDK does not know about NSControlStateValue and some types of NSLevelIndicatorStyles, so these
need to be declared in a separate section in AppKitCompatibilityDeclarations.h (rather than in the < macOS 10.12
SDK #ifdef).

* wtf/mac/AppKitCompatibilityDeclarations.h:

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

21 months agoUnreviewed, rolling out r225899
mcatanzaro@igalia.com [Fri, 22 Dec 2017 22:34:18 +0000 (22:34 +0000)]
Unreviewed, rolling out r225899
https://bugs.webkit.org/show_bug.cgi?id=180430

* media/content/encrypted/VideoClearKeyCenc.mp4: Removed.
* media/content/encrypted/segments/VideoClearKeyCenc-seg-0.mp4: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-expected.txt: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse-expected.txt: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html: Removed.
* media/encrypted-media/medias-enc.js: Removed.
* media/media-source/media-source-loader-simple.js: Removed.
* platform/gtk/TestExpectations:
* platform/mac-elcapitan/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:

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

21 months agoFix build failures due to using deprecated AppKit symbols
wenson_hsieh@apple.com [Fri, 22 Dec 2017 22:23:27 +0000 (22:23 +0000)]
Fix build failures due to using deprecated AppKit symbols
https://bugs.webkit.org/show_bug.cgi?id=181110
<rdar://problem/36162865>

Reviewed by Dan Bernstein and Tim Horton.

Source/WebCore:

Fixes the build for recent SDKs (post-AppKit-deprecation) via a combination of adopting modern AppKit versions
of deprecated interfaces, or folding deprecated symbols behind helper functions (for deprecated pasteboard
types). Introduces LegacyNSPasteboardTypes.h, which contains functions to wrap around deprecated NSPasteboard
types. This allows us to replace all deprecated NS*PboardTypes with calls to the helper functions, and limit
-Wdeprecated-declarations of legacy pasteboard types to this new header.

* WebCore.xcodeproj/project.pbxproj:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(CreateCGColorIfDifferent):
* editing/mac/EditorMac.mm:
(WebCore::Editor::takeFindStringFromSelection):
(WebCore::Editor::dataSelectionForPasteboard):
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::bitmapPNGFileType):
(WebCore::cocoaTypeToImageType):
(WebCore::convertTIFFToPNG):
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayer::drawLayerContents):
* platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
* platform/ios/wak/WAKAppKitStubs.h:
* platform/mac/DragDataMac.mm:
(WebCore::rtfPasteboardType):
(WebCore::rtfdPasteboardType):
(WebCore::stringPasteboardType):
(WebCore::urlPasteboardType):
(WebCore::htmlPasteboardType):
(WebCore::colorPasteboardType):
(WebCore::pdfPasteboardType):
(WebCore::tiffPasteboardType):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::asURL const):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageForLink):
* platform/mac/LegacyNSPasteboardTypes.h: Added.
(WebCore::legacyStringPasteboardType):
(WebCore::legacyFilenamesPasteboardType):
(WebCore::legacyTIFFPasteboardType):
(WebCore::legacyRTFPasteboardType):
(WebCore::legacyFontPasteboardType):
(WebCore::legacyColorPasteboardType):
(WebCore::legacyRTFDPasteboardType):
(WebCore::legacyHTMLPasteboardType):
(WebCore::legacyURLPasteboardType):
(WebCore::legacyPDFPasteboardType):
(WebCore::legacyFilesPromisePasteboardType):
* platform/mac/LocalCurrentGraphicsContext.mm:
(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForURL):
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::supportedFileUploadPasteboardTypes):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::writeURLForTypes):
(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::read):
(WebCore::absoluteURLsFromPasteboardFilenames):
(WebCore::Pasteboard::readPlatformValueAsString):
(WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType):
(WebCore::Pasteboard::writeString):
* platform/mac/PasteboardWriter.mm:
(WebCore::createPasteboardWriter):
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::numberOfFiles const):
(WebCore::pasteboardMayContainFilePaths):
(WebCore::PlatformPasteboard::stringForType const):
(WebCore::safeTypeForDOMToReadAndWriteForPlatformType):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::setStringForType):
* platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::createToggleButtonCell):
(WebCore::drawCellFocusRingWithFrameAtTime):
(WebCore::leakButtonCell):
(WebCore::setUpButtonCell):
(WebCore::paintButton):
(WebCore::ThemeMac::inflateControlPaintRect const):
* platform/mac/WebWindowAnimation.mm:
(setScaledFrameForWindow):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::paint):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::convertNSColorToColor):
(WebCore::menuBackgroundColor):
(WebCore::RenderThemeMac::updateCheckedState):
(WebCore::RenderThemeMac::levelIndicatorStyleFor const):
(WebCore::RenderThemeMac::levelIndicatorFor const):
(WebCore::RenderThemeMac::servicesRolloverButtonCell const):

Source/WebKit:

See WebCore ChangeLog for more details.

* Shared/mac/PasteboardTypes.mm:
(WebKit::PasteboardTypes::forEditing):
(WebKit::PasteboardTypes::forURL):
(WebKit::PasteboardTypes::forImages):
(WebKit::PasteboardTypes::forImagesWithArchive):
(WebKit::PasteboardTypes::forSelection):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::setIntrinsicContentSize):
(WebKit::WebViewImpl::writeSelectionToPasteboard):
(WebKit::WebViewImpl::validRequestorForSendAndReturnTypes):
(WebKit::WebViewImpl::validateUserInterfaceItem):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::WebViewImpl::setFileAndURLTypes):
(WebKit::WebViewImpl::setPromisedDataForImage):
(WebKit::WebViewImpl::setPromisedDataForAttachment):
(WebKit::WebViewImpl::provideDataForPasteboard):
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):
* UIProcess/mac/WKSharingServicePickerDelegate.mm:
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::searchTheWeb):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage):

Source/WebKitLegacy/mac:

See WebCore ChangeLog for more details. Additionally makes a few minor adjustments to pass our style checker.

* Misc/WebKitNSStringExtras.mm:
(-[NSString _web_drawAtPoint:font:textColor:]):
* Misc/WebNSPasteboardExtras.h:
* Misc/WebNSPasteboardExtras.mm:
(+[NSPasteboard _web_writableTypesForURL]):
(_createWritableTypesForImageWithoutArchive):
(_createWritableTypesForImageWithArchive):
(+[NSPasteboard _web_dragTypesForURL]):
(-[NSPasteboard _web_bestURL]):
(-[NSPasteboard _web_writeURL:andTitle:types:]):
(+[NSPasteboard _web_setFindPasteboardString:withOwner:]):
(-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]):
(-[NSPasteboard _web_writeImage:element:URL:title:archive:types:source:]):
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
* Panels/WebAuthenticationPanel.m:
(-[WebAuthenticationPanel runAsModalDialogWithChallenge:]):
(-[WebAuthenticationPanel sheetDidEnd:returnCode:contextInfo:]):
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView drawRect:]):
* WebInspector/WebNodeHighlightView.mm:
(-[WebNodeHighlightView drawRect:]):
* WebView/WebFrame.mm:
(-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]):
(-[WebFrame _drawRect:contentsOnly:]):
* WebView/WebHTMLView.mm:
(kit):
(-[WebHTMLView _documentFragmentFromPasteboard:inContext:allowPlainText:]):
(-[WebHTMLView _plainTextFromPasteboard:]):
(-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
(+[WebHTMLView _insertablePasteboardTypes]):
(+[WebHTMLView _selectionPasteboardTypes]):
(-[WebHTMLView pasteboard:provideDataForType:]):
(-[WebHTMLView _writeSelectionToPasteboard:]):
(-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]):
(-[WebHTMLView validRequestorForSendType:returnType:]):
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
(createMenuItem):
(-[WebHTMLView _fontAttributesFromFontPasteboard]):
(-[WebHTMLView _colorAsString:]):
(-[WebHTMLView copyFont:]):
* WebView/WebPDFView.mm:
(-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
(-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
(-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]):
(-[WebPDFView pasteboardTypesForSelection]):
(-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
* WebView/WebView.h:
* WebView/WebView.mm:
(-[WebView performDragOperation:]):
(-[WebView validateUserInterfaceItemWithoutDelegate:]):
(-[WebView _searchWithGoogleFromMenu:]):

Source/WTF:

When building with older macOS SDKs where some AppKit constants don't exist, define the modern constants to be
equal to their deprecated counterparts. This allows us to just have the modern types in WebKit sources while
avoiding breakage on old SDKs.

This, along with many other symbols in the compability header, can be removed once WebKit stops supporting macOS
10.11.

* wtf/mac/AppKitCompatibilityDeclarations.h:

Tools:

Transition to non-deprecated AppKit constants in MiniBrowser.

* MiniBrowser/AppKitCompatibilityDeclarations.h: Added.
* MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController validateMenuItem:]):
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController validateMenuItem:]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):

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

21 months agoCrash beneath ScriptedAnimationController::serviceScriptedAnimations after a requestA...
mitz@apple.com [Fri, 22 Dec 2017 21:41:02 +0000 (21:41 +0000)]
Crash beneath ScriptedAnimationController::serviceScriptedAnimations after a requestAnimationFrame callback removes the requesting iframe
https://bugs.webkit.org/show_bug.cgi?id=181132
<rdar://problem/35143540>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/animation/request-animation-frame-remove-iframe-in-callback.html

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations): Hold a reference to the
  document and pass that along to InspectorInstrumentation::willFireAnimationFrame rather
  than dereferencing the m_document member, which may have gotten cleared by an earlier
  callback.

LayoutTests:

* fast/animation/request-animation-frame-remove-iframe-in-callback-expected.txt: Added.
* fast/animation/request-animation-frame-remove-iframe-in-callback.html: Added.

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

21 months agoimportScripts() inside a service worker should ensure that the response has a JavaScr...
cdumez@apple.com [Fri, 22 Dec 2017 21:23:39 +0000 (21:23 +0000)]
importScripts() inside a service worker should ensure that the response has a JavaScript MIME type
https://bugs.webkit.org/show_bug.cgi?id=181103

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it fails later. The test expects that the registration promise be
rejected with a SecurityError. However, we reject it with a TypeError instead, which is the
result of the Network error from importScripts().

The spec does say that importScripts() should report a network error when the MIME type is
invalid:
- https://w3c.github.io/ServiceWorker/#importscripts (step 6)

Later on, the spec says that if "an uncaught runtime script error occurs" when running the script,
we should resolve the registration with a TypeError:
- https://w3c.github.io/ServiceWorker/#update (step 9.6)

Therefore, our behavior seems correct and I cannot find in the spec a reason why the test would
expect a SecurityError here.

* web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:

Source/WebCore:

importScripts() inside a service worker should ensure that the response has a JavaScript
MIME type, as per:
- https://w3c.github.io/ServiceWorker/#importscripts (step 6)

No new tests, rebaselined existing test.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::didReceiveResponse):
* workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::responseMIMEType const):

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

21 months ago[Service Workers] Implement "Soft Update" algorithm
cdumez@apple.com [Fri, 22 Dec 2017 21:17:46 +0000 (21:17 +0000)]
[Service Workers] Implement "Soft Update" algorithm
https://bugs.webkit.org/show_bug.cgi?id=180702
<rdar://problem/36163461>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline Soft Update WPT test now that it is passing.

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

Source/WebCore:

Implement "Soft Update" algorithm:
- https://w3c.github.io/ServiceWorker/#soft-update-algorithm

Call softUpdate at the end of "Handle Fetch", as per:
- https://w3c.github.io/ServiceWorker/#on-fetch-request-algorithm

No new tests, rebaselined existing test.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::postTaskTo):
* dom/ScriptExecutionContext.h:
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::failedFetchingScript):
(WebCore::SWClientConnection::registrationJobResolvedInServer):
(WebCore::SWClientConnection::startScriptFetchForServer):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::ServiceWorkerJob):
* workers/service/ServiceWorkerJob.h:
(WebCore::ServiceWorkerJob::create):
(WebCore::ServiceWorkerJob::data const):
(WebCore::ServiceWorkerJob::promise):
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::softUpdate):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):
(WebCore::SWContextManager::postTaskToServiceWorker):
* workers/service/context/SWContextManager.h:
* workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):
* workers/service/context/ServiceWorkerFetch.h:
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::startScriptFetch):
* workers/service/server/SWServer.h:

Source/WebKit:

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startScriptFetchInClient):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

LayoutTests:

Unskip soft update WPT test that no longer times out.

* TestExpectations:

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

21 months ago[RenderTreeBuilder] Move RenderMenuList::addChild() tree mutation to RenderTreeBuilder
zalan@apple.com [Fri, 22 Dec 2017 20:43:35 +0000 (20:43 +0000)]
[RenderTreeBuilder] Move RenderMenuList::addChild() tree mutation to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181130
<rdar://problem/36196266>

Reviewed by Antti Koivisto.

This patch also creates a dedicated class for form control related tree mutations.

Covered by existing tests.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setInnerRenderer): Update the style here instead.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setInnerRenderer):
(RenderMenuList::addChild):
(RenderMenuList::showPopup): We should't really call showPopup on a detached renderer.
(WebCore::RenderMenuList::createInnerBlock): Deleted.
* rendering/RenderMenuList.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::createInnerRendererForButtonIfNeeded): Deleted.
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::formControlsBuilder):
* rendering/updating/RenderTreeBuilderFormControls.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.
(WebCore::RenderTreeBuilder::FormControls::FormControls):
(WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded):
* rendering/updating/RenderTreeBuilderFormControls.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.

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

21 months agoREGRESSION(r223678): Cannot copy & paste a web page content into Yahoo! Mail
rniwa@webkit.org [Fri, 22 Dec 2017 20:41:48 +0000 (20:41 +0000)]
REGRESSION(r223678): Cannot copy & paste a web page content into Yahoo! Mail
https://bugs.webkit.org/show_bug.cgi?id=181114

Reviewed by Geoffrey Garen.

Source/WebCore:

Turns out converting all URLs to blob isn't Web compatible. Don't do this conversion on HTTP, HTTP, and data URLs
since websites tend to have access to contents accessible via those protocols, and blob URL conversion would break
Yahoo! Mail, Gmail, and other major online email services.

We've also considered using data URLs instead of blob URLs for conversion but pasting a large image converted into
a data URL seems to break WordPress (it stores an empty post instead of the one with the image) so it's not likely
to be Web compatible either.

This patch therefore disables the blob conversion in sanitizeMarkupWithArchive for HTTP, HTTPS, data URLs for
cross-origin content, restoring the behavior prior to r223678. For contents converted from attributed strings,
we continue to convert to blob URL since there is no other way for websites to read local files or images references
by an in-memory web archive.

Tests: http/tests/security/clipboard/copy-paste-html-cross-in-origin-iframe-across-origin.html

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::shouldConvertToBlob): Added.
(WebCore::sanitizeMarkupWithArchive):

LayoutTests:

Updated http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html to test the new behavior
whereby which HTTP/HTTPs and data URLs are not converted to blob URLs.

* http/tests/security/clipboard/copy-paste-html-across-origin-sanitizes-html.html:
* http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin-expected.txt: Renamed.
* http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html: Added more test cases for data URLs.
* http/tests/security/clipboard/resources/content-to-copy.html: Notify the parent that the page had finished loading.
* http/tests/security/clipboard/resources/data-url-content-to-copy.html: Added.
* http/tests/security/clipboard/resources/subdirectory/paste-html.html: Since we can no longer access contents
in the pasted frames but scripts DO run in the pasted cross-origin iframes, rely on those frames to postMessage
this frame when the image had finished loading.

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

21 months agoCredentials warning spam when running CodeGenerator.pm
mcatanzaro@igalia.com [Fri, 22 Dec 2017 20:40:23 +0000 (20:40 +0000)]
Credentials warning spam when running CodeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=181127

Unreviewed, update WebCore_IDL_INCLUDES.

* CMakeLists.txt:

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

21 months agogenerate_offset_extractor.rb should not print to stderr by default
mcatanzaro@igalia.com [Fri, 22 Dec 2017 20:30:24 +0000 (20:30 +0000)]
generate_offset_extractor.rb should not print to stderr by default
https://bugs.webkit.org/show_bug.cgi?id=181133

Reviewed by Mark Lam.

Remove unneeded print output.

* offlineasm/generate_offset_extractor.rb:

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

21 months ago[DFG] Cleaning up and unifying 32bit code more
utatane.tea@gmail.com [Fri, 22 Dec 2017 19:51:03 +0000 (19:51 +0000)]
[DFG] Cleaning up and unifying 32bit code more
https://bugs.webkit.org/show_bug.cgi?id=181124

Reviewed by Mark Lam.

This patch unifies DFG 32bit code into 64bit code more. In this patch, we move RegExp DFG nodes
from 32bit / 64bit code to the common code. We change some RegExp operations to returning JSCell*
instead of EncodedJSValue. This simplifies DFG implementation.

And we also move HasGenericProperty since we now have JSValueRegsFlushedCallResult. ToPrimive,
LogShadowChickenPrologue, and LogShadowChickenTail are almost the same in 32bit and 64bit.
Thus, it is unified easily.

And we also move some GPRFlushedCallResult from the original places to the places just after
`flushRegisters()` not to spill unnecessary registers.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::compileRegExpTest):
(JSC::DFG::SpeculativeJIT::compileStringReplace):
(JSC::DFG::SpeculativeJIT::compileHasGenericProperty):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenPrologue):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepAnyInt):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingRegExp):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::operationStringProtoFuncReplaceGeneric):
* runtime/StringPrototype.h:

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

21 months ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 18:12:53 +0000 (18:12 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914
<rdar://problem/36196039>

Unreviewed.

Source/JavaScriptCore:

* PlatformGTK.cmake:

Source/WebKit:

I messed up a last-minute change, and inverted the conditional that determines whether to
use the version script. I did test this change to ensure that it worked properly by checking
that the library size was correct, but only in non-developer mode. My test was thwarted by
-fvisibility=hidden. It looks like so few internal symbols are exported that missing the
version script had little impact on the size of the resulting libraries. That's good, I
suppose.

* PlatformGTK.cmake:
* PlatformWPE.cmake:

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

21 months ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 18:06:34 +0000 (18:06 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Carlos Garcia Campos.

Let's build JSC as a static library, and link that static lib to *both* our shared
libjavascriptcoregtk and libwebkit2gtk. Then we can fix this and also filter out all the
private symbols that we're currently exposing in libjavascriptcoregtk, which wouldn't be
possible otherwise. The cost of this is disk space. I think this trade-off is reasonable,
because it's the best way I could think of that accomplishes all our goals: (a) install two
shared libs, (b) export only public API symbols, (c) does not require any linker hacks.

Additionally, build with -fvisibility=hidden so that the compiler knows that many symbols
will be stripped out. This should improve code generation. It's actually how WPE was
previously compiled, but I removed this when I added the version script for WPE, because I
thought it was redundant with the version script. It is not, and we should use both,
according to Ulrich Drepper's "How to Write Shared Libraries." We will use
-fvisibility=hidden on all ports; this should be fine, as long as export macros are used
where needed. This is actually a totally separate change, but it makes sense to do it now if
we consider this bug a catch-all "fix how we link WebKit" issue.

* CMakeLists.txt: Rejigger the default library types, and remove the SHARED_CORE option,
  which is not likely to work properly in ports that are not expecting it. These changes are
  only mildly-related and certainly not required, but it makes sense to clean them up now.
* Source/cmake/OptionsGTK.cmake: Don't set the version script here.
* Source/cmake/OptionsJSCOnly.cmake: Adjust to changes in default library types.
* Source/cmake/OptionsMac.cmake: Adjust to changes in default library types. Override the
  library type variables only when required.
* Source/cmake/OptionsWPE.cmake: Overriding the library type variables is no longer
  required. Also, don't set the version script here.
* Source/cmake/OptionsWin.cmake: Adjust to changes in default library types. Override the
  library type variables only when required.
* Source/cmake/WebKitCompilerFlags.cmake: Build with -fvisibility=hidden,
  -fvisibility-inlines-hidden, and -Wno-attributes.
* Source/cmake/wpesymbols.filter: Removed.

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

21 months ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 17:18:43 +0000 (17:18 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Carlos Garcia Campos.

.:

* CMakeLists.txt:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWPE.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:
* Source/cmake/wpesymbols.filter: Removed.

Source/JavaScriptCore:

Add a new JavaScriptCoreGTK build target, to build JSC as a shared library. Link the
original JavaScriptCore build target, which is now a static library, to it. Use
--whole-archive to prevent all the JavaScriptCore symbols from being dropped, since none are
used directly by JavaScriptCoreGTK.

The installed libjavascriptcoregtk-4.0 now corresponds to the JavaScriptCoreGTK target,
instead of the JavaScriptCore target. There is almost no difference on the installed system,
except that we now use a version script when linking, to hide private symbols, since they're
no longer needed by libwebkit2gtk-4.0.so.

Also, move the symbols map here.

* PlatformGTK.cmake:
* javascriptcoregtk-symbols.map: Added.

Source/WebCore:

* CMakeLists.txt: Test for WebCore_LIBRARY_TYPE rather than SHARED_CORE.

Source/WebKit:

Mark a few InjectedBundle symbols with default visibility, so they don't get hidden by
-fvisibility=hidden. Also, remove Windows conditionals, since Windows is not supported by
any GLib ports.

Also, move the symbols map to here, and share it between WPE and GTK.

* CMakeLists.txt:
* PlatformGTK.cmake:
* PlatformWPE.cmake:
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h:
* WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp:
* webkitglib-symbols.map: Renamed from Source/cmake/gtksymbols.filter.

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

21 months ago[RenderTreeBuilder] Move RenderButton::addChild() tree mutation to RenderTreeBuilder
zalan@apple.com [Fri, 22 Dec 2017 16:28:50 +0000 (16:28 +0000)]
[RenderTreeBuilder] Move RenderButton::addChild() tree mutation to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181109
<rdar://problem/36188262>

Reviewed by Antti Koivisto.

Covered by existing tests.

* rendering/RenderButton.cpp:
(WebCore::RenderButton::setInnerRenderer):
(WebCore::RenderButton::updateAnonymousChildStyle const):
(WebCore::RenderButton::addChild): Deleted.
* rendering/RenderButton.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::propagateStyleToAnonymousChildren):
* rendering/RenderElement.h:
(WebCore::RenderElement::updateAnonymousChildStyle const):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):

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

21 months ago[WPE][GTK] Deprecate and replace webkit_form_submission_request_get_text_fields
mcatanzaro@igalia.com [Fri, 22 Dec 2017 16:11:15 +0000 (16:11 +0000)]
[WPE][GTK] Deprecate and replace webkit_form_submission_request_get_text_fields
https://bugs.webkit.org/show_bug.cgi?id=176725

Reviewed by Carlos Garcia Campos.

Source/WebKit:

The problem is this function returns results in a GHashTable, but many fields can have the
same name, or no name at all, and those fields are currently just dropped. It's impossible
to fix, since the GHashTable is part of the API, so deprecate it and add a new function that
returns two GPtrArrays instead.

* UIProcess/API/glib/WebKitFormSubmissionRequest.cpp:
(webkitFormSubmissionRequestCreate):
(webkit_form_submission_request_get_text_fields):
(webkit_form_submission_request_list_text_fields):
* UIProcess/API/gtk/WebKitFormSubmissionRequest.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/wpe/WebKitFormSubmissionRequest.h:

Tools:

Test the new function.

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewSubmitForm):

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

21 months agowebkitpy: Refactor simulator code (Part 1)
jbedard@apple.com [Fri, 22 Dec 2017 14:43:38 +0000 (14:43 +0000)]
webkitpy: Refactor simulator code (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Reviewed by Alexey Proskuryakov.

The new SimulatedDeviceManager defined in this patch is designed to
act as a singleton. Consumers may request devices with certain
attributes, the the manager will then return a list of devices fulfilling the
request. The manager will pick between:
        - Existing and booted simulators
        - Existing simulators currently shut down
        - Custom constructed simulators
These simulators will then be globally available.

This patch duplicates code in webkitpy/xcode/simulated_device.py,
webkitpy/xcode/simulator.py and webkitpy/port/ios_simulator.py. This duplicated
code will be removed in parts 2 and 3.

* Scripts/webkitpy/common/version_name_map.py:
(VersionNameMap.__init__): Add tvOS and watchOS.
* Scripts/webkitpy/xcode/device_type.py: Added.
(DeviceType): Holds the software and hardware information for a specific device.
Designed to allow for partial matching.
(DeviceType.from_string): Parses a string (such as iPhone 6s) into a DeviceType
object.
(DeviceType._define_software_variant_from_hardware_family): The software_variant
of a device can usually be implied from its hardware_family.
(DeviceType.check_consistency): Verify that the software_variant matches the
hardware_family and that software_version and hardware_variant have their
respective prerequisites.
(DeviceType.__init__):
(DeviceType.__str__): Converts a DeviceType object into a human readable string.
(DeviceType.__eq__): Compares two DeviceType objects treating None as a wildcard.
(DeviceType.__contains__): Allow partial version mapping.
* Scripts/webkitpy/xcode/device_type_unittest.py: Added.
(DeviceTypeTest):
(DeviceTypeTest.test_iphone_initialization):
(DeviceTypeTest.test_ipad_initialization):
(DeviceTypeTest.test_generic_ios_device):
(DeviceTypeTest.test_watch_initialization):
(DeviceTypeTest.test_tv_initialization):
(DeviceTypeTest.test_from_string):
(DeviceTypeTest.test_comparison):
(DeviceTypeTest.test_contained_in):
* Scripts/webkitpy/xcode/new_simulated_device.py: Added.
(DeviceRequest): Adds additional options to be used when requesting a device.
(DeviceRequest.__init__):
(SimulatedDeviceManager):
(SimulatedDeviceManager.Runtime): Representation of a supported simulated runtime.
Designed as an internal representation, not to be used outside this class.
(SimulatedDeviceManager.Runtime.__init__):
(SimulatedDeviceManager._create_runtimes): Extract a list of available runtimes.
(SimulatedDeviceManager._create_device_with_runtime): Return a new or existing device
with the provided runtime matching the provided dictionary.
(SimulatedDeviceManager.populate_available_devices): Use simctl to update the list of devices
available on this machine.
(SimulatedDeviceManager.available_devices): Populate the list of available device if empty
and return that list.
(SimulatedDeviceManager._find_exisiting_device_for_request): Return an existing device matching
the provided request if one exists.
(SimulatedDeviceManager._find_available_name): Given a name base, return a string which
does not match the name of an initialized device.
(SimulatedDeviceManager. get_runtime_for_device_type): Map device type to runtime object.
(SimulatedDeviceManager._disambiguate_device_type): The user may have requested a DeviceType
with only partial definitions. In this case, use existing runtimes and devices to generate
a DeviceType to build.
(SimulatedDeviceManager._get_device_identifier_for_type): Return a simctl device type string
given a DeviceType object.
(SimulatedDeviceManager._create_or_find_device_for_request): Given a DeviceRequest object,
either find an existing device which matches the request or create one matching
(SimulatedDeviceManager._does_fulfill_request): Given a device and list of requests, return
the request which the provided device matches, if there are any.
(SimulatedDeviceManager._wait_until_device_in_state): Wait until a device enters a specific
state.
(SimulatedDeviceManager.initialize_devices): Given a list of requests, return a list
of devices which fulfill the requests. This function will use both existing devices
and create devices. This function will also start the Simulator.app.
(SimulatedDeviceManager.max_supported_simulators): Uses the number of available cores,
maximum number of processes and the available RAM to calculate the number of
simulated devices this machine can support.
(SimulatorManager.swap): Shuts down the specified device and boots a new one which
matches the specified request.
(SimulatorManager.tear_down): Shut down any simulators managed by this class.
(SimulatedDevice):
(SimulatedDevice.DeviceState): Copied from webkitpy/xcode/simulator.py.
(SimulatedDevice.__init__):
(SimulatedDevice.state): Use the device's plist to determine the current state of
the device. Note that this function will cache the result for a second.
(SimulatedDevice.is_booted_or_booting):
(SimulatedDevice._shut_down): Shut down this device and remove it from the list of
initialized devices.
(SimulatedDevice._delete): Delete this device and remove it from the list of
available devices.
(SimulatedDevice._tear_down): Shut down and delete this device, if it is managed by
the SimulatorManager.
(SimulatedDevice.install_app): Copied from webkitpy/xcode/simulated_device.py.
(SimulatedDevice.launch_app): Ditto.
(SimulatedDevice.__eq__): Ditto.
(SimulatedDevice.__ne__): Ditto.
(SimulatedDevice.__repr__): Map state to string and include device type.
* Scripts/webkitpy/xcode/new_simulated_device_unittest.py: Added.
(SimulatedDeviceTest):
(SimulatedDeviceTest.reset_simulated_device_manager):
(SimulatedDeviceTest.tear_down):
(SimulatedDeviceTest.mock_host_for_simctl):
(device_by_criteria):
(test_available_devices):
(test_existing_simulator):
(change_state_to):
(test_swapping_devices):

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

21 months agoREGRESSION(r226228) Build error with unqualified isfinite() in MediaCapabilities.cpp
Ms2ger@igalia.com [Fri, 22 Dec 2017 10:12:20 +0000 (10:12 +0000)]
REGRESSION(r226228) Build error with unqualified isfinite() in MediaCapabilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=181118

Unreviewed build fix.

* Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::isValidVideoConfiguration): qualify the one unqualified isfinite() call.

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

21 months ago[DFG] Unify bunch of DFG 32bit code into 64bit code
utatane.tea@gmail.com [Fri, 22 Dec 2017 09:07:35 +0000 (09:07 +0000)]
[DFG] Unify bunch of DFG 32bit code into 64bit code
https://bugs.webkit.org/show_bug.cgi?id=181083

Reviewed by Mark Lam.

There are bunch of the completely same code in 32bit and 64bit DFG.
This is largely because of the old DFG code. At that time, we do not
have enough abstraction to describe them in one code. But now, we have
JSValueRegs, JSValueRegsTemporary etc. They allow DFG to write 32bit and
64bit handling in one code.

This patch unifies easy ones. This is nice since basically 32bit code is
a bit old and not maintained so much compared to 64bit. If we can drop
32bit specific code as much as possible, it would be nice. Furthermore,
we can find various mistakes in 32bit: For example, NewObject does not have
mutatorFence in 32bit while 64bit has it. This unification is a chance
to fix miscellaneous bugs in 32bit while reducing maintenance burden.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileGetEnumerableLength):
(JSC::DFG::SpeculativeJIT::compileToIndexString):
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
(JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
(JSC::DFG::SpeculativeJIT::compileGetEnumeratorPname):
(JSC::DFG::SpeculativeJIT::compileGetGetter):
(JSC::DFG::SpeculativeJIT::compileGetSetter):
(JSC::DFG::SpeculativeJIT::compileGetCallee):
(JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis):
(JSC::DFG::SpeculativeJIT::compileStrCat):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileNewObject):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

21 months ago[DFG] Add JSValueRegsFlushedCallResult
utatane.tea@gmail.com [Fri, 22 Dec 2017 08:19:55 +0000 (08:19 +0000)]
[DFG] Add JSValueRegsFlushedCallResult
https://bugs.webkit.org/show_bug.cgi?id=181075

Reviewed by Mark Lam.

Add JSValueRegsFlushedCallResult, which is appropriate for the JSValueRegs result
of the function call after flushing. We can remove bunch of `#if USE(JSVALUE32_64)`
code and simplify them.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileFromCharCode):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileParseInt):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileArithMul):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::JSValueRegsFlushedCallResult::JSValueRegsFlushedCallResult):
(JSC::DFG::JSValueRegsFlushedCallResult::regs):

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

21 months agoAdd UI for A/B testing on owned commits.
dewei_zhu@apple.com [Fri, 22 Dec 2017 06:25:24 +0000 (06:25 +0000)]
Add UI for A/B testing on owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177993

Reviewed by Ryosuke Niwa.

Customizable test group form should support specifying and A/B testing owned commits.
Introduce 'IntermediateCommitSet' to achieve the goal of specifying owned commits for A/B test.
In order to support configure A/B testing that may need to add/remove owned commits, CommitSet may be the
closest thing we can get. However, it is a subclass of DataModelObject, which means CommitSet is a representation
of 'commit_sets' table and can only be updated from server data. Thus, we want something like CustomCommitSet that
is not a representation of database table, but unlike CustomCommitSet, it should store information about commits
rather than a revision. As a result, IntermediateCommitSet is introduced. For a longer term, we may replace
CustomCommitSet with IntermediateCommitSet as it carries more information and could potentially simplify some
CustomCommitSet related APIs by using commit id instead of commit revision.
Extend ButtonBase class so that we can enable/disable a button.

* public/v3/components/button-base.js:
(ButtonBase):
(ButtonBase.prototype.setDisabled): Enable/disable a button.
(ButtonBase.prototype.render):
(ButtonBase.cssTemplate): Added css rule for disabled button.
* public/v3/components/combo-box.js: Added.
(ComboBox):
(ComboBox.prototype.didConstructShadowTree): Setup text field.
(ComboBox.prototype.render):
(ComboBox.prototype._candidateNameForCurrentIndex): Returns candidate name based on current index.
(ComboBox.prototype._candidateElementForCurrentIndex): Returns a list element based on current index.
(ComboBox.prototype._autoCompleteIfOnlyOneMatchingItem): Supports auto completion.
(ComboBox.prototype._moveCandidate): Supports arrow up/down.
(ComboBox.prototype._updateCandidateList): Hide/unhide candidate list and high-light selected candidate.
(ComboBox.prototype._renderCandidateList): Render candidate list base on value on text field.
(ComboBox.htmlTemplate):
(ComboBox.cssTemplate):
* public/v3/components/customizable-test-group-form.js:
(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.didConstructShadowTree): Only fetch the full commits when we about to create a customized A/B tests.
(CustomizableTestGroupForm.prototype._computeCommitSetMap): Compute the CustomCommitSet based on IntermediateCommitSet and
other revision related information in some map.
(CustomizableTestGroupForm.prototype.render):
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTableBodyList): This function builds table body for each highest level repository.
It will also include the owned repository rows in the same table body if the commits for highest level repository owns other commits.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner): Build a table row for a highest level repository.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner): Build a table row for repository with owner.
(CustomizableTestGroupForm.prototype._constructTableRowForIncompleteOwnedCommits): Build a table row for an unspecified repository.
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons): Update the logic to support build radio buttons for the owned repository rows.
(CustomizableTestGroupForm.cssTemplate):
* public/v3/components/minus-button.js: Added.
(MinusButton):
(MinusButton.buttonContent):
* public/v3/components/owned-commit-viewer.js:
(OwnedCommitViewer.prototype._renderOwnedCommitTable):
* public/v3/components/plus-button.js: Added.
(PlusButton):
(PlusButton.buttonContent):
* public/v3/index.html: Added new components.
* public/v3/models/commit-log.js: Added owner and owned commit information.
(CommitLog):
(CommitLog.prototype.ownedCommits): Returns a list of commits owned by current commit.
(CommitLog.prototype.ownerCommit): Return owner commit of current commit.
(CommitLog.prototype.setOwnerCommits): Set owner commit of current commit.
(CommitLog.prototype.label): Remove unnecessary 'else'.
(CommitLog.prototype.diff): Remove unused 'fromRevisionForURL' and tiny code cleanup.
(CommitLog.prototype.ownedCommitForOwnedRepository):
(CommitLog.prototype.fetchOwnedCommits): Sets the owner for those owned commits. The owner of a commit with multiple owner
commits will be overwritten by each time this function is called.
(CommitLog.ownedCommitDifferenceForOwnerCommits): A more generic version of diffOwnedCommits. diffOwnedCommits only accepts 2 commits,
but ownedCommitDifferenceForOwnerCommits supports multiple commits.
(CommitLog.diffOwnedCommits): Deleted and should use 'CommitLog.ownedCommitDifferenceForOwnerCommits' instead.
* public/v3/models/commit-set.js:
(CommitSet.prototype.topLevelRepositories):
(CommitSet.prototype.commitForRepository):
(IntermediateCommitSet): Take CommitSet as argument, note the commit from CommitSet doesn't contains full information of the commit.
Always call 'fetchFullCommits' once before any further usages.
(IntermediateCommitSet.prototype.fetchCommitLogs): Fetch all commits information in current commit set.
(IntermediateCommitSet.prototype._fetchCommitLogAndOwnedCommits): Fetch commit log and owned commits if necessary.
(IntermediateCommitSet.prototype.updateRevisionForOwnerRepository): Updates a commit for a repository by given a revision of the repository.
(IntermediateCommitSet.prototype.setCommitForRepository): Sets a commit for a repository in commit set.
(IntermediateCommitSet.prototype.removeCommitForRepository): Removes a commit for a repository in commit set.
(IntermediateCommitSet.prototype.ownsCommitsForRepository): Returns whether the commit for repository owns commits.
(IntermediateCommitSet.prototype.repositories): Returns all repositories in the commit set.
(IntermediateCommitSet.prototype.highestLevelRepositories): Returns all repositories those don't have an owner.
(IntermediateCommitSet.prototype.commitForRepository): Returns a commit for a given repository.
(IntermediateCommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns all repositories owned by a given repository in current commit set.
(IntermediateCommitSet.prototype.ownerCommitForRepository): Returns owner commit for a given owned repository.
* tools/js/v3-models.js: Added import for 'IntermediateCommitSet'.
* unit-tests/commit-log-tests.js: Updated unittest which tests 'ownerCommit' function.
* unit-tests/commit-set-tests.js: Added unit tests for IntermediateCommitSet.

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

21 months agocom.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMe...
commit-queue@webkit.org [Fri, 22 Dec 2017 05:37:47 +0000 (05:37 +0000)]
com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057
<rdar://problem/36167175>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::stop): Fixed comment typo.

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

21 months agoServiceWorkerThreadProxy should set the correct cookie and cache partitioning options
commit-queue@webkit.org [Fri, 22 Dec 2017 05:36:13 +0000 (05:36 +0000)]
ServiceWorkerThreadProxy should set the correct cookie and cache partitioning options
https://bugs.webkit.org/show_bug.cgi?id=181000

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

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

Source/WebCore:

Covered by rebased test.

Add a way to set the domain for cache partition explicitly on a ScriptExecutionContext.
This is used by ServiceWorkerThreadProxy document to mimick the fact that it may be
a service worker used by iframes that have a cross origin top document.
Updated code to use that new utility routine.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::connect):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::domainForCachePartition const):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::setDomainForCachePartition):
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setDomainForCachePartition):
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::topOriginURL):
(WebCore::createPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
* workers/service/context/ServiceWorkerThreadProxy.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

Update Service Worker WebPreferencesStore based on the first web page added.
This allows having the right storage blocking policy.

Storing that policy in the context manager to set it properly when
creating a new service worker thread proxy.

Set up correctly partitioning parameters in the dummy Document used by the service worker.

* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::updatePreferencesStore):
* UIProcess/ServiceWorkerProcessProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::pageAddedToProcess):
* UIProcess/WebProcessPool.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getAuthenticationInfo):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WebKitLegacy/mac:

* Misc/WebCache.mm:
(+[WebCache addImageToCache:forURL:forFrame:]):

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

21 months ago[WinCairo] fix build after r226245
commit-queue@webkit.org [Fri, 22 Dec 2017 03:34:27 +0000 (03:34 +0000)]
[WinCairo] fix build after r226245
https://bugs.webkit.org/show_bug.cgi?id=181113

Unreviewed build fix.

No new tests, no change in behavior.

Patch by Christopher Reid <chris.reid@sony.com> on 2017-12-21

* html/AttachmentTypes.h: Added an include for std::optional

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

21 months agoWKPreferences doesn’t expose editable link behavior
mitz@apple.com [Fri, 22 Dec 2017 03:23:18 +0000 (03:23 +0000)]
WKPreferences doesn’t expose editable link behavior
https://bugs.webkit.org/show_bug.cgi?id=181111

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKPreferences.mm:
(toAPI): Added. Converts WebCore::EditableLinkBehavior to _WKEditableLinkBehavior.
(toEditableLinkBehavior): Added. Converts the other way.
(-[WKPreferences _editableLinkBehavior]): Added this getter.
(-[WKPreferences _setEditableLinkBehavior:]): Ditto.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new property.

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

21 months agolowering get_by_val to GetById inside bytecode parser should check for BadType exit...
sbarati@apple.com [Fri, 22 Dec 2017 03:05:18 +0000 (03:05 +0000)]
lowering get_by_val to GetById inside bytecode parser should check for BadType exit kind
https://bugs.webkit.org/show_bug.cgi?id=181112

Reviewed by Mark Lam.

The React subtest in Speedometer has a get_by_val it always converts
into a GetById in the DFG. This GetById always exits because of the incoming
identifier is a rope. This patch fixes this infinite exit loop
by only doing this transformation if we haven't exited due to BadType.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

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

21 months ago"Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watch...
lingcherd_ho@apple.com [Fri, 22 Dec 2017 02:17:58 +0000 (02:17 +0000)]
"Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watcher's Dashboard
https://bugs.webkit.org/show_bug.cgi?id=181071

Reviewed by Alexey Proskuryakov.

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

21 months agoRefactor MessagePortChannel family classes for an easier multi-process split.
beidson@apple.com [Fri, 22 Dec 2017 01:17:45 +0000 (01:17 +0000)]
Refactor MessagePortChannel family classes for an easier multi-process split.
https://bugs.webkit.org/show_bug.cgi?id=180981

Reviewed by Andy Estes.

No new tests (Refactor, no behavior change)

- Make MessagePortChannel an abstract class instead of a wrapper around a mysterious "platform" class.
- Implement the "in-process" channel for WK1 and WK2-for-now.
- Other random cleanup and modernization of this code.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

* dom/InProcessMessagePortChannel.cpp: Added.
(WebCore::InProcessMessagePortChannel::createChannelBetweenPorts):
(WebCore::InProcessMessagePortChannel::create):
(WebCore::InProcessMessagePortChannel::InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::~InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::postMessageToRemote):
(WebCore::InProcessMessagePortChannel::takeAllMessagesFromRemote):
(WebCore::InProcessMessagePortChannel::isConnectedTo):
(WebCore::InProcessMessagePortChannel::entangleIfOpen):
(WebCore::InProcessMessagePortChannel::disentangle):
(WebCore::InProcessMessagePortChannel::hasPendingActivity):
(WebCore::InProcessMessagePortChannel::locallyEntangledPort):
(WebCore::InProcessMessagePortChannel::takeEntangledChannel):
(WebCore::InProcessMessagePortChannel::close):
(WebCore::InProcessMessagePortChannel::setRemotePort):
* dom/InProcessMessagePortChannel.h: Added.
(WebCore::InProcessMessagePortChannel::MessagePortQueue::create):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::takeAllMessages):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::isEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::MessagePortQueue):

* dom/MessageChannel.cpp:
(WebCore::MessageChannel::MessageChannel):
* dom/MessageChannel.h:
(WebCore::MessageChannel::create):
(WebCore::MessageChannel::port1 const):
(WebCore::MessageChannel::port2 const):

* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::hasPendingActivity const):
* dom/MessagePort.h:

* dom/MessagePortChannel.cpp: Added.
(WebCore::MessagePortChannel::createChannelBetweenPorts):
(WebCore::MessagePortChannel::MessagePortChannel):
* dom/MessagePortChannel.h:
(WebCore::MessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::~MessagePortChannel):

* dom/default/PlatformMessagePortChannel.cpp: Removed.
* dom/default/PlatformMessagePortChannel.h: Removed.
* workers/service/context/ServiceWorkerThread.h:

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

21 months agoRename NoEventDispatchAssertion to ScriptDisallowedScope
rniwa@webkit.org [Fri, 22 Dec 2017 01:10:32 +0000 (01:10 +0000)]
Rename NoEventDispatchAssertion to ScriptDisallowedScope
https://bugs.webkit.org/show_bug.cgi?id=181102

Reviewed by Zalan Bujtas.

Renamed the class.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::canExecuteScripts):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::removeDetachedChildren):
(WebCore::ContainerNode::insertBeforeCommon):
(WebCore::ContainerNode::appendChildCommon):
(WebCore::ContainerNode::removeBetween):
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyChildNodeInserted):
(WebCore::notifyChildNodeRemoved):
* dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::isSafeToUpdateStyleOrLayout):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::dispatchWindowEvent):
(WebCore::Document::dispatchWindowLoadEvent):
(WebCore::Document::applyPendingXSLTransformsTimerFired):
* dom/Element.cpp:
(WebCore::Element::addShadowRoot):
(WebCore::Element::attachAttributeNodeIfNeeded):
(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/NoEventDispatchAssertion.h: Removed.
* dom/Node.cpp:
(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):
* dom/ScriptDisallowedScope.h: Copied from Source/WebCore/dom/NoEventDispatchAssertion.h.
(WebCore::ScriptDisallowedScope::ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::~ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree):
(WebCore::ScriptDisallowedScope::InMainThread::isScriptAllowed):
(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::isEventAllowedInMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::~InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventDispatchAllowedInSubtree): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventAllowed): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::~EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNode): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNodeInternal): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::DisableAssertionsInScope): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::~DisableAssertionsInScope): Deleted.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeClassicScript):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForDocumentSuspension):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* history/PageCache.cpp:
(WebCore::PageCache::addIfCacheable):
* html/HTMLElement.cpp:
(WebCore::textToFragment):
(WebCore::HTMLElement::setInnerText):
* html/HTMLMediaElement.cpp:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::createCueRenderingTree):
(WebCore::VTTCue::updateDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
* loader/FormSubmission.cpp:
* loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::ensureCustomFontData):
* page/LayoutContext.cpp:
(WebCore::LayoutContext::layout):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::performLayoutWithFlattening):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::updateReferencedText):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::clearShadowTree):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):

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

21 months agoUpdate Service Workers status to Supported in Preview
mjs@apple.com [Fri, 22 Dec 2017 01:03:57 +0000 (01:03 +0000)]
Update Service Workers status to Supported in Preview
https://bugs.webkit.org/show_bug.cgi?id=181093

Reviewed by Andy Estes.

* features.json:

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

21 months agoSkip http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed...
wilander@apple.com [Fri, 22 Dec 2017 00:58:00 +0000 (00:58 +0000)]
Skip http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html
https://bugs.webkit.org/show_bug.cgi?id=181108

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

21 months agoUnreviewed test fix after r226224.
bfulgham@apple.com [Thu, 21 Dec 2017 23:57:56 +0000 (23:57 +0000)]
Unreviewed test fix after r226224.
<rdar://problem/36185975>

Pasteboard data is more than a dictionary. We have to whitelist NSString
and NSArray as well. Change method name to reflect that we take a whitelist
of classes that are allowed to be unarchived in the call.
Source/WebCore:

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write): Use revised method.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:

* pal/spi/cocoa/NSKeyedArchiverSPI.h:
(unarchivedObjectOfClassesFromData):
(unarchivedObjectOfClassFromData): Deleted.

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

21 months agoAdd WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired.
mark.lam@apple.com [Thu, 21 Dec 2017 23:05:11 +0000 (23:05 +0000)]
Add WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired.
https://bugs.webkit.org/show_bug.cgi?id=181062
<rdar://problem/36167040>

Reviewed by Chris Dumez.

Source/JavaScriptCore:

* runtime/JSCPoisonedPtr.cpp:
- Added a needed #include.

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/PointerAsserts.cpp: Copied from Source/WTF/wtf/RefPtr.cpp.
- renamed file because we asserts all kinds of pointers in here, not just RefPtr.

* wtf/Poisoned.h:
- added a missing #include.
- make constexpr poison values more scrambled.
(WTF::makePoison):

* wtf/PoisonedUniquePtr.h: Added.
(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::~PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::create):
(WTF::PoisonedUniquePtr::operator=):
(WTF::PoisonedUniquePtr::get const):
(WTF::PoisonedUniquePtr::operator[] const):
(WTF::PoisonedUniquePtr::clear):
(WTF::PoisonedUniquePtr::destroy):
(WTF::PoisonedUniquePtr::clearWithoutDestroy):
(WTF::makePoisonedUnique):
* wtf/RefPtr.cpp: Removed.

Tools:

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

* TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:
- Removed an unneeded #include.

* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Added.
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Added.
(TestWebKitAPI::TEST):

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

21 months ago[RenderTreeBuilder] Move RenderRubyAsInline::addChild mutation to a RenderTreeBuilder
zalan@apple.com [Thu, 21 Dec 2017 23:03:28 +0000 (23:03 +0000)]
[RenderTreeBuilder] Move RenderRubyAsInline::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181101
<rdar://problem/36184788>

Reviewed by Antti Koivisto.

* rendering/RenderRuby.cpp:
(WebCore::isRubyBeforeBlock): Deleted.
(WebCore::isRubyAfterBlock): Deleted.
(WebCore::rubyBeforeBlock): Deleted.
(WebCore::rubyAfterBlock): Deleted.
(WebCore::createAnonymousRubyInlineBlock): Deleted.
(WebCore::lastRubyRun): Deleted.
(WebCore::RenderRubyAsInline::addChild): Deleted.
* rendering/RenderRuby.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderRuby.h:

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

21 months agoUpdate Credential Management API for WebAuthentication
jiewen_tan@apple.com [Thu, 21 Dec 2017 22:56:11 +0000 (22:56 +0000)]
Update Credential Management API for WebAuthentication
https://bugs.webkit.org/show_bug.cgi?id=181082
<rdar://problem/36055239>

Reviewed by Daniel Bates.

Source/WebCore:

Part 1/2

In this patch, it restructure a bit for existing Credential Management API codebase:
1. Rename the folder from credentials to credentialmanagement for better understanding.
2. Remove unneeded dummy codes, i.e. PasswordCredential and FederatedCredential.
3. Core API and layout tests are updated correspondingly as well.

Rebaseline test results.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/credentialmanagement/BasicCredential.cpp: Renamed from Source/WebCore/Modules/credentials/BasicCredential.cpp.
(WebCore::BasicCredential::BasicCredential):
(WebCore::BasicCredential::type const):
* Modules/credentialmanagement/BasicCredential.h: Renamed from Source/WebCore/Modules/credentials/BasicCredential.h.
(WebCore::BasicCredential::id const):
* Modules/credentialmanagement/BasicCredential.idl: Renamed from Source/WebCore/Modules/credentials/BasicCredential.idl.
* Modules/credentialmanagement/CredentialCreationOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialData.h.
* Modules/credentialmanagement/CredentialCreationOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialData.idl.
* Modules/credentialmanagement/CredentialRequestOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.h.
* Modules/credentialmanagement/CredentialRequestOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.idl.
* Modules/credentialmanagement/CredentialsContainer.cpp: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.cpp.
(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::store):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::preventSilentAccess):
* Modules/credentialmanagement/CredentialsContainer.h: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.h.
(WebCore::CredentialsContainer::create):
(WebCore::CredentialsContainer::CredentialsContainer):
* Modules/credentialmanagement/CredentialsContainer.idl: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.idl.
* Modules/credentialmanagement/NavigatorCredentials.cpp: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.cpp.
(WebCore::NavigatorCredentials::supplementName):
(WebCore::NavigatorCredentials::credentials):
(WebCore::NavigatorCredentials::from):
* Modules/credentialmanagement/NavigatorCredentials.h: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.h.
* Modules/credentialmanagement/NavigatorCredentials.idl: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.idl.
* Modules/credentials/CredentialCreationOptions.h: Removed.
* Modules/credentials/CredentialCreationOptions.idl: Removed.
* Modules/credentials/CredentialUserData.h: Removed.
* Modules/credentials/CredentialUserData.idl: Removed.
* Modules/credentials/FederatedCredential.cpp: Removed.
* Modules/credentials/FederatedCredential.h: Removed.
* Modules/credentials/FederatedCredential.idl: Removed.
* Modules/credentials/FederatedCredentialInit.h: Removed.
* Modules/credentials/FederatedCredentialInit.idl: Removed.
* Modules/credentials/FederatedCredentialRequestOptions.h: Removed.
* Modules/credentials/FederatedCredentialRequestOptions.idl: Removed.
* Modules/credentials/PasswordCredential.cpp: Removed.
* Modules/credentials/PasswordCredential.h: Removed.
* Modules/credentials/PasswordCredential.idl: Removed.
* Modules/credentials/PasswordCredentialData.h: Removed.
* Modules/credentials/PasswordCredentialData.idl: Removed.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

* credentials/idlharness-expected.txt:

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

21 months agoStorage Access API: Allow requests from non-sandboxed iframes
wilander@apple.com [Thu, 21 Dec 2017 22:50:37 +0000 (22:50 +0000)]
Storage Access API: Allow requests from non-sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=181099
<rdar://problem/36184501>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. Changed existing tests.

* dom/Document.cpp:
(WebCore::Document::requestStorageAccess):

LayoutTests:

* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html:

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

21 months agoAddress additional review feedback after r226182.
aestes@apple.com [Thu, 21 Dec 2017 22:47:16 +0000 (22:47 +0000)]
Address additional review feedback after r226182.

* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentRequest):

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

21 months agoMinor cleanup in WebContentReaderCocoa after r226213
rniwa@webkit.org [Thu, 21 Dec 2017 22:32:14 +0000 (22:32 +0000)]
Minor cleanup in WebContentReaderCocoa after r226213
https://bugs.webkit.org/show_bug.cgi?id=181104

Reviewed by Wenson Hsieh.

Deployed early exists in the case of attachment replacements to make the code easier to read.

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentAndAddResources):
(WebCore::markupForFragmentInDocument): Extracted out of sanitizeMarkupWithArchive.
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage): Simplified the return logic.

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

21 months agoUpdated Swedish translation
mcatanzaro@igalia.com [Thu, 21 Dec 2017 22:14:26 +0000 (22:14 +0000)]
Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=180823

Patch by Josef Andersson <josef.andersson@fripost.org> on 2017-12-21
Rubber-stamped by Michael Catanzaro.

* sv.po:

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

21 months ago[RenderTreeBuilder] Move RenderRubyAsBlock::addChild mutation to a RenderTreeBuilder
zalan@apple.com [Thu, 21 Dec 2017 22:05:26 +0000 (22:05 +0000)]
[RenderTreeBuilder] Move RenderRubyAsBlock::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181090
<rdar://problem/36180916>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

Covered by existing tests.

* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsBlock::addChild): Deleted.
* rendering/RenderRuby.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::isAnonymousRubyInlineBlock):
(WebCore::isRubyBeforeBlock):
(WebCore::isRubyAfterBlock):
(WebCore::isRubyChildForNormalRemoval):
(WebCore::rubyBeforeBlock):
(WebCore::rubyAfterBlock):
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::lastRubyRun):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderRuby.h:

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

21 months agoUpdate FULLSCREEN_API feature defines.
commit-queue@webkit.org [Thu, 21 Dec 2017 21:10:12 +0000 (21:10 +0000)]
Update FULLSCREEN_API feature defines.
https://bugs.webkit.org/show_bug.cgi?id=181015

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Tim Horton.

Change enabled iphone sdk for FULLSCREEN_API.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

21 months agoononline, onoffline and navigator.onLine don't work if Parallels or VMWare is installed
cdumez@apple.com [Thu, 21 Dec 2017 21:00:50 +0000 (21:00 +0000)]
ononline, onoffline and navigator.onLine don't work if Parallels or VMWare is installed
https://bugs.webkit.org/show_bug.cgi?id=32327

Reviewed by Alexey Proskuryakov.

When determining if we are online, ignore virtual interfaces added on the host machine
by Parallels and VMWare. This is needed because those interfaces are always up, whether
or not the virtual machine is running. This was causing navigator.onLine to always return
true on the host machine when Parallels or VMWare was installed.

Note that it is safe to ignore these interfaces and that it does not cause issues when
running Safari inside the virtual machine because those virtual interfaces are only
exposed on the host machine. Inside, the virtual machine, we see the usual en0 interface.

* platform/network/mac/NetworkStateNotifierMac.cpp:
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):

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

21 months ago[RenderTreeBuilder] Move repeating code to RenderTreeBuilder::insertInternal
zalan@apple.com [Thu, 21 Dec 2017 20:59:12 +0000 (20:59 +0000)]
[RenderTreeBuilder] Move repeating code to RenderTreeBuilder::insertInternal
https://bugs.webkit.org/show_bug.cgi?id=181094

Reviewed by Antti Koivisto.

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):

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

21 months agoBuild fix after r226223
commit-queue@webkit.org [Thu, 21 Dec 2017 20:35:21 +0000 (20:35 +0000)]
Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181088

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::exitFullscreen):

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

21 months agoStorage Access API: Make DocumentLoader::willSendRequest() and WebFrameLoaderClient...
wilander@apple.com [Thu, 21 Dec 2017 19:56:45 +0000 (19:56 +0000)]
Storage Access API: Make DocumentLoader::willSendRequest() and WebFrameLoaderClient::detachedFromParent2() tell the network process to get rid of any sub frame access entries
https://bugs.webkit.org/show_bug.cgi?id=180728
<rdar://problem/36009288>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
       http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* dom/Document.cpp:
(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
(WebCore::Document::hasFrameSpecificStorageAccess):
(WebCore::Document::setHasFrameSpecificStorageAccess):
* dom/Document.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:
* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::removeStorageAccess):

Source/WebKit:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::removeStorageAccess):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::removeStorageAccess):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::removeStorageAccess):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::removeStorageAccess):
* UIProcess/WebsiteData/WebsiteDataStore.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

LayoutTests:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt:
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html: Added.
* http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt:
* http/tests/storageAccess/resources/echo-incoming-cookies-as-json.php: Added.
* http/tests/storageAccess/resources/has-storage-access-iframe.html:
* http/tests/storageAccess/resources/request-storage-access-iframe.html:
* http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html: Added.
* platform/wk2/TestExpectations:
    Removed http/tests/storageAccess/request-storage-access-top-frame.html
    because it now only passes on High Sierra+.
* platform/mac-wk2/TestExpectations:
    Added the new tests as [ Pass ] on High Sierra+.

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

21 months ago[Web Animations] Complete support for keyframe animations
graouts@webkit.org [Thu, 21 Dec 2017 19:51:35 +0000 (19:51 +0000)]
[Web Animations] Complete support for keyframe animations
https://bugs.webkit.org/show_bug.cgi?id=179708

Reviewed by Dean Jackson.

Source/WebCore:

We implement section 5.10.3 "Processing a keyframes argument" of the Web Animations spec to handle
multiple keyframes, rather than only two, provided either in iterable (ie. array) or property-index
(ie. dictionary) form. Although we don't currently support timing function or composite operations,
we parse them as well.

While there are minimal test changes, there will be a host of changes in the next patch in which
we turn Element.animate() on.

* animation/KeyframeEffect.cpp:
(WebCore::IDLAttributeNameToAnimationPropertyName): New utility to convert an IDL-parsed JS property
into a WebCore CSSPropertyID.
(WebCore::computeMissingKeyframeOffsets): Converts "null" offsets into computed offset values as specified
in section 4.4.2. "Calculating computed keyframes".
(WebCore::processIterableKeyframes): Process the iterable form of the keyframes argument.
(WebCore::processKeyframeLikeObject): Process a keyframe-like object found in the property-indexed form.
(WebCore::processPropertyIndexedKeyframes): Process the property-indexed form of the keyframes argument.
(WebCore::KeyframeEffect::setKeyframes): Since this method and processKeyframes() share the same signature,
we can just return the value from processKeyframes() directly.
(WebCore::KeyframeEffect::processKeyframes): Process the keyframes argument as specified.
(WebCore::KeyframeEffect::applyAtLocalTime): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::getAnimatedStyle): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle): Handle multiple and implicit start and end keyframes.
* animation/KeyframeEffect.h: Add some new structures used for parsing purposes.
* animation/KeyframeEffect.idl: Expose the CompositeOperation enum and the BasePropertyIndexedKeyframe dictionary
used in processKeyframeLikeObject().
* css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
* css/CSSStyleDeclaration.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::isPropertyAnimatable):
* page/animation/CSSPropertyAnimation.h:

LayoutTests:

Rebase some WPT expectations with progressions due to supporting all keyframes arguments.

* http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

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

21 months agoSkip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour...
ryanhaddad@apple.com [Thu, 21 Dec 2017 19:38:18 +0000 (19:38 +0000)]
Skip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html because it frequently times out.
https://bugs.webkit.org/show_bug.cgi?id=178536

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

21 months ago[AppleWin] Auxiliary libraries should be updated within build-webkit
don.olmstead@sony.com [Thu, 21 Dec 2017 19:13:40 +0000 (19:13 +0000)]
[AppleWin] Auxiliary libraries should be updated within build-webkit
https://bugs.webkit.org/show_bug.cgi?id=181065

Reviewed by Alex Christensen.

* EWSTools/Start-Queue.ps1:
* Scripts/build-webkit:
(cMakeArgsFromFeatures): Deleted.
(writeCongrats): Deleted.
* Scripts/update-webkit:

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

21 months agoSecond Build fix after r226223
commit-queue@webkit.org [Thu, 21 Dec 2017 18:52:33 +0000 (18:52 +0000)]
Second Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181089

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):

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

21 months agoSkip stress/splay-flash-access tests on memory limited platforms
guijemont@igalia.com [Thu, 21 Dec 2017 18:40:14 +0000 (18:40 +0000)]
Skip stress/splay-flash-access tests on memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=181086

Reviewed by Carlos Alberto Lopez Perez.

These tests use about 185M of memory, and occasionally get OOM-killed
on memory limited platforms.

* stress/splay-flash-access-1ms.js:
* stress/splay-flash-access.js:

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

21 months agoLayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
commit-queue@webkit.org [Thu, 21 Dec 2017 18:38:24 +0000 (18:38 +0000)]
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html is failing one test
https://bugs.webkit.org/show_bug.cgi?id=181072

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21
Reviewed by Alex Christensen.

Test loads twice the same resource but the memory cache intercepts the second load and provides the first response.
Fixing the test by mandating the response to not be cacheable.

* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-worker.js:
(event.respondWith.new.Promise):

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

21 months agoAdd initial DOM support for Media Capabilities
jer.noble@apple.com [Thu, 21 Dec 2017 18:28:21 +0000 (18:28 +0000)]
Add initial DOM support for Media Capabilities
https://bugs.webkit.org/show_bug.cgi?id=181064

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/mediacapabilities/mediacapabilities-types.html

Add basic, cross-platform, DOM facing type and API support for Media Capabilities API.

* bindings/scripts/CodeGenerator.pm:
(WK_ucfirst):
* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediacapabilities/AudioConfiguration.h: Added.
* Modules/mediacapabilities/AudioConfiguration.idl: Added.
* Modules/mediacapabilities/MediaCapabilities.cpp: Added.
(WebCore::bucketMIMETypes):
(WebCore::isValidMIMEType):
(WebCore::isValidVideoConfiguration):
(WebCore::isValidAudioConfiguration):
(WebCore::isValidMediaConfiguration):
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):
* Modules/mediacapabilities/MediaCapabilities.h: Added.
* Modules/mediacapabilities/MediaCapabilities.idl: Added.
* Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added.
(WebCore::MediaCapabilitiesInfo::supported const):
(WebCore::MediaCapabilitiesInfo::setSupported):
(WebCore::MediaCapabilitiesInfo::smooth const):
(WebCore::MediaCapabilitiesInfo::setSmooth):
(WebCore::MediaCapabilitiesInfo::powerEfficient const):
(WebCore::MediaCapabilitiesInfo::setPowerEfficient):
* Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added.
* Modules/mediacapabilities/MediaConfiguration.h: Added.
* Modules/mediacapabilities/MediaConfiguration.idl: Added.
* Modules/mediacapabilities/MediaDecodingConfiguration.h: Added.
* Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added.
* Modules/mediacapabilities/MediaDecodingType.h: Added.
* Modules/mediacapabilities/MediaDecodingType.idl: Added.
* Modules/mediacapabilities/MediaEncodingConfiguration.h: Added.
* Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added.
* Modules/mediacapabilities/MediaEncodingType.h: Added.
* Modules/mediacapabilities/MediaEncodingType.idl: Added.
* Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added.
(WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities):
(WebCore::NavigatorMediaCapabilities::supplementName):
(WebCore::NavigatorMediaCapabilities::from):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities const):
* Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added.
* Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added.
* Modules/mediacapabilities/ScreenColorGamut.h: Added.
* Modules/mediacapabilities/ScreenColorGamut.idl: Added.
* Modules/mediacapabilities/ScreenLuminance.h: Added.
(WebCore::ScreenLuminance::min const):
(WebCore::ScreenLuminance::setMin):
(WebCore::ScreenLuminance::max const):
(WebCore::ScreenLuminance::setMax):
(WebCore::ScreenLuminance::maxAverage const):
(WebCore::ScreenLuminance::setMaxAverage):
* Modules/mediacapabilities/ScreenLuminance.idl: Added.
* Modules/mediacapabilities/VideoConfiguration.h: Added.
* Modules/mediacapabilities/VideoConfiguration.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled):
(WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const):
* page/Settings.yaml:

Source/WebKit:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMediaCapabilitiesEnabled):
(WKPreferencesGetMediaCapabilitiesEnabled):
* UIProcess/API/C/WKPreferencesRef.h:

Source/WebKitLegacy/mac:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences mediaCapabilitiesEnabled]):
(-[WebPreferences setMediaCapabilitiesEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* fast/dom/navigator-detached-no-crash-expected.txt:
* media/mediacapabilities/mediacapabilities-types-expected.txt: Added.
* media/mediacapabilities/mediacapabilities-types.html: Added.
* platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/win/fast/dom/navigator-detached-no-crash-expected.txt:

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

21 months agoCorrect a TestExpectations entry after r226074.
ryanhaddad@apple.com [Thu, 21 Dec 2017 18:01:43 +0000 (18:01 +0000)]
Correct a TestExpectations entry after r226074.
https://bugs.webkit.org/show_bug.cgi?id=180703

Unreviewed test gardening.

* platform/wk2/TestExpectations:

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

21 months agoAdd optional logging of per-resource cookie information
krollin@apple.com [Thu, 21 Dec 2017 17:53:49 +0000 (17:53 +0000)]
Add optional logging of per-resource cookie information
https://bugs.webkit.org/show_bug.cgi?id=180883
<rdar://problem/35802295>

Reviewed by Brent Fulgham.

In order to support the tracking of the efficacy of Intelligent
Tracking Protection, add some logging of the cookie information
associated with each loaded resource. This logging is off by default
and is enabled with `defaults write -g WebKitLogCookieInformation
-bool true`.

Source/WebCore:

No new tests -- no new user functionality added. Only new logging has
been added.

* platform/Cookie.h:
(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull const):
(WebCore::Cookie::encode const):
(WebCore::Cookie::decode):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::canonicalCookieTime):
(WebCore::cookieCreatedTime):
(WebCore::cookieExpirationTime):
(WebCore::getRawCookies):
* platform/network/cocoa/CookieCocoa.mm:
(WebCore::cookieCreated):
(WebCore::Cookie::Cookie):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::shouldLogCookieInformation const):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::shouldLogCookieInformation const):
(WebKit::NetworkResourceLoader::logCookieInformation const):
* NetworkProcess/NetworkResourceLoader.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

21 months agobuild-jsc: allow to build out of tree
guijemont@igalia.com [Thu, 21 Dec 2017 17:50:30 +0000 (17:50 +0000)]
build-jsc: allow to build out of tree
https://bugs.webkit.org/show_bug.cgi?id=180810

Reviewed by Carlos Alberto Lopez Perez.

* Scripts/build-jsc:

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

21 months agoAdopt new secure coding APIs in WebCore
bfulgham@apple.com [Thu, 21 Dec 2017 17:18:31 +0000 (17:18 +0000)]
Adopt new secure coding APIs in WebCore
https://bugs.webkit.org/show_bug.cgi?id=178484
<rdar://problem/34837193>

Reviewed by Eric Carlson.

Source/WebCore:

Switch to new NSKeyed[Un]Archiver methods that use NSSecureCoding by default.

Most of the new API is wrapped in a set of convenience methods so we can
build without the new API on older systems.

No change in behavior.

* editing/cocoa/EditorCocoa.mm:
(WebCore::archivedDataForAttributedString): Use new convenience method
to archive the string object.
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write): Use new secure API.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:

Due to <rdar://problem/31376830 we cannot used SecureCoding on NSAttributedString
in some cases. Add a macro for OS revisions that do not support secure coding,
and use the standard unarchive operation for NSAttributedString in those cases.

Rename 'insecurelyUnarchiveObjectOfClassFromData' to 'insecurelyUnarchiveObjectFromData',
and move it earlier in the file so that it can be reused in 'unarchivedObjectOfClassFromData'.

* pal/spi/cocoa/NSKeyedArchiverSPI.h:
(insecurelyUnarchiveObjectFromData): Renamed from insecurelyUnarchiveObjectOfClassFromData.
(unarchivedObjectOfClassFromData): Renamed from 'securelyUnarchiveObjectOfClassFromData' and
modified to use 'insecurelyUnarchiveObjectFromData'.
(securelyUnarchiveObjectOfClassFromData): Deleted.
(insecurelyUnarchiveObjectOfClassFromData): Deleted.

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

21 months agoUnreviewed Debug build fix after r226217
bfulgham@apple.com [Thu, 21 Dec 2017 17:16:59 +0000 (17:16 +0000)]
Unreviewed Debug build fix after r226217

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

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

21 months agoSkip slow jsc tests on embedded platforms
guijemont@igalia.com [Thu, 21 Dec 2017 15:43:56 +0000 (15:43 +0000)]
Skip slow jsc tests on embedded platforms
https://bugs.webkit.org/show_bug.cgi?id=180937

Reviewed by Carlos Alberto Lopez Perez.

The tests typeProfiler/deltablue-for-of.js and
typeProfiler/getter-richards.js take a very long time in the
ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
thus always timeout. They should be skipped on these platforms.

* typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
* typeProfiler/getter-richards.js: Skip on arm*/mips.

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

21 months ago[RenderTreeBuilder] Move ruby mutation code to a dedicated class.
zalan@apple.com [Thu, 21 Dec 2017 15:13:26 +0000 (15:13 +0000)]
[RenderTreeBuilder] Move ruby mutation code to a dedicated class.
https://bugs.webkit.org/show_bug.cgi?id=181066
<rdar://problem/36167692>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::rubyRunInsertChild): Deleted.
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::rubyBuilder):
* rendering/updating/RenderTreeBuilderRuby.cpp: Added.
(WebCore::RenderTreeBuilder::Ruby::Ruby):
(WebCore::RenderTreeBuilder::Ruby::insertChild):
* rendering/updating/RenderTreeBuilderRuby.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.

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

21 months agoReplace a FIXME comment in CanvasGradient::addColorStop().
Ms2ger@igalia.com [Thu, 21 Dec 2017 14:51:49 +0000 (14:51 +0000)]
Replace a FIXME comment in CanvasGradient::addColorStop().
https://bugs.webkit.org/show_bug.cgi?id=181034

Reviewed by Daniel Bates.

Tests: LayoutTests/imported/w3c/canvas/2d.gradient.object.current.html

* html/canvas/CanvasGradient.cpp:
(WebCore::CanvasGradient::addColorStop):

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

21 months agoREGRESSION(r207238): [GTK] Layout test storage/domstorage/events/basic-body-attribute...
Ms2ger@igalia.com [Thu, 21 Dec 2017 14:44:47 +0000 (14:44 +0000)]
REGRESSION(r207238): [GTK] Layout test storage/domstorage/events/basic-body-attribute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=163826

Reviewed by Daniel Bates.

Update basic-body-attribute.html to the current standard.

* platform/gtk/TestExpectations:
* platform/win/TestExpectations:
* platform/wpe/TestExpectations:
* storage/domstorage/events/basic-body-attribute-expected.txt:
* storage/domstorage/events/basic-body-attribute.html:

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

21 months agoElement fullscreen interface should display the location
commit-queue@webkit.org [Thu, 21 Dec 2017 10:56:58 +0000 (10:56 +0000)]
Element fullscreen interface should display the location
https://bugs.webkit.org/show_bug.cgi?id=181006
rdar://problem/36143176

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Simon Fraser.

Source/WebCore/PAL:

Add iOS availability check.

* pal/spi/cocoa/LinkPresentationSPI.h:

Source/WebKit:

Show a short user visible location string with a lock if secure and green when trusted.

Includes other interface cleanup and tweaks.

* UIProcess/ios/WKFullScreenWindowControllerIOS.mm:
(-[_WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]):
(-[_WKFullScreenViewController visualEffectViewWithFrame:]):
(mirrorEdgeInsets):
(-[_WKFullScreenViewController _updateLayoutMargins]):
(-[_WKFullScreenViewController viewDidLayoutSubviews]):
(-[_WKFullScreenViewController setLocation:secure:trustedName:trustedSite:]):
(-[_WKFullScreenViewController createSubviews]):
(-[_WKFullScreenViewController loadView]):
(-[_WKFullScreenViewController viewDidAppear:]):
(-[_WKFullScreenViewController hideCancelButton]):
(-[_WKFullScreenViewController showCancelButton:]):
(-[_WKFullscreenRootViewController setShowsStatusBar:]):
(-[_WKFullscreenRootViewController prefersStatusBarHidden]):
(-[WKFullScreenWindowController _invalidateEVOrganizationName]):
(-[WKFullScreenWindowController isSecure]):
(-[WKFullScreenWindowController _serverTrust]):
(-[WKFullScreenWindowController _EVOrganizationName]):
(-[WKFullScreenWindowController updateLocationInfo]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[_WKFullScreenViewController prefersStatusBarHidden]): Deleted.
* WebKit.xcassets/Done.imageset/Contents.json: Removed.
* WebKit.xcassets/LockMini.imageset/Contents.json: Added.
* WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Copied from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.
* WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Renamed from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.

Source/WTF:

Add SecTrustCopyInfo SPI.

* wtf/spi/cocoa/SecuritySPI.h:

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