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