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