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