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