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