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