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