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