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