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