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