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