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