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