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