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