Remove remaining poisoning code.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-02-26  Mark Lam  <mark.lam@apple.com>
2
3         Remove remaining poisoning code.
4         https://bugs.webkit.org/show_bug.cgi?id=194138
5
6         Reviewed by Saam Barati.
7
8         This patch removes the instantiation of Poisoned variants of the various containers
9         but retains the ability of those containers to work with pointer traits.  This
10         allows us to use them with smart pointers in the future (just like we used to with
11         Poisoned values).  At minimum, this ability will be useful when we want to insert
12         an observer into the container storage type for debugging purposes, or to collect
13         statistics for profiling.
14
15         * WTF.xcodeproj/project.pbxproj:
16         * wtf/Bag.h:
17         * wtf/CMakeLists.txt:
18         * wtf/Platform.h:
19         * wtf/Poisoned.cpp: Removed.
20         * wtf/Poisoned.h: Removed.
21         * wtf/PoisonedUniquePtr.h: Removed.
22         * wtf/Ref.h:
23         * wtf/RefCountedArray.h:
24         * wtf/RefPtr.h:
25         * wtf/WTFAssertions.cpp:
26
27 2019-02-26  Keith Miller  <keith_miller@apple.com>
28
29         Code quality cleanup in NeverDestroyed
30         https://bugs.webkit.org/show_bug.cgi?id=194824
31
32         Reviewed by Yusuke Suzuki.
33
34         First, move data members to the end of the class per WebKit
35         style. Also, add forbid heap allocation since we expect the
36         NeverDestroyed classes to be static.
37
38         * wtf/NeverDestroyed.h:
39
40 2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
41
42         Fix WTFLogVerbose variadic parameters forwarding
43         https://bugs.webkit.org/show_bug.cgi?id=194920
44
45         Reviewed by Alex Christensen.
46
47         WTFLogVerbose was passing the va_list to WTFLog but this function
48         also used variadic parameters and this is not allowed in C (that
49         part of the code is extern "C").
50
51         * wtf/Assertions.cpp:
52         (WTF::WTFLogVaList): Created to take a va_list argument instead of
53         variadic parameters.
54         (WTF::WTFLog): Kept with variadic parameters, which are
55         transformed to va_list and passed to WTFLogVaList.
56         (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.
57
58 2019-02-25  Sam Weinig  <sam@webkit.org>
59
60         Update double-conversion to the latest version
61         https://bugs.webkit.org/show_bug.cgi?id=194994
62
63         Import the latest version of the double-conversion library based on
64         https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307
65
66         In additon to importing the code, the following changes were applied (or re-applied) to maintain 
67         parity with what we had previously:
68              - Add #include "config.h" to each cpp file.
69              - Put everything inside the WTF namespace.
70              - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
71              - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
72              - Replaced duplicated functions with ASCIICType.h variants
73              - Made CachedPower table a constexpr.
74              - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
75              - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
76                parameterization, as we only ever want one configuration. Instead of constructing a
77                configured class and calling StringToDouble on it, StringToDouble is now a static
78                function. This allows a bunch of now dead code (hex support, octal support, etc.) to
79                be eliminated. As StringToDoubleConverter now supports single precision floats, some
80                additional templating of StringToIeee was added to avoid extra unnecessary branching.
81              - Added RemoveCharacters function to double_conversion::StringBuilder.
82
83         Reviewed by Darin Adler.
84
85         * WTF.xcodeproj/project.pbxproj:
86         * wtf/CMakeLists.txt:
87         * wtf/dtoa/AUTHORS: Added.
88         * wtf/dtoa/README: Removed.
89         * wtf/dtoa/README.md: Added.
90         * wtf/dtoa/bignum-dtoa.cc:
91         * wtf/dtoa/bignum-dtoa.h:
92         * wtf/dtoa/bignum.cc:
93         * wtf/dtoa/bignum.h:
94         (WTF::double_conversion::Bignum::Times10):
95         (WTF::double_conversion::Bignum::Equal):
96         (WTF::double_conversion::Bignum::LessEqual):
97         (WTF::double_conversion::Bignum::Less):
98         (WTF::double_conversion::Bignum::PlusEqual):
99         (WTF::double_conversion::Bignum::PlusLessEqual):
100         (WTF::double_conversion::Bignum::PlusLess):
101         (WTF::double_conversion::Bignum::EnsureCapacity):
102         (WTF::double_conversion::Bignum::BigitLength const):
103         * wtf/dtoa/cached-powers.cc:
104         * wtf/dtoa/cached-powers.h:
105         * wtf/dtoa/diy-fp.cc:
106         * wtf/dtoa/diy-fp.h:
107         (WTF::double_conversion::DiyFp::DiyFp):
108         (WTF::double_conversion::DiyFp::Subtract):
109         (WTF::double_conversion::DiyFp::Minus):
110         (WTF::double_conversion::DiyFp::Times):
111         (WTF::double_conversion::DiyFp::Normalize):
112         (WTF::double_conversion::DiyFp::f const):
113         (WTF::double_conversion::DiyFp::e const):
114         (WTF::double_conversion::DiyFp::set_f):
115         (WTF::double_conversion::DiyFp::set_e):
116         * wtf/dtoa/double-conversion.cc:
117         * wtf/dtoa/double-conversion.h:
118         (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
119         (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
120         (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
121         (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
122         * wtf/dtoa/double.h: Removed.
123         * wtf/dtoa/fast-dtoa.cc:
124         * wtf/dtoa/fast-dtoa.h:
125         * wtf/dtoa/fixed-dtoa.cc:
126         * wtf/dtoa/fixed-dtoa.h:
127         * wtf/dtoa/ieee.h: Added.
128         (WTF::double_conversion::double_to_uint64):
129         (WTF::double_conversion::uint64_to_double):
130         (WTF::double_conversion::float_to_uint32):
131         (WTF::double_conversion::uint32_to_float):
132         (WTF::double_conversion::Double::Double):
133         (WTF::double_conversion::Double::AsDiyFp const):
134         (WTF::double_conversion::Double::AsNormalizedDiyFp const):
135         (WTF::double_conversion::Double::AsUint64 const):
136         (WTF::double_conversion::Double::NextDouble const):
137         (WTF::double_conversion::Double::PreviousDouble const):
138         (WTF::double_conversion::Double::Exponent const):
139         (WTF::double_conversion::Double::Significand const):
140         (WTF::double_conversion::Double::IsDenormal const):
141         (WTF::double_conversion::Double::IsSpecial const):
142         (WTF::double_conversion::Double::IsNan const):
143         (WTF::double_conversion::Double::IsInfinite const):
144         (WTF::double_conversion::Double::Sign const):
145         (WTF::double_conversion::Double::UpperBoundary const):
146         (WTF::double_conversion::Double::NormalizedBoundaries const):
147         (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
148         (WTF::double_conversion::Double::value const):
149         (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
150         (WTF::double_conversion::Double::Infinity):
151         (WTF::double_conversion::Double::NaN):
152         (WTF::double_conversion::Double::DiyFpToUint64):
153         (WTF::double_conversion::Single::Single):
154         (WTF::double_conversion::Single::AsDiyFp const):
155         (WTF::double_conversion::Single::AsUint32 const):
156         (WTF::double_conversion::Single::Exponent const):
157         (WTF::double_conversion::Single::Significand const):
158         (WTF::double_conversion::Single::IsDenormal const):
159         (WTF::double_conversion::Single::IsSpecial const):
160         (WTF::double_conversion::Single::IsNan const):
161         (WTF::double_conversion::Single::IsInfinite const):
162         (WTF::double_conversion::Single::Sign const):
163         (WTF::double_conversion::Single::NormalizedBoundaries const):
164         (WTF::double_conversion::Single::UpperBoundary const):
165         (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
166         (WTF::double_conversion::Single::value const):
167         (WTF::double_conversion::Single::Infinity):
168         (WTF::double_conversion::Single::NaN):
169         * wtf/dtoa/strtod.cc:
170         * wtf/dtoa/strtod.h:
171         * wtf/dtoa/utils.h:
172         (abort_noreturn):
173         (WTF::double_conversion::Max):
174         (WTF::double_conversion::Min):
175         (WTF::double_conversion::StrLength):
176         (WTF::double_conversion::BufferReference::BufferReference):
177         (WTF::double_conversion::BufferReference::SubVector):
178         (WTF::double_conversion::BufferReference::length const):
179         (WTF::double_conversion::BufferReference::is_empty const):
180         (WTF::double_conversion::BufferReference::start const):
181         (WTF::double_conversion::BufferReference::operator[] const):
182         (WTF::double_conversion::BufferReference::first):
183         (WTF::double_conversion::BufferReference::last):
184         (WTF::double_conversion::StringBuilder::StringBuilder):
185         (WTF::double_conversion::StringBuilder::~StringBuilder):
186         (WTF::double_conversion::StringBuilder::size const):
187         (WTF::double_conversion::StringBuilder::position const):
188         (WTF::double_conversion::StringBuilder::Reset):
189         (WTF::double_conversion::StringBuilder::AddCharacter):
190         (WTF::double_conversion::StringBuilder::AddString):
191         (WTF::double_conversion::StringBuilder::AddSubstring):
192         (WTF::double_conversion::StringBuilder::AddPadding):
193         (WTF::double_conversion::StringBuilder::RemoveCharacters):
194         (WTF::double_conversion::StringBuilder::Finalize):
195         (WTF::double_conversion::StringBuilder::is_finalized const):
196         (WTF::double_conversion::BitCast):
197         (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
198         (WTF::double_conversion::StringBuilder::SetPosition): Deleted.
199
200 2019-02-20  Darin Adler  <darin@apple.com>
201
202         Finish removing String::format
203         https://bugs.webkit.org/show_bug.cgi?id=194893
204
205         Reviewed by Daniel Bates.
206
207         * wtf/Assertions.cpp:
208         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
209         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
210
211         * wtf/HexNumber.h: Deleted unneeded toString function.
212
213         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
214         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
215         a bit. Use function templates for writeTo functions rather than having two of each.
216         Removed unused toString functions. Optimized case where we use have a UChar* and
217         a length of zero to not force the result to be 16-bit. Also gets rid of a small
218         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
219         static member helper functions to compute string lengths. Added the pad function
220         and the PaddingSpecification struct template, so we can add padding to anything
221         we can turn into a string. Got rid of the special case overload for single
222         arguments, since it only worked for things that the String constructor can handle.
223         Instead we will now use StringTypeAdapter, which works for more types. Possibly
224         less optimal for some special cases, which we could specialize for later if we like.
225         * wtf/text/StringConcatenateNumbers.h: Ditto.
226         * wtf/text/StringOperators.h: Ditto.
227         * wtf/text/StringView.h: Ditto.
228
229         * wtf/text/WTFString.cpp:
230         (WTF::createWithFormatAndArguments): Deleted.
231         (WTF::String::format): Deleted.
232         * wtf/text/WTFString.h: Deleted declaration of String::format.
233
234 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
235
236         Unreviewed, fix find/replace error from r232178
237
238         Looks like this was the only such error in that commit.
239
240         * wtf/URLHelpers.cpp:
241         (WTF::URLHelpers::isLookalikeCharacter):
242
243 2019-02-23  Mark Lam  <mark.lam@apple.com>
244
245         Add an exception check and some assertions in StringPrototype.cpp.
246         https://bugs.webkit.org/show_bug.cgi?id=194962
247         <rdar://problem/48013416>
248
249         Reviewed by Yusuke Suzuki and Saam Barati.
250
251         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
252         for assertion purpose only on debug builds but sacrifices no performance on
253         release builds.
254
255         * wtf/CheckedArithmetic.h:
256         (WTF::AssertNoOverflow::overflowed):
257         (WTF::AssertNoOverflow::clearOverflow):
258         (WTF::AssertNoOverflow::crash):
259         (WTF::AssertNoOverflow::hasOverflowed const):
260         (WTF::observesOverflow):
261         (WTF::observesOverflow<AssertNoOverflow>):
262         (WTF::safeAdd):
263         (WTF::safeSub):
264         (WTF::safeMultiply):
265         (WTF::Checked::operator+=):
266         (WTF::Checked::operator-=):
267         (WTF::Checked::operator*=):
268         (WTF::operator+):
269         (WTF::operator-):
270         (WTF::operator*):
271
272 2019-02-23  Keith Miller  <keith_miller@apple.com>
273
274         Add new mac target numbers
275         https://bugs.webkit.org/show_bug.cgi?id=194955
276
277         Reviewed by Tim Horton.
278
279         * Configurations/Base.xcconfig:
280         * Configurations/DebugRelease.xcconfig:
281
282 2019-02-21  Antoine Quint  <graouts@apple.com>
283
284         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
285         https://bugs.webkit.org/show_bug.cgi?id=194531
286         <rdar://problem/47714562>
287
288         Reviewed by Tim Horton.
289
290         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
291
292         * wtf/Platform.h:
293
294 2019-02-21  Dean Jackson  <dino@apple.com>
295
296         Rotation animations sometimes use the wrong origin (affects apple.com)
297         https://bugs.webkit.org/show_bug.cgi?id=194878
298         <rdar://problem/43908047>
299
300         Follow-up commit to ensure this change only affects newer versions
301         of iOS.
302
303         * wtf/Platform.h: Add a version check.
304
305 2019-02-20  Alex Christensen  <achristensen@webkit.org>
306
307         URL percent-encode operations should use checked arithmetic for buffer allocation length
308         https://bugs.webkit.org/show_bug.cgi?id=194877
309         <rdar://problem/48212062>
310
311         Reviewed by Tim Horton.
312
313         * wtf/URLHelpers.cpp:
314         (WTF::URLHelpers::userVisibleURL):
315         * wtf/cocoa/NSURLExtras.mm:
316         (WTF::dataWithUserTypedString):
317
318 2019-02-20  Dean Jackson  <dino@apple.com>
319
320         Rotation animations sometimes use the wrong origin (affects apple.com)
321         https://bugs.webkit.org/show_bug.cgi?id=194878
322         <rdar://problem/43908047>
323
324         Reviewed by Simon Fraser.
325
326         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
327
328 2019-02-20  Andy Estes  <aestes@apple.com>
329
330         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
331         https://bugs.webkit.org/show_bug.cgi?id=194869
332
333         Rubber-stamped by Jer Noble.
334
335         * WTF.xcodeproj/project.pbxproj:
336
337 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
338
339         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
340         https://bugs.webkit.org/show_bug.cgi?id=167941
341
342         Reviewed by Carlos Garcia Campos.
343
344         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
345
346         * wtf/glib/GRefPtr.cpp:
347         (WTF::refGPtr): Added.
348         (WTF::derefGPtr): Added.
349         * wtf/glib/GRefPtr.h: Declare template specializations.
350
351 2019-02-19  Commit Queue  <commit-queue@webkit.org>
352
353         Unreviewed, rolling out r241770.
354         https://bugs.webkit.org/show_bug.cgi?id=194833
355
356         Caused crashes (Requested by smfr on #webkit).
357
358         Reverted changeset:
359
360         "Code quality cleanup in NeverDestroyed"
361         https://bugs.webkit.org/show_bug.cgi?id=194824
362         https://trac.webkit.org/changeset/241770
363
364 2019-02-19  Keith Miller  <keith_miller@apple.com>
365
366         Code quality cleanup in NeverDestroyed
367         https://bugs.webkit.org/show_bug.cgi?id=194824
368
369         Reviewed by Yusuke Suzuki.
370
371         First, move data members to the end of the class per WebKit
372         style. Also, add forbid heap allocation since we expect the
373         NeverDestroyed classes to be static.
374
375         * wtf/NeverDestroyed.h:
376
377 2019-02-16  Darin Adler  <darin@apple.com>
378
379         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
380         https://bugs.webkit.org/show_bug.cgi?id=194752
381
382         Reviewed by Daniel Bates.
383
384         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
385         * wtf/CMakeLists.txt: Ditto.
386
387         * wtf/HexNumber.cpp: Added.
388         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
389
390         * wtf/HexNumber.h:
391         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
392         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
393         use with StringTypeAdapter.
394         (WTF::appendUnsignedAsHex): Ditto.
395         (WTF::appendUnsignedAsHexFixedSize): Ditto.
396         (WTF::hex): Added.
397         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
398
399         * wtf/Logger.cpp: Added.
400         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
401         function and moved it here so that we don't need to include HexNumber.h
402         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
403         don't include it in any other headers.
404
405         * wtf/Logger.h:
406         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
407         a non-template function, LogSiteIdentifier::toString.
408
409         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
410         with function templates and used StringImpl::copyCharacters instead of
411         hand-written loops.
412
413 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
414
415         Web Inspector: Better categorize CPU usage per-thread / worker
416         https://bugs.webkit.org/show_bug.cgi?id=194564
417
418         Reviewed by Devin Rousso.
419
420         * wtf/Threading.h:
421         * wtf/Threading.cpp:
422         (WTF::Thread::allThreadsMutex):
423         (WTF::Thread::create):
424         (WTF::Thread::didExit):
425         Add a set of all WTF::Thread created threads.
426
427 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
428
429         Bytecode cache should a have a boot-specific validation
430         https://bugs.webkit.org/show_bug.cgi?id=194769
431         <rdar://problem/48149509>
432
433         Reviewed by Keith Miller.
434
435         Add helper to get kern.bootsessionuuid from sysctl
436
437         * wtf/UUID.cpp:
438         (WTF::bootSessionUUIDString):
439         * wtf/UUID.h:
440
441 2019-02-17  David Kilzer  <ddkilzer@apple.com>
442
443         Unreviewed, rolling out r241620.
444
445         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
446         (Requested by ddkilzer on #webkit.)
447
448         Reverted changeset:
449
450         "[WTF] Add environment variable helpers"
451         https://bugs.webkit.org/show_bug.cgi?id=192405
452         https://trac.webkit.org/changeset/241620
453
454 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
455
456         [WTF] Add environment variable helpers
457         https://bugs.webkit.org/show_bug.cgi?id=192405
458
459         Reviewed by Michael Catanzaro.
460
461         Create a new Environment API as a platform-independent, thread-safe(r)
462         way to get and set environment variables.
463
464         * WTF.xcodeproj/project.pbxproj:
465         * wtf/CMakeLists.txt:
466         * wtf/Environment.h: Added.
467         * wtf/PlatformGTK.cmake:
468         * wtf/PlatformJSCOnly.cmake:
469         * wtf/PlatformMac.cmake:
470         * wtf/PlatformPlayStation.cmake:
471         * wtf/PlatformWPE.cmake:
472         * wtf/PlatformWin.cmake:
473         * wtf/posix/EnvironmentPOSIX.cpp: Added.
474         * wtf/win/EnvironmentWin.cpp: Added.
475         Introduce WTF::Environment.
476
477         * wtf/Threading.cpp:
478         (WTF::threadingIsInitialized):
479         (WTF::initializeThreading):
480         * wtf/Threading.h:
481         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
482         false before setting an environment variable through the new API.
483
484         * wtf/DataLog.cpp:
485         (WTF::initializeLogFileOnce):
486         * wtf/NumberOfCores.cpp:
487         (WTF::numberOfProcessorCores):
488         * wtf/posix/FileSystemPOSIX.cpp:
489         (WTF::FileSystemImpl::openTemporaryFile):
490         Utilize WTF::Environment where possible.
491
492 2019-02-15  Brian Burg  <bburg@apple.com>
493
494         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
495         https://bugs.webkit.org/show_bug.cgi?id=194411
496         <rdar://problem/47787614>
497
498         Reviewed by Joseph Pecoraro.
499
500         * wtf/cocoa/SoftLinking.h:
501         Remove macro that now has no uses.
502
503 2019-02-15  Commit Queue  <commit-queue@webkit.org>
504
505         Unreviewed, rolling out r241559 and r241566.
506         https://bugs.webkit.org/show_bug.cgi?id=194710
507
508         Causes layout test crashes under GuardMalloc (Requested by
509         ryanhaddad on #webkit).
510
511         Reverted changesets:
512
513         "[WTF] Add environment variable helpers"
514         https://bugs.webkit.org/show_bug.cgi?id=192405
515         https://trac.webkit.org/changeset/241559
516
517         "Unreviewed build fix for WinCairo Debug after r241559."
518         https://trac.webkit.org/changeset/241566
519
520 2019-02-15  Truitt Savell  <tsavell@apple.com>
521
522         Unreviewed, rolling out r241564.
523
524         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
525
526         Reverted changeset:
527
528         "[Mac] WebInspectorUI.framework does not need to be soft-
529         linked anymore"
530         https://bugs.webkit.org/show_bug.cgi?id=194411
531         https://trac.webkit.org/changeset/241564
532
533 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
534
535         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
536         https://bugs.webkit.org/show_bug.cgi?id=194014
537
538         Reviewed by Michael Catanzaro.
539
540         Do not block SIGUSR1 when installing signal handlers, since this signal
541         is used to suspend/resume machine threads on Linux.
542
543         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
544         enabled watchdog and sampling.
545
546         Deadlock happened in the following situation:
547
548         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
549         and then tries to suspend the main thread.
550
551         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
552         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
553         SignalSender tries to lock codeBlockSet, but this is already locked by the
554         SamplingProfiler.
555
556         The SamplingProfiler can only give up the lock when it suspends
557         the thread. However since the VMTraps signal handler is active, all other signals blocked,
558         therefore the SamplingProfiler also waits until its signal handler is invoked.
559
560         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
561         it is used to suspend/resume threads on Linux.
562
563         * wtf/Threading.h:
564         * wtf/posix/ThreadingPOSIX.cpp:
565         * wtf/threads/Signals.cpp:
566         (WTF::installSignalHandler):
567
568 2019-02-15  Saam barati  <sbarati@apple.com>
569
570         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
571         https://bugs.webkit.org/show_bug.cgi?id=194036
572
573         Reviewed by Yusuke Suzuki.
574
575         * wtf/IndexMap.h:
576         (WTF::IndexMap::at):
577         (WTF::IndexMap::at const):
578         (WTF::IndexMap::operator[]):
579         (WTF::IndexMap::operator[] const):
580
581 2019-02-14  Brian Burg  <bburg@apple.com>
582
583         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
584         https://bugs.webkit.org/show_bug.cgi?id=194411
585         <rdar://problem/47787614>
586
587         Reviewed by Joseph Pecoraro.
588
589         * wtf/cocoa/SoftLinking.h:
590         Remove macro that now has no uses.
591
592 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
593
594         [WTF] Add environment variable helpers
595         https://bugs.webkit.org/show_bug.cgi?id=192405
596
597         Reviewed by Michael Catanzaro.
598
599         Create a new Environment API as a platform-independent, thread-safe(r)
600         way to get and set environment variables.
601
602         * WTF.xcodeproj/project.pbxproj:
603         * wtf/CMakeLists.txt:
604         * wtf/Environment.h: Added.
605         * wtf/PlatformGTK.cmake:
606         * wtf/PlatformJSCOnly.cmake:
607         * wtf/PlatformMac.cmake:
608         * wtf/PlatformPlayStation.cmake:
609         * wtf/PlatformWPE.cmake:
610         * wtf/PlatformWin.cmake:
611         * wtf/posix/EnvironmentPOSIX.cpp: Added.
612         * wtf/win/EnvironmentWin.cpp: Added.
613         Introduce WTF::Environment.
614
615         * wtf/Threading.cpp:
616         (WTF::threadingIsInitialized):
617         (WTF::initializeThreading):
618         * wtf/Threading.h:
619         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
620         false before setting an environment variable through the new API.
621
622         * wtf/DataLog.cpp:
623         (WTF::initializeLogFileOnce):
624         * wtf/NumberOfCores.cpp:
625         (WTF::numberOfProcessorCores):
626         * wtf/posix/FileSystemPOSIX.cpp:
627         (WTF::FileSystemImpl::openTemporaryFile):
628         Utilize WTF::Environment where possible.
629
630 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
631
632         We should only make rope strings when concatenating strings long enough.
633         https://bugs.webkit.org/show_bug.cgi?id=194465
634
635         Reviewed by Mark Lam.
636
637         * wtf/text/StringImpl.h:
638         (WTF::StringImpl::headerSize):
639
640 2019-02-12  Tim Horton  <timothy_horton@apple.com>
641
642         Remove WKLegacyPDFView
643         https://bugs.webkit.org/show_bug.cgi?id=194559
644
645         Reviewed by Andy Estes.
646
647         * wtf/FeatureDefines.h:
648
649 2019-02-12  David Kilzer  <ddkilzer@apple.com>
650
651         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
652         <https://webkit.org/b/194529>
653         <rdar://problem/47924449>
654
655         Reviewed by Eric Carlson.
656
657         * wtf/cocoa/SoftLinking.h:
658         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
659         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
660         and change `assertion` argument to `isOptional`.  Pass
661         `isOptional` to framework##Library() method to control assertion
662         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
663         that code should be optimized out by the compiler.  This fixes
664         the crash.
665         (NO_ASSERT): Remove macro since it's no longer used.
666         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
667         optional classes.
668         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
669         non-optional classes.
670         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
671         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
672         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
673         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
674         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
675
676 2019-02-12  Andy Estes  <aestes@apple.com>
677
678         [iOSMac] Enable Parental Controls Content Filtering
679         https://bugs.webkit.org/show_bug.cgi?id=194521
680         <rdar://39732376>
681
682         Reviewed by Tim Horton.
683
684         * wtf/Platform.h:
685
686 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
687
688         [Cocoa] Ask platform for generic font family mappings
689         https://bugs.webkit.org/show_bug.cgi?id=187723
690         <rdar://problem/41892438>
691
692         Reviewed by Brent Fulgham.
693
694         Add an ENABLE in Platform.
695
696         * wtf/Platform.h:
697
698 2019-02-11  Truitt Savell  <tsavell@apple.com>
699
700         Unreviewed, rolling out r241229.
701
702         Revision broke internal builds for watchOS.
703
704         Reverted changeset:
705
706         "[Cocoa] Ask platform for generic font family mappings"
707         https://bugs.webkit.org/show_bug.cgi?id=187723
708         https://trac.webkit.org/changeset/241229
709
710 2019-02-10  Darin Adler  <darin@apple.com>
711
712         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
713         https://bugs.webkit.org/show_bug.cgi?id=194485
714
715         Reviewed by Daniel Bates.
716
717         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
718         placeByteAsHex. Can always bring them back if someone needs them. Updated
719         appendUnsignedAsHex to be a template so we can use it on any integer type,
720         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
721         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
722         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
723
724         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
725
726         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
727
728         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
729         worked around in NSURLExtras.mm.
730         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
731         and Foundation.h.
732
733 2019-02-09  Darin Adler  <darin@apple.com>
734
735         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
736         https://bugs.webkit.org/show_bug.cgi?id=194021
737
738         Reviewed by Geoffrey Garen.
739
740         * wtf/URL.cpp:
741         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
742         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
743         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
744         and sometimes used for UTF-16 code units (UChar) and can be the same type.
745
746         * wtf/text/StringConcatenateNumbers.h:
747         Changed FormattedNumber::fixedPrecision to more closely match String::number and
748         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
749         a named enumeration for the truncation policy rather than a boolean.
750
751
752 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
753
754         Unreviewed, rolling in r241237 again
755         https://bugs.webkit.org/show_bug.cgi?id=194469
756
757         After the measurement, this patch was unrelated to recent regression.
758
759         * wtf/text/StringImpl.h:
760         (WTF::StringImpl::isSubString const):
761         (WTF::StringImpl::createSubstringSharingImpl):
762
763 2019-02-09  Commit Queue  <commit-queue@webkit.org>
764
765         Unreviewed, rolling out r241237.
766         https://bugs.webkit.org/show_bug.cgi?id=194474
767
768         Shows significant memory increase in WSL (Requested by
769         yusukesuzuki on #webkit).
770
771         Reverted changeset:
772
773         "[WTF] Use BufferInternal StringImpl if substring StringImpl
774         takes more memory"
775         https://bugs.webkit.org/show_bug.cgi?id=194469
776         https://trac.webkit.org/changeset/241237
777
778 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
779
780         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
781         https://bugs.webkit.org/show_bug.cgi?id=194469
782
783         Reviewed by Geoffrey Garen.
784
785         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
786         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
787         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
788         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
789
790         * wtf/text/StringImpl.h:
791         (WTF::StringImpl::isSubString const):
792         (WTF::StringImpl::createSubstringSharingImpl):
793
794 2019-02-08  Alex Christensen  <achristensen@webkit.org>
795
796         Add SPI to use networking daemon instead of XPC service
797         https://bugs.webkit.org/show_bug.cgi?id=194427
798
799         Reviewed by Geoffrey Garen.
800
801         * wtf/spi/darwin/XPCSPI.h:
802         Instead of using XPC bootstrap SPI, we just send a separate message.
803         xpc_copy_bootstrap does not seem to work in  daemons.
804
805 2019-02-08  Truitt Savell  <tsavell@apple.com>
806
807         Unreviewed, rolling out r241197.
808
809         Broke iOS Simulator Debug build and casued 1 API failure on
810         High Sierra
811
812         Reverted changeset:
813
814         "Add SPI to use networking daemon instead of XPC service"
815         https://bugs.webkit.org/show_bug.cgi?id=194427
816         https://trac.webkit.org/changeset/241197
817
818 2019-02-08  Alex Christensen  <achristensen@webkit.org>
819
820         Add SPI to use networking daemon instead of XPC service
821         https://bugs.webkit.org/show_bug.cgi?id=194427
822
823         Reviewed by Geoffrey Garen.
824
825         * wtf/spi/darwin/XPCSPI.h:
826         Instead of using XPC bootstrap SPI, we just send a separate message.
827         xpc_copy_bootstrap does not seem to work in  daemons.
828
829 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
830
831         clampTo(): do not convert the input to double when dealing with integers
832         https://bugs.webkit.org/show_bug.cgi?id=194263
833         <rdar://problem/47692312>
834
835         Reviewed by Darin Adler.
836
837         Previously, every use of clampTo() was converting the input to double,
838         doing the comparison in double, then casting back to whatever type was needed.
839
840         In many case, that was very wasteful. WebKit has many cases of clampTo() with
841         the same type as input/output, or with integer types of different size/sign.
842
843         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
844         In each case, I tried to minimize the amount of conversion needed at runtime.
845
846         * wtf/MathExtras.h:
847         (clampTo):
848
849 2019-02-07  Chris Dumez  <cdumez@apple.com>
850
851         Mark more heap-allocated classes as fast allocated
852         https://bugs.webkit.org/show_bug.cgi?id=194422
853
854         Reviewed by Ryosuke Niwa.
855
856         * wtf/Function.h:
857         (WTF::Function<Out):
858         * wtf/RefCounter.h:
859         * wtf/URL.h:
860         * wtf/text/StringView.cpp:
861
862 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
863
864         [macOS] Block coreservicesd in sandbox.
865         https://bugs.webkit.org/show_bug.cgi?id=192670
866
867         Reviewed by Alexey Proskuryakov.
868
869         Add HAVE_CSCHECKFIXDISABLE define.
870
871         * wtf/Platform.h:
872
873 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
874
875         [MSE] Convert debug-only logging to runtime logging
876         https://bugs.webkit.org/show_bug.cgi?id=194348
877         <rdar://problem/47566449>
878
879         Reviewed by Jer Noble.
880
881         * wtf/LoggerHelper.h:
882         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
883         object that is associated with another logging object.
884         * wtf/MediaTime.cpp:
885         (WTF::MediaTime::toJSONObject const):
886         (WTF::MediaTime::toJSONString const):
887         (WTF::MediaTimeRange::toJSONString const):
888         (WTF::toJSONStringInternal): Deleted.
889         * wtf/MediaTime.h:
890
891 2019-02-05  Keith Rollin  <krollin@apple.com>
892
893         Enable the automatic checking and regenerations of .xcfilelists during builds
894         https://bugs.webkit.org/show_bug.cgi?id=194124
895         <rdar://problem/47721277>
896
897         Reviewed by Tim Horton.
898
899         Bug 193790 add a facility for checking -- during build time -- that
900         any needed .xcfilelist files are up-to-date and for updating them if
901         they are not. This facility was initially opt-in by setting
902         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
903         the process seemed robust. Its now time to enable this facility and
904         make it opt-out. If there is a need to disable this facility, set and
905         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
906         running `make` or `build-webkit`, or before running Xcode from the
907         command line.
908
909         Additionally, remove the step that generates a list of source files
910         going into the UnifiedSources build step. It's only necessarily to
911         specify Sources.txt and SourcesCocoa.txt as inputs.
912
913         * Scripts/generate-unified-source-bundles.rb:
914
915 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
916
917         [JSC] Shrink sizeof(UnlinkedCodeBlock)
918         https://bugs.webkit.org/show_bug.cgi?id=194281
919
920         Reviewed by Michael Saboff.
921
922         * wtf/TriState.h:
923
924 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
925
926         [GLib] Stop URI-escaping file system representations
927         https://bugs.webkit.org/show_bug.cgi?id=194213
928
929         Reviewed by Carlos Garcia Campos.
930
931         Stop URI-escaping of file representation strings in
932         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
933         of strings in FileSystem::fileSystemRepresentation().
934
935         This behavior deviates from POSIX and CF implementations and is
936         currently breaking IndexedDB-specific calculation of database sizes due
937         to directory components used in that process that are URL-based and are
938         as such URI-escaped. When unescaped, those single directory components
939         explode into multiple directory components, leading to incorrect total
940         database size calculation when iterating the database directory.
941
942         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
943         filename charsets and in worst case converts the filesystem
944         representation to UTF-8 before String::fromUTF8() is used.
945         FileSystem::fileSystemRepresentation() reverses that process, taking
946         String's UTF-8 data and converting it to target charset if necessary.
947
948         Other FileSystem functions are adjusted to convert passed-in String
949         objects to filesystem representations.
950
951         * wtf/glib/FileSystemGlib.cpp:
952         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
953         (WTF::FileSystemImpl::fileSystemRepresentation):
954         (WTF::FileSystemImpl::validRepresentation):
955         (WTF::FileSystemImpl::filenameForDisplay):
956         (WTF::FileSystemImpl::fileExists):
957         (WTF::FileSystemImpl::deleteFile):
958         (WTF::FileSystemImpl::deleteEmptyDirectory):
959         (WTF::FileSystemImpl::getFileStat):
960         (WTF::FileSystemImpl::getFileLStat):
961         (WTF::FileSystemImpl::makeAllDirectories):
962         (WTF::FileSystemImpl::createSymbolicLink):
963         (WTF::FileSystemImpl::pathGetFileName):
964         (WTF::FileSystemImpl::getVolumeFreeSpace):
965         (WTF::FileSystemImpl::directoryName):
966         (WTF::FileSystemImpl::listDirectory):
967         (WTF::FileSystemImpl::openFile):
968         (WTF::FileSystemImpl::moveFile):
969         (WTF::FileSystemImpl::hardLinkOrCopyFile):
970         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
971         and treat input CString as an existing filesystem representation.
972         (WTF::FileSystemImpl::unescapedFilename): Deleted.
973
974 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
975
976         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
977         https://bugs.webkit.org/show_bug.cgi?id=174816
978
979         Reviewed by Michael Catanzaro.
980
981         Translate userVisibleString and dependent code into platform-neutral C++
982         in wtf/URLHelpers.{h,cpp}.
983
984         * WTF.xcodeproj/project.pbxproj:
985         * wtf/CMakeLists.txt:
986         * wtf/URLHelpers.cpp: Added.
987         (WTF::URLHelpers::loadIDNScriptWhiteList):
988         (WTF::URLHelpers::isArmenianLookalikeCharacter):
989         (WTF::URLHelpers::isArmenianScriptCharacter):
990         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
991         (WTF::URLHelpers::isLookalikeCharacter):
992         (WTF::URLHelpers::whiteListIDNScript):
993         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
994         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
995         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
996         (WTF::URLHelpers::isRussianDomainNameCharacter):
997         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
998         (WTF::URLHelpers::mapHostName):
999         (WTF::URLHelpers::collectRangesThatNeedMapping):
1000         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1001         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1002         (WTF::URLHelpers::mapHostNames):
1003         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1004         (WTF::URLHelpers::toNormalizationFormC):
1005         (WTF::URLHelpers::userVisibleURL):
1006         * wtf/URLHelpers.h: Added.
1007         * wtf/cocoa/NSURLExtras.mm:
1008         (WTF::URLHelpers::loadIDNScriptWhiteList):
1009         (WTF::decodePercentEscapes):
1010         (WTF::decodeHostName):
1011         (WTF::encodeHostName):
1012         (WTF::URLWithUserTypedString):
1013         (WTF::userVisibleString):
1014
1015 2019-02-03  Commit Queue  <commit-queue@webkit.org>
1016
1017         Unreviewed, rolling out r240896.
1018         https://bugs.webkit.org/show_bug.cgi?id=194202
1019
1020         "Fixes leaks, but is probably not the correct fix." (Requested
1021         by ddkilzer on #webkit).
1022
1023         Reverted changeset:
1024
1025         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
1026         (48 bytes) in com.apple.WebKit.WebContent running layout
1027         tests"
1028         https://bugs.webkit.org/show_bug.cgi?id=193291
1029         https://trac.webkit.org/changeset/240896
1030
1031 2019-02-02  David Kilzer  <ddkilzer@apple.com>
1032
1033         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
1034         <https://webkit.org/b/193291>
1035         <rdar://problem/46655953>
1036
1037         Reviewed by Keith Miller.
1038
1039         * wtf/text/SymbolImpl.h:
1040         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
1041         class destructor that calls StringImpl::deref() on `m_owner`.
1042         Two of the three constructors leak the StringImpl when setting
1043         `m_owner`, so we need to balance that by manually calling
1044         deref().
1045
1046 2018-12-16  Darin Adler  <darin@apple.com>
1047
1048         Convert additional String::format clients to alternative approaches
1049         https://bugs.webkit.org/show_bug.cgi?id=192746
1050
1051         Reviewed by Alexey Proskuryakov.
1052
1053         * wtf/JSONValues.cpp:
1054         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
1055         escapeChar and reordered arguments to make sense as an append function.
1056         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
1057         reordered arguments to make sense as an append function, take a
1058         StringView instead of a String, used early exit to make the code
1059         a bit easier to read. Use the ASCIIHexDigit functions to construct
1060         a hex number a nibble at a time rather than using String::format.
1061         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
1062         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
1063
1064 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1065
1066         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
1067
1068         * wtf/Platform.h:
1069
1070 2019-01-29  Chris Dumez  <cdumez@apple.com>
1071
1072         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
1073         https://bugs.webkit.org/show_bug.cgi?id=193848
1074
1075         Reviewed by Youenn Fablet.
1076
1077         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
1078         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
1079         identifiers such as Bug 193761.
1080
1081         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
1082         when they have a typedef for the ObjectIdentifier<T> type.
1083
1084         * WTF.xcodeproj/project.pbxproj:
1085         * wtf/CMakeLists.txt:
1086         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
1087         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
1088         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
1089         * wtf/ObjectIdentifier.h:
1090         (WTF::ObjectIdentifier::generate):
1091         (WTF::ObjectIdentifier::generateThreadSafe):
1092
1093 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
1094
1095         Move platform-specific files out of WTF root directory.
1096         https://bugs.webkit.org/show_bug.cgi?id=193929
1097
1098         Reviewed by Alex Christensen.
1099
1100         * WTF.xcodeproj/project.pbxproj:
1101         * wtf/CMakeLists.txt:
1102         * wtf/PlatformGTK.cmake:
1103         * wtf/PlatformJSCOnly.cmake:
1104         * wtf/PlatformMac.cmake:
1105         * wtf/PlatformPlayStation.cmake:
1106         * wtf/PlatformWPE.cmake:
1107         * wtf/PlatformWin.cmake:
1108         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
1109         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
1110         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
1111         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
1112         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
1113         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
1114         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
1115         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
1116         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
1117
1118 2019-01-28  Andy Estes  <aestes@apple.com>
1119
1120         [watchOS] Enable Parental Controls content filtering
1121         https://bugs.webkit.org/show_bug.cgi?id=193939
1122         <rdar://problem/46641912>
1123
1124         Reviewed by Ryosuke Niwa.
1125
1126         * wtf/Platform.h:
1127
1128 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
1129
1130         [JSCOnly][WTF] Expose FileSystem.
1131         https://bugs.webkit.org/show_bug.cgi?id=193789
1132
1133         Reviewed by Don Olmstead.
1134
1135         * wtf/FileSystem.h:
1136         * wtf/PlatformJSCOnly.cmake:
1137         * wtf/posix/FileSystemPOSIX.cpp:
1138         (WTF::FileSystemImpl::getVolumeFreeSpace):
1139         * wtf/win/FileSystemWin.cpp:
1140         (WTF::FileSystemImpl::fileSystemRepresentation):
1141
1142 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
1143
1144         AVStreamSession isn't always available, make a HAVE compile flag for it
1145         https://bugs.webkit.org/show_bug.cgi?id=193889
1146         <rdar://problem/47452863>
1147
1148         Reviewed by Jer Noble.
1149
1150         * wtf/FeatureDefines.h:
1151
1152 2018-12-15  Darin Adler  <darin@apple.com>
1153
1154         Replace many uses of String::format with more type-safe alternatives
1155         https://bugs.webkit.org/show_bug.cgi?id=192742
1156
1157         Reviewed by Mark Lam.
1158
1159         * wtf/WorkQueue.cpp:
1160         (WTF::WorkQueue::concurrentApply): Use makeString.
1161
1162         * wtf/dtoa.cpp:
1163         (WTF::dtoa): Use sprintf instead of String::format in the comments,
1164         since these functions have nothing to do with WTF::String.
1165
1166 2019-01-25  Chris Dumez  <cdumez@apple.com>
1167
1168         [iOS] Add support for the download attribute
1169         https://bugs.webkit.org/show_bug.cgi?id=167341
1170         <rdar://problem/30296281>
1171
1172         Reviewed by Geoffrey Garen.
1173
1174         Turn on HTML download attribute support on iOS.
1175
1176         * wtf/FeatureDefines.h:
1177
1178 2019-01-25  David Kilzer  <ddkilzer@apple.com>
1179
1180         Move soft-linking of Lookup.framework out of LookupSPI.h
1181         <https://webkit.org/b/193815>
1182
1183         Reviewed by Tim Horton.
1184
1185         * wtf/cocoa/SoftLinking.h:
1186         (SOFT_LINK_CONSTANT_FOR_HEADER):
1187         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
1188         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
1189         - Remove local declaration of constant.  This should be handled
1190           by including *SPI.h or "real" headers.
1191         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
1192         - Remove local declaration of constant.
1193         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
1194           `export` argument to support exporting of functions.
1195         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
1196         - Redefine in terms of
1197           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
1198
1199 2019-01-24  Youenn Fablet  <youenn@apple.com>
1200
1201         Use MonotonicTime in WorkerRunLoop
1202         https://bugs.webkit.org/show_bug.cgi?id=193417
1203
1204         Reviewed by Saam Barati.
1205
1206         * wtf/MessageQueue.h:
1207         (WTF::MessageQueue<DataType>::waitForMessage):
1208         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
1209
1210 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
1211
1212         Move FileSystem to WTF
1213         https://bugs.webkit.org/show_bug.cgi?id=193602
1214
1215         Reviewed by Yusuke Suzuki.
1216
1217         * WTF.xcodeproj/project.pbxproj:
1218         * wtf/CMakeLists.txt:
1219         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
1220         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
1221         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
1222         * wtf/PlatformGTK.cmake:
1223         * wtf/PlatformMac.cmake:
1224         * wtf/PlatformPlayStation.cmake:
1225         * wtf/PlatformWPE.cmake:
1226         * wtf/PlatformWin.cmake:
1227         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
1228         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
1229         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
1230         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
1231         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
1232         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
1233         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
1234         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
1235         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
1236
1237 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
1238
1239         [JSC] Reenable baseline JIT on mips
1240         https://bugs.webkit.org/show_bug.cgi?id=192983
1241
1242         Reviewed by Mark Lam.
1243
1244         Use baseline JIT by default on MIPS.
1245
1246         * wtf/Platform.h:
1247
1248 2019-01-24  David Kilzer  <ddkilzer@apple.com>
1249
1250         Duplicate global variables: WTF::asciiCaseFoldTable
1251         <https://webkit.org/b/193726>
1252         <rdar://problem/47334622>
1253
1254         Reviewed by Michael Catanzaro.
1255
1256         * WTF.xcodeproj/project.pbxproj:
1257         * wtf/CMakeLists.txt:
1258         - Add ASCIICType.cpp to build systems.
1259
1260         * wtf/ASCIICType.cpp: Added.
1261         (WTF::asciiCaseFoldTable): Move table to here so there is only
1262         one copy.  Mark as exported for other frameworks to use.
1263         * wtf/ASCIICType.h:
1264         (WTF::asciiCaseFoldTable): Change to extern declaration, and
1265         mark as exported for other frameworks to use.
1266
1267 2019-01-23  Mark Lam  <mark.lam@apple.com>
1268
1269         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
1270         https://bugs.webkit.org/show_bug.cgi?id=193744
1271         <rdar://problem/46262952>
1272
1273         Reviewed by Saam Barati.
1274
1275         * wtf/Platform.h:
1276
1277 2019-01-23  David Kilzer  <ddkilzer@apple.com>
1278
1279         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
1280         <https://webkit.org/b/193694>
1281         <rdar://problem/47464025>
1282
1283         Reviewed by Tim Horton.
1284
1285         * wtf/win/SoftLinking.h:
1286         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
1287         - Implement for Windows.
1288         (SOFT_LINK_CONSTANT_FOR_SOURCE):
1289         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
1290
1291 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
1292
1293         Cache bytecode to disk
1294         https://bugs.webkit.org/show_bug.cgi?id=192782
1295         <rdar://problem/46084932>
1296
1297         Reviewed by Keith Miller.
1298
1299         BitVectors have to be friends with JSC::CacheBitVector to allow
1300         serializing its buffer as part of the bytecode cache encoding.
1301
1302         * wtf/BitVector.h:
1303
1304 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
1305
1306         [GTK] Speculative build fix for Ubuntu LTS
1307         https://bugs.webkit.org/show_bug.cgi?id=193651
1308
1309         Unreviewed build fix.
1310
1311         * wtf/Assertions.h: Add missing <cstdlib> include.
1312
1313 2019-01-20  Saam Barati  <sbarati@apple.com>
1314
1315         Rollout r240210: It broke tests on iOS
1316         https://bugs.webkit.org/show_bug.cgi?id=193640
1317
1318         Unreviewed.
1319
1320         * wtf/BitVector.h:
1321
1322 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
1323
1324         Cache bytecode to disk
1325         https://bugs.webkit.org/show_bug.cgi?id=192782
1326         <rdar://problem/46084932>
1327
1328         Reviewed by Keith Miller.
1329
1330         BitVectors have to be friends with JSC::CacheBitVector to allow
1331         serializing its buffer as part of the bytecode cache encoding.
1332
1333         * wtf/BitVector.h:
1334
1335 2019-01-18  Tim Horton  <timothy_horton@apple.com>
1336
1337         Get rid of ADVANCED_SPELL_CHECKING
1338         https://bugs.webkit.org/show_bug.cgi?id=193592
1339
1340         Reviewed by Wenson Hsieh.
1341
1342         * wtf/Platform.h:
1343
1344 2019-01-18  Jer Noble  <jer.noble@apple.com>
1345
1346         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1347         https://bugs.webkit.org/show_bug.cgi?id=189553
1348
1349         Reviewed by Tim Horton.
1350
1351         * Configurations/Base.xcconfig:
1352         * Configurations/SDKVariant.xcconfig: Added.
1353
1354 2019-01-18  Keith Miller  <keith_miller@apple.com>
1355
1356         Gigacages should start allocations from a slide
1357         https://bugs.webkit.org/show_bug.cgi?id=193523
1358
1359         Reviewed by Mark Lam.
1360
1361         This patch changes some macros into constants since macros are the
1362         devil.
1363
1364         * wtf/Gigacage.cpp:
1365         * wtf/Gigacage.h:
1366
1367 2019-01-18  Matt Lewis  <jlewis3@apple.com>
1368
1369         Unreviewed, rolling out r240160.
1370
1371         This broke multiple internal builds.
1372
1373         Reverted changeset:
1374
1375         "Gigacages should start allocations from a slide"
1376         https://bugs.webkit.org/show_bug.cgi?id=193523
1377         https://trac.webkit.org/changeset/240160
1378
1379 2019-01-18  Keith Miller  <keith_miller@apple.com>
1380
1381         Gigacages should start allocations from a slide
1382         https://bugs.webkit.org/show_bug.cgi?id=193523
1383
1384         Reviewed by Mark Lam.
1385
1386         This patch changes some macros into constants since macros are the
1387         devil.
1388
1389         * wtf/Gigacage.cpp:
1390         * wtf/Gigacage.h:
1391
1392 2019-01-17  Truitt Savell  <tsavell@apple.com>
1393
1394         Unreviewed, rolling out r240124.
1395
1396         This commit broke an internal build.
1397
1398         Reverted changeset:
1399
1400         "SDK_VARIANT build destinations should be separate from non-
1401         SDK_VARIANT builds"
1402         https://bugs.webkit.org/show_bug.cgi?id=189553
1403         https://trac.webkit.org/changeset/240124
1404
1405 2019-01-17  Jer Noble  <jer.noble@apple.com>
1406
1407         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1408         https://bugs.webkit.org/show_bug.cgi?id=189553
1409
1410         Reviewed by Tim Horton.
1411
1412         * Configurations/Base.xcconfig:
1413         * Configurations/SDKVariant.xcconfig: Added.
1414
1415 2019-01-16  Keith Miller  <keith_miller@apple.com>
1416
1417         bmalloc should use JSC VM tag for gigacage
1418         https://bugs.webkit.org/show_bug.cgi?id=193496
1419
1420         Reviewed by Mark Lam.
1421
1422         Move most of the macros for vm tagging to bmalloc.
1423
1424         * wtf/VMTags.h:
1425
1426 2019-01-16  Alberto Garcia  <berto@igalia.com>
1427
1428         [WTF] Compilation fails with system malloc
1429         https://bugs.webkit.org/show_bug.cgi?id=172445
1430
1431         Reviewed by Michael Catanzaro.
1432
1433         Follow-up to r217270. The sysinfo() system call is specific to
1434         Linux so update the #ifdef checks accordingly.
1435
1436         * wtf/RAMSize.cpp:
1437         (WTF::computeRAMSize):
1438
1439 2019-01-15  Chris Dumez  <cdumez@apple.com>
1440
1441         Unreviewed, revert part of r239997 as it is not needed to fix the build.
1442
1443         * wtf/RefCounter.h:
1444
1445 2019-01-15  Alex Christensen  <achristensen@webkit.org>
1446
1447         Fix iOS build after r239993
1448         https://bugs.webkit.org/show_bug.cgi?id=193361
1449
1450         * wtf/RefCounter.h:
1451
1452 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
1453
1454         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
1455         https://bugs.webkit.org/show_bug.cgi?id=192945
1456
1457         Reviewed by Alex Christensen.
1458
1459         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
1460         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
1461         course this is much worse than the preexisting code, but this is just a transitional
1462         measure and not the final state of the code. It wouldn't make sense to do this if the code
1463         were to remain Objective C++.
1464
1465         * wtf/cocoa/NSURLExtras.mm:
1466         (WTF::toNormalizationFormC):
1467         (WTF::userVisibleString):
1468
1469 2019-01-14  Alex Christensen  <achristensen@webkit.org>
1470
1471         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
1472         https://bugs.webkit.org/show_bug.cgi?id=193411
1473         <rdar://problem/47215929>
1474
1475         Reviewed by Alexey Proskuryakov.
1476
1477         * wtf/cocoa/NSURLExtras.mm:
1478         (WTF::allCharactersAllowedByTLDRules):
1479
1480 2019-01-12  Timothy Hatcher  <timothy@apple.com>
1481
1482         Have prefers-color-scheme: light always match on macOS versions before Mojave.
1483         https://bugs.webkit.org/show_bug.cgi?id=191655
1484         rdar://problem/46074680
1485
1486         Reviewed by Megan Gardner.
1487
1488         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
1489
1490 2019-01-11  David Kilzer  <ddkilzer@apple.com>
1491
1492         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1493         https://bugs.webkit.org/show_bug.cgi?id=191350
1494
1495         * wtf/WorkQueue.cpp:
1496         (WTF::WorkQueue::concurrentApply): Fix whitespace.
1497
1498 2019-01-11  Devin Rousso  <drousso@apple.com>
1499
1500         Fix style CFNetworkSPI style checker warnings from r239698
1501         https://bugs.webkit.org/show_bug.cgi?id=193369
1502
1503         Reviewed by Joseph Pecoraro.
1504
1505         * wtf/Platform.h:
1506
1507 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
1508
1509         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1510         https://bugs.webkit.org/show_bug.cgi?id=191350
1511
1512         Reviewed by Brent Fulgham.
1513
1514         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
1515         String for the threadName and passes the raw pointer of this String to
1516         Thread::create(). After freeing this String, Thread::entryPoint() uses
1517         the raw char pointer to internally initialize the thread.
1518
1519         The fix is to use a single literal string for all the threads' names since
1520         they are created for a thread-pool.
1521
1522         * wtf/WorkQueue.cpp:
1523         (WTF::WorkQueue::concurrentApply):
1524
1525 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
1526
1527         Enable DFG on ARM/Linux again
1528         https://bugs.webkit.org/show_bug.cgi?id=192496
1529
1530         Reviewed by Yusuke Suzuki.
1531
1532         After changing the bytecode format DFG was disabled on all 32-bit
1533         architectures. Enable DFG now again on ARM/Linux.
1534
1535         * wtf/Platform.h:
1536
1537 2019-01-10  Commit Queue  <commit-queue@webkit.org>
1538
1539         Unreviewed, rolling out r239825.
1540         https://bugs.webkit.org/show_bug.cgi?id=193330
1541
1542         Broke tests on armv7/linux bots (Requested by guijemont on
1543         #webkit).
1544
1545         Reverted changeset:
1546
1547         "Enable DFG on ARM/Linux again"
1548         https://bugs.webkit.org/show_bug.cgi?id=192496
1549         https://trac.webkit.org/changeset/239825
1550
1551 2019-01-10  John Wilander  <wilander@apple.com>
1552
1553         Override the session configuration for cookieAcceptPolicy
1554         https://bugs.webkit.org/show_bug.cgi?id=190925
1555         <rdar://problem/45497382>
1556
1557         Reviewed by Alexey Proskuryakov and Alex Christensen.
1558
1559         * wtf/Platform.h:
1560             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
1561
1562 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
1563
1564         Enable DFG on ARM/Linux again
1565         https://bugs.webkit.org/show_bug.cgi?id=192496
1566
1567         Reviewed by Yusuke Suzuki.
1568
1569         After changing the bytecode format DFG was disabled on all 32-bit
1570         architectures. Enable DFG now again on ARM/Linux.
1571
1572         * wtf/Platform.h:
1573
1574 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1575
1576         [FreeType] Color emoji not properly supported
1577         https://bugs.webkit.org/show_bug.cgi?id=191976
1578
1579         Reviewed by Michael Catanzaro.
1580
1581         Add a name for combining enclosing keycap character.
1582
1583         * wtf/unicode/CharacterNames.h:
1584
1585 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
1586
1587         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
1588         https://bugs.webkit.org/show_bug.cgi?id=192391
1589
1590         Reviewed by Don Olmstead.
1591
1592         Unified Source Builds are using global sequential numbers for
1593         bundle filenames UnifiedSource{sequential-number}.cpp. As the
1594         result, every new source file added would shift the next ones and
1595         prevent compiler caches from speeding up consecutive builds e.g.
1596         in git-bisect sessions.
1597
1598         Changed it to directory local sequential numbers,
1599         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
1600
1601         This is affecting only CMake builds which is where no
1602         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
1603         are set. Xcode builds still use the old convention.
1604
1605         * Scripts/generate-unified-source-bundles.rb: Add new instance
1606         variables @currentDirectory and @extraFiles to BundleManager.
1607         Still use global sequential numbers if --max-cpp-bundle-count or
1608         --max-obj-c-bundle-count is given.
1609
1610 2019-01-09  Alex Christensen  <achristensen@webkit.org>
1611
1612         Expand use of sourceApplicationAuditData
1613         https://bugs.webkit.org/show_bug.cgi?id=192995
1614         <rdar://problem/46627875>
1615
1616         Reviewed by Brady Eidson.
1617
1618         * wtf/Platform.h:
1619
1620 2019-01-09  Mark Lam  <mark.lam@apple.com>
1621
1622         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
1623         https://bugs.webkit.org/show_bug.cgi?id=193292
1624         <rdar://problem/46485450>
1625
1626         Reviewed by Yusuke Suzuki.
1627
1628         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
1629
1630         * wtf/Gigacage.h:
1631
1632 2019-01-07  David Kilzer  <ddkilzer@apple.com>
1633
1634         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
1635         <https://webkit.org/b/193056>
1636
1637         Reviewed by Alex Christensen.
1638
1639         * wtf/RetainPtr.h:
1640         (WTF::RetainPtr<T>::HelperPtrType):
1641         - Use C++ template metaprogramming to define a shared return
1642           type for adoptNS() and retainPtr() that uses
1643           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
1644           non-Objective-C typedef is used with retainPtr() for CFTypeRef
1645           objects.
1646         (WTF::adoptNS):
1647         - Only make declarations available when compilng with
1648           Objective-C.  The inline implementation is only available for
1649           Objective-C, so this makes the declarations consistent.
1650         - Change return type to remove '*' from NS types using
1651           RetainPtr<T>::HelperPtrType.
1652         (WTF::retainPtr):
1653         - Change return type to remove '*' from NS types using
1654           RetainPtr<T>::HelperPtrType.
1655
1656         * wtf/SchedulePair.h:
1657         - Remove '*' from RetainPtr<> type.
1658
1659 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
1660
1661         A MediaTime timescale must never be zero
1662         https://bugs.webkit.org/show_bug.cgi?id=193156
1663         <rdar://problem/32504501>
1664
1665         Reviewed by Jer Noble.
1666
1667         * wtf/MediaTime.cpp:
1668         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
1669         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
1670         (WTF::MediaTime::createWithFloat): Ditto.
1671         (WTF::MediaTime::createWithDouble): Ditto.
1672         (WTF::MediaTime::setTimeScale): Ditto.
1673
1674 2019-01-02  Alex Christensen  <achristensen@webkit.org>
1675
1676         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
1677         https://bugs.webkit.org/show_bug.cgi?id=192944
1678
1679         Reviewed by Tim Horton.
1680
1681         * wtf/cocoa/NSURLExtras.mm:
1682         (WTF::isLookalikeCharacter):
1683
1684 2019-01-02  Commit Queue  <commit-queue@webkit.org>
1685
1686         Unreviewed, rolling out r239524.
1687         https://bugs.webkit.org/show_bug.cgi?id=193083
1688
1689         basic browsing seems not to work (Requested by thorton on
1690         #webkit).
1691
1692         Reverted changeset:
1693
1694         "Expand use of sourceApplicationAuditData"
1695         https://bugs.webkit.org/show_bug.cgi?id=192995
1696         https://trac.webkit.org/changeset/239524
1697
1698 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1699
1700         Add ENABLE_UNIFIED_BUILDS option to cmake ports
1701         https://bugs.webkit.org/show_bug.cgi?id=193045
1702
1703         Reviewed by Don Olmstead.
1704
1705         * Scripts/generate-unified-source-bundles.rb:
1706
1707 2018-12-27  Alex Christensen  <achristensen@webkit.org>
1708
1709         Resurrect Mac CMake build
1710         https://bugs.webkit.org/show_bug.cgi?id=192658
1711
1712         Reviewed by Yusuke Suzuki.
1713
1714         * wtf/PlatformMac.cmake:
1715         * wtf/cf/CFURLExtras.cpp:
1716         * wtf/cf/CFURLExtras.h:
1717         * wtf/cf/URLCF.cpp:
1718         * wtf/cocoa/NSURLExtras.h:
1719         * wtf/cocoa/NSURLExtras.mm:
1720         * wtf/cocoa/URLCocoa.mm:
1721
1722 2018-12-21  Dan Bernstein  <mitz@apple.com>
1723
1724         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
1725
1726         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
1727           deployment target, not the SDK.
1728
1729 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1730
1731         [JSC] Implement "well-formed JSON.stringify" proposal
1732         https://bugs.webkit.org/show_bug.cgi?id=191677
1733
1734         Reviewed by Darin Adler.
1735
1736         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
1737         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
1738         The proposal requires that broken surrogate pairs are unicode-escaped.
1739
1740         [1]: https://github.com/tc39/proposal-well-formed-stringify
1741
1742         * wtf/text/StringBuilderJSON.cpp:
1743         (WTF::appendQuotedJSONStringInternal):
1744
1745 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1746
1747         Expand use of sourceApplicationAuditData
1748         https://bugs.webkit.org/show_bug.cgi?id=192995
1749         <rdar://problem/46627875>
1750
1751         Reviewed by Brady Eidson.
1752
1753         * wtf/Platform.h:
1754
1755 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1756
1757         Revert r239503.
1758         https://bugs.webkit.org/show_bug.cgi?id=192944
1759
1760         * wtf/cocoa/NSURLExtras.mm:
1761         (WTF::isLookalikeCharacter):
1762
1763 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
1764
1765         Show punycode if URL contains Latin small letter dotless i
1766         https://bugs.webkit.org/show_bug.cgi?id=192944
1767         <rdar://problem/46103047>
1768
1769         Reviewed by Andy Estes.
1770
1771         Revise our "lookalike character" logic to include the small Latin
1772         dotless i character.
1773
1774         Test: fast/url/host.html
1775
1776         * wtf/cocoa/NSURLExtras.mm:
1777         (WTF::isLookalikeCharacter):
1778
1779 2018-12-20  Chris Dumez  <cdumez@apple.com>
1780
1781         Use Optional::hasValue() instead of Optional::has_value()
1782         https://bugs.webkit.org/show_bug.cgi?id=192948
1783
1784         Reviewed by Tim Horton.
1785
1786         * wtf/Hasher.h:
1787         (WTF::add):
1788         * wtf/Optional.h:
1789
1790 2018-12-20  Chris Dumez  <cdumez@apple.com>
1791
1792         Use Optional::valueOr() instead of Optional::value_or()
1793         https://bugs.webkit.org/show_bug.cgi?id=192933
1794
1795         Reviewed by Geoffrey Garen.
1796
1797         * wtf/Optional.h:
1798         (WTF::Optional<T::valueOr const):
1799
1800 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
1801
1802         Consistently use MaxLength for all WTF strings
1803         https://bugs.webkit.org/show_bug.cgi?id=192853
1804         <rdar://problem/45726906>
1805
1806         Reviewed by Mark Lam.
1807
1808         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
1809         but all the assertions were still done using UINT_MAX. Change it to
1810         use MaxLength for all checks.
1811
1812         * wtf/text/StringImpl.cpp:
1813         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1814         (WTF::StringImpl::reallocateInternal):
1815         (WTF::StringImpl::create):
1816         (WTF::StringImpl::convertToLowercaseWithoutLocale):
1817         (WTF::StringImpl::convertToUppercaseWithoutLocale):
1818         (WTF::StringImpl::convertToLowercaseWithLocale):
1819         (WTF::StringImpl::convertToUppercaseWithLocale):
1820         (WTF::StringImpl::foldCase):
1821         (WTF::StringImpl::find):
1822         (WTF::StringImpl::replace):
1823         (WTF::StringImpl::utf8ForCharacters):
1824         (WTF::StringImpl::tryGetUtf8ForRange const):
1825         * wtf/text/StringImpl.h:
1826         (WTF::lengthOfNullTerminatedString):
1827         (WTF::StringImpl::tryCreateUninitialized):
1828         (WTF::StringImpl::adopt):
1829         (WTF::StringImpl::maxInternalLength):
1830         * wtf/text/WTFString.cpp:
1831         (WTF::String::append):
1832         (WTF::String::insert):
1833         (WTF::String::fromUTF8):
1834         * wtf/text/WTFString.h:
1835         (WTF::String::reverseFind const):
1836
1837 2018-12-19  Chris Dumez  <cdumez@apple.com>
1838
1839         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
1840         https://bugs.webkit.org/show_bug.cgi?id=192728
1841         <rdar://problem/46746779>
1842
1843         Reviewed by Geoff Garen.
1844
1845         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
1846         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
1847
1848         Based on patch by David Kilzer.
1849
1850         * wtf/*:
1851
1852 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
1853
1854         [MediaStream] Force system camera/microphone TCC prompt if necessary
1855         https://bugs.webkit.org/show_bug.cgi?id=192820
1856         <rdar://problem/42680098>
1857
1858         Reviewed by Jer Noble.
1859
1860         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
1861
1862 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
1863
1864         Some builds are broken after r239262
1865         https://bugs.webkit.org/show_bug.cgi?id=192777
1866
1867         Reviewed by Simon Fraser.
1868
1869         * wtf/Platform.h:
1870
1871 2018-12-17  Daniel Bates  <dabates@apple.com>
1872
1873         Support concatenating StringView with other string types
1874         https://bugs.webkit.org/show_bug.cgi?id=177566
1875
1876         Reviewed by Darin Adler.
1877
1878         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
1879         other string types (e.g. String). This lets a person write more naturally looking code:
1880
1881         stringView + string
1882
1883         Instead of:
1884
1885         makeString(stringView, string)
1886
1887         * wtf/text/StringOperators.h:
1888         (WTF::operator+): Added various operator+ overloads.
1889
1890 2018-12-17  Commit Queue  <commit-queue@webkit.org>
1891
1892         Unreviewed, rolling out r239265 and r239274.
1893         https://bugs.webkit.org/show_bug.cgi?id=192765
1894
1895         unorm_normalize is deprecated, and broke an internal build
1896         (Requested by Truitt on #webkit).
1897
1898         Reverted changesets:
1899
1900         "[GTK][WPE] Need a function to convert internal URI to display
1901         ("pretty") URI"
1902         https://bugs.webkit.org/show_bug.cgi?id=174816
1903         https://trac.webkit.org/changeset/239265
1904
1905         "Fix the Apple Internal Mac build with a newer SDK"
1906         https://trac.webkit.org/changeset/239274
1907
1908 2018-12-17  Daniel Bates  <dabates@apple.com>
1909
1910         Fix the Apple Internal Mac build with a newer SDK
1911
1912         * wtf/URLHelpers.cpp:
1913         (WTF::URLHelpers::userVisibleURL):
1914
1915 2018-12-17  Matt Lewis  <jlewis3@apple.com>
1916
1917         Unreviewed, rolling out r239254.
1918
1919         This broke the Windows 10 Debug build
1920
1921         Reverted changeset:
1922
1923         "Replace many uses of String::format with more type-safe
1924         alternatives"
1925         https://bugs.webkit.org/show_bug.cgi?id=192742
1926         https://trac.webkit.org/changeset/239254
1927
1928 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
1929
1930         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
1931         https://bugs.webkit.org/show_bug.cgi?id=174816
1932
1933         Reviewed by Michael Catanzaro.
1934
1935         Translate userVisibleString and dependent code into platform-neutral C++
1936         in wtf/URLHelpers.{h,cpp}.
1937
1938         * WTF.xcodeproj/project.pbxproj:
1939         * wtf/CMakeLists.txt:
1940         * wtf/URLHelpers.cpp: Added.
1941         (WTF::URLHelpers::loadIDNScriptWhiteList):
1942         (WTF::URLHelpers::isArmenianLookalikeCharacter):
1943         (WTF::URLHelpers::isArmenianScriptCharacter):
1944         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
1945         (WTF::URLHelpers::isLookalikeCharacter):
1946         (WTF::URLHelpers::whiteListIDNScript):
1947         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
1948         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
1949         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1950         (WTF::URLHelpers::isRussianDomainNameCharacter):
1951         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
1952         (WTF::URLHelpers::mapHostName):
1953         (WTF::URLHelpers::collectRangesThatNeedMapping):
1954         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1955         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1956         (WTF::URLHelpers::mapHostNames):
1957         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1958         (WTF::URLHelpers::userVisibleURL):
1959         * wtf/URLHelpers.h: Added.
1960         * wtf/cocoa/NSURLExtras.mm:
1961         (WTF::URLHelpers::loadIDNScriptWhiteList):
1962         (WTF::decodePercentEscapes):
1963         (WTF::decodeHostName):
1964         (WTF::encodeHostName):
1965         (WTF::URLWithUserTypedString):
1966         (WTF::userVisibleString):
1967
1968 2018-12-15  Darin Adler  <darin@apple.com>
1969
1970         Use warning-ignoring macros more consistently and simply
1971         https://bugs.webkit.org/show_bug.cgi?id=192743
1972
1973         Reviewed by Mark Lam.
1974
1975         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
1976         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
1977         non-clang compilers, in part since the code is already inside
1978         #if COMPILER(CLANG), but also because it would be harmless to ignore this
1979         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
1980
1981 2018-12-15  Darin Adler  <darin@apple.com>
1982
1983         Replace many uses of String::format with more type-safe alternatives
1984         https://bugs.webkit.org/show_bug.cgi?id=192742
1985
1986         Reviewed by Mark Lam.
1987
1988         * wtf/WorkQueue.cpp:
1989         (WTF::WorkQueue::concurrentApply): Use makeString.
1990
1991         * wtf/dtoa.cpp:
1992         (WTF::dtoa): Use sprintf instead of String::format in the comments,
1993         since these functions have nothing to do with WTF::String.
1994
1995 2018-12-14  Darin Adler  <darin@apple.com>
1996
1997         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
1998         https://bugs.webkit.org/show_bug.cgi?id=192738
1999         rdar://problem/37502342
2000
2001         Reviewed by Mark Lam.
2002
2003         * wtf/Gigacage.cpp:
2004         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
2005         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
2006
2007 2018-12-14  David Kilzer  <ddkilzer@apple.com>
2008
2009         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
2010         <https://webkit.org/b/192710>
2011         <rdar://problem/46738962>
2012
2013         Reviewed by Eric Carlson.
2014
2015         * wtf/Logger.h:
2016         (WTF::LogArgument::toString): Make argument a const reference to
2017         avoid the copy.
2018
2019 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
2020
2021         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
2022         https://bugs.webkit.org/show_bug.cgi?id=192696
2023
2024         Reviewed by Michael Catanzaro.
2025
2026         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
2027         should support microsecond-precision delays. Such delays are common in
2028         JSC's Watchdog implementation and missing support for them has been
2029         causing test failures in the `testapi` program as well as some JSC
2030         tests that depend on the termination determination functionality of the
2031         JSC::Watchdog class.
2032
2033         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
2034         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
2035         The GSource's ready time is set manually, now with the necessary
2036         microsecond precision.
2037
2038         * wtf/glib/RunLoopGLib.cpp:
2039         (WTF::RunLoop::dispatchAfter):
2040
2041 2018-12-13  Saam Barati  <sbarati@apple.com>
2042
2043         The JSC shell should listen for memory pressure events and respond to them
2044         https://bugs.webkit.org/show_bug.cgi?id=192647
2045
2046         Reviewed by Keith Miller.
2047
2048         * wtf/MemoryPressureHandler.cpp:
2049         (WTF::MemoryPressureHandler::MemoryPressureHandler):
2050         (WTF::MemoryPressureHandler::setDispatchQueue):
2051         Make it so that we can customize which dispatch queue memory pressure
2052         events get handled on.
2053
2054         * wtf/MemoryPressureHandler.h:
2055         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
2056         Make it so that we can disable logging that happens on each memory
2057         pressure event.
2058
2059         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
2060         (WTF::MemoryPressureHandler::install):
2061         (WTF::MemoryPressureHandler::uninstall):
2062         (WTF::MemoryPressureHandler::holdOff):
2063
2064 2018-12-13  David Kilzer  <ddkilzer@apple.com>
2065
2066         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
2067         <https://webkit.org/b/192666>
2068         <rdar://problem/46697952>
2069
2070         Reviewed by Alex Christensen.
2071
2072         * wtf/ParallelHelperPool.cpp:
2073         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
2074         reference and WTFMove().
2075         (WTF::ParallelHelperClient::setTask): Ditto.
2076         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
2077         (WTF::ParallelHelperClient::runTask): Use const reference.
2078         * wtf/ParallelHelperPool.h: Update declarations to match
2079         implementations.
2080
2081 2018-12-12  Alex Christensen  <achristensen@webkit.org>
2082
2083         Implement safe browsing in WebKit on WatchOS
2084         https://bugs.webkit.org/show_bug.cgi?id=192641
2085         <rdar://problem/46376188>
2086
2087         Reviewed by Geoff Garen.
2088
2089         * wtf/Platform.h:
2090         WatchOS has safe browsing, too!
2091
2092 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
2093
2094         [Win][Clang] Fix compilation warnings of WTF
2095         https://bugs.webkit.org/show_bug.cgi?id=192583
2096
2097         Reviewed by Alex Christensen.
2098
2099         clang-cl reports the following warnings.
2100
2101         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
2102         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
2103         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
2104         >                                                ^
2105         > 1 warning generated.
2106         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
2107         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(34,54):  warning: ISO C++11 does not allow conversion from string literal to 'const LPWSTR' (aka 'wchar_t *const') [-Wwritable-strings]
2108         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
2109         >                                                      ^
2110         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
2111         >     WNDCLASS windowClass = { 0 };
2112         >                                ^
2113         > 2 warnings generated.
2114         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
2115         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
2116         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
2117         >                    ^
2118         > 1 warning generated.
2119
2120         * wtf/DateMath.cpp:
2121         (WTF::getLocalTime): Defined only if used.
2122         * wtf/StackBounds.cpp:
2123         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
2124         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
2125         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
2126
2127 2018-12-11  Andy Estes  <aestes@apple.com>
2128
2129         Introduce makeBlockPtr for lambdas
2130         https://bugs.webkit.org/show_bug.cgi?id=192594
2131
2132         Reviewed by Alex Christensen.
2133
2134         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
2135         signature as a class template argument. This patch introduces an overload of makeBlockPtr
2136         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
2137
2138         * wtf/BlockPtr.h:
2139         (WTF::makeBlockPtr):
2140
2141         Adopted makeBlockPtr.
2142
2143         * wtf/cocoa/WorkQueueCocoa.cpp:
2144         (WTF::WorkQueue::dispatch):
2145         (WTF::WorkQueue::dispatchAfter):
2146         (WTF::WorkQueue::concurrentApply):
2147
2148 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
2149
2150         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
2151         https://bugs.webkit.org/show_bug.cgi?id=192573
2152
2153         Reviewed by Simon Fraser.
2154
2155         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
2156         on it being set in FeatureDefines.xcconfig.
2157
2158         * wtf/Platform.h:
2159
2160 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
2161
2162         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
2163         https://bugs.webkit.org/show_bug.cgi?id=192428
2164
2165         Reviewed by Tim Horton.
2166
2167         * wtf/Platform.h:
2168
2169 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
2170
2171         Move more macros out of WebKit's config.h
2172         https://bugs.webkit.org/show_bug.cgi?id=192430
2173
2174         Reviewed by Tim Horton.
2175
2176         * wtf/Platform.h:
2177
2178 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2179
2180         Unreviewed, fix build failure on GCC 8.2, part 2
2181
2182         Add RefCountedArray::assign, and use it instead of operator= internally.
2183         We should have operator=(const RefCountedArray&) since it will be automatically generated
2184         if we do not have correct implementation here.
2185
2186         * wtf/RefCountedArray.h:
2187         (WTF::RefCountedArray::operator=):
2188         (WTF::RefCountedArray::assign):
2189
2190 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2191
2192         Unreviewed, fix build failure on GCC 8.2
2193
2194         We remove operator=<PtrTraits> call since it is not necessary.
2195         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
2196
2197         * wtf/RefCountedArray.h:
2198
2199 2018-12-08  Darin Adler  <darin@apple.com>
2200
2201         Fix stray-semicolon warning seen with a new version of clang in Xcode
2202         https://bugs.webkit.org/show_bug.cgi?id=192534
2203
2204         Reviewed by Alexey Proskuryakov.
2205
2206         * wtf/Lock.h: Removed an unneeded semicolon.
2207
2208 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
2209
2210         [WTF] Debug build fails due conflicting abort() method
2211         https://bugs.webkit.org/show_bug.cgi?id=192491
2212
2213         Reviewed by Michael Catanzaro.
2214
2215         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
2216         inside classes which have an ::abort() method, but only when __cplusplus is defined to
2217         allow inclusion of the header in plain C sources.
2218
2219 2018-12-07  Andy Estes  <aestes@apple.com>
2220
2221         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
2222         https://bugs.webkit.org/show_bug.cgi?id=192498
2223
2224         Reviewed by Tim Horton.
2225
2226         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
2227         which behave like their non-optional variants but do not require their classes to exist.
2228
2229         * wtf/cocoa/SoftLinking.h:
2230
2231 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
2232
2233         Move USE_NEW_THEME out of WebCore's config.h
2234         https://bugs.webkit.org/show_bug.cgi?id=192426
2235
2236         Reviewed by Tim Horton.
2237
2238         * wtf/Platform.h:
2239
2240 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2241
2242         [SOUP] Move URLSoup back to WebCore after r238771
2243         https://bugs.webkit.org/show_bug.cgi?id=192306
2244
2245         Reviewed by Michael Catanzaro.
2246
2247         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
2248         libsoup as a new dependency of libjavascriptcoregtk.
2249
2250         * wtf/PlatformGTK.cmake:
2251         * wtf/PlatformWPE.cmake:
2252         * wtf/URL.h:
2253         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
2254
2255 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
2256
2257         Fix some unused parameter warnings
2258         https://bugs.webkit.org/show_bug.cgi?id=192336
2259
2260         Reviewed by Fujii Hironori.
2261
2262         * wtf/StackTrace.cpp:
2263         (WTFGetBacktrace):
2264         (WTF::StackTrace::demangle):
2265         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
2266         (WTF::MemoryPressureHandler::holdOff):
2267         (WTF::MemoryPressureHandler::respondToMemoryPressure):
2268
2269 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
2270
2271         Modernize version check for _suppressedAutoAddedHTTPHeaders
2272         https://bugs.webkit.org/show_bug.cgi?id=192175
2273
2274         Reviewed by Tim Horton.
2275
2276         * wtf/Platform.h:
2277
2278 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2279
2280         Fix Windows build after r238771
2281         https://bugs.webkit.org/show_bug.cgi?id=190234
2282
2283         * wtf/URLParser.h:
2284         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
2285
2286 2018-11-30  Alex Christensen  <achristensen@webkit.org>
2287
2288         Move URL from WebCore to WTF
2289         https://bugs.webkit.org/show_bug.cgi?id=190234
2290
2291         Reviewed by Keith Miller.
2292
2293         * WTF.xcodeproj/project.pbxproj:
2294         * wtf/CMakeLists.txt:
2295         * wtf/Forward.h:
2296         * wtf/PlatformGTK.cmake:
2297         * wtf/PlatformMac.cmake:
2298         * wtf/PlatformWPE.cmake:
2299         * wtf/PlatformWin.cmake:
2300         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
2301         (WTF::URL::protocolIs):
2302         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
2303         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
2304         (WTF::URLHash::hash):
2305         (WTF::URLHash::equal):
2306         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
2307         (WTF::URLParser::isInUserInfoEncodeSet):
2308         (WTF::URLParser::parseAuthority):
2309         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
2310         (WTF::URLParser::URLParser):
2311         (WTF::URLParser::result):
2312         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
2313         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
2314         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
2315         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
2316         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
2317         (WTF::isArmenianLookalikeCharacter):
2318         (WTF::isArmenianScriptCharacter):
2319         (WTF::isASCIIDigitOrValidHostCharacter):
2320         (WTF::isLookalikeCharacter):
2321         (WTF::whiteListIDNScript):
2322         (WTF::readIDNScriptWhiteListFile):
2323         (WTF::allCharactersInIDNScriptWhiteList):
2324         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
2325         (WTF::isRussianDomainNameCharacter):
2326         (WTF::allCharactersAllowedByTLDRules):
2327         (WTF::mapHostNameWithRange):
2328         (WTF::hostNameNeedsDecodingWithRange):
2329         (WTF::hostNameNeedsEncodingWithRange):
2330         (WTF::decodeHostNameWithRange):
2331         (WTF::encodeHostNameWithRange):
2332         (WTF::decodeHostName):
2333         (WTF::encodeHostName):
2334         (WTF::collectRangesThatNeedMapping):
2335         (WTF::collectRangesThatNeedEncoding):
2336         (WTF::collectRangesThatNeedDecoding):
2337         (WTF::applyHostNameFunctionToMailToURLString):
2338         (WTF::applyHostNameFunctionToURLString):
2339         (WTF::mapHostNames):
2340         (WTF::stringByTrimmingWhitespace):
2341         (WTF::URLByTruncatingOneCharacterBeforeComponent):
2342         (WTF::URLByRemovingResourceSpecifier):
2343         (WTF::URLWithData):
2344         (WTF::dataWithUserTypedString):
2345         (WTF::URLWithUserTypedString):
2346         (WTF::URLWithUserTypedStringDeprecated):
2347         (WTF::hasQuestionMarkOnlyQueryString):
2348         (WTF::dataForURLComponentType):
2349         (WTF::URLByRemovingComponentAndSubsequentCharacter):
2350         (WTF::URLByRemovingUserInfo):
2351         (WTF::originalURLData):
2352         (WTF::createStringWithEscapedUnsafeCharacters):
2353         (WTF::userVisibleString):
2354         (WTF::isUserVisibleURL):
2355         (WTF::rangeOfURLScheme):
2356         (WTF::looksLikeAbsoluteURL):
2357         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
2358         (WTF::URL::URL):
2359         (WTF::URL::createCFURL const):
2360         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
2361         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
2362
2363 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
2364
2365         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
2366         https://bugs.webkit.org/show_bug.cgi?id=192173
2367
2368         Reviewed by Tim Horton.
2369
2370         * wtf/Platform.h: Also renamed it to better match other version checks.
2371
2372 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
2373
2374         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
2375         https://bugs.webkit.org/show_bug.cgi?id=192041
2376
2377         Reviewed by Tim Horton.
2378
2379         * wtf/Platform.h:
2380
2381 2018-11-28  Mark Lam  <mark.lam@apple.com>
2382
2383         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
2384         https://bugs.webkit.org/show_bug.cgi?id=192110
2385         <rdar://problem/46317746>
2386
2387         Reviewed by Saam Barati.
2388
2389         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
2390         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
2391         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
2392         (and other projects) as well as JSC.  Hence, there's no reason why
2393         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
2394
2395         * wtf/Platform.h:
2396
2397 2018-11-28  Keith Rollin  <krollin@apple.com>
2398
2399         Update generate-unified-source-bundles.rb to generate .xcfilelist files
2400         https://bugs.webkit.org/show_bug.cgi?id=192029
2401         <rdar://problem/46285918>
2402
2403         Reviewed by Alex Christensen.
2404
2405         Update generate-unified-source-bundles.rb to generate output for
2406         .xcfilelist files. These files are used to indicate the sets of input
2407         and output files to Run Script build phases in Xcode. By invoking
2408         generate-unified-source-bundles.rb with -generate-xcfilelists, the
2409         script generates these .xcfilelist files. These .xcfilelist files can
2410         then be used to specify the inputs and outputs of the Generate Unified
2411         Sources build phases.
2412
2413         * Scripts/generate-unified-source-bundles.rb:
2414
2415 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2416
2417         Remove another OS version check from NetworkDataTaskCocoa.mm
2418         https://bugs.webkit.org/show_bug.cgi?id=192046
2419
2420         Reviewed by Alex Christensen.
2421
2422         * wtf/Platform.h:
2423
2424 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2425
2426         Modernize version checks for same site cookie support
2427         https://bugs.webkit.org/show_bug.cgi?id=192054
2428
2429         Reviewed by Tim Horton.
2430
2431         * wtf/Platform.h:
2432
2433 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
2434
2435         Modernize the check for async _saveCookies existence
2436         https://bugs.webkit.org/show_bug.cgi?id=191987
2437
2438         Reviewed by Dean Jackson.
2439
2440         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
2441         although it seems very likely that we want to do the same on other iOS family OSes.
2442
2443 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
2444
2445         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
2446         https://bugs.webkit.org/show_bug.cgi?id=191960
2447
2448         Reviewed by Alex Christensen.
2449
2450         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
2451         pointer argument of EncodePointer. Changed the type of stored
2452         function pointer returned by EncodePointer.
2453
2454 2018-11-26  Sam Weinig  <sam@webkit.org>
2455
2456         Streamline ListHashSet use in floating object code
2457         https://bugs.webkit.org/show_bug.cgi?id=191957
2458
2459         Reviewed by Alex Christensen.
2460
2461         * wtf/ListHashSet.h:
2462         Reverses the order of the template arguments for the find() and contains()
2463         overload that allow specifying a hash translator to allow the compiler to
2464         deduce type T. This simplifies call sites and matches other WTF containers.
2465
2466 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2467
2468         CRASH() should call abort() except on Darwin and in developer builds
2469         https://bugs.webkit.org/show_bug.cgi?id=184408
2470
2471         Reviewed by Daniel Bates.
2472
2473         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2474         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2475
2476         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2477         can't do that.
2478
2479         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2480         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2481
2482         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
2483         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
2484         is also non-constexpr.
2485
2486         * wtf/Assertions.h:
2487
2488 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2489
2490         Unreviewed, rolling out r238469.
2491
2492         Broke the build
2493
2494         Reverted changeset:
2495
2496         "CRASH() should call abort() except on Darwin and in developer
2497         builds"
2498         https://bugs.webkit.org/show_bug.cgi?id=184408
2499         https://trac.webkit.org/changeset/238469
2500
2501 2018-11-24  Andy Estes  <aestes@apple.com>
2502
2503         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
2504         https://bugs.webkit.org/show_bug.cgi?id=191899
2505
2506         Reviewed by Dean Jackson.
2507
2508         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
2509         framework name. For example, NSView would have a class getter named
2510         namespace::get_AppKit_NSViewClass().
2511
2512         Including the framework name in the getter is unnecessary. Objective-C classes already exist
2513         in a global namespace, so there is no need to disambiguate class names by framework. This
2514         patch elides the framework name from the getter function. For example, NSView would now have
2515         a getter named namespace::getNSViewClass().
2516
2517         * wtf/cocoa/SoftLinking.h:
2518
2519 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
2520
2521         CRASH() should call abort() except on Darwin and in developer builds
2522         https://bugs.webkit.org/show_bug.cgi?id=184408
2523
2524         Reviewed by Daniel Bates.
2525
2526         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2527         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2528
2529         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2530         can't do that.
2531
2532         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2533         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2534
2535         * wtf/Assertions.h:
2536
2537 2018-11-23  Sam Weinig  <sam@webkit.org>
2538
2539         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
2540         https://bugs.webkit.org/show_bug.cgi?id=191936
2541
2542         Reviewed by Zalan Bujtas.
2543
2544         Adds overloads for find, contains, insertBefore and remove that take raw pointers
2545         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
2546         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
2547         which already have this functionality. Like in the other collections, this is especially
2548         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
2549         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
2550         which is unique to ListHashSet. As would be expected, this specialization only changes the first
2551         parameter, the one that needs to be found, to support a raw pointer.  
2552
2553         * wtf/ListHashSet.h:
2554         (WTF::U>::find):
2555         (WTF::U>::find const):
2556         (WTF::U>::contains const):
2557         (WTF::U>::insertBefore):
2558         (WTF::U>::remove):
2559
2560 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2561
2562         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
2563         https://bugs.webkit.org/show_bug.cgi?id=191675
2564
2565         Reviewed by Mark Lam.
2566
2567         * wtf/InlineASM.h:
2568         * wtf/Platform.h:
2569
2570 2018-11-21  Andy Estes  <aestes@apple.com>
2571
2572         [Cocoa] Create a soft-linking file for PassKit
2573         https://bugs.webkit.org/show_bug.cgi?id=191875
2574         <rdar://problem/46203215>
2575
2576         Reviewed by Myles Maxfield.
2577
2578         * wtf/Platform.h: Defined USE_PASSKIT.
2579         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
2580         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
2581         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
2582
2583 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
2584
2585         Enable JIT on ARM/Linux
2586         https://bugs.webkit.org/show_bug.cgi?id=191548
2587
2588         Reviewed by Yusuke Suzuki.
2589
2590         Enable JIT by default on ARMv7/Linux after it was disabled with
2591         recent bytcode format change.
2592
2593         * wtf/Platform.h:
2594
2595 2018-11-14  Keith Rollin  <krollin@apple.com>
2596
2597         Fix #end vs. #endif typo.
2598         https://bugs.webkit.org/show_bug.cgi?id=191668
2599         <rdar://problem/46081704>
2600
2601         Reviewed by Alexey Proskuryakov.
2602
2603         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
2604         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
2605         to detect similar typos.
2606
2607         * Scripts/generate-unified-source-bundles.rb:
2608
2609 2018-11-12  Mark Lam  <mark.lam@apple.com>
2610
2611         Add OOM detection to StringPrototype's substituteBackreferences().
2612         https://bugs.webkit.org/show_bug.cgi?id=191563
2613         <rdar://problem/45720428>
2614
2615         Reviewed by Saam Barati.
2616
2617         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
2618         the hasOverflowed() check if m_string is not null.  When m_string is not null,
2619         the StringBuilder either only has a single String in m_string (with m_buffer being 
2620         null), or reifyString() has already been called (resulting in a non-null m_string
2621         with a possibly non-null m_buffer).
2622
2623         We can skip the overflow check because:
2624         1. if the StringBuilder only has a single String, then there cannot be an overflow.
2625         2. if reifyString() has already been called, then the hasOverflowed() checked has
2626            already been done because every code path that calls reifyString() first does
2627            the hasOverflowed() check.
2628
2629         We can skip shrinkToFit() because it only applies to m_buffer.
2630         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
2631         2. if reifyString() has already been called, then we either came down
2632            a. the toString() path with a null m_string previously, where we would have
2633               already called shrinkToFit() before reifyString(), or
2634            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
2635
2636         We can skip reifyString() because:
2637         1. if the StringBuilder only has a single String, then the string is already reified.
2638         2. if reifyString() has been already called, then the string is already reified.
2639
2640         Note that if m_string is the null string and m_buffer is null, reifyString() will
2641         replace it with the empty string.  For this reason, we cannot solely check for
2642         !m_buffer because we need to reify the null string into the empty string.
2643
2644         Note also that if m_string is null and m_buffer is non-null, reifyString() will
2645         create a String and set m_string to it.  However, m_buffer remains non-null.
2646         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
2647         We add a m_isReified flag (only when assertions are enabled) to track the reified
2648         case where both m_buffer and m_string are non-null.
2649
2650         * wtf/text/StringBuilder.cpp:
2651         (WTF::StringBuilder::reifyString const):
2652         * wtf/text/StringBuilder.h:
2653         (WTF::StringBuilder::toString):
2654
2655 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
2656
2657         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
2658         https://bugs.webkit.org/show_bug.cgi?id=191492
2659
2660         Reviewed by Alex Christensen.
2661
2662         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
2663         the cases, some systems have issues with applying this patch.
2664
2665         To work around the problem, the change is made is two patches, first rename to
2666         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
2667
2668         * WTF.xcodeproj/project.pbxproj:
2669         * wtf/CMakeLists.txt:
2670         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
2671         (wtfObjCMsgSend):
2672
2673 2018-11-09  Keith Miller  <keith_miller@apple.com>
2674
2675         LLInt VectorSizeOffset should be based on offset extraction
2676         https://bugs.webkit.org/show_bug.cgi?id=191468
2677
2678         Reviewed by Yusuke Suzuki.
2679
2680         Make things friends with LLIntOffsetsExtractor.
2681
2682         * wtf/RefCountedArray.h:
2683         * wtf/Vector.h:
2684
2685 2018-11-09  Jim Mason  <jmason@ibinx.com>
2686
2687         [WTF] Changes in bug 188867 break non-Linux Unix builds
2688         https://bugs.webkit.org/show_bug.cgi?id=191380
2689
2690         The intention of 188867 was to split out platform-specific
2691         heap query/release code.  Any unsupported platform
2692         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
2693         ended up sending all non-Linux platforms through the Linux
2694         implementation, which breaks the build for those platforms.
2695         This includes any user of the GTK target which is not Linux,
2696         such as the *BSDs, Solaris, etc.
2697
2698         Reviewed by Yusuke Suzuki.
2699
2700         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
2701         code only for Linux; all other platforms use the generic stub.
2702
2703 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
2704
2705         Removed mbmalloc target from WTF
2706         https://bugs.webkit.org/show_bug.cgi?id=191313
2707
2708         Reviewed by Saam Barati.
2709
2710         For benchmarking, WTF::fastMalloc is no longer meaningfully different
2711         from bmalloc. (And bmalloc has its own mbmalloc target.)
2712
2713         * Configurations/mbmalloc.xcconfig: Removed.
2714         * WTF.xcodeproj/project.pbxproj:
2715         * wtf/mbmalloc.cpp: Removed.
2716
2717 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
2718
2719         Re-add PLATFORM(IOS), now with the strict meaning
2720         https://bugs.webkit.org/show_bug.cgi?id=191281
2721
2722         Reviewed by Tim Horton.
2723
2724         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
2725         when expanded, it might be that the values are incorrect for some flavors of iOS family.
2726
2727 2018-11-08  Dean Jackson  <dino@apple.com>
2728
2729         Add a String literal that returns a String
2730         https://bugs.webkit.org/show_bug.cgi?id=191425
2731         <rdar://problem/45914556>
2732
2733         Reviewed by Sam Weinig.
2734
2735         Add a new String literal, _str, that will return a String type.
2736         This is useful when ""_s won't work, such as for things that
2737         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
2738         or Variants.
2739
2740         * wtf/text/WTFString.h:
2741         (WTF::StringLiterals::operator _str): Added.
2742
2743 2018-11-06  Justin Fan  <justin_fan@apple.com>
2744
2745         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
2746         https://bugs.webkit.org/show_bug.cgi?id=191291
2747
2748         Reviewed by Myles Maxfield.
2749
2750         Properly disable WEBGPU on all non-Metal platforms for now.
2751
2752         * wtf/Platform.h:
2753
2754 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
2755
2756         Cache glyph paths and share underline skipping code between all the ports
2757         https://bugs.webkit.org/show_bug.cgi?id=191239
2758
2759         Reviewed by Alex Christensen.
2760
2761         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
2762
2763         * wtf/Platform.h:
2764
2765 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
2766
2767         Enable LLInt on ARMv7/Linux
2768         https://bugs.webkit.org/show_bug.cgi?id=191190
2769
2770         Reviewed by Yusuke Suzuki.
2771
2772         After enabling the new bytecode format in r237547, C_LOOP was
2773         forced on all 32-bit platforms. Now enable LLInt again on
2774         ARMv7-Thumb2/Linux by default.
2775
2776         * wtf/Platform.h:
2777
2778 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
2779
2780         [Win] Use C++14, not C++17
2781         https://bugs.webkit.org/show_bug.cgi?id=191101
2782
2783         Reviewed by Alex Christensen.
2784
2785         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
2786         instead of _MSC_FULL_VER.
2787
2788 2018-11-02  Justin Fan  <justin_fan@apple.com>
2789
2790         [WebGPU] Experimental prototype for MSL shaders
2791         https://bugs.webkit.org/show_bug.cgi?id=191084
2792
2793         Reviewed by Dean Jackson.
2794
2795         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
2796
2797         * wtf/Platform.h:
2798
2799 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
2800
2801         Replace CommonRandom SPI with API
2802         https://bugs.webkit.org/show_bug.cgi?id=191178
2803         <rdar://problem/45722391>
2804
2805         Reviewed by Brent Fulgham.
2806
2807         * WTF.xcodeproj/project.pbxproj:
2808         * wtf/CMakeLists.txt:
2809         * wtf/RandomDevice.cpp:
2810         (WTF::RandomDevice::cryptographicallyRandomValues):
2811         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
2812
2813 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
2814
2815         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
2816         https://bugs.webkit.org/show_bug.cgi?id=189693
2817
2818         Reviewed by Yusuke Suzuki.
2819
2820         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
2821         * wtf/CMakeLists.txt: Ditto.
2822         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
2823         * wtf/text/StringImpl.cpp: Ditto.
2824         * wtf/text/StringView.cpp: Ditto.
2825         * wtf/text/WTFString.cpp: Ditto.
2826         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
2827         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
2828
2829 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
2830
2831         [PlayStation] Enable JavaScriptCore
2832         https://bugs.webkit.org/show_bug.cgi?id=191072
2833
2834         Reviewed by Brent Fulgham.
2835
2836         Add platform files for the PlayStation port.
2837
2838         * wtf/PlatformPlayStation.cmake: Added.
2839
2840 2018-10-30  David Kilzer  <ddkilzer@apple.com>
2841
2842         XSLTProcessor should limit max transform depth
2843         <https://webkit.org/b/191075>
2844         <rdar://problem/45531453>
2845
2846         Reviewed by Alex Christensen.
2847
2848         * wtf/cocoa/SoftLinking.h:
2849         (SOFT_LINK_VARIABLE_FOR_HEADER):
2850         (SOFT_LINK_VARIABLE_FOR_SOURCE):
2851         - Add macros for non-constant global variables.
2852
2853 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
2854
2855         Clean up some obsolete MAX_ALLOWED macros
2856         https://bugs.webkit.org/show_bug.cgi?id=190916
2857
2858         Reviewed by Tim Horton.
2859
2860         * WTF.xcodeproj/project.pbxproj:
2861         * wtf/PlatformMac.cmake:
2862         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
2863
2864 2018-10-29  Mark Lam  <mark.lam@apple.com>
2865
2866         Correctly detect string overflow when using the 'Function' constructor.
2867         https://bugs.webkit.org/show_bug.cgi?id=184883
2868         <rdar://problem/36320331>
2869
2870         Reviewed by Saam Barati.
2871
2872         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
2873            a. StringBuilder::OverflowHandler::CrashOnOverflow.
2874            b. StringBuilder::OverflowHandler::RecordOverflow.
2875
2876            CrashOnOverflow will crash the moment an overflow or failure to allocate
2877            memory is detected.
2878
2879            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
2880            overflow or failure to allocate memory is detected.  However, if the user
2881            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
2882            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
2883            will crash regardless because these methods can only meaningfully do their
2884            work and return a result if and only if the builder has not overflowed.
2885
2886            By default, the StringBuilder crashes on overflow (the old behavior) unless it
2887            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
2888            enum.
2889
2890            Design note:
2891
2892            The StringBuilder can only be put in 1 of the 2 modes at the time of
2893            construction.  This means that we could have implemented it as a template
2894            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
2895            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
2896
2897            However, I was not able to get clang to export the explicitly instantiated
2898            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
2899            Since the StringBuilder is a transient object (not stored for a long time on
2900            the heap), and the runtime check of the boolean is not that costly compared
2901            to other work that StringBuilder routinely does (e.g. memcpy), using the
2902            new ConditionalCrashOnOverflow (which does a runtime check to determine to
2903            crash or not on overflow) is fine.
2904
2905            When clang is able to export explicitly instantiated template methods, we can
2906            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
2907            See https://bugs.webkit.org/show_bug.cgi?id=191050.
2908
2909         To support the above, we also did:
2910
2911         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
2912            fail without crashing.  This also meant that ...
2913
2914         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
2915            FastMalloc, and bmalloc (and related peers) to enable this.
2916
2917         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
2918            like CrashOnOverflow or RecordOverflow.
2919
2920         * wtf/CheckedArithmetic.h:
2921         (WTF::ConditionalCrashOnOverflow::overflowed):
2922         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
2923         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
2924         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
2925         (WTF::ConditionalCrashOnOverflow::clearOverflow):
2926         (WTF::ConditionalCrashOnOverflow::crash):
2927         (WTF::RecordOverflow::overflowed):
2928         (WTF::Checked::unsafeGet const):
2929         * wtf/FastMalloc.cpp:
2930         (WTF::tryFastRealloc):
2931         * wtf/FastMalloc.h:
2932         * wtf/text/StringBuilder.cpp:
2933         (WTF::expandedCapacity):
2934         (WTF::StringBuilder::reifyString const):
2935         (WTF::StringBuilder::resize):
2936         (WTF::StringBuilder::allocateBuffer):
2937         (WTF::StringBuilder::allocateBufferUpConvert):
2938         (WTF::StringBuilder::reallocateBuffer<LChar>):
2939         (WTF::StringBuilder::reallocateBuffer<UChar>):
2940         (WTF::StringBuilder::reserveCapacity):
2941         (WTF::StringBuilder::appendUninitialized):
2942         (WTF::StringBuilder::appendUninitializedSlow):
2943         (WTF::StringBuilder::append):
2944         (WTF::StringBuilder::canShrink const):
2945         (WTF::StringBuilder::shrinkToFit):
2946         * wtf/text/StringBuilder.h:
2947         (WTF::StringBuilder::StringBuilder):
2948         (WTF::StringBuilder::didOverflow):
2949         (WTF::StringBuilder::hasOverflowed const):
2950         (WTF::StringBuilder::crashesOnOverflow const):
2951         (WTF::StringBuilder::append):
2952         (WTF::StringBuilder::toString):
2953         (WTF::StringBuilder::toStringPreserveCapacity const):
2954         (WTF::StringBuilder::toAtomicString const):
2955         (WTF::StringBuilder::length const):
2956         (WTF::StringBuilder::capacity const):
2957         (WTF::StringBuilder::operator[] const):
2958         (WTF::StringBuilder::swap):
2959         (WTF::StringBuilder::getBufferCharacters<UChar>):
2960         * wtf/text/StringBuilderJSON.cpp:
2961         (WTF::StringBuilder::appendQuotedJSONString):
2962         * wtf/text/StringImpl.cpp:
2963         (WTF::StringImpl::reallocateInternal):
2964         (WTF::StringImpl::reallocate):
2965         (WTF::StringImpl::tryReallocate):
2966         * wtf/text/StringImpl.h:
2967
2968 2018-10-29  Tim Horton  <timothy_horton@apple.com>
2969
2970         Modernize WebKit nibs and lprojs for localization's sake
2971         https://bugs.webkit.org/show_bug.cgi?id=190911
2972         <rdar://problem/45349466>
2973
2974         Reviewed by Dan Bernstein.
2975
2976         * WTF.xcodeproj/project.pbxproj:
2977         English->en
2978
2979 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
2980
2981         New bytecode format for JSC
2982         https://bugs.webkit.org/show_bug.cgi?id=187373
2983         <rdar://problem/44186758>
2984
2985         Reviewed by Filip Pizlo.
2986
2987         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
2988         a macro was passed multiple arguments
2989         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
2990         * wtf/Vector.h:
2991         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
2992
2993 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
2994
2995         HashMap should support selecting a random entry
2996         https://bugs.webkit.org/show_bug.cgi?id=190814
2997
2998         Reviewed by Ryosuke Niwa.
2999
3000         * wtf/HashTable.h:
3001         (WTF::HashTable::random):
3002         (WTF::HashTable::random const): Merge the empty and deleted checks, and
3003         use more idiomatic addressing.
3004
3005 2018-10-26  Commit Queue  <commit-queue@webkit.org>
3006
3007         Unreviewed, rolling out r237479 and r237484.
3008         https://bugs.webkit.org/show_bug.cgi?id=190978
3009
3010         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
3011
3012         Reverted changesets:
3013
3014         "New bytecode format for JSC"
3015         https://bugs.webkit.org/show_bug.cgi?id=187373
3016         https://trac.webkit.org/changeset/237479
3017
3018         "Gardening: Build fix after r237479."
3019         https://bugs.webkit.org/show_bug.cgi?id=187373
3020         https://trac.webkit.org/changeset/237484
3021
3022 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
3023
3024         New bytecode format for JSC
3025         https://bugs.webkit.org/show_bug.cgi?id=187373
3026         <rdar://problem/44186758>
3027
3028         Reviewed by Filip Pizlo.
3029
3030         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
3031         a macro was passed multiple arguments
3032         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
3033         * wtf/Vector.h:
3034         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
3035
3036 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
3037
3038         HashMap should support selecting a random entry
3039         https://bugs.webkit.org/show_bug.cgi?id=190814
3040
3041         Reviewed by Antti Koivisto.
3042
3043         * wtf/HashTable.h:
3044         (WTF::HashTable::random):
3045         (WTF::HashTable::random const): Draw a new random bucket any time we
3046         have a miss, to avoid bias caused by lopsided tables.
3047
3048 2018-10-26  Antti Koivisto  <antti@apple.com>
3049
3050         hashSet.remove(hashSet.random()) doesn't build
3051         https://bugs.webkit.org/show_bug.cgi?id=190953
3052
3053         Reviewed by Chris Dumez.
3054
3055         * wtf/HashSet.h:
3056
3057         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
3058
3059         * wtf/HashTable.h:
3060         (WTF::HashTable::random const):
3061
3062         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
3063
3064 2018-10-26  Alicia Boya García  <aboya@igalia.com>
3065
3066         [MSE][WTF][Media] Invalid MediaTime should be falsy
3067         https://bugs.webkit.org/show_bug.cgi?id=190893
3068
3069         Reviewed by Jer Noble.
3070
3071         This patch modifies the definition of MediaTime so that invalid times
3072         are evaluated to false in the context of a boolean expression.
3073
3074         * wtf/MediaTime.cpp:
3075         (WTF::MediaTime::operator! const):
3076         (WTF::MediaTime::operator bool const):
3077
3078 2018-10-26  Keith Miller  <keith_miller@apple.com>
3079
3080         Some internal projects include wtf headers and build with C++11
3081         https://bugs.webkit.org/show_bug.cgi?id=190791
3082
3083         Reviewed by Alexey Proskuryakov.
3084
3085         C++11 doesn't support constexpr functions that contain
3086         statements. This patch removes getLSBSet set from builds before
3087         C++14 to avoid this for now.
3088
3089         * wtf/MathExtras.h:
3090         (getLSBSet):
3091
3092 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
3093
3094         Cleanup: inline constexpr is redundant as constexpr implies inline
3095         https://bugs.webkit.org/show_bug.cgi?id=190819
3096
3097         Reviewed by Mark Lam.
3098
3099         * wtf/Bitmap.h:
3100         (WTF::WordType>::Bitmap):
3101         * wtf/LEBDecoder.h:
3102         (WTF::LEBDecoder::maxByteLength):
3103         * wtf/MathExtras.h:
3104         (defaultMinimumForClamp):
3105         (defaultMaximumForClamp):
3106         (clampToAccepting64):
3107         (isLessThan):
3108         (isLessThanEqual):
3109         (isGreaterThan):
3110         (isGreaterThanEqual):
3111         (WTF::roundUpToPowerOfTwo):
3112         (WTF::maskForSize):
3113         * wtf/Optional.h:
3114         * wtf/PtrTag.h:
3115         (WTF::tagCodePtr):
3116         (WTF::untagCodePtr):
3117         (WTF::retagCodePtr):
3118         (WTF::removeCodePtrTag):
3119         * wtf/StdLibExtras.h:
3120         (WTF::roundUpToMultipleOf):
3121         * wtf/Variant.h:
3122         (WTF::operator==):
3123         (WTF::operator!=):
3124         (WTF::operator>=):
3125         (WTF::operator<=):
3126         (WTF::operator>):
3127         (WTF::operator<):
3128         * wtf/text/StringImpl.h:
3129         (WTF::StringImplShape::StringImplShape):
3130         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
3131
3132 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
3133
3134         HashMap should support selecting a random entry
3135         https://bugs.webkit.org/show_bug.cgi?id=190814
3136
3137         Reviewed by Antti Koivisto.
3138
3139         In some cases, remove(begin()) is not quite good enough as a random
3140         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
3141         So, let's support real random eviction.
3142
3143         (And by "real" I mean "pseudo".)
3144
3145         * wtf/HashCountedSet.h:
3146         * wtf/HashMap.h:
3147         * wtf/HashSet.h:
3148         * wtf/ListHashSet.h:
3149         (WTF::ListHashSet::random):
3150         (WTF::ListHashSet::random const):
3151         * wtf/LoggingHashMap.h:
3152         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
3153
3154         * wtf/HashTable.h:
3155         (WTF::HashTable::random):
3156         (WTF::HashTable::random const): Implement the random() iterator.
3157         makeIterator() already supports starting from any bucket, so this is
3158         pretty easy.
3159
3160         In the subtle case where we select end(), we choose to wrap around and
3161         return begin(). We expect that clients don't really think of the end()
3162         bucket as being in the domain of the random search. Also, we don't want
3163         to annoy clients who know their tables are non-empty with needless
3164         checks for end().
3165
3166         * wtf/RandomNumber.cpp:
3167         (WTF::weakRandomUint32):
3168         * wtf/RandomNumber.h: Added a free function for weak random numbers so
3169         that clients that want cheap random numbers aren't required to allocate
3170         storage for a WeakRandom generator.
3171
3172 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
3173
3174         Turn on Conic Gradients
3175         https://bugs.webkit.org/show_bug.cgi?id=190810
3176
3177         Reviewed by Tim Horton.
3178
3179         * wtf/FeatureDefines.h:
3180
3181 2018-10-24  Christopher Reid  <chris.reid@sony.com>
3182
3183         [Win] Add function call name information to stack traces
3184         https://bugs.webkit.org/show_bug.cgi?id=190761
3185
3186         Reviewed by Fujii Hironori.
3187
3188         Add symbol information to stack traces using dbghelp.dll
3189         This library will use symbols files from these sources:
3190             - The current working directory
3191             - The directory containing the application's executable
3192             - _NT_SYMBOL_PATH environment variable
3193             - _NT_ALTERNATE_SYMBOL_PATH environment variable
3194
3195         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
3196         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
3197         can still attempt to call the library at the same time as WebKit.
3198
3199         * wtf/CMakeLists.txt:
3200         * wtf/PlatformWin.cmake:
3201         * wtf/StackTrace.cpp:
3202         * wtf/win/DbgHelperWin.cpp: Added.
3203         * wtf/win/DbgHelperWin.h: Added.
3204
3205 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
3206
3207         Really prevent PLATFORM(IOS) from being used
3208         https://bugs.webkit.org/show_bug.cgi?id=190813
3209
3210         Reviewed by Tim Horton.
3211
3212         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
3213
3214 2018-10-22  Chris Dumez  <cdumez@apple.com>
3215
3216         Deque's contains() and findIf() should be const
3217         https://bugs.webkit.org/show_bug.cgi?id=190796
3218
3219         Reviewed by Antti Koivisto.
3220
3221         Deque's contains() and findIf() should be const as they do not modify the container.
3222
3223         * wtf/Deque.h:
3224         (WTF::inlineCapacity>::findIf):
3225         (WTF::inlineCapacity>::findIf const):
3226         (WTF::inlineCapacity>::contains const):
3227         (WTF::inlineCapacity>::contains): Deleted.
3228
3229 2018-10-18  Alicia Boya García  <aboya@igalia.com>
3230
3231         [Media] Use nanoseconds as MaximumTimeScale
3232         https://bugs.webkit.org/show_bug.cgi?id=190631
3233
3234         1e9 is a much more useful timescale than the previous one 2^31-1.
3235         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3236         common among some formats like WebM and frameworks like GStreamer
3237         where base 10 timescale is common... and it's those big timescales the
3238         ones that are usually scaled up to MaximumTimeScale.
3239
3240         Reviewed by Jer Noble.
3241
3242         * wtf/MediaTime.cpp:
3243
3244 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3245
3246         Remove PLATFORM(IOS) for now
3247         https://bugs.webkit.org/show_bug.cgi?id=190737
3248
3249         Reviewed by Tim Horton.
3250
3251         * wtf/Platform.h:
3252
3253 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
3254
3255         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
3256         https://bugs.webkit.org/show_bug.cgi?id=190729
3257
3258         Reviewed by Tim Horton.
3259
3260         * wtf/Assertions.h:
3261         * wtf/FeatureDefines.h:
3262         * wtf/InlineASM.h:
3263         * wtf/MemoryPressureHandler.cpp:
3264         (WTF::thresholdForPolicy):
3265         * wtf/Platform.h:
3266         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3267         (WTF::MemoryPressureHandler::install):
3268         (WTF::MemoryPressureHandler::respondToMemoryPressure):
3269         * wtf/spi/cocoa/NSMapTableSPI.h:
3270         * wtf/spi/darwin/XPCSPI.h:
3271         * wtf/text/StringCommon.h:
3272         * wtf/text/TextBreakIterator.cpp:
3273         * wtf/text/TextBreakIterator.h:
3274         * wtf/unicode/icu/CollatorICU.cpp:
3275         (WTF::copyDefaultLocale):
3276
3277 2018-10-18  Alex Christensen  <achristensen@webkit.org>
3278
3279         Clean up FrameLoader two-state enums
3280         https://bugs.webkit.org/show_bug.cgi?id=190731
3281
3282         Reviewed by Chris Dumez.
3283
3284         * wtf/EnumTraits.h:
3285         (WTF::isValidEnum):
3286
3287 2018-10-17  Commit Queue  <commit-queue@webkit.org>
3288
3289         Unreviewed, rolling out r237208.
3290         https://bugs.webkit.org/show_bug.cgi?id=190691
3291
3292         Caused the API test that was changed to failure continuously
3293         (Requested by Truitt on #webkit).
3294
3295         Reverted changeset:
3296
3297         "[Media] Use nanoseconds as MaximumTimeScale"
3298         https://bugs.webkit.org/show_bug.cgi?id=190631
3299         https://trac.webkit.org/changeset/237208
3300
3301 2018-10-16  Alicia Boya García  <aboya@igalia.com>
3302
3303         [Media] Use nanoseconds as MaximumTimeScale
3304         https://bugs.webkit.org/show_bug.cgi?id=190631
3305
3306         1e9 is a much more useful timescale than the previous one 2^31-1.
3307         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3308         common among some formats like WebM and frameworks like GStreamer
3309         where base 10 timescale is common... and it's those big timescales the
3310         ones that are usually scaled up to MaximumTimeScale.
3311
3312         Reviewed by Jer Noble.
3313
3314         * wtf/MediaTime.cpp:
3315
3316 2018-10-15  Keith Miller  <keith_miller@apple.com>
3317
3318         Support arm64 CPUs with a 32-bit address space
3319         https://bugs.webkit.org/show_bug.cgi?id=190273
3320
3321         Reviewed by Michael Saboff.
3322
3323         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
3324
3325         * wtf/MathExtras.h:
3326         (getLSBSet):
3327         * wtf/Platform.h:
3328
3329 2018-10-15  Timothy Hatcher  <timothy@apple.com>
3330
3331         Add support for prefers-color-scheme media query
3332         https://bugs.webkit.org/show_bug.cgi?id=190499
3333         rdar://problem/45212025
3334
3335         Reviewed by Dean Jackson.
3336
3337         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
3338
3339 2018-10-15  Saam barati  <sbarati@apple.com>
3340
3341         Emit fjcvtzs on ARM64E on Darwin
3342         https://bugs.webkit.org/show_bug.cgi?id=184023
3343
3344         Reviewed by Yusuke Suzuki and Filip Pizlo.
3345
3346         * wtf/Platform.h:
3347
3348 2018-10-15  Alex Christensen  <achristensen@webkit.org>
3349
3350         Use pragma once in WTF
3351         https://bugs.webkit.org/show_bug.cgi?id=190527
3352
3353         Reviewed by Chris Dumez.
3354
3355         We also need to consistently include wtf headers from within wtf so we can build wtf without
3356         symbol redefinition errors from including the copy in Source and the copy in the build directory.
3357
3358         * wtf/ASCIICType.h:
3359         * wtf/Assertions.cpp:
3360         * wtf/Assertions.h:
3361         * wtf/Atomics.h:
3362         * wtf/AutomaticThread.cpp:
3363         * wtf/AutomaticThread.h:
3364         * wtf/BackwardsGraph.h:
3365         * wtf/Bag.h:
3366         * wtf/BagToHashMap.h:
3367         * wtf/BitVector.cpp:
3368         * wtf/BitVector.h:
3369         * wtf/Bitmap.h:
3370         * wtf/BloomFilter.h:
3371         * wtf/Box.h:
3372         * wtf/BubbleSort.h:
3373         * wtf/BumpPointerAllocator.h:
3374         * wtf/ByteOrder.h:
3375         * wtf/CPUTime.cpp:
3376         * wtf/CallbackAggregator.h:
3377         * wtf/CheckedArithmetic.h:
3378         * wtf/CheckedBoolean.h:
3379         * wtf/ClockType.cpp:
3380         * wtf/ClockType.h:
3381         * wtf/CommaPrinter.h:
3382         * wtf/CompilationThread.cpp:
3383         * wtf/CompilationThread.h:
3384         * wtf/Compiler.h:
3385         * wtf/ConcurrentPtrHashSet.cpp:
3386         * wtf/ConcurrentVector.h:
3387         * wtf/Condition.h:
3388         * wtf/CountingLock.cpp:
3389         * wtf/CrossThreadTaskHandler.cpp:
3390         * wtf/CryptographicUtilities.cpp:
3391         * wtf/CryptographicUtilities.h:
3392         * wtf/CryptographicallyRandomNumber.cpp:
3393         * wtf/CryptographicallyRandomNumber.h:
3394         * wtf/CurrentTime.cpp:
3395         * wtf/DataLog.cpp:
3396         * wtf/DataLog.h:
3397         * wtf/DateMath.cpp:
3398         * wtf/DateMath.h:
3399         * wtf/DecimalNumber.cpp:
3400         * wtf/DecimalNumber.h:
3401         * wtf/Deque.h:
3402         * wtf/DisallowCType.h:
3403         * wtf/Dominators.h:
3404         * wtf/DoublyLinkedList.h:
3405         * wtf/FastBitVector.cpp:
3406         * wtf/FastMalloc.cpp:
3407         * wtf/FastMalloc.h:
3408         * wtf/FeatureDefines.h:
3409         * wtf/FilePrintStream.cpp:
3410         * wtf/FilePrintStream.h:
3411         * wtf/FlipBytes.h:
3412         * wtf/FunctionDispatcher.cpp:
3413         * wtf/FunctionDispatcher.h:
3414         * wtf/GetPtr.h:
3415         * wtf/Gigacage.cpp:
3416         * wtf/GlobalVersion.cpp:
3417         * wtf/GraphNodeWorklist.h:
3418         * wtf/GregorianDateTime.cpp:
3419         * wtf/GregorianDateTime.h:
3420         * wtf/HashFunctions.h:
3421         * wtf/HashMap.h:
3422         * wtf/HashMethod.h:
3423         * wtf/HashSet.h:
3424         * wtf/HashTable.cpp:
3425         * wtf/HashTraits.h:
3426         * wtf/Indenter.h:
3427         * wtf/IndexSparseSet.h:
3428         * wtf/InlineASM.h:
3429         * wtf/Insertion.h:
3430         * wtf/IteratorAdaptors.h:
3431         * wtf/IteratorRange.h:
3432         * wtf/JSONValues.cpp:
3433         * wtf/JSValueMalloc.cpp:
3434         * wtf/LEBDecoder.h:
3435         * wtf/Language.cpp:
3436         * wtf/ListDump.h:
3437         * wtf/Lock.cpp:
3438         * wtf/Lock.h:
3439         * wtf/LockAlgorithm.h:
3440         * wtf/LockedPrintStream.cpp:
3441         * wtf/Locker.h:
3442         * wtf/MD5.cpp:
3443         * wtf/MD5.h:
3444         * wtf/MainThread.cpp:
3445         * wtf/MainThread.h:
3446         * wtf/MallocPtr.h:
3447         * wtf/MathExtras.h:
3448         * wtf/MediaTime.cpp:
3449         * wtf/MediaTime.h:
3450         * wtf/MemoryPressureHandler.cpp:
3451         * wtf/MessageQueue.h:
3452         * wtf/MetaAllocator.cpp:
3453         * wtf/MetaAllocator.h:
3454         * wtf/MetaAllocatorHandle.h:
3455         * wtf/MonotonicTime.cpp:
3456         * wtf/MonotonicTime.h:
3457         * wtf/NakedPtr.h:
3458         * wtf/NoLock.h:
3459         * wtf/NoTailCalls.h:
3460         * wtf/Noncopyable.h:
3461         * wtf/NumberOfCores.cpp:
3462         * wtf/NumberOfCores.h:
3463         * wtf/OSAllocator.h:
3464         * wtf/OSAllocatorPosix.cpp:
3465         * wtf/OSRandomSource.cpp:
3466         * wtf/OSRandomSource.h:
3467         * wtf/ObjcRuntimeExtras.h:
3468         * wtf/OrderMaker.h:
3469         * wtf/PackedIntVector.h:
3470         * wtf/PageAllocation.h:
3471         * wtf/PageBlock.cpp:
3472         * wtf/PageBlock.h:
3473         * wtf/PageReservation.h:
3474         * wtf/ParallelHelperPool.cpp:
3475         * wtf/ParallelHelperPool.h:
3476         * wtf/ParallelJobs.h:
3477         * wtf/ParallelJobsLibdispatch.h:
3478         * wtf/ParallelVectorIterator.h:
3479         * wtf/ParkingLot.cpp:
3480         * wtf/ParkingLot.h:
3481         * wtf/Platform.h:
3482         * wtf/PointerComparison.h:
3483         * wtf/Poisoned.cpp:
3484         * wtf/PrintStream.cpp:
3485         * wtf/PrintStream.h:
3486         * wtf/ProcessID.h:
3487         * wtf/ProcessPrivilege.cpp:
3488         * wtf/RAMSize.cpp:
3489         * wtf/RAMSize.h:
3490         * wtf/RandomDevice.cpp:
3491         * wtf/RandomNumber.cpp:
3492         * wtf/RandomNumber.h:
3493         * wtf/RandomNumberSeed.h:
3494         * wtf/RangeSet.h:
3495         * wtf/RawPointer.h:
3496         * wtf/ReadWriteLock.cpp:
3497         * wtf/RedBlackTree.h:
3498         * wtf/Ref.h:
3499         * wtf/RefCountedArray.h:
3500         * wtf/RefCountedLeakCounter.cpp:
3501         * wtf/RefCountedLeakCounter.h:
3502         * wtf/RefCounter.h:
3503         * wtf/RefPtr.h:
3504         * wtf/RetainPtr.h:
3505         * wtf/RunLoop.cpp:
3506         * wtf/RunLoop.h:
3507         * wtf/RunLoopTimer.h:
3508         * wtf/RunLoopTimerCF.cpp:
3509         * wtf/SHA1.cpp:
3510         * wtf/SHA1.h:
3511         * wtf/SaturatedArithmetic.h:
3512         (saturatedSubtraction):
3513         * wtf/SchedulePair.h:
3514         * wtf/SchedulePairCF.cpp:
3515         * wtf/SchedulePairMac.mm:
3516         * wtf/ScopedLambda.h:
3517         * wtf/Seconds.cpp:
3518         * wtf/Seconds.h:
3519         * wtf/SegmentedVector.h:
3520         * wtf/SentinelLinkedList.h:
3521         * wtf/SharedTask.h:
3522         * wtf/SimpleStats.h:
3523         * wtf/SingleRootGraph.h:
3524         * wtf/SinglyLinkedList.h:
3525         * wtf/SixCharacterHash.cpp:
3526         * wtf/SixCharacterHash.h:
3527         * wtf/SmallPtrSet.h:
3528         * wtf/Spectrum.h:
3529         * wtf/StackBounds.cpp:
3530         * wtf/StackBounds.h:
3531         * wtf/StackStats.cpp:
3532         * wtf/StackStats.h:
3533         * wtf/StackTrace.cpp:
3534         * wtf/StdLibExtras.h:
3535         * wtf/StreamBuffer.h:
3536         * wtf/StringHashDumpContext.h:
3537         * wtf/StringPrintStream.cpp:
3538         * wtf/StringPrintStream.h:
3539         * wtf/ThreadGroup.cpp:
3540         * wtf/ThreadMessage.cpp:
3541         * wtf/ThreadSpecific.h:
3542         * wtf/Threading.cpp:
3543         * wtf/Threading.h:
3544         * wtf/ThreadingPrimitives.h:
3545         * wtf/ThreadingPthreads.cpp:
3546         * wtf/TimeWithDynamicClockType.cpp:
3547         * wtf/TimeWithDynamicClockType.h:
3548         * wtf/TimingScope.cpp:
3549         * wtf/TinyLRUCache.h:
3550         * wtf/TinyPtrSet.h:
3551         * wtf/TriState.h:
3552         * wtf/TypeCasts.h:
3553         * wtf/UUID.cpp:
3554         * wtf/UnionFind.h:
3555         * wtf/VMTags.h:
3556         * wtf/ValueCheck.h:
3557         * wtf/Vector.h:
3558         * wtf/VectorTraits.h:
3559         * wtf/WallTime.cpp:
3560         * wtf/WallTime.h:
3561         * wtf/WeakPtr.h:
3562         * wtf/WeakRandom.h:
3563         * wtf/WordLock.cpp:
3564         * wtf/WordLock.h:
3565         * wtf/WorkQueue.cpp:
3566         * wtf/WorkQueue.h:
3567         * wtf/WorkerPool.cpp:
3568         * wtf/cf/LanguageCF.cpp:
3569         * wtf/cf/RunLoopCF.cpp:
3570         * wtf/cocoa/Entitlements.mm:
3571         * wtf/cocoa/MachSendRight.cpp:
3572         * wtf/cocoa/MainThreadCocoa.mm:
3573         * wtf/cocoa/MemoryFootprintCocoa.cpp:
3574         * wtf/cocoa/WorkQueueCocoa.cpp:
3575         * wtf/dtoa.cpp:
3576         * wtf/dtoa.h:
3577         * wtf/ios/WebCoreThread.cpp:
3578         * wtf/ios/WebCoreThread.h:
3579         * wtf/mac/AppKitCompatibilityDeclarations.h:
3580         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3581         * wtf/mbmalloc.cpp:
3582         * wtf/persistence/PersistentCoders.cpp:
3583         * wtf/persistence/PersistentDecoder.cpp:
3584         * wtf/persistence/PersistentEncoder.cpp:
3585         * wtf/spi/cf/CFBundleSPI.h:
3586         * wtf/spi/darwin/CommonCryptoSPI.h:
3587         * wtf/text/ASCIIFastPath.h:
3588         * wtf/text/ASCIILiteral.cpp:
3589         * wtf/text/AtomicString.cpp:
3590         * wtf/text/AtomicString.h:
3591         * wtf/text/AtomicStringHash.h:
3592         * wtf/text/AtomicStringImpl.cpp:
3593         * wtf/text/AtomicStringImpl.h:
3594         * wtf/text/AtomicStringTable.cpp:
3595         * wtf/text/AtomicStringTable.h:
3596         * wtf/text/Base64.cpp:
3597         * wtf/text/CString.cpp:
3598         * wtf/text/CString.h:
3599         * wtf/text/ConversionMode.h:
3600         * wtf/text/ExternalStringImpl.cpp:
3601         * wtf/text/IntegerToStringConversion.h:
3602         * wtf/text/LChar.h:
3603         * wtf/text/LineEnding.cpp:
3604         * wtf/text/StringBuffer.h:
3605         * wtf/text/StringBuilder.cpp:
3606         * wtf/text/StringBuilder.h:
3607         * wtf/text/StringBuilderJSON.cpp:
3608         * wtf/text/StringCommon.h:
3609         * wtf/text/StringConcatenate.h:
3610         * wtf/text/StringHash.h:
3611         * wtf/text/StringImpl.cpp:
3612         * wtf/text/StringImpl.h:
3613         * wtf/text/StringOperators.h:
3614         * wtf/text/StringView.cpp:
3615         * wtf/text/StringView.h:
3616         * wtf/text/SymbolImpl.cpp:
3617         * wtf/text/SymbolRegistry.cpp:
3618         * wtf/text/SymbolRegistry.h: