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