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