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