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