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