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