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