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