3a31637b522653fca7e7f5e41557bdd4025acae3
[WebKit-https.git] / Source / WTF / ChangeLog
1 2020-05-10  Darin Adler  <darin@apple.com>
2
3         Remove now-unneeded HAVE(CORE_VIDEO)
4         https://bugs.webkit.org/show_bug.cgi?id=211677
5
6         Reviewed by Dan Bernstein.
7
8         * wtf/PlatformHave.h: Remove HAVE_CORE_VIDEO.
9
10 2020-05-09  Darin Adler  <darin@apple.com>
11
12         Delete some dead code in WorkQueueCocoa.cpp
13         https://bugs.webkit.org/show_bug.cgi?id=211676
14
15         Reviewed by Chris Dumez.
16
17         * wtf/cocoa/WorkQueueCocoa.cpp:
18         (WTF::targetQueueForQOSClass): Deleted.
19
20 2020-05-09  Darin Adler  <darin@apple.com>
21
22         Add iterator checking to ListHashSet
23         https://bugs.webkit.org/show_bug.cgi?id=211669
24
25         Reviewed by Anders Carlsson.
26
27         HashSet and HashMap have iterator checking in debug builds.
28         Add similar checking to ListHashSet, controlled by the same
29         macro, CHECK_HASHTABLE_ITERATORS. Use WeakPtr to make the
30         implementation simple.
31
32         * wtf/ListHashSet.h: Make ListHashSet and ListHashSetNode derive
33         from CanMakeWeakPtr. Add m_weakSet and m_weakPosition members to
34         ListHashSetConstIterator, and assert their values at the appropriate
35         times so we will get a breakpoint or crash.
36
37 2020-05-08  Darin Adler  <darin@apple.com>
38
39         Streamline MarkupAccumulator to improve efficiency a bit
40         https://bugs.webkit.org/show_bug.cgi?id=211656
41
42         Reviewed by Anders Carlsson.
43
44         * wtf/text/StringBuilder.cpp:
45         (WTF::StringBuilder::isAllASCII const): Added.
46         * wtf/text/StringBuilder.h: Added isAllASCII.
47
48 2020-05-09  David Quesada  <david_quesada@apple.com>
49
50         Remove HAVE_UI_SCROLL_VIEW_INDICATOR_FLASHING_SPI
51         https://bugs.webkit.org/show_bug.cgi?id=211662
52         rdar://problem/63048713
53
54         Reviewed by Darin Adler.
55
56         * wtf/PlatformHave.h:
57
58 2020-05-08  Basuke Suzuki  <basuke.suzuki@sony.com>
59
60         [WTF] Share Linux's MemoryPressureHandler among other Unix ports
61         https://bugs.webkit.org/show_bug.cgi?id=208955
62
63         Reviewed by Yusuke Suzuki.
64
65         Renamed MemoryPressureHandlerLinux to MemoryPressureHandlerUnix and added FreeBSD implementation
66         of memory status functions. Change PlayStation port to use it from generic implementation.
67
68         * wtf/MemoryPressureHandler.cpp:
69         (WTF::MemoryPressureHandler::MemoryPressureHandler):
70         * wtf/MemoryPressureHandler.h:
71         * wtf/PlatformGTK.cmake:
72         * wtf/PlatformJSCOnly.cmake:
73         * wtf/PlatformPlayStation.cmake:
74         * wtf/PlatformWPE.cmake:
75         * wtf/generic/MemoryFootprintGeneric.cpp:
76         (WTF::memoryFootprint):
77         * wtf/unix/MemoryPressureHandlerUnix.cpp: Renamed from Source\WTF\wtf\linux\MemoryPressureHandlerLinux.cpp.
78         (WTF::processMemoryUsage):
79
80 2020-05-08  Darin Adler  <darin@apple.com>
81
82         Remove now-unneeded HAVE(AVFOUNDATION_LOADER_DELEGATE)
83         https://bugs.webkit.org/show_bug.cgi?id=211646
84
85         Reviewed by Eric Carlson.
86
87         * wtf/PlatformHave.h: Don't set HAVE_AVFOUNDATION_LOADER_DELEGATE.
88
89 2020-05-08  Don Olmstead  <don.olmstead@sony.com>
90
91         [clang-tidy] Run modernize-use-nullptr over WTF
92         https://bugs.webkit.org/show_bug.cgi?id=211628
93
94         Reviewed by Yusuke Suzuki.
95
96         Use the fix option in clang-tidy to ensure nullptr is being used across WTF.
97
98         * wtf/Assertions.cpp:
99         * wtf/BumpPointerAllocator.h:
100         (WTF::BumpPointerPool::BumpPointerPool):
101         (WTF::BumpPointerPool::create):
102         (WTF::BumpPointerAllocator::BumpPointerAllocator):
103         * wtf/DataLog.cpp:
104         (WTF::setDataFile):
105         * wtf/DateMath.cpp:
106         (WTF::parseES5DatePortion):
107         (WTF::parseES5TimePortion):
108         * wtf/FastMalloc.cpp:
109         (WTF::fastZeroedMalloc):
110         (WTF::fastStrDup):
111         (WTF::tryFastZeroedMalloc):
112         (WTF::isFastMallocEnabled):
113         (WTF::fastMallocGoodSize):
114         (WTF::fastAlignedMalloc):
115         (WTF::tryFastAlignedMalloc):
116         (WTF::fastAlignedFree):
117         (WTF::tryFastMalloc):
118         (WTF::fastMalloc):
119         (WTF::tryFastCalloc):
120         (WTF::fastCalloc):
121         (WTF::fastFree):
122         (WTF::fastRealloc):
123         (WTF::tryFastRealloc):
124         (WTF::releaseFastMallocFreeMemory):
125         (WTF::releaseFastMallocFreeMemoryForThisThread):
126         (WTF::fastMallocStatistics):
127         (WTF::fastMallocSize):
128         (WTF::fastCommitAlignedMemory):
129         (WTF::fastDecommitAlignedMemory):
130         (WTF::fastEnableMiniMode):
131         (WTF::fastDisableScavenger):
132         (WTF::fastMallocDumpMallocStats):
133         (WTF::AvoidRecordingScope::avoidRecordingCount):
134         (WTF::AvoidRecordingScope::AvoidRecordingScope):
135         (WTF::AvoidRecordingScope::~AvoidRecordingScope):
136         (WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
137         (WTF::MallocCallTracker::singleton):
138         (WTF::MallocCallTracker::MallocCallTracker):
139         (WTF::MallocCallTracker::recordMalloc):
140         (WTF::MallocCallTracker::recordRealloc):
141         (WTF::MallocCallTracker::recordFree):
142         (WTF::MallocCallTracker::dumpStats):
143         * wtf/HashTable.h:
144         (WTF::KeyTraits>::inlineLookup):
145         (WTF::KeyTraits>::lookupForWriting):
146         (WTF::KeyTraits>::fullLookupForWriting):
147         (WTF::KeyTraits>::add):
148         * wtf/MetaAllocator.cpp:
149         (WTF::MetaAllocator::findAndRemoveFreeSpace):
150         * wtf/ParallelJobsGeneric.cpp:
151         * wtf/RandomDevice.cpp:
152         (WTF::RandomDevice::cryptographicallyRandomValues):
153         * wtf/RawPointer.h:
154         (WTF::RawPointer::RawPointer):
155         * wtf/RedBlackTree.h:
156         * wtf/SHA1.cpp:
157         (WTF::SHA1::hexDigest):
158         * wtf/SchedulePair.h:
159         (WTF::SchedulePair::SchedulePair):
160         * wtf/StackTrace.cpp:
161         (WTFGetBacktrace):
162         (WTF::StackTrace::dump const):
163         * wtf/StringExtras.h:
164         (strnstr):
165         * wtf/Variant.h:
166         * wtf/Vector.h:
167         (WTF::VectorBufferBase::deallocateBuffer):
168         (WTF::VectorBufferBase::releaseBuffer):
169         (WTF::VectorBufferBase::VectorBufferBase):
170         * wtf/cf/CFURLExtras.cpp:
171         (WTF::createCFURLFromBuffer):
172         (WTF::getURLBytes):
173         * wtf/cf/CFURLExtras.h:
174         * wtf/cf/FileSystemCF.cpp:
175         (WTF::FileSystem::pathAsURL):
176         * wtf/dtoa/double-conversion.cc:
177         * wtf/dtoa/utils.h:
178         (WTF::double_conversion::BufferReference::BufferReference):
179         * wtf/text/CString.cpp:
180         (WTF::CString::mutableData):
181         * wtf/text/CString.h:
182         * wtf/text/StringBuffer.h:
183         (WTF::StringBuffer::release):
184         * wtf/text/StringImpl.cpp:
185         (WTF::StringImpl::createUninitializedInternal):
186         (WTF::StringImpl::reallocateInternal):
187         * wtf/text/StringImpl.h:
188         (WTF::StringImpl::constructInternal<LChar>):
189         (WTF::StringImpl::constructInternal<UChar>):
190         (WTF::StringImpl::characters<LChar> const):
191         (WTF::StringImpl::characters<UChar> const):
192         (WTF::find):
193         (WTF::reverseFindLineTerminator):
194         (WTF::reverseFind):
195         (WTF::equalIgnoringNullity):
196         (WTF::codePointCompare):
197         (WTF::isSpaceOrNewline):
198         (WTF::lengthOfNullTerminatedString):
199         (WTF::StringImplShape::StringImplShape):
200         (WTF::StringImpl::isolatedCopy const):
201         (WTF::StringImpl::isAllASCII const):
202         (WTF::StringImpl::isAllLatin1 const):
203         (WTF::isAllSpecialCharacters):
204         (WTF::isSpecialCharacter const):
205         (WTF::StringImpl::StringImpl):
206         (WTF::StringImpl::create8BitIfPossible):
207         (WTF::StringImpl::createSubstringSharingImpl):
208         (WTF::StringImpl::createFromLiteral):
209         (WTF::StringImpl::tryCreateUninitialized):
210         (WTF::StringImpl::adopt):
211         (WTF::StringImpl::cost const):
212         (WTF::StringImpl::costDuringGC):
213         (WTF::StringImpl::setIsAtom):
214         (WTF::StringImpl::setHash const):
215         (WTF::StringImpl::ref):
216         (WTF::StringImpl::deref):
217         (WTF::StringImpl::copyCharacters):
218         (WTF::StringImpl::at const):
219         (WTF::StringImpl::allocationSize):
220         (WTF::StringImpl::maxInternalLength):
221         (WTF::StringImpl::tailOffset):
222         (WTF::StringImpl::requiresCopy const):
223         (WTF::StringImpl::tailPointer const):
224         (WTF::StringImpl::tailPointer):
225         (WTF::StringImpl::substringBuffer const):
226         (WTF::StringImpl::substringBuffer):
227         (WTF::StringImpl::assertHashIsCorrect const):
228         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
229         (WTF::StringImpl::StaticStringImpl::operator StringImpl&):
230         (WTF::equalIgnoringASCIICase):
231         (WTF::startsWithLettersIgnoringASCIICase):
232         (WTF::equalLettersIgnoringASCIICase):
233         * wtf/text/TextBreakIterator.cpp:
234         (WTF::initializeIterator):
235         (WTF::setContextAwareTextForIterator):
236         (WTF::openLineBreakIterator):
237         * wtf/text/TextBreakIterator.h:
238         (WTF::LazyLineBreakIterator::get):
239         * wtf/text/WTFString.cpp:
240         (WTF::charactersToFloat):
241         * wtf/text/cf/StringImplCF.cpp:
242         (WTF::StringWrapperCFAllocator::allocate):
243         (WTF::StringWrapperCFAllocator::create):
244         (WTF::StringImpl::createCFString):
245         * wtf/text/icu/UTextProviderLatin1.cpp:
246         (WTF::uTextLatin1Clone):
247         (WTF::openLatin1ContextAwareUTextProvider):
248         * wtf/text/icu/UTextProviderUTF16.cpp:
249         (WTF::openUTF16ContextAwareUTextProvider):
250         * wtf/win/FileSystemWin.cpp:
251         (WTF::FileSystemImpl::makeAllDirectories):
252         (WTF::FileSystemImpl::storageDirectory):
253         (WTF::FileSystemImpl::openTemporaryFile):
254         (WTF::FileSystemImpl::openFile):
255         (WTF::FileSystemImpl::writeToFile):
256         (WTF::FileSystemImpl::readFromFile):
257         (WTF::FileSystemImpl::deleteNonEmptyDirectory):
258         * wtf/win/LanguageWin.cpp:
259         (WTF::localeInfo):
260         * wtf/win/MainThreadWin.cpp:
261         (WTF::initializeMainThreadPlatform):
262         * wtf/win/OSAllocatorWin.cpp:
263         (WTF::OSAllocator::reserveUncommitted):
264         (WTF::OSAllocator::reserveAndCommit):
265         * wtf/win/RunLoopWin.cpp:
266         (WTF::RunLoop::run):
267         (WTF::RunLoop::iterate):
268         (WTF::RunLoop::RunLoop):
269         (WTF::RunLoop::cycle):
270         (WTF::RunLoop::TimerBase::start):
271         * wtf/win/ThreadingWin.cpp:
272         (WTF::Thread::establishHandle):
273
274 2020-05-08  Darin Adler  <darin@apple.com>
275
276         Make callBufferProducingFunction safer to use by adding a compile-time assertion
277         https://bugs.webkit.org/show_bug.cgi?id=211599
278
279         Reviewed by Ross Kirsling.
280
281         * wtf/unicode/icu/ICUHelpers.h:
282         (WTF::CallBufferProducingFunction::argumentTuple): Add a static_assert that
283         checks these are just simple types, aside from the Vector for the buffer.
284         This would have caught the UpconvertedCharacters problem fixed earlier today.
285
286 2020-05-08  Don Olmstead  <don.olmstead@sony.com>
287
288         WTF headers should compile independently
289         https://bugs.webkit.org/show_bug.cgi?id=211608
290
291         Reviewed by Yusuke Suzuki.
292
293         When a WTF header is included on its own within a source file it should compile.
294         These issues were found when working on a tooling build for running static
295         analysis over WTF. Forward declarations were used whenever possible otherwise
296         an include was used.
297
298         Additionally fix some errors found by Clang 10.
299
300         * wtf/AggregateLogger.h:
301         * wtf/CallbackAggregator.h:
302         * wtf/Dominators.h:
303         * wtf/HashIterators.h:
304         * wtf/IndexSparseSet.h:
305         * wtf/LoggingHashMap.h:
306         * wtf/LoggingHashTraits.h:
307         * wtf/RunLoopTimer.h:
308         * wtf/Stopwatch.h:
309         * wtf/Threading.h:
310         * wtf/cf/RunLoopTimerCF.cpp:
311         * wtf/persistence/PersistentCoder.h:
312         * wtf/text/LineBreakIteratorPoolICU.h:
313         * wtf/text/NullTextBreakIterator.h:
314         * wtf/text/StringOperators.h:
315         * wtf/text/StringToIntegerConversion.h:
316         * wtf/text/cf/TextBreakIteratorCF.h:
317         * wtf/text/icu/TextBreakIteratorICU.h:
318         * wtf/text/win/WCharStringExtras.h:
319
320 2020-05-07  Don Olmstead  <don.olmstead@sony.com>
321
322         Remove unused USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
323         https://bugs.webkit.org/show_bug.cgi?id=211582
324
325         Reviewed by Fujii Hironori.
326
327         After r261264 all ports implemented USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR.
328
329         * wtf/PlatformUse.h:
330
331 2020-05-07  Mark Lam  <mark.lam@apple.com>
332
333         Give the DFG and FTL WorkList threads more stack space on ASAN builds.
334         https://bugs.webkit.org/show_bug.cgi?id=211535
335         <rdar://problem/62947884>
336
337         Reviewed by Geoffrey Garen.
338
339         1. Add the ability to set the ThreadType for AutomaticThreads.
340         2. Give ThreadType::Compiler (which currently only used for the DFG anf FTL
341            WorkList threads) a larger stack for OS(DARWIN) on ASAN builds.
342
343            This is needed because ASAN is a memory hungry beast, and we want the ASAN
344            builds to get to exercise the same amount of code a regular build will (instead
345            of failing out early with a stack overflow error).
346
347         * wtf/AutomaticThread.cpp:
348         (WTF::AutomaticThread::AutomaticThread):
349         (WTF::AutomaticThread::start):
350         * wtf/AutomaticThread.h:
351         * wtf/Threading.cpp:
352         (WTF::stackSize):
353         * wtf/Threading.h:
354
355 2020-05-07  Mark Lam  <mark.lam@apple.com>
356
357         Add stack checks to the DFG and FTL bytecode parser.
358         https://bugs.webkit.org/show_bug.cgi?id=211547
359         <rdar://problem/62958880>
360
361         Reviewed by Yusuke Suzuki.
362
363         Added a StackCheck::Scope RAII object to help verify that the default reserved
364         zone size is at least adequate for known work loads.  If this the StackCheck::Scope
365         assertions fail, then we either need more stack checks, or the reserved zone size
366         needs to be increased.
367
368         Note that the assertions are usually only on in Debug builds.  Ideally, we would
369         want to measure the reserved zone size with a Release build.  To do that, we
370         can just set VERIFY_STACK_CHECK_RESERVED_ZONE_SIZE to 1 unconditionally in
371         StackCheck.h and rebuild.
372
373         * wtf/StackCheck.h:
374         (WTF::StackCheck::Scope::Scope):
375         (WTF::StackCheck::Scope::~Scope):
376         (WTF::StackCheck::Scope::isSafeToRecurse):
377         (WTF::StackCheck::StackCheck):
378
379 2020-05-06  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
380
381         [Win] Implement DisplayRefreshMonitor by using RunLoop::Timer
382         https://bugs.webkit.org/show_bug.cgi?id=211431
383
384         Reviewed by Don Olmstead.
385
386         USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR is turned off only for Windows ports.
387         Turn it on, and add DisplayRefreshMonitorWin.
388
389         I'll remove USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR macro in a follow-up patch.
390
391         * wtf/PlatformUse.h:
392
393 2020-05-06  Darin Adler  <darin@apple.com>
394
395         Make a helper for the pattern of ICU functions that may need to be called twice to populate a buffer
396         https://bugs.webkit.org/show_bug.cgi?id=211499
397
398         Reviewed by Ross Kirsling.
399
400         This first cut version is ready to be used in most, but not all, of the places we use the
401         needsToGrowToProduceBuffer function. The places it is not right for yet are ones that have
402         special considerations because of null character termination or destinations that are
403         not a Vector. Later we can refine that further, if we like, and possibly use something
404         similar in call sites that use needsToGrowToProduceCString as well.
405
406         * wtf/unicode/icu/ICUHelpers.h:
407         (WTF::needsToGrowToProduceBuffer): Changed to constexpr, since we can.
408         (WTF::needsToGrowToProduceCString): Ditto.
409         (WTF::CallBufferProducingFunction::findVector): Added. Implementation detail
410         of callBufferProducingFunction.
411         (WTF::CallBufferProducingFunction::argumentTuple): Ditto.
412         (WTF::callBufferProducingFunction): Added.
413
414 2020-05-06  Alex Christensen  <achristensen@webkit.org>
415
416         Reduce IPC overhead for message receiver name and message name to 2 bytes
417         https://bugs.webkit.org/show_bug.cgi?id=211112
418
419         Reviewed by Chris Dumez.
420
421         * wtf/EnumTraits.h:
422
423 2020-05-06  Darin Adler  <darin@apple.com>
424
425         Remove now-unneeded USE(GRAMMAR_CHECKING)
426         https://bugs.webkit.org/show_bug.cgi?id=211452
427
428         Reviewed by Anders Carlsson.
429
430         * wtf/PlatformUse.h: Don't set USE_GRAMMAR_CHECKING.
431
432 2020-05-06  Devin Rousso  <drousso@apple.com>
433
434         ASSERT_WITH_MESSAGE(m_isOwnedByMainThread == isMainThread()) when web inspecting
435         https://bugs.webkit.org/show_bug.cgi?id=203638
436         <rdar://problem/56761893>
437
438         Reviewed by Brian Burg.
439
440         * wtf/Stopwatch.h:
441         (WTF::Stopwatch::elapsedTime const): Added.
442         (WTF::Stopwatch::elapsedTimeSince const): Added.
443         (WTF::Stopwatch::elapsedTime): Deleted.
444         (WTF::Stopwatch::elapsedTimeSince): Deleted.
445
446 2020-05-06  Darin Adler  <darin@apple.com>
447
448         Reduce HAVE(HOSTED_CORE_ANIMATION)
449         https://bugs.webkit.org/show_bug.cgi?id=211423
450
451         Reviewed by Anders Carlsson.
452
453         * wtf/PlatformHave.h: Simplified conditional to just PLATFORM(MAC)
454         for HOSTED_CORE_ANIMATION.
455
456 2020-05-05  Darin Adler  <darin@apple.com>
457
458         Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
459         https://bugs.webkit.org/show_bug.cgi?id=211461
460
461         Reviewed by Eric Carlson.
462
463         * wtf/PlatformHave.h: Don't define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
464
465 2020-05-05  Mark Lam  <mark.lam@apple.com>
466
467         Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
468         https://bugs.webkit.org/show_bug.cgi?id=211328
469         <rdar://problem/62755865>
470
471         Reviewed by Yusuke Suzuki.
472
473         1. Moved the definition of CPURegister and UCPURegister down into WTF.
474            Added CPU(REGISTER64) and CPU(REGISTER32) for determining what size a CPU
475            general purpose register is.
476
477         2. Updated Bitmap so that it will automatically choose the minimal required
478            word size for the number of bits it needs to store.  This means the Bitmap
479            can automatically choose a WordType from uint8_t up to UCPURegister.
480            Previously, the WordType is always uint32_t by default.
481
482            This should improve perf with use of Bitmap on 64-bit platforms.  The size
483            optimization is necessary to prevent bloat on 64-bit platforms which would have
484            resulted if we simply set the default to always be UCPURegister.
485
486         3. Added a check in findRunOfZeros() for handling the edge case where the
487            requested runLength exceeds the bitmapSize.
488
489         4. Fixed a bug in count() that was unnecessarily casting the bits to unsigned
490            instead of just using the Bitmap WordType.  As a result, when using a WordType
491            of uint64_t, it was discarding bits from the count.
492
493         5. Fixed invert() to leave the bits beyond bitmapSize untouched.
494            Fixed isFull() to ignore the bits beyond bitmapSize.
495
496            By fixing invert() to leave those bits as 0, isEmpty() and hash() will
497            continue to work.  Otherwise, inverting those bits will cause isEmpty() to
498            always fail, and hash()'s result may be different for the same set of bit
499            values within bitmapSize.
500
501            isFull(), on the other hand, checks for set bits in the words.  Since there
502            may be 0 valued bits beyond bitmapSize, isFull() needs to be fixed to ignore
503            those.
504
505         * WTF.xcodeproj/project.pbxproj:
506         * wtf/Bitmap.h:
507         (WTF::WordType>::invert):
508         (WTF::WordType>::findRunOfZeros const):
509         (WTF::WordType>::count const):
510         (WTF::WordType>::isFull const):
511         * wtf/CMakeLists.txt:
512         * wtf/PlatformCPU.h:
513         * wtf/PlatformUse.h:
514         * wtf/StdIntExtras.h: Copied from Source/WTF/wtf/StdIntExtras.h.
515
516 2020-05-05  Darin Adler  <darin@apple.com>
517
518         Remove now-unneeded USE(COREMEDIA) and USE(VIDEOTOOLBOX)
519         https://bugs.webkit.org/show_bug.cgi?id=211437
520
521         Reviewed by Eric Carlson.
522
523         * wtf/PlatformUse.h: Don't set USE_COREMEDIA or USE_VIDEOTOOLBOX.
524
525 2020-05-05  Darin Adler  <darin@apple.com>
526
527         Remove now-uneeded HAVE macros related to PDF
528         https://bugs.webkit.org/show_bug.cgi?id=211435
529
530         Reviewed by Anders Carlsson.
531
532         * wtf/PlatformHave.h: Remove HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING,
533         always set for iOS, HAVE_LEGACY_PDF_SUPPORT, always set for all Cocoa
534         platforms, and HAVE_PDF_HOST_VIEW_CONTROLLER_WITH_BACKGROUND_COLOR,
535         always set for iOS family platforms.
536
537 2020-05-05  Darin Adler  <darin@apple.com>
538
539         Remove now-unneeded HAVE(DISALLOWABLE_USER_INSTALLED_FONTS)
540         https://bugs.webkit.org/show_bug.cgi?id=211428
541
542         Reviewed by Anders Carlsson.
543
544         * wtf/PlatformHave.h: Don't define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS.
545
546 2020-05-04  Darin Adler  <darin@apple.com>
547
548         [Mac] Remove __MAC_OS_X_VERSION_MIN_REQUIRED checks for versions older than 10.14
549         https://bugs.webkit.org/show_bug.cgi?id=211420
550
551         Reviewed by Alex Christensen.
552
553         * WTF.xcodeproj/project.pbxproj: Removed DeprecatedSymbolsUsedBySafari.mm.
554
555         * wtf/PlatformEnableCocoa.h: Removed __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
556         * wtf/PlatformHave.h: Ditto. This leaves behind some cases of
557         "PLATFORM(MAC) || PLATFORM(IOS)" that should probably be turned on for watchOS
558         and tvOS too, eventually. Also "PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST)".
559
560         * wtf/PlatformMac.cmake: Removed DeprecatedSymbolsUsedBySafari.mm.
561
562         * wtf/PlatformUse.h: Removed __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
563
564         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: Removed.
565
566         * wtf/spi/darwin/ProcessMemoryFootprint.h: Removed
567         __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
568
569 2020-05-04  Darin Adler  <darin@apple.com>
570
571         Remove now-unneeded HAVE(SANDBOX_ISSUE_MACH/READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
572         https://bugs.webkit.org/show_bug.cgi?id=211427
573
574         Reviewed by Alex Christensen.
575
576         * wtf/PlatformHave.h: Remove both macros mentioned in the title above.
577         * wtf/spi/darwin/SandboxSPI.h: Remove #if HAVE.
578
579 2020-05-04  Darin Adler  <darin@apple.com>
580
581         Remove now-unneeded HAVE(AUTHORIZATION_STATUS_FOR_MEDIA_TYPE)
582         https://bugs.webkit.org/show_bug.cgi?id=211426
583
584         Reviewed by Alex Christensen.
585
586         * wtf/PlatformHave.h: Removed code to set HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE,
587         which was doing so on all Cocoa platforms.
588
589 2020-05-04  Darin Adler  <darin@apple.com>
590
591         Remove now-unneeded HAVE(ACCESSIBILITY_SUPPORT)
592         https://bugs.webkit.org/show_bug.cgi?id=211425
593
594         Reviewed by Alex Christensen.
595
596         * wtf/PlatformHave.h: Don't set HAVE_ACCESSIBILITY_SUPPORT. It was on for all
597         Cocoa platform builds.
598
599 2020-05-04  Darin Adler  <darin@apple.com>
600
601         Remove now-unneeded HAVE(NETWORK_EXTENSION)
602         https://bugs.webkit.org/show_bug.cgi?id=211424
603
604         Reviewed by Alex Christensen.
605
606         * wtf/PlatformHave.h: Don't define HAVE_NETWORK_EXTENSION.
607
608 2020-05-04  Darin Adler  <darin@apple.com>
609
610         Remove now-unneeded HAVE(SEC_TRUST_EVALUATE_WITH_ERROR)
611         https://bugs.webkit.org/show_bug.cgi?id=211429
612
613         Reviewed by Alex Christensen.
614
615         * wtf/PlatformHave.h: Don't set HAVE_SEC_TRUST_EVALUATE_WITH_ERROR.
616
617 2020-05-04  Darin Adler  <darin@apple.com>
618
619         Remove unneeded USE(MEDIAREMOTE)
620         https://bugs.webkit.org/show_bug.cgi?id=211385
621
622         Reviewed by Eric Carlson.
623
624         * wtf/PlatformUse.h: Don't set USE_MEDIAREMOTE.
625
626 2020-05-04  Darin Adler  <darin@apple.com>
627
628         Remove now-unneded HAVE(WINDOW_SERVER_OCCLUSION_NOTIFICATIONS)
629         https://bugs.webkit.org/show_bug.cgi?id=211380
630
631         Reviewed by Sam Weinig.
632
633         * wtf/PlatformHave.h: Don't define HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS.
634
635 2020-05-04  Darin Adler  <darin@apple.com>
636
637         Remove unused USE(COREAUDIO)
638         https://bugs.webkit.org/show_bug.cgi?id=211384
639
640         Reviewed by Alex Christensen.
641
642         * wtf/PlatformUse.h: Don't define USE_COREAUDIO.
643
644 2020-05-04  Darin Adler  <darin@apple.com>
645
646         Remove now-unneeded HAVE(UI_REMOTE_VIEW)
647         https://bugs.webkit.org/show_bug.cgi?id=211382
648
649         Reviewed by Alex Christensen.
650
651         * wtf/PlatformHave.h: Remove code to define HAVE_UI_REMOTE_VIEW.
652
653 2020-05-04  Darin Adler  <darin@apple.com>
654
655         Remove now-unneeded HAVE(MENU_CONTROLLER_SHOW_HIDE_API)
656         https://bugs.webkit.org/show_bug.cgi?id=211381
657
658         Reviewed by Alex Christensen.
659
660         * wtf/PlatformHave.h: Remove code to set HAVE_MENU_CONTROLLER_SHOW_HIDE_API.
661
662 2020-05-04  Darin Adler  <darin@apple.com>
663
664         Remove now-unneeded HAVE(VOUCHERS)
665         https://bugs.webkit.org/show_bug.cgi?id=211379
666
667         Reviewed by Alex Christensen.
668
669         * wtf/PlatformHave.h: Remove definition of HAVE_VOUCHERS.
670
671 2020-05-04  Darin Adler  <darin@apple.com>
672
673         Remove now-unneeded HAVE(MEDIA_PLAYER)
674         https://bugs.webkit.org/show_bug.cgi?id=211378
675
676         Reviewed by Alex Christensen.
677
678         * wtf/PlatformHave.h: Remove code that sets HAVE_MEDIA_PLAYER.
679
680 2020-05-04  Darin Adler  <darin@apple.com>
681
682         Remove unused HAVE(STRINGS_H)
683         https://bugs.webkit.org/show_bug.cgi?id=211377
684
685         Reviewed by Alex Christensen.
686
687         * wtf/PlatformHave.h: Remove code to set HAVE_STRINGS_H.
688
689 2020-05-04  Darin Adler  <darin@apple.com>
690
691         Remove no-longer-needed HAVE(UISCENE)
692         https://bugs.webkit.org/show_bug.cgi?id=211376
693
694         Reviewed by Chris Dumez.
695
696         * wtf/PlatformHave.h: Don't define HAVE_UISCENE any more.
697         It's always true for PLATFORM(IOS_FAMILY).
698
699 2020-05-03  Mark Lam  <mark.lam@apple.com>
700
701         Remove some unused and broken functions in Bitmap.
702         https://bugs.webkit.org/show_bug.cgi?id=211368
703
704         Reviewed by Yusuke Suzuki.
705
706         Bitmap::operator[] never worked.  There's currently no way to use it to read a
707         bit value.  We also can't use it to set a bit value because it relies on
708         Bitmap::iterator::operator= to set the value.  However, Bitmap::iterator stores
709         the Bitmap* as a const pointer, and Bitmap::iterator::operator= calls set() on
710         the const pointer.  If we try to use operator[] to set a bit, we'll get a
711         compilation error.
712
713         This patch removes the 2 variants of Bitmap::operator[] and Bitmap::iterator::operator=.
714
715         * wtf/Bitmap.h:
716         (WTF::WordType>::operator): Deleted.
717         (WTF::WordType>::operator const const): Deleted.
718
719 2020-05-03  Rob Buis  <rbuis@igalia.com>
720
721         atob() should not accept a vertical tab
722         https://bugs.webkit.org/show_bug.cgi?id=184529
723
724         Reviewed by Darin Adler.
725
726         Add an option to allow discarding of base64 decoding
727         when a vertical tab is encountered.
728
729         * wtf/text/Base64.cpp:
730         (WTF::base64DecodeInternal):
731         * wtf/text/Base64.h:
732
733 2020-05-02  Mark Lam  <mark.lam@apple.com>
734
735         Gardening: rolling out r261050 and r261051.
736         https://bugs.webkit.org/show_bug.cgi?id=211328
737         <rdar://problem/62755865>
738
739         Not reviewed.
740
741         Appears to make editing/undo-manager/undo-manager-delete-stale-undo-items.html timeout always.
742
743         * WTF.xcodeproj/project.pbxproj:
744         * wtf/Bitmap.h:
745         * wtf/CMakeLists.txt:
746         * wtf/StdIntExtras.h: Removed.
747
748 2020-05-02  Mark Lam  <mark.lam@apple.com>
749
750         [Follow up] Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
751         https://bugs.webkit.org/show_bug.cgi?id=211328
752         <rdar://problem/62755865>
753
754         Not reviewed.
755
756         Landing file missed in last commit.
757
758         * wtf/StdIntExtras.h: Added.
759
760 2020-05-01  Mark Lam  <mark.lam@apple.com>
761
762         Allow Bitmap to use up to a UCPURegister word size for internal bit storage.
763         https://bugs.webkit.org/show_bug.cgi?id=211328
764         <rdar://problem/62755865>
765
766         Reviewed by Yusuke Suzuki.
767
768         1. Moved the definition of CPURegister and UCPURegister down into WTF.
769         2. Updated Bitmap so that it will automatically choose the minimal required
770            word size for the number of bits it needs to store.  This means the Bitmap
771            can automatically choose a WordType from uint8_t up to UCPURegister.
772            Previously, the WordType is always uint32_t by default.
773
774         This should improve perf with use of Bitmap on 64-bit platforms.  The size
775         optimization is necessary to prevent bloat on 64-bit platforms which would have
776         resulted if we simply set the default to always be UCPURegister.
777
778         * WTF.xcodeproj/project.pbxproj:
779         * wtf/Bitmap.h:
780         * wtf/CMakeLists.txt:
781         * wtf/StdIntExtras.h: Added.
782
783 2020-05-01  Saam Barati  <sbarati@apple.com>
784
785         Have a thread local cache for the Wasm LLInt bytecode buffer
786         https://bugs.webkit.org/show_bug.cgi?id=211317
787
788         Reviewed by Filip Pizlo and Mark Lam.
789
790         * wtf/Vector.h:
791         (WTF::Vector::sizeInBytes const):
792
793 2020-05-01  Don Olmstead  <don.olmstead@sony.com>
794
795         [GTK] Add additional exports to support hidden visibility
796         https://bugs.webkit.org/show_bug.cgi?id=211246
797
798         Reviewed by Michael Catanzaro.
799
800         * wtf/ASCIICType.cpp:
801         * wtf/DateMath.h:
802         * wtf/FileSystem.h:
803         * wtf/PrintStream.h:
804         * wtf/RunLoop.h:
805         * wtf/glib/GLibUtilities.h:
806         * wtf/glib/GSocketMonitor.h:
807         * wtf/glib/SocketConnection.h:
808         (WTF::SocketConnection::isClosed const):
809         * wtf/linux/CurrentProcessMemoryStatus.h:
810
811 2020-05-01  Yusuke Suzuki  <ysuzuki@apple.com>
812
813         Introduce MainThreadNeverDestroyed / MainThreadLazyNeverDestroyed
814         https://bugs.webkit.org/show_bug.cgi?id=211264
815
816         Reviewed by Mark Lam.
817
818         Since AtomString has thread-affinity, `static NeverDestroyed<const AtomString>` is basically only safe for the main-thread use.
819         We should ensure that this is only used in the main-thread. To do that, this patch introduces MainThreadNeverDestroyed and
820         MainThreadLazyNeverDestroyed. They are NeverDestroyed and LazyNeverDestroyed + main-thread assertions.
821
822         * wtf/Forward.h:
823         * wtf/NeverDestroyed.h:
824         (WTF::AnyThreadsAccessTraits::assertAccess):
825         (WTF::MainThreadAccessTraits::assertAccess):
826         (WTF::NeverDestroyed::NeverDestroyed):
827         (WTF::NeverDestroyed::storagePointer const):
828         (WTF::LazyNeverDestroyed::construct):
829         (WTF::LazyNeverDestroyed::storagePointer const):
830         (WTF::makeNeverDestroyed):
831         * wtf/text/AtomString.cpp:
832         * wtf/text/AtomString.h:
833
834 2020-05-01  Don Olmstead  <don.olmstead@sony.com>
835
836         Use export macros on all platforms
837         https://bugs.webkit.org/show_bug.cgi?id=211293
838
839         Reviewed by Michael Catanzaro.
840
841         Always use export macros on all platforms. Remove USE_EXPORT_MACROS and always
842         define macros based on the platform. Allow overriding of WTF_EXPORT_PRIVATE otherwise
843         use the defaults.
844
845         Remove definition of WTF_HIDDEN_DECLARATION since its not used anywhere.
846
847         * wtf/ExportMacros.h:
848         * wtf/PlatformUse.h:
849
850 2020-04-30  Ross Kirsling  <ross.kirsling@sony.com>
851
852         TriState should be an enum class and use "Indeterminate" instead of "Mixed"
853         https://bugs.webkit.org/show_bug.cgi?id=211268
854
855         Reviewed by Mark Lam.
856
857         The word "indeterminate" comes from boost::tribool.
858         A third state is generally not "mixed" but rather unknown.
859
860         * wtf/TriState.h:
861
862 2020-04-29  Fujii Hironori  <Hironori.Fujii@sony.com>
863
864         [Win] Deadlock in WTF::Thread::didExit() while WebKitNetworkProcess.exe is exiting
865         https://bugs.webkit.org/show_bug.cgi?id=210955
866
867         Reviewed by Don Olmstead.
868
869         The thread_local object of the main thread is destructed after
870         Windows terminates other threads. If the terminated thread was
871         holding a mutex, trying to lock the mutex causes deadlock.
872
873         * wtf/win/ThreadingWin.cpp:
874         (WTF::Thread::ThreadHolder::~ThreadHolder): Do nothing if the
875         thread is the main thread.
876
877 2020-04-29  Jer Noble  <jer.noble@apple.com>
878
879         [Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
880         https://bugs.webkit.org/show_bug.cgi?id=211028
881         <rdar://problem/61173289>
882
883         Reviewed by Aakash Jain.
884
885         Follow-up test failure fix; correct the debug/non-debug variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT.
886
887         * wtf/win/SoftLinking.h:
888
889 2020-04-29  Commit Queue  <commit-queue@webkit.org>
890
891         Unreviewed, reverting r260650.
892         https://bugs.webkit.org/show_bug.cgi?id=211172
893
894         It is breaking internal bots (Requested by youenn on #webkit).
895
896         Reverted changeset:
897
898         "Call STDynamicActivityAttributionPublisher in the WebProcess"
899         https://bugs.webkit.org/show_bug.cgi?id=210772
900         https://trac.webkit.org/changeset/260650
901
902 2020-04-29  Devin Rousso  <drousso@apple.com>
903
904         Web Inspector: Uncaught Exception: SyntaxError: Unexpected identifier 'E'. Expected either a closing ']' or a ',' following an array element.
905         https://bugs.webkit.org/show_bug.cgi?id=211163
906
907         Reviewed by Joseph Pecoraro.
908
909         * wtf/JSONValues.h:
910         * wtf/JSONValues.cpp:
911         (WTF::JSONImpl::appendDoubleQuotedString):
912         (WTF::JSONImpl::Value::escapeString): Added.
913         Pull out and expose the logic for escaping strings so it can be used elsewhere.
914
915 2020-04-29  Saam Barati  <sbarati@apple.com>
916
917         U_STRING_NOT_TERMINATED_WARNING ICU must be handled when using the output buffer as a C string
918         https://bugs.webkit.org/show_bug.cgi?id=211142
919         <rdar://problem/62530860>
920
921         Reviewed by Darin Adler.
922
923         Most of our uses of ICU require us to produce a buffer of the correct
924         length. We often test if the first call to ICU API succeeds, and if it
925         doesn't, we grow to the required buffer size, and try again. However,
926         there are a few APIs that we use like this, except that they write their
927         output to a C string instead of a buffer.
928         
929         In a couple scenarios when we were producing C strings, we were only testing
930         for the U_BUFFER_OVERFLOW_ERROR, instead of both U_BUFFER_OVERFLOW_ERROR and
931         U_STRING_NOT_TERMINATED_WARNING. This patch fixes those bugs. It also
932         introduces two new helper methods for testing error codes returned by ICU.
933         
934         - The first is needsToGrowToProduceBuffer, which returns true if we need to
935         grow the buffer and re-call into ICU to get the result.
936         - The second is needsToGrowToProduceCString, which returns true if we need to
937         grow the buffer and re-call into ICU to produce a valid C string.
938         
939         I've audited all uses of U_BUFFER_OVERFLOW_ERROR and converted them to use one
940         of the above helper methods instead.
941         
942         The issues in our handling of U_STRING_NOT_TERMINATED_WARNING were caught on iOS JSC
943         tests in JSTests/stress/intl-datetimeformat.js
944
945         * WTF.xcodeproj/project.pbxproj:
946         * wtf/CMakeLists.txt:
947         * wtf/text/LineBreakIteratorPoolICU.h:
948         (WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
949         * wtf/text/StringView.cpp:
950         (WTF::normalizedNFC):
951         * wtf/unicode/icu/ICUHelpers.h: Added.
952         (WTF::needsToGrowToProduceCString):
953         (WTF::needsToGrowToProduceBuffer):
954
955 2020-04-29  Noam Rosenthal  <noam@webkit.org>
956
957         Add StringView::isAllSpecialCharacters()
958         https://bugs.webkit.org/show_bug.cgi?id=211150
959
960         This enables checking for whitespace-only strings without allocating a StringImpl wrapper.
961
962         Reviewed by Darin Adler.
963
964         * wtf/text/StringView.h:
965         (WTF::isSpecialCharacter const):
966
967 2020-04-27  Ryan Haddad  <ryanhaddad@apple.com>
968
969         [Cocoa] stop using out arguments for document attributes when converting to attributed strings
970         https://bugs.webkit.org/show_bug.cgi?id=211048
971
972         Unreviewed partial revert of r260739 to remove unexpected logging that broke Catalina-Release-WK2-Perf tests.
973
974         * wtf/cocoa/URLCocoa.mm:
975         (WTF::URL::createCFURL const):
976
977 2020-04-26  Darin Adler  <darin@apple.com>
978
979         [Cocoa] stop using out arguments for document attributes when converting to attributed strings
980         https://bugs.webkit.org/show_bug.cgi?id=211048
981
982         Reviewed by Sam Weinig.
983
984         * wtf/cocoa/URLCocoa.mm:
985         (WTF::URL::createCFURL const): Use init instead of initWithString:@"". The two are
986         equivalent in more recent versions of Foundation.
987
988 2020-04-26  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
989
990         [PlayStation] Enable TestWTF and TestWebCore
991         https://bugs.webkit.org/show_bug.cgi?id=208849
992
993         Reviewed by Don Olmstead.
994
995         * wtf/PlatformPlayStation.cmake:
996         Add WTF_CopySharedLibs() to install dependencies.
997
998 2020-04-26  Yusuke Suzuki  <ysuzuki@apple.com>
999
1000         Use `static Lock` instead of `static NeverDestroyed<Lock>`
1001         https://bugs.webkit.org/show_bug.cgi?id=211036
1002
1003         Reviewed by Darin Adler.
1004
1005         Lock can be static-initialized since it has constexpr constructor. No need to use NeverDestroyed<Lock>.
1006
1007         * wtf/Logger.h:
1008         (WTF::Logger::observerLock):
1009
1010 2020-04-26  Joonghun Park  <jh718.park@samsung.com>
1011
1012         [WTF] Workaround gcc bug for unsigned bitfield related usual arithmetic conversions
1013         https://bugs.webkit.org/show_bug.cgi?id=211044
1014
1015         Reviewed by Darin Adler.
1016
1017         * wtf/URL.cpp:
1018         (WTF::URL::setHost):
1019         (WTF::URL::setHostAndPort):
1020         (WTF::URL::setUser):
1021         (WTF::URL::setPassword):
1022
1023 2020-04-25  Joonghun Park  <jh718.park@samsung.com>
1024
1025         Unreviewed. Remove the bulid warnings below since r260707.
1026         warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
1027
1028         * wtf/URL.cpp:
1029         (WTF::URL::setHost):
1030         (WTF::URL::setHostAndPort):
1031         (WTF::URL::setUser):
1032         (WTF::URL::setPassword):
1033
1034 2020-04-25  Darin Adler  <darin@apple.com>
1035
1036         [Cocoa] Deal with another round of Xcode upgrade checks
1037         https://bugs.webkit.org/show_bug.cgi?id=211027
1038
1039         Reviewed by Alexey Proskuryakov.
1040
1041         * WTF.xcodeproj/project.pbxproj: Bump the upgrade check version.
1042         Add a harmless base localization; this project contains nothing localized.
1043
1044 2020-04-25  Alex Christensen  <achristensen@webkit.org>
1045
1046         Prepare to remove automatic URL->String conversion operators
1047         https://bugs.webkit.org/show_bug.cgi?id=211007
1048
1049         Reviewed by Darin Adler.
1050
1051         Too many bugs have been caused by the compiler finding a way to make a String from a URL without being visible in the code.
1052         This does all the easy things to prepare to remove operator String& and operator NSString*.
1053         The hard things will be done in the smaller patch that actually removes them.
1054
1055         * wtf/URL.cpp:
1056         (WTF::URL::protocolIsJavaScript const):
1057         * wtf/URL.h:
1058
1059 2020-04-25  Darin Adler  <darin@apple.com>
1060
1061         Move URL to use StringView when returning substrings of the URL
1062         https://bugs.webkit.org/show_bug.cgi?id=210431
1063
1064         Reviewed by Anders Carlsson.
1065
1066         * wtf/URL.cpp: Remove unused CharBuffer type. Remove UCharBuffer
1067         type and write the type explicitly in the 3 places it's used.
1068         Removed the invalidPortNumber constant, since we use Optional
1069         instead of a special port number now.
1070         (WTF::copyASCII): Remove unnecessary special case for empty string.
1071         Tweaked coding style and comment a bit.
1072         (WTF::URL::URL): Streamlined by getting rid of a local variable.
1073         (WTF::shouldTrimFromURL): Tweaked coding style.
1074         (WTF::URL::lastPathComponent const): Return a StringView.
1075         Also, use the pathStart function for clarity.
1076         (WTF::URL::port const): Use a StringView to call parseUInt16.
1077         (WTF::URL::protocolHostAndPort const): Optimized to always allocate
1078         the string in the right size rather than removing characters from it
1079         after creating it.
1080         (WTF::decodeEscapeSequence): Added. Factored out from the function
1081         below to make it a little more readable.
1082         (WTF::decodeEscapeSequencesFromParsedURL): Convert a null StringView
1083         to a null String rather than an empty String, use a stack buffer and
1084         the helper function above, and added some FIXME comments about
1085         encoding handling.
1086         (WTF::URL::user const): Simplified by calling encodedUser.
1087         (WTF::URL::password const): Simplified by calling encodedPassword.
1088         (WTF::URL::encodedUser const): Return a StringView.
1089         (WTF::URL::encodedPassword const): Ditto. Also renamed from encodedPass.
1090         (WTF::URL::fragmentIdentifier const): Ditto.
1091         (WTF::URL::hasFragmentIdentifier const): Moved to header so it can
1092         be inlined.
1093         (WTF::URL::truncatedForUseAsBase const): Renamed from baseAsString.
1094         This function is currently only used with local file URLs and it's
1095         not perfectly clear to me precisely what it is for, hence the name
1096         is not so great.
1097         (WTF::URL::fileSystemPath const): Removed unneeded check for validity
1098         since isLocalFile does that check. Removed unneeded typecast now that
1099         path returns a StringView.
1100         (WTF::defaultPortForProtocolMapForTesting): Deleted.
1101         (WTF::ensureDefaultPortForProtocolMapForTesting): Deleted.
1102         (WTF::registerDefaultPortForProtocolForTesting): Deleted.
1103         (WTF::clearDefaultPortForProtocolMapForTesting): Deleted.
1104         (WTF::defaultPortForProtocol): Deleted.
1105         (WTF::isDefaultPortForProtocol): Deleted.
1106         (WTF::protocolIsInternal): Rewrote to take a StringView. Before it
1107         was written as a template that looked like it supported classes other
1108         than String, but actually would crash if called on a StringView.
1109         (WTF::URL::protocolIs const): Removed unneeded explicit cast to StringView.
1110         (WTF::URL::query const): Return a StringView.
1111         (WTF::URL::path const): Return a StringView, use the pathStart
1112         function for clarity.
1113         (WTF::URL::setProtocol): Use a toStringWithoutCopying to save some
1114         work when making the protocol canonical. Call parse instead of
1115         creating a URLParser here.
1116         (WTF::URL::credentialsEnd const): Added. Helper for various functions
1117         that manipulate the credentials section.
1118         (WTF::URL::setHost): Take StringView. Streamlined the code by using
1119         StringView::contains, by using makeString rather than StringBuilder,
1120         and by calling parse instead of creating a URLParser here.
1121         (WTF::URL::removePort): Deleted, since setPort takes an Optional now.
1122         (WTF::URL::setPort): Take Optional<uint16_t>. Call parse instead of
1123         creating a URLParser here.
1124         (WTF::URL::removeHostAndPort): Deleted. Callers can pass a null
1125         StringView to setHostAndPort instead.
1126         (WTF::URL::setHostAndPort): Take StringView. Don't remove the old
1127         host and port in the nomral case where we end up overwriting the entire
1128         URL at the end of the function anyway. Use parseUInt16 instead of
1129         toIntStrict to check port number for validity, which makes sure we will
1130         reject port numbers larger than 65535. Use makeString instead of
1131         StringBuilder and call parse rather than creating a URLParser here.
1132         (WTF::parse): Added. Helper function for when we create a new string
1133         and want to parse it as the new contents of the URL. Used in almost
1134         every setter function.
1135         (WTF::URL::remove): Added. Helper function for efficiently removing
1136         a piece of the URL string and re-parsing. Used in many setter functions.
1137         (WTF::URL::setUser): Take StringView. Use makeString instead of
1138         StringBuilder, and parse and remove instead of creating a URLParser here.
1139         (WTF::URL::setPassword): Renamed from setPass. Take StringView.
1140         Use makeString instead of StringBuilder, and parse and remove instead of
1141         creating a URLParser here.
1142         (WTF::URL::removeCredientials): Added. Efficiently removes both the
1143         user name and password if either is present.
1144         (WTF::URL::setFragmentIdentifier): Use parse instead of creating
1145         a URL parser here.
1146         (WTF::URL::removeFragmentIdentifier): Removed unnecessary checks for
1147         things already optimized by String::left. Could later consider merging
1148         this in with setFragmentIdentifier, using a null vs. empty distinction,
1149         but not doing that for now.
1150         (WTF::URL::setQuery): Take StringView.
1151         (WTF::URL::setPath): Take StringView.
1152         (WTF::stringWithoutQueryOrFragmentIdentifier): Added.
1153         (WTF::stringWithoutFragmentIdentifier): Added.
1154         (WTF::equalIgnoringFragmentIdentifier): Simplified implementation by
1155         using stringWithoutFragmentIdentifier.
1156         (WTF::equalIgnoringQueryAndFragment): Deleted.
1157         (WTF::hostsAreEqual): Deleted.
1158         (WTF::URL::isMatchingDomain const): Take StringView.
1159         (WTF::protocolIs): Take StringView.
1160         (WTF::URL::protocolIs): Moved to inline in the header.
1161         (WTF::URL::strippedForUseAsReferrer const): Rewrite for efficiency.
1162         (WTF::protocolIsJavaScript): Moved to inline in the header.
1163         (WTF::protocolIsInHTTPFamily): Take StringView.
1164         (WTF::aboutBlankURL): Use ASCIILiteral.
1165         (WTF::aboutSrcDocURL): Use ASCIILiteral.
1166         (WTF::portAllowed): Removed 65535 as a blocked port; wasn't needed.
1167         (WTF::mimeTypeFromDataURL): Take StringView.
1168         (WTF::URL::stringCenterEllipsizedToLength const): Tweaked style.
1169         (WTF::URL::fakeURLWithRelativePart): Take StringView.
1170         (WTF::URL::fileURLWithFileSystemPath): Take StringView..
1171         (WTF::URL::queryWithLeadingQuestionMark const): Added.
1172         (WTF::URL::fragmentIdentifierWithLeadingNumberSign const): Added.
1173         (WTF::URL::hostIsIPAddress): Tweak coding style.
1174
1175         * wtf/URL.h: Made URLTextEncoding destructor protected. Removed
1176         unused forward declaration of URLHash structure. Use WTF_EXPORT_PRIVATE
1177         on functions from URL rather than on the whole class, since the style
1178         checker told me to do that. Moved some inline function bodies out of
1179         the class definition for clarity and to keep the style checker happy.
1180         Updated many arguemnts from String to StringView and return values for
1181         substrings of the URL to StringView. Removed some unused functions and
1182         some obsolete comments.
1183
1184         * wtf/cf/CFURLExtras.cpp:
1185         (WTF::isCFURLSameOrigin): Use hasCredentials.
1186         * wtf/text/StringView.cpp:
1187         (WTF::StringView::endsWith const): Added.
1188         (WTF::parseUInt16): Added.
1189         (WTF::equalRespectingNullity): Added.
1190         (WTF::StringView::contains const): Added overload that takes a
1191         const char* so the call site doesn't have to convert it to a StringView.
1192
1193         * wtf/text/StringView.h: Updated for the additions above.
1194         Also added a default start of 0 to the find function.
1195
1196         * wtf/text/WTFString.cpp:
1197         (WTF::charactersToIntStrict): Removed unneeded explicit template argument.
1198         (WTF::charactersToUIntStrict): Ditto.
1199         (WTF::charactersToInt64Strict): Ditto.
1200         (WTF::charactersToUInt64Strict): Ditto.
1201         (WTF::charactersToIntPtrStrict): Ditto.
1202         (WTF::charactersToInt): Ditto.
1203         (WTF::charactersToUInt): Ditto.
1204         (WTF::charactersToInt64): Ditto.
1205         (WTF::charactersToUInt64): Ditto.
1206         (WTF::charactersToIntPtr): Ditto.
1207
1208 2020-04-24  Yusuke Suzuki  <ysuzuki@apple.com>
1209
1210         [WTF] allThreads registration is racy with allThreads unregistration
1211         https://bugs.webkit.org/show_bug.cgi?id=210995
1212         <rdar://problem/61609690>
1213
1214         Reviewed by Keith Miller.
1215
1216         There is a race between registering a thread to allThreads and unregistering a thread from allThreads.
1217
1218             1. Caller: A new thread is created, but not registering it to allThreads yet.
1219             2. Thread: The thread is running.
1220             3. Thread: The thread finishes its execution before the thread is registered into allThreads.
1221             4. Thread: The thread unregisters itself from allThreads.
1222             5. Caller: Registers the new thread to allThreads after it already finished its execution.
1223             6. The thread is never removed from allThreads.
1224
1225         This patch adds m_didUnregisterFromAllThreads flag to Thread, and add the thread to allThreads only when this flag is false.
1226
1227         Covered by LayoutTests/inspector/cpu-profiler/threads.html.
1228
1229         * wtf/Threading.cpp:
1230         (WTF::Thread::create):
1231         (WTF::Thread::didExit):
1232         * wtf/Threading.h:
1233         (WTF::Thread::Thread):
1234
1235 2020-04-24  Alex Christensen  <achristensen@webkit.org>
1236
1237         REGRESSION(260485) Payment requests don't do anything
1238         https://bugs.webkit.org/show_bug.cgi?id=210997
1239         <rdar://problem/62275343>
1240
1241         Reviewed by Darin Adler.
1242
1243         We were giving the PKPaymentRequest an NSArray<NSString *> instead of NSArray<NSURL *>.
1244         This was a problem with all uses of createNSArray with Vector<URL>.
1245         Now it's fixed with a test.
1246
1247         * wtf/URL.h:
1248         * wtf/cocoa/URLCocoa.mm:
1249         (WTF::makeNSArrayElement):
1250         (WTF::makeVectorElement):
1251
1252 2020-04-24  Megan Gardner  <megan_gardner@apple.com>
1253
1254         Make LEGACY_PDF_SUPPORT feature flag.
1255         https://bugs.webkit.org/show_bug.cgi?id=210868
1256         <rdar://problem/62199847>
1257
1258         Reviewed by Tim Horton.
1259
1260         * wtf/PlatformHave.h:
1261
1262 2020-04-24  Youenn Fablet  <youenn@apple.com> and Luming Yin <luming_yin@apple.com>
1263
1264         Call STDynamicActivityAttributionPublisher in the WebProcess
1265         https://bugs.webkit.org/show_bug.cgi?id=210772
1266         <rdar://problem/62075201>
1267
1268         Reviewed by Geoffrey Garen.
1269
1270         * wtf/PlatformHave.h:
1271
1272 2020-04-23  Don Olmstead  <don.olmstead@sony.com>
1273
1274         [CMake] CMAKE_BINARY_DIR should always be a PRIVATE include directory
1275         https://bugs.webkit.org/show_bug.cgi?id=196717
1276
1277         Reviewed by Michael Catanzaro.
1278
1279         Remove public includes in WTF.
1280
1281         * wtf/CMakeLists.txt:
1282
1283 2020-04-22  Darin Adler  <darin@apple.com>
1284
1285         [Cocoa] Build with UChar as char16_t even in builds that use Apple's internal SDK
1286         https://bugs.webkit.org/show_bug.cgi?id=210845
1287
1288         Reviewed by Anders Carlsson.
1289
1290         * Configurations/Base.xcconfig: Move ICU-configuring macros to Platform.h.
1291
1292         * wtf/Platform.h: Set macros here. The file says not to put things like this in it,
1293         but in practice this is the right place to put something that we need set consistently
1294         for all the WebKit projects.
1295         - U_HIDE_DEPRECATED_API, to make sure we don't use it by accident.
1296         - U_SHOW_CPLUSPLUS_API=0, to make sure we don't use it by accident.
1297         - UCHAR_TYPE=char16_t when compiling C++, which is the default on most platforms,
1298           but not the default in Apple's internal SDK.
1299         - U_DISABLE_RENAMING when building on Apple platforms, important so we can link
1300           to an older version of ICU and still load with a newer version.
1301
1302         * wtf/URL.cpp:
1303         (WTF::URL::hostAndPort const): Get rid of an obsolete cast to unsigned to work
1304         around uint16_t not being treated as a number by makeString.
1305
1306         * wtf/URLHelpers.cpp: Rework to not use deprecated USCRIPT_CODE_LIMIT.
1307         (WTF::URLHelpers::whiteListIDNScript): Added overloads.
1308         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList): Use an array of
1309         UScriptCode instead of an array of strings.
1310         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList): Updated for the above.
1311
1312         * wtf/cocoa/NSURLExtras.mm:
1313         (WTF::decodePercentEscapes): Use createCFString instead of converting to NString
1314         and then typecasting.
1315         (WTF::URLByTruncatingOneCharacterBeforeComponent): Updated to use a constexpr
1316         instead of a macro.
1317         (WTF::dataForURLComponentType): Ditto.
1318         (WTF::URLByRemovingComponentAndSubsequentCharacter): Ditto.
1319         (WTF::originalURLData): Ditto.
1320
1321 2020-04-22  Claudio Saavedra  <csaavedra@igalia.com>
1322
1323         [GTK4] Several fixes to GdkEvent APIs for GTK4
1324         https://bugs.webkit.org/show_bug.cgi?id=210856
1325
1326         Reviewed by Carlos Garcia Campos.
1327
1328         * wtf/glib/GTypedefs.h: In GTK4 GdkEvent is a struct.
1329
1330 2020-04-21  Peng Liu  <peng.liu6@apple.com>
1331
1332         Fix MACCATALYST build failures
1333         https://bugs.webkit.org/show_bug.cgi?id=210815
1334
1335         Reviewed by Tim Horton.
1336
1337         * wtf/PlatformEnable.h:
1338
1339 2020-04-19  Darin Adler  <darin@apple.com>
1340
1341         [Cocoa] Use createNSArray in many more places that build NSArray objects from C++ collections
1342         https://bugs.webkit.org/show_bug.cgi?id=210702
1343
1344         Reviewed by Alex Christensen.
1345
1346         * wtf/cocoa/VectorCocoa.h: Improved the createNSArray function template:
1347         1) Skip nil values. This matches what we do with Optional<> in makeVector and
1348            was always my intention; apparently forgot to do it.
1349         2) Instead of taking a const reference argument, take a forwarding reference
1350            and use forwarding when passing collection elements to makeNSArrayElement
1351            or the passed-in function. Can transfer ownership of collection elements
1352            as they are transformed into array elements, which makes sense if the
1353            Objective-C objects are wrappers that take ownership of what's wrapped.
1354         3) Take any collection that works with std::size and a range-based for loop,
1355            no longer requiring a size member function. Includes arrays.
1356         4) Since this now intended for use on collections other than WTF::Vector,
1357            added "using WTF::createNSArray" since argument-dependent lookup won't
1358            find the function template in those cases.
1359
1360 2020-04-21  Fujii Hironori  <Hironori.Fujii@sony.com>
1361
1362         [Win] Use generic WorkQueue instead of WorkQueueWin.cpp
1363         https://bugs.webkit.org/show_bug.cgi?id=210785
1364
1365         Reviewed by Darin Adler.
1366
1367         WorkQueueWin was using random threads to execute dispatched
1368         functions. This is not desired for IPC::Connection because it
1369         needs to call CancelIo API in the same thread started aync
1370         ReadFile operations.
1371
1372         Implemented RunLoop::dispatchAfter in RunLoopWin.cpp in order to
1373         use generic WorkQueue.
1374
1375         * wtf/PlatformWin.cmake:
1376         * wtf/RunLoop.h: Added DispatchTimer class for USE(WINDOWS_EVENT_LOOP).
1377         (WTF::RunLoop::DispatchTimer::DispatchTimer):
1378         (WTF::RunLoop::DispatchTimer::setFunction):
1379         * wtf/WorkQueue.h: Removed code for USE(WINDOWS_EVENT_LOOP).
1380         * wtf/win/RunLoopWin.cpp:
1381         (WTF::RunLoop::dispatchAfter): Added.
1382         * wtf/win/WorkQueueWin.cpp: Removed.
1383
1384 2020-04-21  Charlie Turner  <cturner@igalia.com>
1385
1386         [Clang 10] Fix warning: definition of implicit copy assignment operator for 'PageBlock' is deprecated because it has a user-declared copy constructor
1387         https://bugs.webkit.org/show_bug.cgi?id=210748
1388
1389         Reviewed by Adrian Perez de Castro.
1390
1391         Recent Clang's will issue a warning if you declare an explicit
1392         copy construction, but leave the compiler to fill in an implicit
1393         assignment operator. I think this is to catch cases where you do
1394         something exciting in an assignment operator/copy constructor and
1395         forget to do the same exciting thing in the other.
1396
1397         * wtf/PageAllocation.h: Import the base's constructor to avoid
1398         defining our own identical one.
1399         * wtf/PageBlock.h: Remove trivial constructor and replace with
1400         member initializers. Remove copy constructor. This looks identical
1401         to what the compiler would generate anyway.
1402
1403 2020-04-21  Claudio Saavedra  <csaavedra@igalia.com>
1404
1405         [GTK4] Adapt to GtkIconTheme API changes
1406         https://bugs.webkit.org/show_bug.cgi?id=210745
1407
1408         Reviewed by Adrian Perez de Castro.
1409
1410         * wtf/glib/GTypedefs.h: Remove unneeded GtkIconInfo definition.
1411
1412 2020-04-20  Timothy Horton  <timothy_horton@apple.com>
1413
1414         Try to fix the build after r260407
1415
1416         * wtf/PlatformHave.h:
1417
1418 2020-04-20  Peng Liu  <peng.liu6@apple.com>
1419
1420         Fix build failures when video fullscreen and picture-in-picture is disabled
1421         https://bugs.webkit.org/show_bug.cgi?id=210777
1422
1423         Reviewed by Eric Carlson.
1424
1425         * wtf/PlatformEnable.h:
1426
1427 2020-04-20  Yusuke Suzuki  <ysuzuki@apple.com>
1428
1429         Add document about WTF malloc-related macros
1430         https://bugs.webkit.org/show_bug.cgi?id=208367
1431
1432         Reviewed by Anders Carlsson, Simon Fraser, and Darin Adler.
1433
1434         This adds document about WTF malloc-related macros since we have bunch of macros now.
1435
1436         * wtf/FastMalloc.h:
1437
1438 2020-04-20  Darin Adler  <darin@apple.com>
1439
1440         REGRESSION (r253987): StringImpl::adopt(Vector&&) copies only half of the characters in the Vector when copying across malloc zones
1441         https://bugs.webkit.org/show_bug.cgi?id=210736
1442
1443         Reviewed by Yusuke Suzuki.
1444
1445         * wtf/text/StringImpl.cpp:
1446         (WTF::StringImpl::replace): Use copyCharacters instead of memcpy.
1447
1448         * wtf/text/StringImpl.h: Use std::is_same_v instead of std::is_same.
1449         (WTF::StringImpl::StringImpl): Use copyCharacters instead of memcpy.
1450         Also drop C-style cast to cast away const.
1451         (WTF::StringImpl::adopt): Don't even try to adopt across malloc zones.
1452
1453 2020-04-20  Darin Adler  <darin@apple.com>
1454
1455         Use #import instead of #include in Objective-C and don't use #pragma once
1456         https://bugs.webkit.org/show_bug.cgi?id=210724
1457
1458         Reviewed by David Kilzer.
1459
1460         * wtf/cocoa/Entitlements.mm:
1461         * wtf/cocoa/FileSystemCocoa.mm:
1462         * wtf/cocoa/MainThreadCocoa.mm:
1463         * wtf/cocoa/SystemTracingCocoa.cpp:
1464         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
1465         * wtf/mac/SchedulePairMac.mm:
1466         * wtf/text/cocoa/StringCocoa.mm:
1467         * wtf/text/cocoa/TextStreamCocoa.mm:
1468         More #import.
1469
1470 2020-04-19  Brady Eidson  <beidson@apple.com>
1471
1472         Add WKScriptMessageHandler API that asynchronously responds with a promise.
1473         rdar://problem/57243492 and https://bugs.webkit.org/show_bug.cgi?id=206398
1474
1475         Reviewed by Andy Estes.
1476
1477         * wtf/CompletionHandler.h:
1478         (WTF::CompletionHandlerWithFinalizer<Out): Add a variant of CompletionHandler that allows for a Finalizer function
1479           to handle cases where the Completion function hasn't been called at destruction time.
1480
1481 2020-04-19  Yusuke Suzuki  <ysuzuki@apple.com>
1482
1483         [JSC] Enable BigInt
1484         https://bugs.webkit.org/show_bug.cgi?id=210726
1485
1486         Reviewed by Mark Lam.
1487
1488         * wtf/PlatformUse.h:
1489
1490 2020-04-18  Robin Morisset  <rmorisset@apple.com>
1491
1492         Support an inlined representation in JSValue of small BigInts ("BigInt32")
1493         https://bugs.webkit.org/show_bug.cgi?id=206182
1494
1495         Reviewed by Yusuke Suzuki.
1496
1497         Add a USE(BIGINT32) flag.
1498
1499         * wtf/PlatformUse.h:
1500
1501 2020-04-18  Keith Miller  <keith_miller@apple.com>
1502
1503         Redesign how we do for-of iteration for JSArrays
1504         https://bugs.webkit.org/show_bug.cgi?id=175454
1505
1506         Reviewed by Filip Pizlo.
1507
1508         * wtf/EnumClassOperatorOverloads.h:
1509
1510 2020-04-18  Yusuke Suzuki  <ysuzuki@apple.com>
1511
1512         [WTF] Move DataRef.h from WebCore to WTF to utilize it in JSC
1513         https://bugs.webkit.org/show_bug.cgi?id=210689
1514
1515         Reviewed by Anders Carlsson.
1516
1517         * WTF.xcodeproj/project.pbxproj:
1518         * wtf/CMakeLists.txt:
1519         * wtf/DataRef.h: Renamed from Source/WebCore/rendering/style/DataRef.h.
1520
1521 2020-04-17  Saam Barati  <sbarati@apple.com>
1522
1523         GetTypedArrayByteOffset is broken on arm64e
1524         https://bugs.webkit.org/show_bug.cgi?id=210631
1525
1526         Reviewed by Mark Lam.
1527
1528         * wtf/CagedPtr.h:
1529         (WTF::CagedPtr::rawBits const):
1530
1531 2020-04-17  Peng Liu  <peng.liu6@apple.com>
1532
1533         Cleanup the macros for video fullscreen and picture-in-picture
1534         https://bugs.webkit.org/show_bug.cgi?id=210638
1535
1536         Reviewed by Eric Carlson.
1537
1538         Add macro ENABLE_VIDEO_PRESENTATION_MODE.
1539
1540         * wtf/PlatformEnable.h:
1541
1542 2020-04-17  Claudio Saavedra  <csaavedra@igalia.com>
1543
1544         [GTK][WPE] Bump dependencies minimum required version in Platform.h
1545         https://bugs.webkit.org/show_bug.cgi?id=210651
1546
1547         Reviewed by Adrian Perez de Castro.
1548
1549         Bring the minimum required version in Platform.h in sync with the actual
1550         minimal required version. This ensures that deprecated APIs used bring up
1551         compilation warnings.
1552
1553         * wtf/Platform.h:
1554
1555 2020-04-17  Per Arne Vollan  <pvollan@apple.com>
1556
1557         [iOS] Deny iokit open access to graphics related classes
1558         https://bugs.webkit.org/show_bug.cgi?id=210616
1559
1560         Reviewed by Darin Adler.
1561
1562         * wtf/spi/darwin/SandboxSPI.h:
1563
1564 2020-04-17  Youenn Fablet  <youenn@apple.com>
1565
1566         Make use of WeakHashSet for MediaStreamTrackPrivate and RealtimeMediaSource observers
1567         https://bugs.webkit.org/show_bug.cgi?id=210492
1568
1569         Reviewed by Geoffrey Garen.
1570
1571         * wtf/WeakHashSet.h:
1572
1573 2020-04-16  Daniel Bates  <dabates@apple.com>
1574
1575         Clean up VectorCocoa createNSArray overloads and add documentation for createNSArray taking a map function
1576         https://bugs.webkit.org/show_bug.cgi?id=210610
1577
1578         Reviewed by Darin Adler.
1579
1580         Remove unnecessary local variable. Rename "map" type in createNSArray function for clarity
1581         and add documentation for createNSArray function that takes a map function.
1582
1583         I was tempted, but decided not to write the createNSArray function that does not take a
1584         map function in terms of the one that did. With the "right" optimization settings the
1585         compiler should emit the same code, but I didn't verify this. So, I didn't do it.
1586
1587         While I am here, update  makeVector() to call shrinkToFit() to reduce the memory footprint
1588         of the returned vector should it end of having less entries, due to filtering, than its
1589         initial capacity.
1590
1591         * wtf/cocoa/VectorCocoa.h:
1592         (WTF::createNSArray): See above description.
1593         (WTF::makeVector): Shrink to fit before returning the vector. See above for more details.
1594
1595 2020-04-16  Daniel Bates  <dabates@apple.com>
1596
1597         Move -_requestTextInputContextsInRect to WKContentView to simplify implementation
1598         https://bugs.webkit.org/show_bug.cgi?id=210398
1599         <rdar://problem/61656931>
1600
1601         Reviewed by Darin Adler.
1602
1603         Add a convenience function to create an NSArray from a WTF::Vector with a transform function.
1604         The tranform function can either return a RetainPtr or an id.
1605
1606         * wtf/cocoa/VectorCocoa.h:
1607         (WTF::createNSArray): Added.
1608
1609 2020-04-16  Eric Carlson  <eric.carlson@apple.com>
1610
1611         [macOS] Update ScreenTime as playback state changes
1612         https://bugs.webkit.org/show_bug.cgi?id=210518
1613         <rdar://problem/61181092>
1614
1615         Reviewed by Jer Noble.
1616         
1617         Define HAVE_MEDIA_USAGE_FRAMEWORK and ENABLE_MEDIA_USAGE
1618
1619         * wtf/PlatformEnableCocoa.h:
1620         * wtf/PlatformHave.h:
1621
1622 2020-04-16  Alberto Garcia  <berto@igalia.com>
1623
1624         Unreviewed, set CeilingOnPageSize for MIPS64
1625
1626         This fixes a build failure ("Must set CeilingOnPageSize in
1627         PageBlock.h").
1628
1629         * wtf/PageBlock.h:
1630
1631 2020-04-15  Chris Dumez  <cdumez@apple.com>
1632
1633         [IPC Hardening] MachMessage::messageSize() should use checked arithmetic
1634         https://bugs.webkit.org/show_bug.cgi?id=210567
1635         <rdar://problem/61734355>
1636
1637         Reviewed by Geoffrey Garen.
1638
1639         Add operator / to CheckedArithmetic for convenience.
1640
1641         * wtf/CheckedArithmetic.h:
1642         (WTF::safeDivide):
1643         (WTF::Checked::operator/=):
1644         (WTF::operator/):
1645
1646 2020-04-15  Robin Morisset  <rmorisset@apple.com>
1647
1648         Flaky Test: fetch/fetch-worker-crash.html
1649         https://bugs.webkit.org/show_bug.cgi?id=187257
1650         <rdar://problem/48527526>
1651
1652         Reviewed by Yusuke Suzuki.
1653
1654         Make startMachExceptionHandlerThread visible so that we can make sure it is called whenever initializing JSC.
1655
1656         * wtf/threads/Signals.cpp:
1657         (WTF::startMachExceptionHandlerThread):
1658         * wtf/threads/Signals.h:
1659
1660 2020-04-14  Peng Liu  <peng.liu6@apple.com>
1661
1662         Adopt interface AVAudioRoutingArbiter for Mac
1663         https://bugs.webkit.org/show_bug.cgi?id=210167
1664
1665         Reviewed by Eric Carlson.
1666
1667         Add macro HAVE_AVAUDIO_ROUTING_ARBITER.
1668
1669         * wtf/PlatformHave.h:
1670
1671 2020-04-13  Commit Queue  <commit-queue@webkit.org>
1672
1673         Unreviewed, reverting r260052.
1674         https://bugs.webkit.org/show_bug.cgi?id=210479
1675
1676         Breaks iOS tests, needs more work (Requested by smfr on
1677         #webkit).
1678
1679         Reverted changeset:
1680
1681         "Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for
1682         non-Cocoa platforms"
1683         https://bugs.webkit.org/show_bug.cgi?id=210460
1684         https://trac.webkit.org/changeset/260052
1685
1686 2020-04-13  David Kilzer  <ddkilzer@apple.com>
1687
1688         Replace use of Checked<size_t, RecordOverflow> with CheckedSize
1689         <https://webkit.org/b/210461>
1690
1691         Reviewed by Mark Lam.
1692
1693         * wtf/FastMalloc.cpp:
1694         (WTF::tryFastCalloc):
1695         * wtf/Gigacage.cpp:
1696         (Gigacage::tryMallocArray):
1697         * wtf/glib/SocketConnection.cpp:
1698         (WTF::SocketConnection::sendMessage):
1699
1700 2020-04-13  Simon Fraser  <simon.fraser@apple.com>
1701
1702         Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for non-Cocoa platforms
1703         https://bugs.webkit.org/show_bug.cgi?id=210460
1704
1705         Reviewed by Tim Horton.
1706
1707         Define ENABLE_CUSTOM_SCROLLBARS for PLATFORM(MAC) and other non-Cocoa platforms.
1708
1709         * wtf/PlatformEnable.h:
1710         * wtf/PlatformEnableCocoa.h:
1711
1712 2020-04-13  David Kilzer  <ddkilzer@apple.com>
1713
1714         Fix clang static analyzer warnings about unused instance variables in WebIconDatabase, WKView
1715         <https://webkit.org/b/210427>
1716
1717         Reviewed by Alex Christensen.
1718
1719         * wtf/Compiler.h:
1720         (WK_UNUSED_INSTANCE_VARIABLE): Add.
1721
1722 2020-04-13  Joonghun Park  <jh718.park@samsung.com>
1723
1724         Unreviewed. Remove redundant move in return statement.
1725
1726         Return statement already returns rvalue,
1727         so we don't need move here.
1728
1729         This patch removes the build warning below since r259922.
1730         warning: redundant move in return statement [-Wredundant-move]
1731
1732         * wtf/persistence/PersistentCoders.cpp:
1733         (WTF::Persistence::Coder<CString>::decode):
1734         (WTF::Persistence::decodeStringText):
1735         (WTF::Persistence::Coder<SHA1::Digest>::decode):
1736         * wtf/persistence/PersistentCoders.h:
1737
1738 2020-04-12  Mark Lam  <mark.lam@apple.com>
1739
1740         Enable the ability to build the ASM LLInt for ARMv7k.
1741         https://bugs.webkit.org/show_bug.cgi?id=210412
1742
1743         Reviewed by Sam Weinig.
1744
1745         Remove some old code that forces the ENABLE(C_LOOP) to be true if ENABLE(JIT) is
1746         false.  These 2 options used to be mutually exclusive, but is no more.  Now, we
1747         allow platforms to choose to build the ASM LLInt instead even if ENABLE(JIT) is
1748         false.
1749
1750         * wtf/PlatformEnable.h:
1751
1752 2020-04-12  Darin Adler  <darin@apple.com>
1753
1754         [Cocoa] Minor tweaks to code to get locale strings to remove one-time-initialization booleans
1755         https://bugs.webkit.org/show_bug.cgi?id=210410
1756
1757         Reviewed by Sam Weinig.
1758
1759         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
1760         (WTF::textBreakLocalePreference): Use auto, and no need to explicitly mark this inline.
1761         (WTF::topLanguagePreference): Use auto.
1762         (WTF::localeIDInBuffer): Renamed from getLocale. Changed to return a std::array and to
1763         handle failure cases afterward rather than by initializing beforehand.
1764         (WTF::getSearchLocale): Deleted.
1765         (WTF::currentSearchLocaleID): Using "static const auto", wrote this in a straightforward
1766         and compact way, using localeIDInBuffer and topLanguagePreference.
1767         (WTF::textBreakLocale): Renamed from getTextBreakLocale and changed to return a
1768         RetainPtr<CFStringRef>.
1769         (WTF::currentTextBreakLocaleID): Using "static const auto", wrote this in a straightforward
1770         and compact way, using localeIDInBuffer and textBreakLocale.
1771
1772 2020-04-12  David Kilzer  <ddkilzer@apple.com>
1773
1774         Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
1775         <https://webkit.org/b/210238>
1776         <rdar://problem/61491575>
1777
1778         Changes based on feedback from Alex Christensen and Darin Adler:
1779         - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
1780         - Place WARN_UNUSED_RETURN consistently before the return type.
1781
1782         * wtf/persistence/PersistentDecoder.h:
1783
1784 2020-04-10  Alex Christensen  <achristensen@webkit.org>
1785
1786         PersistentCoders should use modern decoding syntax
1787         https://bugs.webkit.org/show_bug.cgi?id=207497
1788
1789         Reviewed by Darin Adler.
1790
1791         This paves the way for more serialized types that do not have a default constructor.
1792
1793         * wtf/persistence/PersistentCoder.h:
1794         (WTF::Persistence::Coder::encode):
1795         (WTF::Persistence::Coder::decode):
1796         * wtf/persistence/PersistentCoders.cpp:
1797         (WTF::Persistence::Coder<AtomString>::decode):
1798         (WTF::Persistence::Coder<CString>::decode):
1799         (WTF::Persistence::decodeStringText):
1800         (WTF::Persistence::Coder<String>::decode):
1801         (WTF::Persistence::Coder<SHA1::Digest>::decode):
1802         * wtf/persistence/PersistentCoders.h:
1803         (WTF::Persistence::Coder<Optional<T>>::decode):
1804         (WTF::Persistence::Coder<Seconds>::decode):
1805         (WTF::Persistence::Coder<WallTime>::decode):
1806         * wtf/persistence/PersistentDecoder.cpp:
1807         (WTF::Persistence::Decoder::decodeNumber):
1808         (WTF::Persistence::Decoder::operator>>):
1809         (WTF::Persistence::Decoder::decode): Deleted.
1810         * wtf/persistence/PersistentDecoder.h:
1811         (WTF::Persistence::Decoder::operator>>):
1812         (WTF::Persistence::Decoder::decode): Deleted.
1813         (WTF::Persistence::Decoder::decodeEnum): Deleted.
1814         * wtf/persistence/PersistentEncoder.h:
1815         (WTF::Persistence::Encoder::operator<<):
1816         (WTF::Persistence::Encoder::encode): Deleted.
1817         (WTF::Persistence::Encoder::encodeEnum): Deleted.
1818
1819 2020-04-10  David Kilzer  <ddkilzer@apple.com>
1820
1821         Follow-up: Add WARN_UNUSED_RETURN to decode methods in Source/WTF
1822         <https://webkit.org/b/210323>
1823         <rdar://problem/61565764>
1824
1825         Changes based on feedback from Alex Christensen and Darin Adler:
1826         - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
1827         - Place WARN_UNUSED_RETURN consistently before the return type.
1828
1829         * wtf/MediaTime.h:
1830         * wtf/MonotonicTime.h:
1831         * wtf/ObjectIdentifier.h:
1832         (WTF::ObjectIdentifier::decode):
1833         * wtf/Seconds.h:
1834         * wtf/URL.h:
1835
1836 2020-04-10  Alicia Boya García  <aboya@igalia.com>
1837
1838         [WTF] DataMutex: Add runUnlocked()
1839         https://bugs.webkit.org/show_bug.cgi?id=209811
1840
1841         Reviewed by Xabier Rodriguez-Calvar.
1842
1843         This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
1844         to run a lambda function without the lock. This is intended to be used for
1845         small sections of the code that need to be unlocked, in cases where using
1846         scoping would prove non-ergonomic or where running the unlocked section is only
1847         necessary or desired when a certain condition is met -- something that cannot
1848         be done with C++ scoping.
1849
1850         Safety mechanisms are provided. First, because this is used with a lambda, all
1851         variables to be used in the unlocked section have to be specified in the
1852         capture (global capture is possible but not recommended to simplify analysis).
1853         Second, additional checks have been added to DataMutex to detect unlocked
1854         accesses among other conditions. This will detect among other things naive
1855         access to protected members by means of capturing the LockedWrapper by
1856         reference.
1857
1858         * wtf/DataMutex.h:
1859         (WTF::OwnerAwareLockAdapter::lock):
1860         (WTF::OwnerAwareLockAdapter::unlock):
1861         (WTF::OwnerAwareLockAdapter::tryLock):
1862         (WTF::OwnerAwareLockAdapter::isLocked const):
1863         (WTF::DataMutex::LockedWrapper::operator->):
1864         (WTF::DataMutex::LockedWrapper::operator*):
1865         (WTF::DataMutex::LockedWrapper::mutex):
1866         (WTF::DataMutex::LockedWrapper::lockHolder):
1867         (WTF::DataMutex::LockedWrapper::runUnlocked):
1868
1869 2020-04-10  David Kilzer  <ddkilzer@apple.com>
1870
1871         Add WARN_UNUSED_RETURN to decode methods in Source/WTF
1872         <https://webkit.org/b/210323>
1873         <rdar://problem/61565764>
1874
1875         Reviewed by Darin Adler.
1876
1877         * wtf/MediaTime.h:
1878         * wtf/MonotonicTime.h:
1879         * wtf/ObjectIdentifier.h:
1880         (WTF::ObjectIdentifier::decode):
1881         * wtf/Seconds.h:
1882         * wtf/URL.h:
1883         * wtf/persistence/PersistentCoder.h:
1884         (WTF::Persistence::Coder::decode):
1885
1886 2020-04-08  Darin Adler  <darin@apple.com>
1887
1888         [Cocoa] Simplify NSArray, NSDictionary, and NSNumber idioms throughout WebKit
1889         https://bugs.webkit.org/show_bug.cgi?id=210138
1890
1891         Reviewed by Alex Christensen.
1892
1893         * WTF.xcodeproj/project.pbxproj: Added VectorCocoa.h.
1894         * wtf/PlatformMac.cmake: Ditto.
1895
1896         * wtf/cocoa/NSURLExtras.mm: Removed unneeded include.
1897         * wtf/cocoa/URLCocoa.mm: Ditto.
1898
1899         * wtf/cocoa/VectorCocoa.h: Added. Contains createNSArray and makeVector
1900         function templates for converting NSArray to and from Vector.
1901
1902         * wtf/text/WTFString.h: Added makeNSArrayElement and makeVectorElement
1903         functions, making createNSArray and makeVector compatible with String.
1904         * wtf/text/cocoa/StringCocoa.mm:
1905         (WTF::makeNSArrayElement): Added.
1906         (WTF::makeVectorElement): Added.
1907
1908 2020-04-09  David Kilzer  <ddkilzer@apple.com>
1909
1910         Add using WTF::isInBounds to CheckedArithmetic.h
1911         <https://webkit.org/b/210299>
1912
1913         Reviewed by Darin Adler.
1914
1915         * wtf/CheckedArithmetic.h:
1916         - Add `using WTF::isInBounds` statement so this function may be
1917           used unprefixed outside the WTF project.
1918
1919 2020-04-09  David Kilzer  <ddkilzer@apple.com>
1920
1921         WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
1922         <https://webkit.org/b/210238>
1923         <rdar://problem/61491575>
1924
1925         Reviewed by Darin Adler.
1926
1927         * wtf/persistence/PersistentCoders.cpp:
1928         (WTF::Persistence::decodeStringText):
1929         - Add WARN_UNUSED_RETURN.
1930
1931         * wtf/persistence/PersistentCoders.h:
1932         (WTF::Persistence::Coder<Optional<T>>::decode):
1933         (WTF::Persistence::Coder<Seconds>::decode):
1934         (WTF::Persistence::Coder<WallTime>::decode):
1935         - Add WARN_UNUSED_RETURN.
1936         - Add missing return value check for
1937           decode.decodeFixedLengthData().
1938
1939         * wtf/persistence/PersistentDecoder.h:
1940         (WTF::Persistence::Decoder::decode):
1941         (WTF::Persistence::Decoder::decodeEnum):
1942         (WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
1943         - Add WARN_UNUSED_RETURN.
1944
1945 2020-04-09  David Kilzer  <ddkilzer@apple.com>
1946
1947         Follow-up: WTF::Persistence::VectorCoder and IPC::VectorArgumentCoder should do bounds checking without crashing
1948         <https://webkit.org/b/210227>
1949         <rdar://problem/60832243>
1950
1951         Reviewed by Alex Christensen.
1952
1953         * wtf/persistence/PersistentCoders.h:
1954         (WTF::Persistence::VectorCoder::decode):
1955         - Replace safeCast<size_t> with isInBounds<size_t> so that we
1956           don't crash if `decodedSize` is too big.  Instead we fail
1957           decoding by returning early.
1958         - Revert checked arithemtic for multiplication since
1959           bufferIsLargeEnoughToContain<T(size) already did this check
1960           for us.
1961
1962 2020-04-09  Mark Lam  <mark.lam@apple.com>
1963
1964         Implement a more efficient tagCFunction() tool.
1965         https://bugs.webkit.org/show_bug.cgi?id=210254
1966
1967         Reviewed by Keith Miller.
1968
1969         The current tagCFunctionPtr() tool does some extra work that is not needed if
1970         we are tagging a known function and not a potentially arbitrary pointer.  For
1971         example,
1972         1. it doesn't need to do a null check.
1973         2. it doesn't need to authenticate the function address.  
1974         3. The RELEASE_ASSERT used to enforce that authentication can also go away.
1975
1976         We should only use tagCFunction() (instead of tagCFunctionPtr()) if we know for
1977         certain that we're operating on a C/C++ function, and not some arbitrary pointer.
1978
1979         * wtf/PtrTag.h:
1980         (WTF::tagCFunction):
1981
1982 2020-04-08  David Kilzer  <ddkilzer@apple.com>
1983
1984         WTF::Persistence::VectorCoder and IPC::VectorArgumentCoder should use checked arithmetic
1985         <https://webkit.org/b/210227>
1986         <rdar://problem/60832243>
1987
1988         Reviewed by Alex Christensen.
1989
1990         * wtf/persistence/PersistentCoders.h:
1991         (WTF::Persistence::VectorCoder::decode):
1992         - Use checked arithemtic for multiplication.
1993
1994 2020-04-08  Chris Dumez  <cdumez@apple.com>
1995
1996         querySelector("#\u0000") should match an element with ID U+FFFD
1997         https://bugs.webkit.org/show_bug.cgi?id=210119
1998
1999         Reviewed by Darin Adler.
2000
2001         * wtf/text/StringImpl.cpp:
2002         (WTF::StringImpl::replace):
2003         Slightly optimize the 16-bit code path of StringImpl::replace(). Since we know
2004         there is no character match from indexes 0 to i, we can simply use memcpy for
2005         this range.
2006
2007 2020-04-08  Ross Kirsling  <ross.kirsling@sony.com>
2008
2009         Remove ENABLE_INTL define
2010         https://bugs.webkit.org/show_bug.cgi?id=210164
2011
2012         Reviewed by Darin Adler.
2013
2014         AppleWin (and, following suit, FTW) was the only upstream platform turning ENABLE_INTL off;
2015         now that their headers have been upgraded to ICU 62, this define can be removed entirely.
2016
2017         Going forward, we thus assume JSC has an Intl object and can simply runtime-guard any new features added to it.
2018
2019         * wtf/PlatformEnable.h:
2020         * wtf/PlatformEnableCocoa.h:
2021
2022 2020-04-08  Adrian Perez de Castro  <aperez@igalia.com>
2023
2024         [GTK4] Make PAL::systemBeep() work
2025         https://bugs.webkit.org/show_bug.cgi?id=210158
2026
2027         Reviewed by Carlos Garcia Campos.
2028
2029         * wtf/Platform.h: Define a value for GDK_VERSION_MIN_REQUIRED suitable for GTK4.
2030
2031 2020-04-08  Tim Horton  <timothy_horton@apple.com>
2032
2033         Rearrange and simplify some JSC feature flags
2034         https://bugs.webkit.org/show_bug.cgi?id=210152
2035
2036         Reviewed by Saam Barati.
2037
2038         * wtf/PlatformEnableCocoa.h:
2039         * wtf/PlatformHave.h:
2040         * wtf/PlatformUse.h:
2041
2042 2020-04-08  Philippe Normand  <pnormand@igalia.com>
2043
2044         [GTK][WPE] Release logs are unconditionally filling the journal
2045         https://bugs.webkit.org/show_bug.cgi?id=209421
2046
2047         Reviewed by Carlos Alberto Lopez Perez.
2048
2049         * wtf/Assertions.h: Don't send logs to systemd for disabled log channels.
2050         * wtf/Logger.h:
2051         (WTF::Logger::willLog const): Ditto.
2052
2053 2020-04-07  Chris Dumez  <cdumez@apple.com>
2054
2055         Merge DependencyAssertion into ProcessAssertion
2056         https://bugs.webkit.org/show_bug.cgi?id=210076
2057
2058         Reviewed by Alex Christensen.
2059
2060         * wtf/PlatformHave.h:
2061
2062 2020-04-07  Saam Barati  <sbarati@apple.com>
2063
2064         RAMification should have a way of gathering vmmaps for each test at the end of each run
2065         https://bugs.webkit.org/show_bug.cgi?id=210060
2066
2067         Reviewed by Yusuke Suzuki.
2068
2069         * wtf/FastMalloc.cpp:
2070         (WTF::fastDisableScavenger):
2071         * wtf/FastMalloc.h:
2072
2073 2020-04-06  Ross Kirsling  <ross.kirsling@sony.com>
2074
2075         Update minimum ICU version to 60.2
2076         https://bugs.webkit.org/show_bug.cgi?id=209694
2077
2078         Reviewed by Darin Adler.
2079
2080         This patch has two immediate motivations:
2081           1. To properly introduce a minimum ICU version for WebKit as a whole
2082              (responding to a pain point identified in bug 209579)
2083           2. To support the development of ECMA-402 Intl API features, which JSC is quite behind on
2084              (and which often boil down to exposing ICU functionality to JavaScript)
2085
2086         * icu/LICENSE:
2087         * icu/README:
2088         * icu/unicode/:
2089         Update ICU headers to major version 62, the version included in macOS Mojave.
2090
2091         * wtf/text/AtomString.h:
2092         * wtf/text/WTFString.h:
2093         Remove obsoleted compile-time version checks.
2094
2095         * wtf/text/cocoa/StringCocoa.mm:
2096         (WTF::String::String):
2097         * wtf/text/cocoa/StringViewCocoa.mm:
2098         (WTF::StringView::createNSString const):
2099         (WTF::StringView::createNSStringWithoutCopying const):
2100         Manually convert between UChar and UniChar/unichar where needed.
2101
2102 2020-04-06  Saam Barati  <sbarati@apple.com>
2103
2104         Implement 1GB of executable memory on arm64
2105         https://bugs.webkit.org/show_bug.cgi?id=208490
2106         <rdar://problem/60797127>
2107
2108         Reviewed by Keith Miller.
2109
2110         * wtf/MetaAllocator.cpp:
2111         (WTF::MetaAllocatorTracker::notify):
2112         (WTF::MetaAllocatorTracker::release):
2113         (WTF::MetaAllocator::release):
2114         (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
2115         (WTF::MetaAllocatorHandle::~MetaAllocatorHandle):
2116         (WTF::MetaAllocatorHandle::shrink):
2117         (WTF::MetaAllocator::MetaAllocator):
2118         (WTF::MetaAllocator::allocate):
2119         (WTF::MetaAllocator::currentStatistics):
2120         * wtf/MetaAllocator.h:
2121         (WTF::MetaAllocatorTracker::find):
2122         (WTF::MetaAllocator::allocate):
2123         (WTF::MetaAllocator::currentStatistics):
2124         (WTF::MetaAllocator::getLock): Deleted.
2125         * wtf/MetaAllocatorHandle.h:
2126         (WTF::MetaAllocatorHandle::allocator):
2127         (WTF::MetaAllocatorHandle::isManaged): Deleted.
2128         (WTF::MetaAllocatorHandle::ownerUID): Deleted.
2129         * wtf/PlatformEnable.h:
2130         * wtf/RedBlackTree.h:
2131         * wtf/StdLibExtras.h:
2132         (WTF::constructFixedSizeArrayWithArgumentsImpl):
2133         (WTF::constructFixedSizeArrayWithArguments):
2134
2135 2020-04-04  Darin Adler  <darin@apple.com>
2136
2137         Stop using live ranges in DocumentMarkerController
2138         https://bugs.webkit.org/show_bug.cgi?id=209985
2139
2140         Reviewed by Antti Koivisto.
2141
2142         * wtf/RetainPtr.h: Define "id" here when compiling non-ObjC so it's easier to use
2143         RetainPtr<id> in any header file. Lets us stop doing this many other places.
2144         Harmless when not needed.
2145
2146 2020-04-04  Fujii Hironori  <Hironori.Fujii@sony.com>
2147
2148         [Clang 10] Fix -Wimplicit-int-float-conversion compilation warnings in WTF
2149         https://bugs.webkit.org/show_bug.cgi?id=209955
2150
2151         Reviewed by Darin Adler.
2152
2153         Clang 10 reports a compilation warning for int to float
2154         conversions losing the precision. The warning is often reported
2155         for code converting a floating point value to an integer value.
2156         For example:
2157
2158         > Optional<int> positive_float_to_int(float f) {
2159         >     if (f > INT_MAX)
2160         >         return nullopt;
2161         >     return static_cast<int>(f);
2162         > }
2163
2164         INT_MAX is implicitly converted float, but float can't keep the
2165         precision of such large value. And, C++ spec doesn't specify
2166         whether it would be rounded up or down. Above code should be
2167         rewritten to:
2168
2169         > Optional<int> positive_float_to_int(float f) {
2170         >     if (f >= pow(2, 31))
2171         >         return nullopt;
2172         >     return static_cast<int>(f);
2173         > }
2174
2175         Instead of using pow, this change added a template variable
2176         maxPlusOne<T>.
2177
2178         * wtf/MathExtras.h:
2179         (powerOfTwo): Added.
2180         (doubleToInteger): Added.
2181         (maxPlusOne): Added.
2182         * wtf/MediaTime.cpp:
2183         (WTF::MediaTime::createWithFloat):
2184         (WTF::MediaTime::createWithDouble):
2185
2186 2020-04-03  David Kilzer  <ddkilzer@apple.com>
2187
2188         [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited)
2189         <https://webkit.org/b/209963>
2190         <rdar://problem/61257504>
2191
2192         Reviewed by Alexey Proskuryakov.
2193
2194         * Configurations/Base.xcconfig:
2195         - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and
2196           ASAN_OTHER_LDFLAGS.
2197
2198 2020-04-02  Commit Queue  <commit-queue@webkit.org>
2199
2200         Unreviewed, reverting r259390.
2201         https://bugs.webkit.org/show_bug.cgi?id=209944
2202
2203         It broke WinCairo builds (Requested by fujihiro on #webkit).
2204
2205         Reverted changeset:
2206
2207         "Enable offlineasm debug annotations for GCC"
2208         https://bugs.webkit.org/show_bug.cgi?id=207119
2209         https://trac.webkit.org/changeset/259390
2210
2211 2020-04-02  Chris Dumez  <cdumez@apple.com>
2212
2213         [iOS] Replace UIKit background task with a RunningBoard FinishTaskInterruptable assertion
2214         https://bugs.webkit.org/show_bug.cgi?id=209825
2215         <rdar://problem/61118503>
2216
2217         Reviewed by Geoffrey Garen.
2218
2219         Add build-time flag for WebKit-specific assertion in RunningBoard.
2220
2221         * wtf/PlatformHave.h:
2222
2223 2020-04-02  Keith Rollin  <krollin@apple.com>
2224
2225         Address static analysis warning in DataLog.cpp: Value stored to 'pathCharactersAvailable' is never read
2226         https://bugs.webkit.org/show_bug.cgi?id=202153
2227         <rdar://problem/55671845>
2228
2229         Reviewed by David Kilzer.
2230
2231         Bug 168914 introduced some code that will initialize a variable to
2232         zero, but then never use that variable afterwards. Address this by
2233         removing the assignment.
2234
2235         * wtf/DataLog.cpp:
2236         (WTF::setDataFile):
2237
2238 2020-03-31  Michael Catanzaro  <mcatanzaro@gnome.org>
2239
2240         Update check for aarch64
2241         https://bugs.webkit.org/show_bug.cgi?id=209322
2242
2243         Reviewed by Mark Lam.
2244
2245         CPU(ARM64) is used on Linux, so checking to avoid Apple platforms doesn't make much sense.
2246         The comment implying that this is an Apple architecture also no longer makes sense.
2247
2248         * wtf/PlatformCPU.h:
2249
2250 2020-03-31  Sihui Liu  <sihui_liu@apple.com>
2251
2252         IndexedDB: destroy WebIDBServer when session is removed in network process
2253         https://bugs.webkit.org/show_bug.cgi?id=209606
2254         <rdar://problem/59310081>
2255
2256         Reviewed by Geoffrey Garen.
2257
2258         Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before 
2259         thread finishes.
2260
2261         * wtf/CrossThreadTaskHandler.cpp:
2262         (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
2263         (WTF::CrossThreadTaskHandler::setCompletionCallback):
2264         (WTF::CrossThreadTaskHandler::kill):
2265         * wtf/CrossThreadTaskHandler.h:
2266
2267 2020-03-30  David Kilzer  <ddkilzer@apple.com>
2268
2269         Fix "Dead nested assignment" static analyzer warning in monthFromDayInYear()
2270         <https://webkit.org/b/209718>
2271
2272         Reviewed by Alex Christensen.
2273
2274         * wtf/DateMath.h:
2275         (WTF::monthFromDayInYear): Change the last check so it doesn't
2276         assign a value to `step`, thus avoiding the warning.
2277
2278 2020-03-28  Simon Fraser  <simon.fraser@apple.com>
2279
2280         Add a ScrollLatching log channel and improve some logging functionality
2281         https://bugs.webkit.org/show_bug.cgi?id=209706
2282
2283         Reviewed by Darin Adler, David Kilzer.
2284
2285         * wtf/text/TextStream.h:
2286         (WTF::ValueOrNull::ValueOrNull):
2287         (WTF::operator<<):
2288
2289 2020-03-27  Simon Fraser  <simon.fraser@apple.com>
2290
2291         Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
2292         https://bugs.webkit.org/show_bug.cgi?id=209693
2293
2294         Reviewed by Zalan Bujtas.
2295
2296         Define ENABLE_WHEEL_EVENT_LATCHING for macOS.
2297
2298         * wtf/PlatformEnable.h:
2299
2300 2020-03-27  Michael Catanzaro  <mcatanzaro@gnome.org>
2301
2302         REGRESSION(r258857): Broke aarch64 JSCOnly CI
2303         https://bugs.webkit.org/show_bug.cgi?id=209670
2304
2305         Reviewed by Carlos Alberto Lopez Perez.
2306
2307         Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.
2308
2309         This change is definitely incorrect, because it will break our internal aarch64 CI that uses
2310         64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
2311         Further investigation is required, because 64 KB should have been a safe value for all
2312         platforms, but first step is to commit this and see what happens.
2313
2314         * wtf/PageBlock.h:
2315
2316 2020-03-26  Michael Catanzaro  <mcatanzaro@gnome.org>
2317
2318         Fix various compiler warnings
2319         https://bugs.webkit.org/show_bug.cgi?id=209438
2320
2321         Reviewed by Darin Adler.
2322
2323         Suppress -Wclass-memaccess warning. ConcurrentBuffer is documented to support types that are
2324         bit-copyable but not copy-constructable. This is strange, but who am I to question it?
2325
2326         * wtf/ConcurrentBuffer.h:
2327
2328 2020-03-25  Christopher Reid  <chris.reid@sony.com>
2329
2330         [PlayStation] Specify a 16 KB minimum page size
2331         https://bugs.webkit.org/show_bug.cgi?id=209566
2332
2333         Reviewed by Ross Kirsling.
2334
2335         * wtf/PageBlock.h:
2336
2337 2020-03-25  Sihui Liu  <sihui_liu@apple.com>
2338
2339         Remove unused suspend functions in CrossThreadTaskHandler
2340         https://bugs.webkit.org/show_bug.cgi?id=209553
2341
2342         Reviewed by Geoffrey Garen.
2343
2344         * wtf/CrossThreadTaskHandler.cpp:
2345         (WTF::CrossThreadTaskHandler::taskRunLoop):
2346         (WTF::CrossThreadTaskHandler::suspendAndWait): Deleted.
2347         (WTF::CrossThreadTaskHandler::resume): Deleted.
2348         * wtf/CrossThreadTaskHandler.h:
2349
2350 2020-03-24  Per Arne Vollan  <pvollan@apple.com>
2351
2352         [Cocoa] Fix launch time regression with CF prefs direct mode enabled
2353         https://bugs.webkit.org/show_bug.cgi?id=209244
2354
2355         Reviewed by Darin Adler.
2356
2357         Re-enable CF prefs direct mode.
2358
2359         * wtf/PlatformEnable.h:
2360         * wtf/PlatformEnableCocoa.h:
2361
2362 2020-03-24  Per Arne Vollan  <pvollan@apple.com>
2363
2364         [Cocoa] Deny access to database mapping service
2365         https://bugs.webkit.org/show_bug.cgi?id=209339
2366         <rdar://problem/56966010>
2367
2368         Reviewed by Brent Fulgham.
2369
2370         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
2371         of denying the database mapping service in this patch.
2372
2373         * wtf/PlatformUse.h:
2374
2375 2020-03-23  Commit Queue  <commit-queue@webkit.org>
2376
2377         Unreviewed, reverting r258891.
2378         https://bugs.webkit.org/show_bug.cgi?id=209459
2379
2380         Introduced layout test failures (Requested by perarne on
2381         #webkit).
2382
2383         Reverted changeset:
2384
2385         "[Cocoa] Deny access to database mapping service"
2386         https://bugs.webkit.org/show_bug.cgi?id=209339
2387         https://trac.webkit.org/changeset/258891
2388
2389 2020-03-23  Per Arne Vollan  <pvollan@apple.com>
2390
2391         [Cocoa] Deny access to database mapping service
2392         https://bugs.webkit.org/show_bug.cgi?id=209339
2393         <rdar://problem/56966010>
2394
2395         Reviewed by Brent Fulgham.
2396
2397         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
2398         of denying the database mapping service in this patch.
2399
2400         * wtf/PlatformUse.h:
2401
2402 2020-03-23  John Wilander  <wilander@apple.com>
2403
2404         Add the capability to change all of a website's cookies to SameSite=Strict
2405         https://bugs.webkit.org/show_bug.cgi?id=209369
2406         <rdar://problem/60710690>
2407
2408         Reviewed by Alex Christensen and David Kilzer.
2409
2410         * wtf/PlatformHave.h:
2411             Adds HAVE_CFNETWORK_SAMESITE_COOKIE_API for macOS Catalina and up,
2412             iOS 13 and up, Catalyst, watchOS, and Apple TV.
2413
2414 2020-03-23  youenn fablet  <youenn@apple.com>
2415
2416         Rename blankURL to aboutBlankURL
2417         https://bugs.webkit.org/show_bug.cgi?id=209344
2418
2419         Reviewed by Darin Adler.
2420
2421         Rename blankURL to aboutBlankURL and allow using it without WTF:: prefix.
2422
2423         * wtf/URL.cpp:
2424         (WTF::aboutBlankURL):
2425         (WTF::blankURL): Deleted.
2426         * wtf/URL.h:
2427
2428 2020-03-23  Rob Buis  <rbuis@igalia.com>
2429
2430         XMLHttpRequest: getAllResponseHeaders() sorting
2431         https://bugs.webkit.org/show_bug.cgi?id=200565
2432
2433         Reviewed by Darin Adler.
2434
2435         Add a new manipulator that can efficiently convert
2436         Strings to lower or upper ASCII.
2437
2438         * wtf/text/StringConcatenate.h:
2439         (WTF::lowercase):
2440         (WTF::uppercase):
2441         * wtf/text/StringView.cpp:
2442         (WTF::getCharactersWithASCIICaseInternal):
2443         (WTF::StringView::getCharactersWithASCIICase const):
2444         * wtf/text/StringView.h:
2445
2446 2020-03-23  Antoine Quint  <graouts@apple.com>
2447
2448         DocumentTimeline / CSSTransition objects are leaking on CNN.com
2449         https://bugs.webkit.org/show_bug.cgi?id=208069
2450         <rdar://problem/59680143>
2451
2452         Reviewed by Darin Adler.
2453
2454         Integrating post-commit review feedback from Darin. 
2455
2456         * wtf/ListHashSet.h:
2457         (WTF::=):
2458
2459 2020-03-23  Michael Catanzaro  <mcatanzaro@gnome.org>
2460
2461         REGRESSION(r249808): [GTK] Crash in JSC Config::permanentlyFreeze() on architecture ppc64el
2462         https://bugs.webkit.org/show_bug.cgi?id=209236
2463
2464         Reviewed by Mark Lam.
2465
2466         Add new CeilingOnPageSize constants, for use in JSC, in order to centralize our compile-time
2467         page size guessing into one place. Improve the implementation of pageSize() to
2468         RELEASE_ASSERT() when CeilingOnPageSize is wrong, so we can detect and fix it if so. (It
2469         will be even easier to detect if we change RELEASE_ASSERT_WITH_MESSAGE() to actually print
2470         its message in release builds.) Change pageSize() to use sysconf(_SC_PAGESIZE), which is
2471         specified by POSIX, instead of getpagesize(), which is nonstandard.
2472
2473         * wtf/PageBlock.cpp:
2474         (WTF::systemPageSize):
2475         (WTF::pageSize):
2476         * wtf/PageBlock.h:
2477
2478 2020-03-23  Jacob Uphoff  <jacob_uphoff@apple.com>
2479
2480         Unreviewed, reverting r258803.
2481
2482         This revision caused many layout tests and 10 API tests to
2483         start failing/crashing
2484
2485         Reverted changeset:
2486
2487         "[Cocoa] Deny access to database mapping service"
2488         https://bugs.webkit.org/show_bug.cgi?id=209339
2489         https://trac.webkit.org/changeset/258803
2490
2491 2020-03-23  youenn fablet  <youenn@apple.com>
2492
2493         StringView::startsWith and String::startsWith do not treat null strings the same
2494         https://bugs.webkit.org/show_bug.cgi?id=209273
2495
2496         Reviewed by Darin Adler.
2497
2498         Align StringImpl with StringView and make startsWith return true if prefix is null.
2499
2500         * wtf/text/StringImpl.cpp:
2501         (WTF::StringImpl::startsWith const):
2502
2503 2020-03-22  Antoine Quint  <graouts@apple.com>
2504
2505         DocumentTimeline / CSSTransition objects are leaking on CNN.com
2506         https://bugs.webkit.org/show_bug.cgi?id=208069
2507         <rdar://problem/59680143>
2508
2509         Reviewed by Simon Fraser, Geoffrey Garen and Darin Adler.
2510
2511         If a CSSAnimation is set on an element using the `animation-name` CSS property, and later removed, it will leak due to the ListHashSet<RefPtr<CSSAnimation>>
2512         (aka CSSAnimationCollection) member on ElementAnimationRareData being replaced to the new list, but the old list not being cleared from its members.
2513
2514         We fix the ListHashSet assignment operator to use swap ensuring previously held items are cleared.
2515
2516         * wtf/ListHashSet.h:
2517         (WTF::=):
2518
2519 2020-03-20  Per Arne Vollan  <pvollan@apple.com>
2520
2521         [Cocoa] Deny access to database mapping service
2522         https://bugs.webkit.org/show_bug.cgi?id=209339
2523         <rdar://problem/56966010>
2524
2525         Reviewed by Brent Fulgham.
2526
2527         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
2528         of denying the database mapping service in this patch.
2529
2530         * wtf/PlatformUse.h:
2531
2532 2020-03-20  Oliver Hunt  <oliver@nerget,com>
2533
2534         Add correct annotations to block isa pointer
2535         https://bugs.webkit.org/show_bug.cgi?id=209355
2536         <rdar://problem/60431606>
2537
2538         Reviewed by Keith Miller.
2539
2540         Trivial definition update. 
2541
2542         * wtf/BlockPtr.h:
2543         (WTF::BlockPtr<R):
2544
2545 2020-03-20  Tim Horton  <timothy_horton@apple.com>
2546
2547         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
2548         https://bugs.webkit.org/show_bug.cgi?id=209307
2549
2550         Reviewed by Andy Estes.
2551
2552         * wtf/PlatformEnableCocoa.h:
2553         * wtf/PlatformHave.h:
2554
2555 2020-03-20  youenn fablet  <youenn@apple.com>
2556
2557         Add routines to check about:blank and about:srcdoc URLs
2558         https://bugs.webkit.org/show_bug.cgi?id=209174
2559
2560         Reviewed by Alex Christensen.
2561
2562         * wtf/URL.cpp:
2563         (WTF::aboutSrcDocURL):
2564         (WTF::URL::isAboutBlank const):
2565         (WTF::URL::isAboutSrcDoc const):
2566         * wtf/URL.h:
2567
2568 2020-03-20  Jacob Uphoff  <jacob_uphoff@apple.com>
2569
2570         Unreviewed, reverting r258748.
2571
2572         This commit broke the Catalina build
2573
2574         Reverted changeset:
2575
2576         "Upstream a variety of Cocoa-platform HAVE and ENABLE macros"
2577         https://bugs.webkit.org/show_bug.cgi?id=209307
2578         https://trac.webkit.org/changeset/258748
2579
2580 2020-03-19  Tim Horton  <timothy_horton@apple.com>
2581
2582         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
2583         https://bugs.webkit.org/show_bug.cgi?id=209307
2584
2585         Reviewed by Andy Estes.
2586
2587         * wtf/PlatformEnableCocoa.h:
2588         * wtf/PlatformHave.h:
2589
2590 2020-03-19  Tim Horton  <timothy_horton@apple.com>
2591
2592         Upstream the definition of HAVE_READ_ONLY_SYSTEM_VOLUME
2593         https://bugs.webkit.org/show_bug.cgi?id=209305
2594
2595         Reviewed by Andy Estes.
2596
2597         * wtf/PlatformHave.h:
2598
2599 2020-03-19  Tim Horton  <timothy_horton@apple.com>
2600
2601         Implement support for cursor interactions on iPad
2602         https://bugs.webkit.org/show_bug.cgi?id=209268
2603
2604         Reviewed by Darin Adler.
2605
2606         * wtf/PlatformEnableCocoa.h:
2607         Don't disable the contextmenu event on iOS anymore.
2608
2609         * wtf/PlatformHave.h:
2610         Rename HAVE_HOVER_GESTURE_RECOGNIZER to HAVE_UIKIT_WITH_MOUSE_SUPPORT.
2611         Add HAVE_UI_CURSOR_INTERACTION.
2612         Enable HAVE_UI_PARALLAX_TRANSITION_GESTURE_RECOGNIZER on iOS.
2613
2614 2020-03-19  Charlie Turner  <cturner@igalia.com>
2615
2616         Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.
2617         https://bugs.webkit.org/show_bug.cgi?id=209146
2618
2619         Reviewed by Darin Adler.
2620
2621         * wtf/LoggerHelper.h: When the RELEASE_LOG is disabled, avoid warning
2622         spam about unused channel names. Call sites often create locals for
2623         the channel name outside of RELEASE_LOG ifdef's, which cause many
2624         unused variable warnings.
2625
2626 2020-03-19  Philippe Normand  <pnormand@igalia.com>
2627
2628         [GTK][WPE] Unreviewed, build fixes after r258547 when disabling release logging support
2629
2630         * wtf/Logger.h:
2631         (WTF::Logger::logAlwaysVerbose const):
2632
2633 2020-03-19  youenn fablet  <youenn@apple.com>
2634
2635         Make URL::path() return a StringView
2636         https://bugs.webkit.org/show_bug.cgi?id=209173
2637
2638         Reviewed by Alex Christensen.
2639
2640         * wtf/URL.cpp:
2641         (WTF::URL::path const):
2642         * wtf/URL.h:
2643         * wtf/text/StringView.h:
2644         (WTF::startsWithLettersIgnoringASCIICase):
2645         Add an overload for StringView.
2646
2647 2020-03-18  Peng Liu  <peng.liu6@apple.com>
2648
2649         The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
2650         https://bugs.webkit.org/show_bug.cgi?id=204979
2651
2652         Reviewed by Jer Noble.
2653
2654         A follow-up patch to fix build failures.
2655
2656         * wtf/PlatformHave.h:
2657
2658 2020-03-18  Myles C. Maxfield  <mmaxfield@apple.com>
2659
2660         REGRESSION(r254389): Cordova throws an exception because it expects a hyphen inside navigator.locale
2661         https://bugs.webkit.org/show_bug.cgi?id=208969
2662         <rdar://problem/59845517>
2663
2664         Reviewed by Darin Adler.
2665
2666         We want to thwart fingerprinting by minimizing the list of locales, but we also don't want to break existing apps.
2667         We can achieve both by a linked-on-or-after check.
2668
2669         * wtf/cocoa/LanguageCocoa.mm:
2670         (WTF::canMinimizeLanguages):
2671
2672 2020-03-17  Alex Christensen  <achristensen@webkit.org>
2673
2674         REGRESSION(r254856) Add exception for window.openDatabase to not masquerade as undefined in currently shipping Jesus Calling Devotional app
2675         https://bugs.webkit.org/show_bug.cgi?id=209160
2676         <rdar://problem/60297073>
2677
2678         Reviewed by Geoff Garen.
2679
2680         * wtf/spi/darwin/dyldSPI.h:
2681
2682 2020-03-17  Per Arne Vollan  <pvollan@apple.com>
2683
2684         [Cocoa] Disable CF prefs direct mode
2685         https://bugs.webkit.org/show_bug.cgi?id=209166
2686         <rdar://problem/60517387>
2687
2688         Reviewed by Brent Fulgham.
2689
2690         Revert <https://trac.webkit.org/changeset/258064> by disabling the CF prefs direct mode feature,
2691         since it caused performance regressions.
2692
2693         * wtf/PlatformEnable.h:
2694
2695 2020-03-17  Philippe Normand  <pnormand@igalia.com>
2696
2697         RELEASE_LOG should not be Cocoa specific
2698         https://bugs.webkit.org/show_bug.cgi?id=195182
2699
2700         Reviewed by Konstantin Tokarev.
2701
2702         Add sd-journal logging support and wrap the os_log calls with the USE(OS_LOG) guard.
2703
2704         * wtf/Assertions.cpp:
2705         * wtf/Assertions.h:
2706         * wtf/Logger.h:
2707         (WTF::Logger::log):
2708         * wtf/MemoryPressureHandler.cpp:
2709         (WTF::toString):
2710         * wtf/PlatformGTK.cmake:
2711         * wtf/PlatformWPE.cmake:
2712         * wtf/RefCountedLeakCounter.cpp:
2713
2714 2020-03-16  Keith Miller  <keith_miller@apple.com>
2715
2716         JavaScript identifier grammar supports unescaped astral symbols, but JSC doesn’t
2717         https://bugs.webkit.org/show_bug.cgi?id=208998
2718
2719         Reviewed by Michael Saboff.
2720
2721         * wtf/text/WTFString.cpp:
2722         (WTF::String::fromCodePoint):
2723         * wtf/text/WTFString.h:
2724
2725 2020-03-15  Yusuke Suzuki  <ysuzuki@apple.com>
2726
2727         Should not use variable-length-array (VLA)
2728         https://bugs.webkit.org/show_bug.cgi?id=209043
2729
2730         Reviewed by Mark Lam.
2731
2732         * Configurations/Base.xcconfig:
2733         * wtf/UUID.cpp:
2734         (WTF::bootSessionUUIDString):
2735
2736 2020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
2737
2738         [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
2739         https://bugs.webkit.org/show_bug.cgi?id=209030
2740
2741         Reviewed by Simon Fraser.
2742
2743         * WTF.xcodeproj/project.pbxproj:
2744         * wtf/PlatformMac.cmake:
2745         * wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
2746         * wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.
2747         (WTF::applicationSDKVersionOverride):
2748         (WTF::setApplicationSDKVersion):
2749         (WTF::applicationSDKVersion):
2750
2751 2020-03-11  Jer Noble  <jer.noble@apple.com>
2752
2753         Adopt AVSampleBufferVideoOutput
2754         https://bugs.webkit.org/show_bug.cgi?id=208951
2755
2756         Reviewed by Eric Carlson.
2757
2758         * wtf/PlatformHave.h:
2759
2760 2020-03-11  Jer Noble  <jer.noble@apple.com>
2761
2762         [EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
2763         https://bugs.webkit.org/show_bug.cgi?id=208923
2764
2765         Reviewed by Eric Carlson.
2766
2767         * wtf/LoggerHelper.h:
2768         (WTF::LoggerHelper::childLogIdentifier): Made static.
2769
2770 2020-03-11  Per Arne Vollan  <pvollan@apple.com>
2771
2772         [macOS] Crash under WebKit::WebProcessPool::platformInitialize()
2773         https://bugs.webkit.org/show_bug.cgi?id=208945
2774
2775         Reviewed by Brent Fulgham.
2776
2777         Add macro to optionally soft link library.
2778
2779         * wtf/cocoa/SoftLinking.h:
2780
2781 2020-03-11  Alex Christensen  <achristensen@webkit.org>
2782
2783         Enable safe browsing warnings in Mac Catalyst WebKit
2784         https://bugs.webkit.org/show_bug.cgi?id=208944
2785         <rdar://problem/58854302>
2786
2787         Reviewed by Tim Horton.
2788
2789         * wtf/PlatformHave.h:
2790
2791 2020-03-09  Megan Gardner  <megan_gardner@apple.com>
2792
2793         Build Fix
2794         https://bugs.webkit.org/show_bug.cgi?id=208838
2795
2796         Reviewed by Tim Horton.
2797
2798         * wtf/PlatformHave.h:
2799
2800 2020-03-09  Don Olmstead  <don.olmstead@sony.com>
2801
2802         Remove obsolete feature flags
2803         https://bugs.webkit.org/show_bug.cgi?id=208830
2804
2805         Reviewed by Alex Christensen.
2806
2807         Remove ENABLE_CUSTOM_SCHEME_HANDLER as it is unused in source.
2808
2809         * wtf/PlatformEnable.h:
2810
2811 2020-03-08  Brady Eidson  <beidson@apple.com>
2812
2813         Remember completed subranges during incremental PDF loading.
2814         https://bugs.webkit.org/show_bug.cgi?id=208785
2815
2816         Reviewed by Tim Horton.
2817
2818         * wtf/Range.h: Don't include the typical 'using WTF::Range' as that makes it almost impossible
2819           to use in the stack at WebCore or higher (Because of WebCore::Range)
2820
2821 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
2822
2823         Unreviewed build fix.
2824
2825         * wtf/PlatformUse.h:
2826
2827 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
2828
2829         [iOS] Mapping to UTI from tag and tag class should be performed in the UI process
2830         https://bugs.webkit.org/show_bug.cgi?id=208783
2831
2832         Reviewed by Brent Fulgham.
2833
2834         * wtf/PlatformUse.h:
2835
2836 2020-03-08  Wenson Hsieh  <wenson_hsieh@apple.com>
2837
2838         Lazily generate CGPaths for some simple types of paths, such as arcs and lines
2839         https://bugs.webkit.org/show_bug.cgi?id=208464
2840         <rdar://problem/59963226>
2841
2842         Reviewed by Daniel Bates, Darin Adler and Tim Horton.
2843
2844         Add a feature flag for INLINE_PATH_DATA. This feature flag exists to ensure that we can avoid having
2845         m_inlineData on Path in ports that don't implement the necessary facilities for inline path data yet, since it
2846         would just end up being wasted memory.
2847
2848         * wtf/PlatformEnable.h:
2849
2850 2020-03-07  Daniel Bates  <dabates@apple.com>
2851
2852         [iOS] Implement support for dictation alternatives
2853         https://bugs.webkit.org/show_bug.cgi?id=208720
2854         <rdar://problem/58540114>
2855
2856         Reviewed by Wenson Hsieh.
2857
2858         Part 5
2859
2860         Enable USE_DICTATION_ALTERNATIVES on iOS.
2861
2862         * wtf/PlatformUse.h:
2863
2864 2020-03-05  Sam Weinig  <weinig@apple.com>
2865
2866         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2867         https://bugs.webkit.org/show_bug.cgi?id=207436
2868         <rdar://problem/59296762>
2869
2870         Reviewed by Darin Adler.
2871
2872         * wtf/PlatformEnable.h:
2873         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
2874
2875         * wtf/PlatformEnableCocoa.h:
2876         Added ENABLE_FAST_JIT_PERMISSIONS and ENABLE_INTL (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
2877         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
2878
2879 2020-03-06  Per Arne Vollan  <pvollan@apple.com>
2880
2881         [Cocoa] Re-enable CFPrefs direct mode
2882         https://bugs.webkit.org/show_bug.cgi?id=208690
2883
2884         Reviewed by Brent Fulgham.
2885
2886         * wtf/PlatformEnable.h:
2887
2888 2020-03-06  Peng Liu  <peng.liu6@apple.com>
2889
2890         Use the feature flags mechanism to give default feature preference values
2891         https://bugs.webkit.org/show_bug.cgi?id=208607
2892
2893         Reviewed by Youenn Fablet.
2894
2895         ENABLE_GPU_PROCESS_FOR_WEBRTC is removed because we will use the feature flags
2896         mechanism to give the default preference regarding the WebRTC in GPU process feature.
2897         This patch also adds macro HAVE_SYSTEM_FEATURE_FLAGS.
2898
2899         * wtf/PlatformEnable.h:
2900         * wtf/PlatformEnableCocoa.h:
2901         * wtf/PlatformHave.h:
2902
2903 2020-03-05  Darin Adler  <darin@apple.com>
2904
2905         Improve some media code
2906         https://bugs.webkit.org/show_bug.cgi?id=208322
2907
2908         Reviewed by Anders Carlsson.
2909
2910         * wtf/WeakPtr.h:
2911         (WTF::WeakPtr::operator! const): Added.
2912
2913 2020-03-05  Jer Noble  <jer.noble@apple.com>
2914
2915         [GPUP] Implement RemoteAudioSession
2916         https://bugs.webkit.org/show_bug.cgi?id=208583
2917
2918         Reviewed by Alex Christensen.
2919
2920         Add UniqueRef to the list of forward-declared template types.
2921
2922         * wtf/Forward.h:
2923
2924 2020-03-04  Mark Lam  <mark.lam@apple.com>
2925
2926         Handle an out of memory error while constructing the BytecodeGenerator.
2927         https://bugs.webkit.org/show_bug.cgi?id=208622
2928         <rdar://problem/59341136>
2929
2930         Reviewed by Saam Barati.
2931
2932         * wtf/CagedUniquePtr.h:
2933         (WTF::CagedUniquePtr::tryCreate):
2934
2935 2020-03-04  Brady Eidson  <beidson@apple.com>
2936
2937         Lay initial groundwork for new PDF loading model
2938         https://bugs.webkit.org/show_bug.cgi?id=208599
2939
2940         Reviewed by Alex Christensen.
2941
2942         * wtf/PlatformHave.h:
2943
2944 2020-03-04  Wenson Hsieh  <wenson_hsieh@apple.com>
2945
2946         Add system trace points around display list replay
2947         https://bugs.webkit.org/show_bug.cgi?id=208616
2948
2949         Reviewed by Simon Fraser.
2950
2951         Add DisplayListReplayStart and DisplayListReplayEnd.
2952
2953         * wtf/SystemTracing.h:
2954
2955 2020-03-04  Per Arne Vollan  <pvollan@apple.com>
2956
2957         [Cocoa] Add enable flag to disable direct mode for preferences
2958         https://bugs.webkit.org/show_bug.cgi?id=208588
2959
2960         Reviewed by Brent Fulgham.
2961
2962         * wtf/PlatformEnable.h:
2963
2964 2020-03-03  Megan Gardner  <megan_gardner@apple.com>
2965
2966         Build Fix
2967         https://bugs.webkit.org/show_bug.cgi?id=208530
2968
2969         Reviewed by Wenson Hsieh.
2970
2971         * wtf/PlatformHave.h:
2972
2973 2020-03-03  Jiten Mehta  <jmehta@apple.com>
2974
2975         Adopt HTTP Alternative Services Storage
2976         https://bugs.webkit.org/show_bug.cgi?id=208387
2977
2978         Reviewed by Alex Christensen.
2979
2980         * wtf/PlatformHave.h:
2981
2982 2020-03-03  youenn fablet  <youenn@apple.com>
2983
2984         Rename USE(GPU_PROCESS) to ENABLE(GPU_PROCESS_FOR_WEBRTC)
2985         https://bugs.webkit.org/show_bug.cgi?id=208505
2986
2987         Reviewed by Eric Carlson.
2988
2989         Rename macro since the name is misleading.
2990         Disable GPU_PROCESS_FOR_WEBRTC for iOS except simulator for now.
2991
2992         * wtf/PlatformEnable.h:
2993         * wtf/PlatformEnableCocoa.h:
2994         * wtf/PlatformUse.h:
2995
2996 2020-03-02  Ben Nham  <nham@apple.com>
2997
2998         Add performance probes for HTML parsing
2999         https://bugs.webkit.org/show_bug.cgi?id=208271
3000
3001         Reviewed by Daniel Bates.
3002
3003         This adds probes that show which lines of HTML are have been parsed.
3004
3005         * wtf/SystemTracing.h:
3006
3007 2020-03-02  Ben Nham  <nham@apple.com>
3008
3009         [WTF] Add signpost API
3010         https://bugs.webkit.org/show_bug.cgi?id=208395
3011
3012         Reviewed by Alex Christensen.
3013
3014         We want to start using os_signpost instead of kdebug_trace when emitting performance events,
3015         because it is usually cheaper (doesn't require a system call unless the log buffer is full)
3016         and allows for richer tracepoints (allows for logging strings as well as integers).
3017
3018         To facilitate this, this moves the os_signpost wrappers in NetworkDataTaskCocoa to
3019         WTF. Since signposts can contain sensitive strings (like URLs), currently we only enable
3020         them on Apple-internal devices when an environment variable is set.
3021
3022         * WTF.xcodeproj/project.pbxproj:
3023         * wtf/PlatformMac.cmake:
3024         * wtf/SystemTracing.h:
3025         * wtf/cocoa/SystemTracingCocoa.cpp: Added.
3026         (WTFSignpostsEnabled):
3027         (WTFSignpostLogHandle):
3028         * wtf/spi/darwin/OSVariantSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/OSVariantSPI.h.
3029
3030 2020-03-02  Alan Coon  <alancoon@apple.com>
3031
3032         Add new Mac target numbers
3033         https://bugs.webkit.org/show_bug.cgi?id=208398
3034
3035         Reviewed by Alexey Proskuryakov.
3036
3037         * Configurations/Base.xcconfig:
3038         * Configurations/DebugRelease.xcconfig:
3039
3040 2020-03-02  Megan Gardner  <megan_gardner@apple.com>
3041
3042         Add date/time style to macCatalyst
3043         https://bugs.webkit.org/show_bug.cgi?id=208456
3044
3045         Reviewed by Wenson Hsieh.
3046
3047         * wtf/PlatformHave.h:
3048
3049 2020-03-02  Paulo Matos  <pmatos@igalia.com>
3050
3051         Fix JSC 32bit alignment increase gcc warning
3052         https://bugs.webkit.org/show_bug.cgi?id=208445
3053
3054         Reviewed by Yusuke Suzuki.
3055
3056         Use reinterpret_cast_ptr<>() instead of reinterpret_cast<>() to
3057         avoid GCC warning about increase in alignment requirement for cast
3058         target type.
3059
3060         * wtf/HashTable.h:
3061         (WTF::HashTable::tableSize const):
3062         (WTF::HashTable::setTableSize const):
3063         (WTF::HashTable::tableSizeMask const):
3064         (WTF::HashTable::setTableSizeMask):
3065         (WTF::HashTable::keyCount const):
3066         (WTF::HashTable::setKeyCount const):
3067         (WTF::HashTable::deletedCount const):
3068         (WTF::HashTable::setDeletedCount const):
3069         (WTF::KeyTraits>::allocateTable):
3070         (WTF::KeyTraits>::deallocateTable):
3071
3072 2020-03-02  youenn fablet  <youenn@apple.com>
3073
3074         Enable capture in GPUProcess by default for recent platforms only
3075         https://bugs.webkit.org/show_bug.cgi?id=208437
3076
3077         Reviewed by Eric Carlson.
3078
3079         * wtf/PlatformUse.h:
3080         Introduce USE(GPU_PROCESS)
3081
3082 2020-02-29  Yusuke Suzuki  <ysuzuki@apple.com>
3083
3084         Remove std::lock_guard
3085         https://bugs.webkit.org/show_bug.cgi?id=206451
3086
3087         Reviewed by Anders Carlsson.
3088
3089         Remove use of std::lock_guard. This is deprecated in C++17.
3090
3091         1. For particularly low-level usage (like, bmalloc, std::mutex), use std::scoped_lock.
3092         2. For the other purpose, use holdLock.
3093
3094         * benchmarks/ConditionSpeedTest.cpp:
3095         * wtf/CryptographicallyRandomNumber.cpp:
3096         * wtf/HashTable.cpp:
3097         (WTF::HashTableStats::recordCollisionAtCount):
3098         (WTF::HashTableStats::dumpStats):
3099         * wtf/HashTable.h:
3100         (WTF::KeyTraits>::invalidateIterators):
3101         (WTF::addIterator):
3102         (WTF::removeIterator):
3103         * wtf/Language.cpp:
3104         (WTF::userPreferredLanguages):
3105         * wtf/MainThread.cpp:
3106         (WTF::dispatchFunctionsFromMainThread):
3107         (WTF::callOnMainThread):
3108         (WTF::callOnMainAndWait):
3109         * wtf/StackStats.cpp:
3110         (WTF::StackStats::CheckPoint::CheckPoint):
3111         (WTF::StackStats::CheckPoint::~CheckPoint):
3112         (WTF::StackStats::probe):
3113         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
3114         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
3115         * wtf/WordLock.cpp:
3116         (WTF::WordLock::unlockSlow):
3117         * wtf/cf/LanguageCF.cpp:
3118         (WTF::languagePreferencesDidChange):
3119         (WTF::platformUserPreferredLanguages):
3120         * wtf/text/StringView.cpp:
3121         (WTF::StringView::invalidate):
3122         (WTF::StringView::adoptUnderlyingString):
3123         (WTF::StringView::setUnderlyingString):
3124         * wtf/unicode/icu/CollatorICU.cpp:
3125         (WTF::Collator::Collator):
3126         (WTF::Collator::~Collator):
3127         * wtf/win/LanguageWin.cpp:
3128         (WTF::platformLanguage):
3129
3130 2020-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
3131
3132         [JSC] BuiltinNames' HashMap should be small
3133         https://bugs.webkit.org/show_bug.cgi?id=208404
3134
3135         Reviewed by Mark Lam.
3136
3137         * wtf/text/AtomStringImpl.cpp:
3138         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer): Deleted.
3139         * wtf/text/StringImpl.h:
3140         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):
3141
3142 2020-02-27  Basuke Suzuki  <basuke.suzuki@sony.com>
3143
3144         [WinCairo] Fix RemoteInspector reconnect issue
3145         https://bugs.webkit.org/show_bug.cgi?id=208256
3146
3147         Reviewed by Devin Rousso.
3148
3149         Added wakeupCallback to RunLoop. In case of RunLook::iterate, we need to wake up worker thread
3150         when RunLoop is waking up.
3151
3152         * wtf/RunLoop.h:
3153         * wtf/generic/RunLoopGeneric.cpp:
3154         (WTF::RunLoop::setWakeUpCallback):
3155         (WTF::RunLoop::wakeUp):
3156         * wtf/win/RunLoopWin.cpp:
3157         (WTF::RunLoop::setWakeUpCallback):
3158         (WTF::RunLoop::wakeUp):
3159
3160 2020-02-27  Simon Fraser  <simon.fraser@apple.com>
3161
3162         Add ENABLE(SCROLLING_THREAD) and use it to turn off some code we don't need for iOS
3163         https://bugs.webkit.org/show_bug.cgi?id=208282
3164
3165         Reviewed by Tim Horton.
3166         
3167         Define ENABLE_SCROLLING_THREAD PLATFORM(MAC) and USE(NICOSIA).
3168
3169         * wtf/PlatformEnable.h:
3170         * wtf/PlatformEnableCocoa.h:
3171
3172 2020-02-26  Don Olmstead  <don.olmstead@sony.com>
3173
3174         Allow setting of stack sizes for threads
3175         https://bugs.webkit.org/show_bug.cgi?id=208223
3176
3177         Reviewed by Yusuke Suzuki.
3178
3179         Introduce ThreadType which is used internally to specify a stack size for a particular
3180         type of thread. Platforms can make their own decisions on what the stack size should be
3181         based on their own observations. Additionally a default stack size can be specified
3182         by defining DEFAULT_THREAD_STACK_SIZE_IN_KB if the default stack for a platform is
3183         insufficient in all cases, or when investigating the stack size for tuning.
3184
3185         Both the pthread and Windows thread implementations are modified to set the stack size
3186         if provided.
3187
3188         * wtf/Threading.cpp:
3189         (WTF::stackSize):
3190         (WTF::Thread::create):
3191         * wtf/Threading.h:
3192         * wtf/posix/ThreadingPOSIX.cpp:
3193         (WTF::Thread::establishHandle):
3194         * wtf/win/ThreadingWin.cpp:
3195         (WTF::Thread::establishHandle):
3196
3197 2020-02-26  Christopher Reid  <chris.reid@sony.com>
3198
3199         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
3200         https://bugs.webkit.org/show_bug.cgi?id=197684
3201         <rdar://problem/59467397>
3202
3203         Reviewed by Yusuke Suzuki.
3204
3205         * wtf/FileSystem.cpp:
3206         * wtf/FileSystem.h:
3207         Added FileAccessPermission flag when opening files.
3208         Remove default argument for the listDirectory filter since the defaut
3209         String() filter doesn't match all files on Mac and Windows.
3210
3211         Added FileOpenMode::ReadWrite to be used with ReadWrite MappedFileData.
3212         Added failIfFileExists flag to openFile.
3213
3214         * wtf/glib/FileSystemGlib.cpp:
3215         * wtf/posix/FileSystemPOSIX.cpp:
3216         Added (S_IRUSR | S_IWUSR) file open modes.
3217
3218         * wtf/win/FileSystemWin.cpp:
3219         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
3220         
3221         * wtf/win/PathWalker.cpp:
3222
3223 2020-02-25  Devin Rousso  <drousso@apple.com>
3224
3225         Web Inspector: safari app extension isolated worlds and injected files use the extension's identifier instead of its name
3226         https://bugs.webkit.org/show_bug.cgi?id=206911
3227         <rdar://problem/58026635>
3228
3229         Reviewed by Brian Burg.
3230
3231         * wtf/HashSet.h:
3232         (WTF::HashSet::reserveInitialCapacity): Added.
3233
3234 2020-02-25  Justin Michaud  <justin_michaud@apple.com>
3235
3236         Inline Cache delete by id/val
3237         https://bugs.webkit.org/show_bug.cgi?id=207522
3238
3239         Reviewed by Keith Miller and Filip Pizlo.
3240
3241         * wtf/Spectrum.h:
3242         (WTF::Spectrum::add):
3243         (WTF::Spectrum::get const):
3244         (WTF::Spectrum::buildList const):
3245         (WTF::Spectrum::clear):
3246         (WTF::Spectrum::removeIf):
3247         (WTF::Spectrum::begin): Deleted.
3248         (WTF::Spectrum::end): Deleted.
3249
3250 2020-02-25  Philippe Normand  <pnormand@igalia.com>
3251
3252         [WPE] Enable BACKTRACE_SYMBOLS
3253         https://bugs.webkit.org/show_bug.cgi?id=208187
3254
3255         Reviewed by Žan Doberšek.
3256
3257         * wtf/PlatformHave.h: Enable backtrace_symbols, to be combined
3258         with dladdr() the stacktrace dumps will be improved.
3259
3260 2020-02-25  Saam Barati  <sbarati@apple.com>
3261
3262         Update stale comment about PackedAlignedPtr
3263         https://bugs.webkit.org/show_bug.cgi?id=208176
3264
3265         Reviewed by Yusuke Suzuki.
3266
3267         The comment was stale since cells aren't guaranteed anymore to be
3268         aligned on 16 byte boundaries because of the GCs precise allocations.
3269
3270         * wtf/Packed.h:
3271
3272 2020-02-25  Carlos Garcia Campos  <cgarcia@igalia.com>
3273
3274         [GTK] Stop using gtk foreign drawing API to style form controls
3275         https://bugs.webkit.org/show_bug.cgi?id=208129
3276
3277         Reviewed by Adrian Perez de Castro.
3278
3279         Enable USE_NEW_THEME for the GTK port.
3280
3281         * wtf/PlatformUse.h:
3282
3283 2020-02-25  Philippe Normand  <pnormand@igalia.com>
3284
3285         [Linux] StackTrace symbols are not demangled
3286         https://bugs.webkit.org/show_bug.cgi?id=207933
3287
3288         Reviewed by Yusuke Suzuki.
3289
3290         Demangle symbols provided by backtrace_symbols.
3291
3292         * wtf/StackTrace.cpp:
3293         (WTF::StackTrace::dump const):
3294
3295 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
3296
3297         [WTF] Add tests for CompactRefPtrTuple
3298         https://bugs.webkit.org/show_bug.cgi?id=208172
3299
3300         Reviewed by Darin Adler.
3301
3302         Include Noncopyable.h.
3303
3304         * wtf/CompactRefPtrTuple.h:
3305
3306 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
3307
3308         [WTF] Attach WARN_UNUSED_RETURN to makeScopeExit and fix existing wrong usage
3309         https://bugs.webkit.org/show_bug.cgi?id=208162
3310
3311         Reviewed by Robin Morisset.
3312
3313         We should hold ScopeExit to call destructor when we exit from the scope actually.
3314         Putting WARN_UNUSED_RETURN to fix existing misuse.
3315
3316         * wtf/Scope.h:
3317
3318 2020-02-23  Yusuke Suzuki  <ysuzuki@apple.com>
3319
3320         [JSC] Shrink Structure
3321         https://bugs.webkit.org/show_bug.cgi?id=207827
3322
3323         Reviewed by Saam Barati.
3324
3325         Make CompactPointerTuple usable for storing 16 bits data.
3326
3327         * WTF.xcodeproj/project.pbxproj:
3328         * wtf/CMakeLists.txt:
3329         * wtf/CompactPointerTuple.h:
3330         * wtf/CompactRefPtrTuple.h: Added.
3331         * wtf/text/StringImpl.h:
3332         * wtf/text/SymbolImpl.h:
3333         (WTF::SymbolImpl::hashForSymbol const):
3334         (WTF::SymbolImpl::SymbolImpl):
3335
3336 2020-02-21  Antti Koivisto  <antti@apple.com>
3337
3338         REGRESSION(r257072): MotionMark | Mac | -10%
3339         https://bugs.webkit.org/show_bug.cgi?id=208054
3340         <rdar://problem/59664582>
3341
3342         Reviewed by Geoffrey Garen.
3343
3344         With rAF and slow scripts, suspended functions may pile up in RunLoop because every cycle does a rendering update.
3345
3346         * wtf/RunLoop.cpp:
3347         (WTF::RunLoop::performWork):
3348         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
3349
3350         Don't suspend if there are already pending suspended functions.
3351
3352         * wtf/RunLoop.h:
3353
3354 2020-02-20  Jiewen Tan  <jiewen_tan@apple.com>
3355
3356         [WebAuthn] Replace DeviceIdentity.framework
3357         https://bugs.webkit.org/show_bug.cgi?id=207985
3358         <rdar://problem/59369223>
3359
3360         Reviewed by Brent Fulgham.
3361
3362         * wtf/PlatformHave.h:
3363
3364 2020-02-20  Eric Liang  <ericliang@apple.com>
3365
3366         AX: Adopt _AXSCopyPathForAccessibilityBundle for WebKit
3367         https://bugs.webkit.org/show_bug.cgi?id=207828
3368
3369         Use the _AXSCopyPathForAccessibilityBundle new API. Updated the required SDK version.
3370
3371         Reviewed by Darin Adler.
3372
3373         * wtf/PlatformHave.h:
3374
3375 2020-02-20  Antti Koivisto  <antti@apple.com>
3376
3377         Unreviewed comment fix.
3378
3379         * wtf/RunLoop.cpp:
3380         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
3381
3382         Words by Simon.
3383
3384 2020-02-20  Antti Koivisto  <antti@apple.com>
3385
3386         [macOS] Disable RunLoop function dispatch when there is a pending rendering update
3387         https://bugs.webkit.org/show_bug.cgi?id=207931
3388
3389         Reviewed by Geoffrey Garen.
3390
3391         * wtf/RunLoop.cpp:
3392         (WTF::RunLoop::performWork):
3393
3394         Simplify the code by factoring it into a single loop.
3395         Bail out if the runloop is initially suspended or if it becomes suspended by function execution.
3396         Clear the suspended state so it last a single cycle only.
3397
3398         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
3399
3400         Set the suspended state and wake up the runloop to guarantee the state is cleared.
3401
3402         * wtf/RunLoop.h:
3403
3404 2020-02-18  Keith Miller  <keith_miller@apple.com>
3405
3406         Add an os_log PrintStream
3407         https://bugs.webkit.org/show_bug.cgi?id=207898
3408
3409         Reviewed by Mark Lam.
3410
3411         When debugging on iOS writing to a file can be hard (thanks
3412         Sandboxing!)  so logging our dataLogs to os_log would make things
3413         easier. This patch adds a new subclass of PrintStream,
3414         OSLogPrintStream, that converts our file writes to
3415         os_log. Unfortunately, os_log doesn't buffer writes so
3416         OSLogPrintStream needs to do its own buffering. e.g. if you call
3417         `dataLogLn("some text with a ", number, " and a ", string);`
3418         os_log will log that as 5 separate logs.
3419
3420         * WTF.xcodeproj/project.pbxproj:
3421         * wtf/CMakeLists.txt:
3422         * wtf/DataLog.cpp:
3423         (WTF::setDataFile):
3424         * wtf/DataLog.h:
3425         * wtf/OSLogPrintStream.cpp: Added.
3426         (WTF::OSLogPrintStream::OSLogPrintStream):
3427         (WTF::OSLogPrintStream::~OSLogPrintStream):
3428         (WTF::OSLogPrintStream::open):
3429         (WTF::OSLogPrintStream::vprintf):
3430         * wtf/OSLogPrintStream.h: Copied from Source/WTF/wtf/DataLog.h.
3431         * wtf/PrintStream.cpp:
3432         (WTF::printExpectedCStringHelper):
3433         (WTF::printInternal):
3434         * wtf/text/CString.cpp:
3435         (WTF::CString::grow):
3436         * wtf/text/CString.h:
3437
3438 2020-02-18  Simon Fraser  <simon.fraser@apple.com>
3439
3440         Move from "layer flush" terminology to "rendering update"
3441         https://bugs.webkit.org/show_bug.cgi?id=207870
3442
3443         Reviewed by Tim Horton.
3444
3445         * wtf/SystemTracing.h:
3446
3447 2020-02-17  Chris Dumez  <cdumez@apple.com>
3448
3449         [WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
3450         https://bugs.webkit.org/show_bug.cgi?id=207593
3451         <rdar://problem/56027027>
3452
3453         Reviewed by Antti Koivisto.
3454
3455         Add build time flags for new feature.
3456
3457         * wtf/PlatformEnable.h:
3458         * wtf/PlatformHave.h:
3459
3460 2020-02-17  Tim Horton  <timothy_horton@apple.com>
3461
3462         Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
3463         https://bugs.webkit.org/show_bug.cgi?id=207876
3464
3465         Reviewed by Wenson Hsieh.
3466
3467         * wtf/PlatformHave.h:
3468         For symmetry's sake, introduce a HAVE for this gesture.
3469
3470 2020-02-17  Mark Lam  <mark.lam@apple.com>
3471
3472         getVTablePointer() should return a const void*.
3473         https://bugs.webkit.org/show_bug.cgi?id=207871
3474         <rdar://problem/59525721>
3475
3476         Reviewed by Yusuke Suzuki.
3477
3478         * wtf/PointerPreparations.h:
3479         (WTF::getVTablePointer):
3480
3481 2020-02-17  Dean Jackson  <dino@apple.com>
3482
3483         [WebGL] Enable ANGLE by default for Cocoa platforms
3484         https://bugs.webkit.org/show_bug.cgi?id=205483
3485         rdar://56925821
3486
3487         Reviewed by Simon Fraser.
3488
3489         * wtf/Platform.h:
3490
3491 2020-02-17  Peng Liu  <peng.liu6@apple.com>
3492
3493         Fix check-webkit-style errors related to AVFoundationSPI.h
3494         https://bugs.webkit.org/show_bug.cgi?id=207834
3495
3496         Reviewed by Eric Carlson.
3497
3498         Add HAVE_VIDEO_PERFORMANCE_METRICS and USE_AV_SAMPLE_BUFFER_DISPLAY_LAYER to fix check-webkit-style errors.
3499
3500         * wtf/PlatformHave.h:
3501         * wtf/PlatformUse.h:
3502
3503 2020-02-17  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
3504
3505         a lot gcc warnings because of %{public}s format specifier
3506         https://bugs.webkit.org/show_bug.cgi?id=207478
3507
3508         Reviewed by Darin Adler.
3509
3510         Add PUBLIC_LOG_STRING macro which is defined depending on if
3511         os_log()[1] is used or rather old printf().
3512
3513         OS Logging processes format specifiers for privacy matters, for
3514         example dynamic strings, which demands %{public}s. But these
3515         specifiers are not valid for printf().
3516
3517         Calls to logging with this specifier, if they are not Mac/Darwing
3518         exclusive, use this new macro to avoid gcc warnings.
3519
3520         1. https://developer.apple.com/documentation/os/logging?language=objc
3521
3522         * wtf/Assertions.h:
3523         * wtf/MemoryPressureHandler.cpp:
3524         (WTF::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
3525
3526 2020-02-17  Antti Koivisto  <antti@apple.com>
3527
3528         [macOS] Add trace points for layer flush runloop observer
3529         https://bugs.webkit.org/show_bug.cgi?id=207837
3530
3531         Reviewed by Sam Weinig.
3532
3533         * wtf/SystemTracing.h:
3534
3535 2020-02-17  Don Olmstead  <don.olmstead@sony.com>
3536
3537         [CMake] Use builtin targets
3538         https://bugs.webkit.org/show_bug.cgi?id=205166
3539
3540         Reviewed by Darin Adler.
3541
3542         * wtf/PlatformGTK.cmake:
3543         * wtf/PlatformJSCOnly.cmake:
3544         * wtf/PlatformPlayStation.cmake:
3545         * wtf/PlatformWPE.cmake:
3546
3547 2020-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>
3548
3549         Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
3550         https://bugs.webkit.org/show_bug.cgi?id=207746
3551
3552         Reviewed by Don Olmstead.
3553
3554         I removed WTF_EXPORT from function declarations in r256420 (Bug 207453).
3555         WTF_EXPORT is still used mostly in *ExportMacros.h. However, there is no
3556         difference between WTF_EXPORT and WTF_EXPORT_DECLARATION.
3557
3558         Removed WTF_EXPORT and WTF_IMPORT by replacing them with
3559         WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
3560
3561         Removed unused WTF_HIDDEN.
3562
3563         Defined WTF_EXPORT_DECLARATION, WTF_IMPORT_DECLARATION and WTF_HIDDEN_DECLARATION empty
3564         in case of !USE(EXPORT_MACROS) to simplify *ExportMacros.h.
3565
3566         * wtf/ExportMacros.h:
3567
3568 2020-02-14  Commit Queue  <commit-queue@webkit.org>
3569
3570         Unreviewed, rolling out r256633.
3571         https://bugs.webkit.org/show_bug.cgi?id=207807
3572
3573         4% memory regression in new Membuster, possibly some leaking
3574         in WebKit Malloc? (Requested by yusukesuzuki on #webkit).
3575
3576         Reverted changeset:
3577
3578         "[Win] Implement NetworkCache::Data by using
3579         FileSystem::MappedFileData"
3580         https://bugs.webkit.org/show_bug.cgi?id=197684
3581         https://trac.webkit.org/changeset/256633
3582
3583 2020-02-14  Christopher Reid  <chris.reid@sony.com>
3584
3585         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
3586         https://bugs.webkit.org/show_bug.cgi?id=197684
3587
3588         Reviewed by Fujii Hironori.
3589
3590         * wtf/FileSystem.cpp:
3591         * wtf/FileSystem.h:
3592         Added FileAccessPermission flag when opening files.
3593         Remove default argument for the listDirectory filter since the defaut
3594         String() filter doesn't match all files on Mac and Windows.
3595
3596         * wtf/glib/FileSystemGlib.cpp:
3597         * wtf/posix/FileSystemPOSIX.cpp:
3598         Added (S_IRUSR | S_IWUSR) file open modes.
3599
3600         * wtf/win/FileSystemWin.cpp:
3601         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
3602         
3603         * wtf/win/PathWalker.cpp:
3604
3605 2020-02-14  Alex Christensen  <achristensen@webkit.org>
3606
3607         Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
3608         https://bugs.webkit.org/show_bug.cgi?id=207360
3609         <rdar://problem/57825317>
3610
3611         Reviewed by Ryosuke Niwa.
3612
3613         * wtf/URLHelpers.cpp:
3614         (WTF::URLHelpers::mapHostName):
3615
3616 2020-02-12  Said Abou-Hallawa  <sabouhallawa@apple.com>
3617
3618         WebP image format is not supported
3619         https://bugs.webkit.org/show_bug.cgi?id=192672
3620
3621         Reviewed by Youenn Fablet.
3622
3623         Introduce HAVE(WEBP) for macOS and iOS.
3624
3625         * wtf/PlatformHave.h:
3626
3627 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
3628
3629         [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
3630         https://bugs.webkit.org/show_bug.cgi?id=207673
3631
3632         Reviewed by Mark Lam.
3633
3634         * wtf/MallocPtr.h:
3635
3636 2020-02-12  Ryan Haddad  <ryanhaddad@apple.com>
3637
3638         Unreviewed, rolling out r256010.
3639
3640         Introduced ASan crashes
3641
3642         Reverted changeset:
3643
3644         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3645         https://bugs.webkit.org/show_bug.cgi?id=206582
3646         https://trac.webkit.org/changeset/r256010
3647
3648 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
3649
3650         Shrink CachedResource
3651         https://bugs.webkit.org/show_bug.cgi?id=207618
3652
3653         Reviewed by Mark Lam.
3654
3655         * wtf/Markable.h:
3656         (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
3657         * wtf/ObjectIdentifier.h:
3658         (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
3659         (WTF::ObjectIdentifier::MarkableTraits::emptyValue):
3660         (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
3661
3662 2020-02-12  Simon Fraser  <simon.fraser@apple.com>
3663
3664         Remove CSS_DEVICE_ADAPTATION
3665         https://bugs.webkit.org/show_bug.cgi?id=203479
3666
3667         Reviewed by Tim Horton.
3668
3669         CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
3670         so remove the code.
3671
3672         * wtf/PlatformEnable.h:
3673
3674 2020-02-11  Fujii Hironori  <Hironori.Fujii@sony.com>
3675
3676         Fix declarations marked by wrong export macros (WEBCORE_EXPORT and WTF_EXPORT)
3677         https://bugs.webkit.org/show_bug.cgi?id=207453
3678
3679         Reviewed by Ross Kirsling.
3680
3681         Export macros are prone to be misused because thier definitions
3682         are identical for POSIX ports. They can be used interchangeably on
3683         such ports.
3684
3685         WTF should use WTF_EXPORT_PRIVATE instead of WTF_EXPORT.
3686
3687         * wtf/HexNumber.h:
3688         * wtf/Language.h:
3689         * wtf/Logger.h:
3690         * wtf/ProcessPrivilege.h:
3691         * wtf/cocoa/CrashReporter.h:
3692         * wtf/cocoa/Entitlements.h:
3693         * wtf/text/LineEnding.h:
3694         * wtf/text/TextBreakIterator.h:
3695         * wtf/text/icu/UTextProviderLatin1.h:
3696         Replaced WTF_EXPORT with WTF_EXPORT_PRIVATE.
3697
3698 2020-02-11  Eric Carlson  <eric.carlson@apple.com>
3699
3700         Support in-band VTT captions when loading media in the GPU Process
3701         https://bugs.webkit.org/show_bug.cgi?id=207467
3702         <rdar://problem/59312749>
3703
3704         Reviewed by Jer Noble.
3705
3706         * wtf/LoggerHelper.h:
3707         (WTF::LoggerHelper::childLogIdentifier const):
3708
3709 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
3710
3711         Unreviewed, speculative build fix on watchOS simulator
3712         https://bugs.webkit.org/show_bug.cgi?id=207183
3713
3714         * wtf/HashTable.h:
3715         (WTF::HashTableCapacityForSize::capacityForSize):
3716
3717 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
3718
3719         Unreviewed, fix build failure on watchOS simulator
3720         https://bugs.webkit.org/show_bug.cgi?id=207183
3721
3722         * wtf/HashTable.h:
3723         (WTF::HashTableCapacityForSize::capacityForSize):
3724
3725 2020-02-10  Daniel Bates  <dabates@apple.com>
3726
3727         Disallow setting base URL to a data or JavaScript URL
3728         https://bugs.webkit.org/show_bug.cgi?id=207136
3729
3730         Reviewed by Brent Fulgham.
3731
3732         Add some more macro definitions.
3733
3734         * wtf/spi/darwin/dyldSPI.h:
3735
3736 2020-02-10  Truitt Savell  <tsavell@apple.com>
3737
3738         Unreviewed, rolling out r256091.
3739
3740         Broke internal builds
3741
3742         Reverted changeset:
3743
3744         "Move trivial definitions from FeatureDefines.xcconfig to
3745         PlatformEnableCocoa.h"
3746         https://bugs.webkit.org/show_bug.cgi?id=207155
3747         https://trac.webkit.org/changeset/256091
3748
3749 2020-02-10  Truitt Savell  <tsavell@apple.com>
3750
3751         Unreviewed, rolling out r256103.
3752
3753         This patch is blocking the rollout of r256091
3754
3755         Reverted changeset:
3756
3757         "Move JavaScriptCore related feature defines from
3758         FeatureDefines.xcconfig to PlatformEnableCocoa.h"
3759         https://bugs.webkit.org/show_bug.cgi?id=207436
3760         https://trac.webkit.org/changeset/256103
3761
3762 2020-02-09  Keith Rollin  <krollin@apple.com>
3763
3764         Re-enable LTO for ARM builds
3765         https://bugs.webkit.org/show_bug.cgi?id=207402
3766         <rdar://problem/49190767>
3767
3768         Reviewed by Sam Weinig.
3769
3770         Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
3771         Enabling it for ARM was left out due to a compiler issue. That issue
3772         has been fixed, and so now we can re-enable LTO for ARM.
3773
3774         * Configurations/Base.xcconfig:
3775
3776 2020-02-08  Sam Weinig  <weinig@apple.com>
3777
3778         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
3779         https://bugs.webkit.org/show_bug.cgi?id=207436
3780
3781         Reviewed by Tim Horton.
3782
3783         * wtf/PlatformEnable.h:
3784         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
3785
3786         * wtf/PlatformEnableCocoa.h:
3787         Added ENABLE_FAST_JIT_PERMISSIONS (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
3788         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
3789
3790 2020-02-08  Sam Weinig  <weinig@apple.com>
3791
3792         Migrate definition of USE_PLATFORM_REGISTERS_WITH_PROFILE to PlatformUse.h
3793         https://bugs.webkit.org/show_bug.cgi?id=207428
3794
3795         Reviewed by Tim Horton.
3796
3797         * wtf/PlatformUse.h:
3798         Move definition of USE_PLATFORM_REGISTERS_WITH_PROFILE from AdditionalFeatureDefines.h, where 
3799         it did not belong.
3800
3801 2020-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
3802
3803         [WTF] Try using 75% load factor for HashTable
3804         https://bugs.webkit.org/show_bug.cgi?id=207183
3805
3806         Reviewed by Mark Lam.
3807
3808         We know that hash-table is one of the most memory consuming part in WebKit.
3809         By analyzing many production hash-table implementations[1], I found that many
3810         of them are using 75% load-factor while our one is 50%.
3811
3812         This patch changes the load-factor from 50% to 75%. But we pick 75% only for
3813         small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
3814         The collected data is telling that longer probe-length affects on performance if table
3815         size gets larger.
3816
3817         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
3818
3819         * wtf/HashTable.h:
3820         (WTF::HashTableCapacityForSize::shouldExpand):
3821         (WTF::HashTableCapacityForSize::capacityForSize):
3822         (WTF::HashTable::shouldExpand const):
3823         (WTF::KeyTraits>::computeBestTableSize):
3824
3825 2020-02-08  Sam Weinig  <weinig@apple.com>
3826
3827         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
3828         https://bugs.webkit.org/show_bug.cgi?id=207155
3829
3830         Reviewed by Tim Horton.
3831
3832         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
3833         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
3834         also has a default value in PlatformEnable.h
3835         
3836         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
3837         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
3838         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
3839
3840         * wtf/PlatformEnable.h:
3841         * wtf/PlatformEnableCocoa.h:
3842
3843 2020-02-07  Alex Christensen  <achristensen@webkit.org>
3844
3845         Harden HashTable IPC decoders
3846         https://bugs.webkit.org/show_bug.cgi?id=207415
3847
3848         Reviewed by Chris Dumez.
3849
3850         * wtf/HashCountedSet.h:
3851
3852 2020-02-07  Ryan Haddad  <ryanhaddad@apple.com>
3853
3854         Unreviewed, rolling out r256051.
3855
3856         Broke internal builds.
3857
3858         Reverted changeset:
3859
3860         "Move trivial definitions from FeatureDefines.xcconfig to
3861         PlatformEnableCocoa.h"
3862         https://bugs.webkit.org/show_bug.cgi?id=207155
3863         https://trac.webkit.org/changeset/256051
3864
3865 2020-02-07  Stephan Szabo  <stephan.szabo@sony.com>
3866
3867         [Win] Two FileSystem API tests fail
3868         https://bugs.webkit.org/show_bug.cgi?id=207388
3869
3870         Reviewed by Don Olmstead.
3871
3872         * wtf/win/FileSystemWin.cpp:
3873         Make getFinalPathName return dos path rather than nt volume path.
3874         Change createSymbolicLink return to match CreateSymbolicLinkW
3875         Have directoryName strip trailing slashes.
3876
3877 2020-02-03  Sam Weinig  <weinig@apple.com>
3878
3879         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
3880         https://bugs.webkit.org/show_bug.cgi?id=207155
3881
3882         Reviewed by Tim Horton.
3883
3884         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
3885         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
3886         also has a default value in PlatformEnable.h
3887         
3888         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
3889         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
3890         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
3891
3892         * wtf/PlatformEnable.h:
3893         * wtf/PlatformEnableCocoa.h:
3894
3895 2020-02-07  youenn fablet  <youenn@apple.com>
3896
3897         Mandate UUID version 4 for mDNS ICE candidates
3898         https://bugs.webkit.org/show_bug.cgi?id=207329
3899         <rdar://problem/59221606>
3900
3901         Address post-commit comments from Darin by using isASCIIHexDigit.
3902
3903         Unreviewed.
3904
3905         * wtf/UUID.cpp:
3906         (WTF::isVersion4UUID):
3907         (WTF::isHexadecimalCharacter): Deleted.
3908
3909 2020-02-07  youenn fablet  <youenn@apple.com>
3910
3911         Mandate UUID version 4 for mDNS ICE candidates
3912         https://bugs.webkit.org/show_bug.cgi?id=207329
3913
3914         Reviewed by Alex Christensen.
3915
3916         Add a routine to validate version 4 UUID.
3917
3918         * wtf/UUID.cpp:
3919         (WTF::isHexadecimalCharacter):
3920         (WTF::isVersion4UUID):
3921         * wtf/UUID.h:
3922
3923 2020-02-07  Yusuke Suzuki  <ysuzuki@apple.com>
3924
3925         Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
3926         https://bugs.webkit.org/show_bug.cgi?id=207183
3927
3928         * wtf/HashTable.h:
3929         (WTF::HashTable::shouldExpand const):
3930         (WTF::KeyTraits>::computeBestTableSize):
3931         (WTF::HashTable::shouldExpand): Deleted.
3932         (WTF::HashTableCapacityForSize::capacityForSize): Deleted.
3933
3934 2020-02-07  youenn fablet  <youenn@apple.com>
3935
3936         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
3937         https://bugs.webkit.org/show_bug.cgi?id=206582
3938
3939         Reviewed by Eric Carlson.
3940
3941         * wtf/PlatformHave.h:
3942
3943 2020-02-06  Mark Lam  <mark.lam@apple.com>
3944
3945         Add a comment in StringView::setUnderlyingString(const StringView&) for clarification.
3946         https://bugs.webkit.org/show_bug.cgi?id=207368
3947         <rdar://problem/59211075>
3948
3949         Reviewed by Keith Miller.
3950
3951         Every time I read this code, I have to re-deduce why this code is thread safe.
3952         So, I'm just going to add a comment to document it.
3953
3954         * wtf/text/StringView.cpp:
3955         (WTF::StringView::setUnderlyingString):
3956
3957 2020-02-06  Myles C. Maxfield  <mmaxfield@apple.com>
3958
3959         REGRESSION(r254534): 1-3% regression on PLT
3960         https://bugs.webkit.org/show_bug.cgi?id=207244
3961         <rdar://problem/58821709>
3962
3963         Reviewed by Simon Fraser.
3964
3965         CTFontTransformGlyphsWithLanguage() is only acceptable on certain OSes.
3966
3967         * wtf/PlatformHave.h:
3968
3969 2020-02-06  Commit Queue  <commit-queue@webkit.org>
3970
3971         Unreviewed, rolling out r255910, r255970, and r255972.
3972         https://bugs.webkit.org/show_bug.cgi?id=207345
3973
3974         Broke internal builds (Requested by ryanhaddad on #webkit).
3975
3976         Reverted changesets:
3977
3978         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3979         https://bugs.webkit.org/show_bug.cgi?id=206582
3980         https://trac.webkit.org/changeset/255910
3981
3982         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3983         https://bugs.webkit.org/show_bug.cgi?id=206582
3984         https://trac.webkit.org/changeset/255970
3985
3986         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3987         https://bugs.webkit.org/show_bug.cgi?id=206582
3988         https://trac.webkit.org/changeset/255972
3989
3990 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
3991
3992         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
3993         https://bugs.webkit.org/show_bug.cgi?id=206582
3994
3995         Unreviewed internal build fix attempt.
3996
3997         * wtf/PlatformHave.h: Fix copy / paste error.
3998
3999 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
4000
4001         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
4002         https://bugs.webkit.org/show_bug.cgi?id=206582
4003
4004         Unreviewed internal build fix attempt.
4005
4006         * wtf/PlatformHave.h:
4007
4008 2020-02-06  youenn fablet  <youenn@apple.com>
4009
4010         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
4011         https://bugs.webkit.org/show_bug.cgi?id=206582
4012
4013         Reviewed by Eric Carlson.
4014
4015         * wtf/PlatformHave.h:
4016
4017 2020-02-05  Don Olmstead  <don.olmstead@sony.com>
4018
4019         [PlayStation] Build a shared JavaScriptCore
4020         https://bugs.webkit.org/show_bug.cgi?id=198446
4021
4022         Reviewed by Fujii Hironori.
4023
4024         Add bmalloc definition when compiling WTF. Remove LanguageUnix.cpp since
4025         LanguagePlayStation.cpp is present which results in duplicate symbol definitions.
4026
4027         * wtf/PlatformPlayStation.cmake:
4028
4029 2020-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
4030
4031         [WTF] Try using 75% load factor for HashTable
4032         https://bugs.webkit.org/show_bug.cgi?id=207183
4033
4034         Reviewed by Mark Lam.
4035
4036         We know that hash-table is one of the most memory consuming part in WebKit.
4037         By analyzing many production hash-table implementations[1], I found that many
4038         of them are using 75% load-factor while our one is 50%.
4039
4040         A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
4041         JetStream2, while it offers 2~% improvement in Membuster. This means that we are
4042         wasting too much memory for no-performance-improvement.
4043
4044         This patch changes the load-factor from 50% to 75%.
4045
4046         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
4047
4048         * wtf/HashTable.h:
4049         (WTF::HashTable::shouldExpand):
4050         (WTF::HashTable::shouldExpand const):
4051         (WTF::HashTableCapacityForSize::capacityForSize):
4052         (WTF::KeyTraits>::computeBestTableSize):
4053
4054 2020-02-05  Per Arne Vollan  <pvollan@apple.com>
4055
4056         [iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
4057         https://bugs.webkit.org/show_bug.cgi?id=207279
4058         <rdar://problem/59030957>
4059
4060         Reviewed by Brent Fulgham.
4061
4062         Add flag which avoids generating sandbox reports.
4063
4064         * wtf/spi/darwin/SandboxSPI.h:
4065
4066 2020-02-05  Alex Christensen  <achristensen@webkit.org>
4067
4068         Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
4069         https://bugs.webkit.org/show_bug.cgi?id=207207
4070
4071         Reviewed by Chris Dumez.
4072
4073         * wtf/persistence/PersistentDecoder.cpp:
4074         (WTF::Persistence::Decoder::decode):
4075         * wtf/persistence/PersistentDecoder.h:
4076         * wtf/persistence/PersistentEncoder.cpp:
4077         (WTF::Persistence::Encoder::encode):
4078         * wtf/persistence/PersistentEncoder.h:
4079
4080 2020-02-05  Commit Queue  <commit-queue@webkit.org>
4081
4082         Unreviewed, rolling out r255818.
4083         https://bugs.webkit.org/show_bug.cgi?id=207270
4084
4085         It is breaking some Mac builds (Requested by youenn on
4086         #webkit).
4087
4088         Reverted changeset:
4089
4090         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
4091         https://bugs.webkit.org/show_bug.cgi?id=206582
4092         https://trac.webkit.org/changeset/255818
4093
4094 2020-02-05  youenn fablet  <youenn@apple.com>
4095
4096         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
4097         https://bugs.webkit.org/show_bug.cgi?id=206582
4098
4099         Reviewed by Eric Carlson.
4100
4101         * wtf/PlatformHave.h:
4102
4103 2020-02-04  Adrian Perez de Castro  <aperez@igalia.com>
4104
4105         Non-unified build fixes early February 2020 edition
4106         https://bugs.webkit.org/show_bug.cgi?id=207227
4107
4108         Reviewed by Don Olmstead.
4109
4110         * wtf/SingleRootGraph.h: Add missing inclusion of wtf/StringPrintStream.h
4111
4112 2020-02-04  Yusuke Suzuki  <ysuzuki@apple.com>
4113
4114         [JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock)
4115         https://bugs.webkit.org/show_bug.cgi?id=207087
4116
4117         Reviewed by Tadeu Zagallo.
4118
4119         Add more useful methods for RefCountedArray.
4120
4121         * wtf/RefCountedArray.h:
4122         (WTF::RefCountedArray::operator=):
4123         (WTF::RefCountedArray::isEmpty const):
4124         (WTF::RefCountedArray::front):
4125         (WTF::RefCountedArray::front const):
4126         (WTF::RefCountedArray::last):
4127         (WTF::RefCountedArray::last const):
4128
4129 2020-02-03  Alex Christensen  <achristensen@webkit.org>
4130
4131         Reduce size of HashMap and HashSet
4132         https://bugs.webkit.org/show_bug.cgi?id=207138
4133
4134         Reviewed by Yusuke Suzuki.
4135
4136         This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
4137         I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
4138         so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
4139         dynamically allocated memory.  This makes another branch in size() for non-empty tables
4140         and an additional read and write when rehashing in exchange for fewer writes in the constructor
4141         and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.
4142
4143         * wtf/HashTable.h:
4144         (WTF::HashTable::~HashTable):
4145         (WTF::HashTable::end):
4146         (WTF::HashTable::end const):
4147         (WTF::HashTable::random):
4148         (WTF::HashTable::size const):
4149         (WTF::HashTable::capacity const):
4150         (WTF::HashTable::isEmpty const):
4151         (WTF::HashTable::reserveInitialCapacity):
4152         (WTF::HashTable::shouldExpand const):
4153         (WTF::HashTable::mustRehashInPlace const):
4154         (WTF::HashTable::shouldShrink const):
4155         (WTF::HashTable::shrink):
4156         (WTF::HashTable::makeIterator):
4157         (WTF::HashTable::makeConstIterator const):
4158         (WTF::HashTable::makeKnownGoodIterator):
4159         (WTF::HashTable::makeKnownGoodConstIterator const):
4160         (WTF::HashTable::tableSize const):
4161         (WTF::HashTable::setTableSize const):
4162         (WTF::HashTable::tableSizeMask const):
4163         (WTF::HashTable::setTableSizeMask):
4164         (WTF::HashTable::keyCount const):
4165         (WTF::HashTable::setKeyCount const):
4166         (WTF::HashTable::deletedCount const):
4167         (WTF::HashTable::setDeletedCount const):
4168         (WTF::KeyTraits>::HashTable):
4169         (WTF::KeyTraits>::inlineLookup):
4170         (WTF::KeyTraits>::lookupForWriting):
4171         (WTF::KeyTraits>::fullLookupForWriting):
4172         (WTF::KeyTraits>::addUniqueForInitialization):
4173         (WTF::KeyTraits>::add):
4174         (WTF::KeyTraits>::addPassingHashCode):
4175         (WTF::KeyTraits>::remove):
4176         (WTF::KeyTraits>::removeIf):
4177         (WTF::KeyTraits>::allocateTable):
4178         (WTF::KeyTraits>::deallocateTable):
4179         (WTF::KeyTraits>::expand):
4180         (WTF::KeyTraits>::shrinkToBestSize):
4181         (WTF::KeyTraits>::deleteReleasedWeakBuckets):
4182         (WTF::KeyTraits>::rehash):
4183         (WTF::KeyTraits>::clear):
4184         (WTF::KeyTraits>::swap):
4185         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
4186
4187 2020-02-03  Sam Weinig  <weinig@apple.com>
4188
4189         Start splitting platform specific overrides of default enable behavior into their own files
4190         https://bugs.webkit.org/show_bug.cgi?id=207105
4191
4192         Reviewed by Dean Jackson.
4193
4194         Splits out platform specific overrides of default enable behavior into separate files, 
4195         starting with one for all of the Cocoa related ports, one for Apple's Windows port, and
4196         one for the WinCario port.
4197         
4198         The rule is now that all ENABLE_* macros should have a default defined in PlatformEnable.h,
4199         but platforms are allowed to override it via their PlatformEnable*.h file. For now, I manually
4200         ensured that all the defines in PlatformEnableCocoa.h, PlatformEnableWinApple.h and PlatformEnableWinCairo.h
4201         also had defaults in PlatformEnable.h, but going forward this needs be validated either through
4202         some sort of macro-based validation, through the style checker or something else.
4203
4204         * WTF.xcodeproj/project.pbxproj:
4205         * wtf/CMakeLists.txt:
4206         * wtf/PlatformEnable.h:
4207         * wtf/PlatformEnableCocoa.h: Copied from Source/WTF/wtf/PlatformEnable.h.
4208         * wtf/PlatformEnableWinApple.h: Copied from Source/WTF/wtf/PlatformEnable.h.
4209         * wtf/PlatformEnableWinCairo.h: Copied from Source/WTF/wtf/PlatformEnable.h.
4210
4211 2020-01-31  Don Olmstead  <don.olmstead@sony.com>
4212
4213         [CMake] Add _PRIVATE_LIBRARIES to framework
4214         https://bugs.webkit.org/show_bug.cgi?id=207004
4215
4216         Reviewed by Konstantin Tokarev.
4217
4218         Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
4219         afterwards will have that visibility set erroneously.
4220
4221         * wtf/PlatformFTW.cmake:
4222
4223 2020-01-30  Conrad Shultz  <conrad_shultz@apple.com>
4224
4225         `FALLTHROUGH` macro isn't properly defined when building Objective-C files using Clang
4226         https://bugs.webkit.org/show_bug.cgi?id=206637
4227
4228         Reviewed by Darin Adler.
4229
4230         Allow the `FALLTHROUGH` macro to be defined properly when building with either GCC
4231         or Clang.
4232
4233         * wtf/Compiler.h:
4234
4235 2020-01-30  Yusuke Suzuki  <ysuzuki@apple.com>
4236
4237         [WTF] Remove PackedIntVector
4238         https://bugs.webkit.org/show_bug.cgi?id=207018
4239
4240         Reviewed by Mark Lam.
4241
4242         Simply removing PackedIntVector since (1) nobody uses it, (2) it is somewhat broken (like, size()), and (3) its implementation is not so efficient.
4243         If we want to have this feature, we can recreate it.
4244
4245         * WTF.xcodeproj/project.pbxproj:
4246         * wtf/CMakeLists.txt:
4247         * wtf/PackedIntVector.h: Removed.
4248
4249 2020-01-30  Jonathan Bedard  <jbedard@apple.com>
4250
4251         PAL: Remove old iOS version macros
4252         https://bugs.webkit.org/show_bug.cgi?id=206905
4253
4254         Reviewed by Darin Adler.
4255
4256         * wtf/PlatformHave.h: Add HAVE(NSPROGRESS_PUBLISHING_SPI).
4257
4258 2020-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>
4259
4260         [GTK] Should use light theme unless website declares support for dark themes in color-schemes property
4261         https://bugs.webkit.org/show_bug.cgi?id=197947
4262
4263         Reviewed by Michael Catanzaro.
4264
4265         Do not define HAVE_OS_DARK_MODE_SUPPORT for the GTK port.
4266
4267         * wtf/PlatformHave.h:
4268
4269 2020-01-28  Jonathan Bedard  <jbedard@apple.com>
4270
4271         WebCore: Guard uneven corners in rounded rectangles
4272         https://bugs.webkit.org/show_bug.cgi?id=206838
4273
4274         Reviewed by Darin Adler.
4275
4276         * wtf/PlatformHave.h: Add HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT).
4277
4278 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
4279
4280         WebCore: Remove iOS 11 macros from RenderThemeIOS.mm
4281         https://bugs.webkit.org/show_bug.cgi?id=206787
4282
4283         Reviewed by Darin Adler.
4284
4285         * wtf/PlatformHave.h: Add HAVE(SYSTEM_FONT_STYLE_TITLE_0) and HAVE(SYSTEM_FONT_STYLE_TITLE_4).
4286
4287 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
4288
4289         Fix OpenSource iphoneos arm64e build
4290         https://bugs.webkit.org/show_bug.cgi?id=206703
4291
4292         Reviewed by Yusuke Suzuki.
4293
4294         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
4295
4296 2020-01-27  Ryan Haddad  <ryanhaddad@apple.com>
4297
4298         Unreviewed, rolling out r255159.
4299
4300         Broke the watchOS build.
4301
4302         Reverted changeset:
4303
4304         "Fix OpenSource iphoneos arm64e build"
4305         https://bugs.webkit.org/show_bug.cgi?id=206703
4306         https://trac.webkit.org/changeset/255159
4307
4308 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
4309
4310         Fix OpenSource iphoneos arm64e build
4311         https://bugs.webkit.org/show_bug.cgi?id=206703
4312
4313         Reviewed by Yusuke Suzuki.
4314
4315         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
4316
4317 2020-01-27  Mark Lam  <mark.lam@apple.com>
4318
4319         Make getVTablePointer() an inline function to be compliant with WebKit style guidelines.
4320         https://bugs.webkit.org/show_bug.cgi?id=206816
4321
4322         Reviewed by Darin Adler.
4323
4324         Convert getVTablePointer() from a macro into an inline template&nbs