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