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