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