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