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