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