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