[Mac] Use the PID of the WebContent process when issuing local file read sandbox...
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-08-08  Per Arne Vollan  <pvollan@apple.com>
2
3         [Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
4         https://bugs.webkit.org/show_bug.cgi?id=200543
5         <rdar://problem/49394015>
6
7         Reviewed by Brent Fulgham.
8
9         Add new SPI.
10
11         * wtf/Platform.h:
12         * wtf/spi/darwin/SandboxSPI.h:
13
14 2019-08-07  Chris Dumez  <cdumez@apple.com>
15
16         Tighten WeakPtr threading assertions for GC threads
17         https://bugs.webkit.org/show_bug.cgi?id=200451
18
19         Reviewed by Youenn Fablet.
20
21         Make sure our GC threads do not dereference WeakPtr for main thread
22         objects by tightening our threading assertions in WeakPtr. They are
23         still allowed to call WeakPtr::get() for now though.
24
25         * wtf/WeakPtr.h:
26         (WTF::WeakPtrImpl::get):
27         (WTF::WeakPtrImpl::wasConstructedOnMainThread const):
28         (WTF::WeakPtr::get const):
29         (WTF::WeakPtr::operator-> const):
30         (WTF::WeakPtr::operator* const):
31
32 2019-08-06  Jiewen Tan  <jiewen_tan@apple.com>
33
34         Unreviewed, a build fix after r248308
35
36         Use kSecUseDataProtectionKeychain for iOS 13 and macOS Catalina or newer.
37
38         * wtf/Platform.h:
39
40 2019-08-06  Chris Dumez  <cdumez@apple.com>
41
42         Fix inefficiency in HTTPHeaderMap::set(CFStringRef, const String&)
43         https://bugs.webkit.org/show_bug.cgi?id=200475
44
45         Reviewed by Darin Adler.
46
47         Add convenience constuctor to StringView which takes in a const char*
48         and an unsigned length, similarly to what we already have for String.
49
50         * wtf/URL.cpp:
51         (WTF::URL::protocolIs const):
52         (WTF::protocolIsInternal):
53         * wtf/text/StringView.h:
54         (WTF::StringView::StringView):
55         (WTF::StringView::empty):
56
57 2019-08-06  Jiewen Tan  <jiewen_tan@apple.com>
58
59         [WebAuthN] Enable LocalAuthenticator for macOS
60         https://bugs.webkit.org/show_bug.cgi?id=182772
61         <rdar://problem/43347920>
62
63         Reviewed by Brent Fulgham.
64
65         * wtf/Platform.h:
66         Adds HAVE_DEVICE_IDENTITY.
67         * wtf/spi/cocoa/SecuritySPI.h:
68         Adds a SPI for telling macOS keychain to use the modern one.
69
70 2019-08-06  Claudio Saavedra  <csaavedra@igalia.com>
71
72         FileSystem: silent build warning
73
74         Unreviewed compilation warning fix.
75
76         Remove unused parameter in empty method
77         * wtf/FileSystem.cpp:
78         (WTF::FileSystemImpl::createTemporaryZipArchive):
79
80 2019-08-05  Youenn Fablet  <youenn@apple.com>
81
82         Make Logger::log thread safe so that it can be used from background threads
83         https://bugs.webkit.org/show_bug.cgi?id=200448
84
85         Reviewed by Eric Carlson.
86
87         Add a lock to ensure calling log is thread-safe.
88
89         * wtf/Logger.h:
90         (WTF::Logger::addObserver):
91         (WTF::Logger::removeObserver):
92         (WTF::Logger::log):
93         (WTF::Logger::observerLock):
94
95 2019-08-05  Takashi Komori  <Takashi.Komori@sony.com>
96
97         [Curl] implement CertificateInfo::summaryInfo
98         https://bugs.webkit.org/show_bug.cgi?id=191498
99
100         Reviewed by Alex Christensen.
101
102         Fixed function template for encoding vector.
103
104         * wtf/persistence/PersistentCoders.h:
105
106 2019-08-02  Mark Lam  <mark.lam@apple.com>
107
108         [ARM64E] Harden the diversity of the DOMJIT::Signature::unsafeFunction pointer.
109         https://bugs.webkit.org/show_bug.cgi?id=200292
110         <rdar://problem/53706881>
111
112         Reviewed by Geoffrey Garen.
113
114         * wtf/PtrTag.h:
115         - Introducing WTF_VTBL_FUNCPTR_PTRAUTH and WTF_VTBL_FUNCPTR_PTRAUTH_STR macros for
116           defining vtbl function pointer style pointer signing modifier.
117
118 2019-08-02  Eric Carlson  <eric.carlson@apple.com>
119
120         uniqueLogIdentifier() should generate a 64-bit identifier
121         https://bugs.webkit.org/show_bug.cgi?id=200403
122         <rdar://problem/53878447>
123
124         Reviewed by Youenn Fablet.
125
126         * wtf/LoggerHelper.h:
127         (WTF::LoggerHelper::childLogIdentifier const): Use uint64_t masks.
128         (WTF::LoggerHelper::uniqueLogIdentifier): cryptographicallyRandomNumber returns a
129         uint32_t so use two to generate a 64-bit identifier.
130
131 2019-08-02  Alex Christensen  <achristensen@webkit.org>
132
133         Fix an internal build after r248139
134         https://bugs.webkit.org/show_bug.cgi?id=200102
135
136         * wtf/cocoa/FileSystemCocoa.mm:
137         Some internal builds couldn't find BOM framework headers.
138         No problem.  They're not needed.  Just remove references to them.
139
140 2019-08-01  Alex Christensen  <achristensen@webkit.org>
141
142         Move FormData zip file generation to NetworkProcess and enable it for all WebKit clients for uploading directories
143         https://bugs.webkit.org/show_bug.cgi?id=200102
144         <rdar://problem/53275114>
145
146         Reviewed by Darin Adler.
147
148         Move code from BlobDataFileReference::generateReplacementFile to FileSystem::createZipArchive.
149
150         * wtf/FileSystem.cpp:
151         (WTF::FileSystemImpl::createZipArchive):
152         * wtf/FileSystem.h:
153         * wtf/cocoa/FileSystemCocoa.mm:
154         (WTF::FileSystemImpl::createZipArchive):
155
156 2019-08-01  Per Arne Vollan  <pvollan@apple.com>
157
158         Initialize memory pressure flag in MemoryPressureHandler
159         https://bugs.webkit.org/show_bug.cgi?id=200353
160
161         Reviewed by Geoffrey Garen.
162
163         The flag 'm_underMemoryPressure' in MemoryPressureHandler should be initialized to 'false'.
164
165         * wtf/MemoryPressureHandler.h:
166
167 2019-08-01  Chris Dumez  <cdumez@apple.com>
168
169         Add threading assertion to WeakPtr's operator->()
170         https://bugs.webkit.org/show_bug.cgi?id=199922
171
172         Reviewed by Ryosuke Niwa.
173
174         Add threading assertion to WeakPtr's operator->() to make sure that the WeakPtr
175         always gets dereferenced on the same thread it was constructed on.
176
177         * wtf/WeakPtr.h:
178         (WTF::WeakPtrImpl::get):
179         (WTF::WeakPtrImpl::WeakPtrImpl):
180
181 2019-07-31  Youenn Fablet  <youenn@apple.com>
182
183         Use CTFontCreateForCharactersWithLanguageAndOption if available instead of CTFontCreateForCharactersWithLanguage
184         https://bugs.webkit.org/show_bug.cgi?id=200241
185
186         Reviewed by Myles C. Maxfield.
187
188         * wtf/Platform.h: Add macro to enable/disable new SPI.
189
190 2019-07-31  Keith Rollin  <krollin@apple.com>
191
192         Fix 64-bit vs 32-bit mismatch in PersistentCoders.h
193         https://bugs.webkit.org/show_bug.cgi?id=200288
194         <rdar://problem/53734203>
195
196         Reviewed by Chris Dumez.
197
198         hashMapSize is declared as a uint64_t. It is passed to
199         HashMapType::reserveInitialCapacity, which takes an unsigned int. This
200         is a 32-bit value on 32-bit platforms, leading to a compile time
201         error. Fix his by casting hashMapSize to the expected type.
202
203         * wtf/persistence/PersistentCoders.h:
204
205 2019-07-31  Keith Rollin  <krollin@apple.com>
206
207         Fix 64-bit vs 32-bit mismatch in LogArgument
208         https://bugs.webkit.org/show_bug.cgi?id=200286
209         <rdar://problem/53733671>
210
211         Reviewed by Darin Adler.
212
213         LogArgument is a utility for converting scalars into strings. It has a
214         number of versions of a toString() method that is specialized for each
215         type and converts the value to a string in a manner appropriate for
216         that type. However, the versions of toString() for "long long" and
217         "unsigned long long" are actually declared to take an "long" or
218         "unsigned long" as a parameter. This difference leads to a 64-bit vs
219         32-bit build error on 32-bit systems. Fix this by specifying
220         correct/matching types.
221
222         * wtf/Logger.h:
223         (WTF::LogArgument::toString):
224
225 2019-07-30  Myles C. Maxfield  <mmaxfield@apple.com>
226
227         REGRESSION(r241288): Text on Yahoo Japan mobile looks too bold
228         https://bugs.webkit.org/show_bug.cgi?id=200065
229         <rdar://problem/50912757>
230
231         Reviewed by Simon Fraser.
232
233         * wtf/Platform.h:
234
235 2019-07-30  Michael Catanzaro  <mcatanzaro@igalia.com>
236
237         Fix CRASH_WITH_INFO() so that it doesn't complain about unused parameters on non Clang / MSVC compilers.
238         https://bugs.webkit.org/show_bug.cgi?id=200243
239
240         Reviewed by Mark Lam.
241
242         For GCC, we'll implement WTFCrashWithInfo as a function rather than a macro. To use
243         ##__VA_ARGS we would need to enable GNU extensions, and don't want to do that. The proper
244         solution, format __VA_OPT__(,) __VA_ARGS__, requires C++20. So just use an inline function
245         for now as a workaround.
246
247         * wtf/Assertions.h:
248         (CRASH_WITH_INFO):
249         (CRASH_WITH_SECURITY_IMPLICATION_AND_INFO):
250
251 2019-07-25  Dean Jackson  <dino@apple.com>
252
253         Add helper for ignoring deprecated implementation warnings
254         https://bugs.webkit.org/show_bug.cgi?id=200135
255
256         Reviewed by Wenson Hsieh.
257
258         Add ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN/END macro which
259         is IGNORE_WARNINGS_BEGIN("deprecated-implementations")
260
261         * wtf/Compiler.h:
262
263 2019-07-24  Yusuke Suzuki  <ysuzuki@apple.com>
264
265         [bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA
266         https://bugs.webkit.org/show_bug.cgi?id=200103
267
268         Reviewed by Mark Lam.
269
270         We move VMTag page investigation code from PAL to WTF to use it in TestWTF.
271         And we also accumulate allocated VA size in `reserved` field of `TagInfo`.
272
273         * WTF.xcodeproj/project.pbxproj:
274         * wtf/CMakeLists.txt:
275         * wtf/PlatformMac.cmake:
276         * wtf/ResourceUsage.h: Added.
277         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
278         * wtf/cocoa/ResourceUsageCocoa.cpp: Added.
279         (WTF::vmPageSize):
280         (WTF::logFootprintComparison):
281         (WTF::displayNameForVMTag):
282         (WTF::pagesPerVMTag):
283         * wtf/spi/cocoa/MachVMSPI.h: Added.
284
285 2019-07-23  Keith Miller  <keith_miller@apple.com>
286
287         Add cheat sheet comment for HashMap/Set iterator/AddResult
288         https://bugs.webkit.org/show_bug.cgi?id=200061
289
290         Reviewed by Saam Barati.
291
292         * wtf/HashMap.h:
293         * wtf/HashSet.h:
294
295 2019-07-23  Keith Rollin  <krollin@apple.com>
296
297         Remove rest of NavigatorContentUtils support
298         https://bugs.webkit.org/show_bug.cgi?id=200052
299         <rdar://problem/53467357>
300
301         Reviewed by Alex Christensen.
302
303         Bug 196070 removes most of the support for the never-used
304         NavigatorContentUtils facility. However, there were still a couple of
305         left-over references after that change. This patch sweeps those up.
306
307         * wtf/FeatureDefines.h:
308
309 2019-07-23  Keith Rollin  <krollin@apple.com>
310
311         Enable HAVE_APP_LINKS_WITH_ISENABLED for entire iOS family
312         https://bugs.webkit.org/show_bug.cgi?id=200040
313         <rdar://problem/53457670>
314
315         Reviewed by Tim Horton.
316
317         This feature was enabled for just iOS, but should be enabled for tvOS
318         and watchOS, too.
319
320         * wtf/Platform.h:
321
322 2019-07-23  Alicia Boya García  <aboya@igalia.com>
323
324         [WTF] Add DataMutex and MainThreadData wrappers
325         https://bugs.webkit.org/show_bug.cgi?id=199831
326
327         Reviewed by Alex Christensen.
328
329         This patch adds two new wrapper classes:
330
331         DataMutex<T> stores an instance of T in a private member along with a
332         mutex. In order to use its fields, users need to instantiate a
333         DataMutex<T>::LockedWrapper instance in the stack. This class uses
334         RAII to lock and unlock the mutex in construction and destruction
335         respectively, and by using the arrow operator lets the user access T's
336         members.
337
338         This way, DataMutex<T> prevents most instances of accidental access to
339         data fields that should only be read and modified in an atomic matter.
340
341         Still, both the Lock and the LockHolder are exposed once the user has
342         taken the lock so that special cases such as waiting for a condition
343         variable or performing an early unlock are doable.
344
345         MainThreadData<T> is another wrapper class, in this case for data
346         fields that should only be accessed from the main thread. In this
347         case, it works similar to a smart pointer, except that (1) there is no
348         actual memory indirection, T is stored directly inside
349         MainThreadData<T> and (2) attempts to use the -> or * operator have an
350         isMainThread() assertion.
351
352         Together, these two wrapper classes make it easier to write
353         multi-threaded code in a safer, more self-documented way by letting
354         the author group data into structures that have certain access safety
355         requirements.
356
357         These structures were originally part of the new GStreamer
358         WebKitMediaSrc rework patch: https://bugs.webkit.org/show_bug.cgi?id=199719
359
360         * wtf/CMakeLists.txt:
361         * wtf/DataMutex.h: Added.
362         (WTF::DataMutex::DataMutex):
363         (WTF::DataMutex::LockedWrapper::LockedWrapper):
364         (WTF::DataMutex::LockedWrapper::operator->):
365         (WTF::DataMutex::LockedWrapper::operator*):
366         (WTF::DataMutex::LockedWrapper::mutex):
367         (WTF::DataMutex::LockedWrapper::lockHolder):
368         * wtf/MainThreadData.h: Added.
369         (WTF::MainThreadData::MainThreadData):
370         (WTF::MainThreadData::operator->):
371         (WTF::MainThreadData::operator*):
372
373 2019-07-22  Yusuke Suzuki  <ysuzuki@apple.com>
374
375         [bmalloc] Each IsoPage gets 1MB VA because VMHeap::tryAllocateLargeChunk rounds up
376         https://bugs.webkit.org/show_bug.cgi?id=200024
377
378         Reviewed by Saam Barati.
379
380         Start using a VM tag for IsoHeap instead of CLoop Stack.
381
382         * wtf/OSAllocator.h:
383         * wtf/VMTags.h:
384
385 2019-07-20  Chris Dumez  <cdumez@apple.com>
386
387         Speed up HashTable decoding by reserving capacity and avoiding rehashing
388         https://bugs.webkit.org/show_bug.cgi?id=199982
389
390         Reviewed by Saam Barati.
391
392         Introduce reserveInitialCapacity() on HashMap to reserve capacity on a
393         HashMap and cut down on rehashing cost when possible.
394
395         * wtf/HashMap.h:
396         * wtf/HashTable.h:
397         (WTF::HashTable::reserveInitialCapacity):
398
399         * wtf/persistence/PersistentCoders.h:
400         Use HashMap::reserveInitialCapacity() in the HashMap persistent decoder for
401         performance.
402
403 2019-07-20  Alexander Mikhaylenko  <exalm7659@gmail.com>
404
405         REGRESSION(r246033/r246496): [GTK] Kinetic scrolling doesn't work
406         https://bugs.webkit.org/show_bug.cgi?id=199322
407
408         Reviewed by Michael Catanzaro.
409
410         Introduce ENABLE_KINETIC_SCROLLING to explicitly always have kinetic scrolling on GTK.
411
412         * wtf/Platform.h:
413
414 2019-07-18  Youenn Fablet  <youenn@apple.com>
415
416         Make sure to set kCTFontFallbackOptionAttribute to kCTFontFallbackOptionSystem for system fonts
417         https://bugs.webkit.org/show_bug.cgi?id=199769
418         <rdar://problem/49390297>
419
420         Reviewed by Myles C. Maxfield.
421
422         * wtf/Platform.h:
423
424 2019-07-17  Christopher Reid  <chris.reid@sony.com>
425
426         Bytecode cache should use FileSystem
427         https://bugs.webkit.org/show_bug.cgi?id=199759
428
429         Reviewed by Yusuke Suzuki.
430
431         * wtf/FileSystem.cpp:
432         * wtf/FileSystem.h:
433         Add support for creating MappedFileData from a preexisting file handle
434         for use with locked files. Also support creating MappedFileData
435         with either private or shared mappings.
436
437         * wtf/UUID.cpp:
438         Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.
439
440         * wtf/glib/FileSystemGlib.cpp:
441         * wtf/win/FileSystemWin.cpp:
442         Add truncateFile implementations.
443
444 2019-07-17  Sam Weinig  <weinig@apple.com>
445
446         Add StringBuilder member function which allows makeString() style variadic argument construction
447         https://bugs.webkit.org/show_bug.cgi?id=198997
448
449         Reviewed by Darin Adler.
450
451         Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more 
452         string-adaptable (in the sense that there is StringTypeAdapter specialization for the 
453         type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
454         that is used for makeString(...) allowing for improvements in one to benefit the other.
455
456         The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
457         multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
458         additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
459         by computing the complete required length for all the passed arguments and then ensuring enough
460         capacity is available. It also reduces the allocation overhead versus the anti-pattern of
461         builder.append(makeString(...)).
462
463         Ideally, this member function should eventually just be called StringBuilder::append(...), but
464         the current overload set for StringBuilder::append(...) makes this complicated due to overloads
465         that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
466         should rename or remove those overloads and move to a standard interface. 
467
468         * wtf/posix/FileSystemPOSIX.cpp:
469         (WTF::FileSystemImpl::pathByAppendingComponents):
470         Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.
471
472         * wtf/text/StringBuilder.cpp:
473         (WTF::StringBuilder::appendUninitialized):
474         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
475         Extract the part of appendUnitialized that doesn't do the overflow check
476         into it's own member function to allow callers that have already done the
477         overflow check to bypass it.
478
479         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
480         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
481         Added to allow template member function flexibleAppendFromAdapters to call
482         appendUninitializedWithoutOverflowCheck without moving it to the header.
483         
484         * wtf/text/StringBuilder.h:
485         (WTF::StringBuilder::flexibleAppendFromAdapters):
486         (WTF::StringBuilder::flexibleAppend):
487         Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
488         eagerly compute the required length, expand the buffer and then use
489         the existing string type adaptor accumulation functions used by makeString. 
490
491         * wtf/text/StringConcatenate.h:
492         (WTF::stringTypeAdapterAccumulator):
493         (WTF::tryMakeStringFromAdapters):
494         (WTF::makeStringAccumulator): Deleted.
495         Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
496         by more than just makeString.
497
498 2019-07-17  Commit Queue  <commit-queue@webkit.org>
499
500         Unreviewed, rolling out r247505.
501         https://bugs.webkit.org/show_bug.cgi?id=199871
502
503         "Caused failed ASSERT in stress test" (Requested by creid on
504         #webkit).
505
506         Reverted changeset:
507
508         "Bytecode cache should use FileSystem"
509         https://bugs.webkit.org/show_bug.cgi?id=199759
510         https://trac.webkit.org/changeset/247505
511
512 2019-07-16  Christopher Reid  <chris.reid@sony.com>
513
514         Bytecode cache should use FileSystem
515         https://bugs.webkit.org/show_bug.cgi?id=199759
516
517         Reviewed by Yusuke Suzuki.
518
519         * wtf/FileSystem.cpp:
520         * wtf/FileSystem.h:
521         Add support for creating MappedFileData from a preexisting file handle
522         for use with locked files. Also support creating MappedFileData
523         with either private or shared mappings.
524
525         * wtf/UUID.cpp:
526         Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.
527
528         * wtf/glib/FileSystemGlib.cpp:
529         * wtf/win/FileSystemWin.cpp:
530         Add truncateFile implementations.
531
532 2019-07-16  Myles C. Maxfield  <mmaxfield@apple.com>
533
534         New York font erroneously gets synthetic bold
535         https://bugs.webkit.org/show_bug.cgi?id=199653
536
537         Unreviewed MacCatalyst build fix.
538
539         * wtf/Platform.h:
540
541 2019-07-16  Michael Catanzaro  <mcatanzaro@igalia.com>
542
543         [WPE][GTK] Improvements and fixes in FileSystemGlib.cpp
544         https://bugs.webkit.org/show_bug.cgi?id=199800
545
546         Reviewed by Carlos Garcia Campos.
547
548         Use nullptr.
549
550         Fix a GFileInfo leak in getFileSize.
551
552         Use GRefPtr to clarify ownership of the GFileIOStream in openFile.
553
554         * wtf/glib/FileSystemGlib.cpp:
555         (WTF::FileSystemImpl::getFileSize):
556         (WTF::FileSystemImpl::getVolumeFreeSpace):
557         (WTF::FileSystemImpl::openTemporaryFile):
558         (WTF::FileSystemImpl::openFile):
559         (WTF::FileSystemImpl::seekFile):
560         (WTF::FileSystemImpl::writeToFile):
561         (WTF::FileSystemImpl::readFromFile):
562
563 2019-07-15  Myles C. Maxfield  <mmaxfield@apple.com>
564
565         New York font erroneously gets synthetic bold
566         https://bugs.webkit.org/show_bug.cgi?id=199653
567
568         Unreviewed watchOS build fix.
569
570         * wtf/Platform.h:
571
572 2019-07-15  Commit Queue  <commit-queue@webkit.org>
573
574         Unreviewed, rolling out r247462.
575         https://bugs.webkit.org/show_bug.cgi?id=199816
576
577         completely messed up the patch (Requested by litherum on
578         #webkit).
579
580         Reverted changeset:
581
582         "New York font erroneously gets synthetic bold"
583         https://bugs.webkit.org/show_bug.cgi?id=199653
584         https://trac.webkit.org/changeset/247462
585
586 2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>
587
588         New York font erroneously gets synthetic bold
589         https://bugs.webkit.org/show_bug.cgi?id=199653
590         <rdar://problem/51692592>
591
592         Reviewed by Simon Fraser.
593
594         * wtf/Platform.h:
595
596 2019-07-15  Brady Eidson  <beidson@apple.com>
597
598         Make WKURLSchemeTask thread safe.
599         <rdar://problem/50471863> and https://bugs.webkit.org/show_bug.cgi?id=199764
600
601         Reviewed by Alex Christensen.
602
603         * wtf/MainThread.cpp:
604         (WTF::callOnMainAndWait):
605         (WTF::callOnMainRunLoopAndWait):
606         (WTF::callOnMainThreadAndWait):
607         * wtf/MainThread.h:
608
609 2019-07-15  Dean Jackson  <dino@apple.com>
610
611         MacCatalyst asserts when command key is raised
612         https://bugs.webkit.org/show_bug.cgi?id=199805
613         <rdar://problem/53120393>
614
615         Reviewed by Tim Horton.
616
617         Add USE_UIKIT_KEYBOARD_ADDITIONS for iOS 13+ and macCatalyst.
618
619         * wtf/FeatureDefines.h:
620
621 2019-07-14  Chris Dumez  <cdumez@apple.com>
622
623         Add threading assertion to WeakPtrFactory::createWeakPtr()
624         https://bugs.webkit.org/show_bug.cgi?id=199639
625
626         Reviewed by Ryosuke Niwa.
627
628         Add threading assertion to WeakPtrFactory::createWeakPtr() to make sure it
629         is called on the same thread where the WeakPtrFactory wad constructed.
630
631         * wtf/WeakPtr.h:
632         (WTF::WeakPtrFactory::WeakPtrFactory):
633         (WTF::WeakPtrFactory::createWeakPtr const):
634
635 2019-07-14  Dean Jackson  <dino@apple.com>
636
637         WebGL not supported on WKWebView on UIKit for Mac
638         https://bugs.webkit.org/show_bug.cgi?id=199785
639         <rdar://problem/52911449>
640
641         Reviewed by Antoine Quint.
642
643         MacCatalyst has Apple Graphics Control, although
644         this area is very messy, see <rdar://53062794>.
645
646         * wtf/Platform.h:
647
648 2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>
649
650         New York font erroneously gets synthetic bold
651         https://bugs.webkit.org/show_bug.cgi?id=199653
652         <rdar://problem/51692592>
653
654         Reviewed by Simon Fraser.
655
656         * wtf/Platform.h:
657
658 2019-07-11  Pablo Saavedra  <psaavedra@igalia.com>
659
660         [WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF
661         https://bugs.webkit.org/show_bug.cgi?id=199625
662
663         Added ENABLE(ACCESSIBILITY) and replaced HAVE(ACCESSIBILITY)
664         with ENABLE(ACCESSIBILITY) in the code.
665
666         Additionally, the TestRunner code generator now honors the
667         Conditional IDL format.
668
669         Reviewed by Konstantin Tokarev.
670
671         * wtf/FeatureDefines.h:
672         * wtf/Platform.h:
673
674 2019-07-10  Ryan Haddad  <ryanhaddad@apple.com>
675
676         Unreviewed, rolling out r247286.
677
678         Caused TestWTF.WTF.StringOperators to fail on debug bots
679
680         Reverted changeset:
681
682         "Add StringBuilder member function which allows makeString()
683         style variadic argument construction"
684         https://bugs.webkit.org/show_bug.cgi?id=198997
685         https://trac.webkit.org/changeset/247286
686
687 2019-07-09  Michael Catanzaro  <mcatanzaro@igalia.com>
688
689         [WPE][GTK] GUniqueOutPtr::release should return a raw pointer
690         https://bugs.webkit.org/show_bug.cgi?id=199579
691
692         Reviewed by Carlos Garcia Campos.
693
694         GUniqueOutPtr::release should release to a raw pointer, rather than a GUniquePtr. If a
695         GUniquePtr is desired, it's trivial to construct one from the raw pointer, but all existing
696         callsites under Source/ would rather have a raw pointer. Currently they have to call
697         release().release() to get the raw pointer, which is annoying.
698
699         * wtf/glib/GUniquePtr.h:
700         (WTF::GUniqueOutPtr::release):
701
702 2019-07-09  Sam Weinig  <weinig@apple.com>
703
704         Add StringBuilder member function which allows makeString() style variadic argument construction
705         https://bugs.webkit.org/show_bug.cgi?id=198997
706
707         Reviewed by Darin Adler.
708
709         Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more 
710         string-adaptable (in the sense that there is StringTypeAdapter specialization for the 
711         type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
712         that is used for makeString(...) allowing for improvements in one to benefit the other.
713
714         The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
715         multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
716         additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
717         by computing the complete required length for all the passed arguments and then ensuring enough
718         capacity is available. It also reduces the allocation overhead versus the anti-pattern of
719         builder.append(makeString(...)).
720
721         Ideally, this member function should eventually just be called StringBuilder::append(...), but
722         the current overload set for StringBuilder::append(...) makes this complicated due to overloads
723         that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
724         should rename or remove those overloads and move to a standard interface. 
725
726         * wtf/posix/FileSystemPOSIX.cpp:
727         (WTF::FileSystemImpl::pathByAppendingComponents):
728         Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.
729
730         * wtf/text/StringBuilder.cpp:
731         (WTF::StringBuilder::appendUninitialized):
732         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
733         Extract the part of appendUnitialized that doesn't do the overflow check
734         into it's own member function to allow callers that have already done the
735         overflow check to bypass it.
736
737         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
738         (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
739         Added to allow template member function flexibleAppendFromAdapters to call
740         appendUninitializedWithoutOverflowCheck without moving it to the header.
741         
742         * wtf/text/StringBuilder.h:
743         (WTF::StringBuilder::flexibleAppendFromAdapters):
744         (WTF::StringBuilder::flexibleAppend):
745         Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
746         eagerly compute the required length, expand the buffer and then use
747         the existing string type adaptor accumulation functions used by makeString. 
748
749         * wtf/text/StringConcatenate.h:
750         (WTF::stringTypeAdapterAccumulator):
751         (WTF::tryMakeStringFromAdapters):
752         (WTF::makeStringAccumulator): Deleted.
753         Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
754         by more than just makeString.
755
756 2019-07-09  Alex Christensen  <achristensen@webkit.org>
757
758         When parsing an IPv4 address, wait until after deciding it is indeed an IPv4 address before reporting syntax violations
759         https://bugs.webkit.org/show_bug.cgi?id=199628
760
761         Reviewed by Brady Eidson.
762
763         Otherwise, we sometimes report syntax violations on things that are not IPv4 addresses and don't have syntax violations.
764         I added a unit test with one such URL that used to cause an assertion.
765
766         * wtf/URLParser.cpp:
767         (WTF::URLParser::parseIPv4Host):
768
769 2019-07-09  Alex Christensen  <achristensen@webkit.org>
770
771         Remove invalid assertion in URLParser::domainToASCII
772         https://bugs.webkit.org/show_bug.cgi?id=199624
773
774         Reviewed by Brady Eidson.
775
776         When a non-ASCII domain's punycode encoding is longer than 63 characters,
777         the URL is supposed to fail to parse, according to https://www.unicode.org/reports/tr46/#ToASCII
778         We and all other browsers do this.  When uidna_nameToASCII tries to punycode encode such a domain,
779         it can return a number larger than 63.  In this case, processingDetails.errors is UIDNA_ERROR_LABEL_TOO_LONG
780         and we fail to parse as desired and uidna_nameToASCII did not write out of bounds, so it was just the assertion
781         that was wrong.  I added some unit tests that would have hit the assertion and verify that we fail at the correct length.
782
783         * wtf/URLParser.cpp:
784         (WTF::URLParser::domainToASCII):
785
786 2019-07-09  Alex Christensen  <achristensen@webkit.org>
787
788         URLParser should reserialize IPv6 addresses that end with a colon
789         https://bugs.webkit.org/show_bug.cgi?id=199627
790
791         Reviewed by Brady Eidson.
792
793         When an IPv6 address ends in a colon, the colon should be removed which means the
794         serialized output is different than the input, which the URLParser calls a syntax violation.
795         This matches the URL specification, and I added a unit test that used to assert.
796
797         * wtf/URLParser.cpp:
798         (WTF::URLParser::parseIPv6Host):
799
800 2019-07-08  Chris Dumez  <cdumez@apple.com>
801
802         Use WeakHashSet for WebUserContentControllerProxy::m_processes
803         https://bugs.webkit.org/show_bug.cgi?id=199591
804         <rdar://problem/52798721>
805
806         Reviewed by Youenn Fablet.
807
808         Update WeakHashSet::add() to return an AddResult type, similarly to our other containers.
809
810         * wtf/WeakHashSet.h:
811         (WTF::WeakHashSet::add):
812
813 2019-07-08  Christopher Reid  <chris.reid@sony.com>
814
815         Implement MappedFileData for Windows
816         https://bugs.webkit.org/show_bug.cgi?id=198269
817
818         Reviewed by Darin Adler.
819
820         Original patch by Fujii Hironori.
821
822         Add Windows implementations for MappedFileData constructor and destructor.
823
824         * wtf/FileSystem.cpp:
825         * wtf/FileSystem.h:
826         * wtf/win/FileSystemWin.cpp:
827
828 2019-07-08  Chris Dumez  <cdumez@apple.com>
829
830         Add threading assertion to WTF::CompletionHandler
831         https://bugs.webkit.org/show_bug.cgi?id=199516
832
833         Reviewed by Alex Christensen.
834
835         Add threading assertion to WTF::CompletionHandler to try and catch common cases
836         of unsafe usage (completion handler constructed on one thread but called on
837         another).
838
839         * wtf/CompletionHandler.h:
840         (WTF::CompletionHandler<Out):
841
842 2019-07-08  Antoine Quint  <graouts@apple.com>
843
844         [Pointer Events] Enable only on the most recent version of the supported iOS family
845         https://bugs.webkit.org/show_bug.cgi?id=199562
846         <rdar://problem/52766511>
847
848         Reviewed by Dean Jackson.
849
850         We really don't need HAVE_UI_WEB_TOUCH_EVENTS_GESTURE_RECOGNIZER_WITH_ACTIVE_TOUCHES_BY_ID since the UIKit SPI
851         that was added in iOS 13 that it's checking for is really required for all parts of the implementation of Pointer
852         Events, including dispatch of the "pointercancel" event and support for the "touch-action" CSS property.
853
854         * wtf/Platform.h:
855
856 2019-07-05  Ryan Haddad  <ryanhaddad@apple.com>
857
858         Unreviewed, rolling out r247115.
859
860         Breaks lldbWebKitTester (and by extension, test-webkitpy)
861
862         Reverted changeset:
863
864         "[WHLSL] Standard library is too big to directly include in
865         WebCore"
866         https://bugs.webkit.org/show_bug.cgi?id=198186
867         https://trac.webkit.org/changeset/247115
868
869 2019-07-03  Jonathan Bedard  <jbedard@apple.com>
870
871         [Catalina] Enable WebKit build
872         https://bugs.webkit.org/show_bug.cgi?id=199209
873
874         Reviewed by Darin Adler.
875
876         * wtf/spi/cocoa/SecuritySPI.h: Declare SecTrustedApplicationCreateFromPath(...).
877
878 2019-07-03  Keith Miller  <keith_miller@apple.com>
879
880         PACCage should first cage leaving PAC bits intact then authenticate
881         https://bugs.webkit.org/show_bug.cgi?id=199372
882
883         Reviewed by Saam Barati.
884
885         * wtf/CagedPtr.h:
886         (WTF::CagedPtr::get const):
887         (WTF::CagedPtr::getMayBeNull const):
888         (WTF::CagedPtr::mergePointers):
889
890 2019-07-03  Ryan Haddad  <ryanhaddad@apple.com>
891
892         Unreviewed, rolling out r246616.
893
894         Caused http/tests/inspector/network/har/har-page.html to fail
895         on Catalina.
896
897         Reverted changeset:
898
899         "Web Inspector: Network: replace CFNetwork SPI with new API
900         where able"
901         https://bugs.webkit.org/show_bug.cgi?id=198762
902         https://trac.webkit.org/changeset/246616
903
904 2019-07-02  Commit Queue  <commit-queue@webkit.org>
905
906         Unreviewed, rolling out r247041.
907         https://bugs.webkit.org/show_bug.cgi?id=199425
908
909         broke some iOS arm64e tests (Requested by keith_miller on
910         #webkit).
911
912         Reverted changeset:
913
914         "PACCage should first cage leaving PAC bits intact then
915         authenticate"
916         https://bugs.webkit.org/show_bug.cgi?id=199372
917         https://trac.webkit.org/changeset/247041
918
919 2019-07-02  Chris Dumez  <cdumez@apple.com>
920
921         ThreadSafeRefCounted<DestructionThread::Main> is not safe to use in the UIProcess
922         https://bugs.webkit.org/show_bug.cgi?id=199420
923         <rdar://problem/52289717>
924
925         Reviewed by Ryosuke Niwa.
926
927         * wtf/MainThread.cpp:
928         (WTF::isMainRunLoop):
929         (WTF::callOnMainRunLoop):
930         * wtf/MainThread.h:
931         Add some function to MainThread.h to be used by ThreadSafeRefCounted to interact with the
932         main RunLoop. This is used to avoid a circular dependency between RunLoop (which is
933         ThreadSafeRefCounted) and ThreadSafeReCounted.
934
935         * wtf/ThreadSafeRefCounted.h:
936         (WTF::ThreadSafeRefCounted::deref const):
937         Add a new DestructionThread::MainRunLoop enum value to be used by classes that need to
938         be destroyed on the main RunLoop rather than the main thread (which may be different
939         when WK1 is invoved)
940
941 2019-07-02  Robin Morisset  <rmorisset@apple.com>
942
943         [WHLSL] the initializer in VariableDeclaration should be a std::unique_ptr, not Optional<UniqueRef<..>>
944         https://bugs.webkit.org/show_bug.cgi?id=199389
945
946         Reviewed by Sam Weinig.
947
948         * wtf/UniqueRef.h:
949         (WTF::UniqueRef::moveToUniquePtr): Added.
950
951 2019-07-02  Keith Miller  <keith_miller@apple.com>
952
953         PACCage should first cage leaving PAC bits intact then authenticate
954         https://bugs.webkit.org/show_bug.cgi?id=199372
955
956         Reviewed by Saam Barati.
957
958         * wtf/CagedPtr.h:
959         (WTF::CagedPtr::get const):
960         (WTF::CagedPtr::getMayBeNull const):
961         (WTF::CagedPtr::mergePointers):
962
963 2019-07-01  Philippe Normand  <pnormand@igalia.com>
964
965         [GStreamer] Cannot play Bert's Bytes radio stream from http://radio.dos.nl/
966         https://bugs.webkit.org/show_bug.cgi?id=198376
967
968         Reviewed by Xabier Rodriguez-Calvar.
969
970         * wtf/glib/GLibUtilities.h:
971         (enumToString): Utility function to get a string representation of of a GLib enum.
972
973 2019-06-22  Darin Adler  <darin@apple.com>
974
975         Streamline some string code, focusing on functions that were using substringSharingImpl
976         https://bugs.webkit.org/show_bug.cgi?id=198898
977
978         Reviewed by Daniel Bates.
979
980         * wtf/URLHelpers.cpp:
981         (WTF::URLHelpers::applyHostNameFunctionToURLString): Change code using
982         substringSharingImpl so it could call String::find to call StringView::contains
983         instead. Also rewrote lambdas to be simpler and likely more efficient.
984         Rewrote another case using substringSharingImpl so it could call String::find
985         to call StringView::find instead.
986
987         * wtf/text/StringView.cpp:
988         (WTF::StringView::startsWith const): Added.
989
990         * wtf/text/StringView.h: Tweaked style a bit, and added an overload of
991         StringView::contains that takes a CodeUnitMatchFunction and an overload
992         of startsWith that cakes a UChar.
993
994 2019-06-28  Konstantin Tokarev  <annulen@yandex.ru>
995
996         Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733
997         https://bugs.webkit.org/show_bug.cgi?id=199317
998
999         Reviewed by Michael Catanzaro.
1000
1001         While IconDatabase and all code using it was removed,
1002         ENABLE_ICONDATABASE still exists as build option and C++ macro.
1003
1004         * wtf/FeatureDefines.h:
1005
1006 2019-06-27  Konstantin Tokarev  <annulen@yandex.ru>
1007
1008         Avoid using WTF::Function for passing local function pointers and closures in URLHelpers.cpp
1009         https://bugs.webkit.org/show_bug.cgi?id=199271
1010
1011         Reviewed by Yusuke Suzuki.
1012
1013         WTF::Function allocates memory on heap, which is totally redundant in this
1014         case.
1015
1016         * wtf/URLHelpers.cpp:
1017         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1018
1019 2019-06-27  Timothy Hatcher  <timothy@apple.com>
1020
1021         Move WebKitLegacy off of a couple AppKit ivars.
1022         https://bugs.webkit.org/show_bug.cgi?id=199279
1023         rdar://problem/34983438
1024
1025         Reviewed by Tim Horton.
1026
1027         * wtf/Platform.h: Added HAVE_SUBVIEWS_IVAR_SPI.
1028
1029 2019-06-27  Beth Dakin  <bdakin@apple.com>
1030
1031         Upstream use of MACCATALYST
1032         https://bugs.webkit.org/show_bug.cgi?id=199245
1033         rdar://problem/51687723
1034
1035         Reviewed by Tim Horton.
1036
1037         * Configurations/SDKVariant.xcconfig:
1038         * wtf/FeatureDefines.h:
1039         * wtf/Platform.h:
1040
1041 2019-06-27  Don Olmstead  <don.olmstead@sony.com>
1042
1043         [FTW] Build JavaScriptCore
1044         https://bugs.webkit.org/show_bug.cgi?id=199254
1045
1046         Reviewed by Brent Fulgham.
1047
1048         * wtf/PlatformFTW.cmake: Added.
1049
1050 2019-06-27  Fujii Hironori  <Hironori.Fujii@sony.com>
1051
1052         [CMake] Bump cmake_minimum_required version to 3.10
1053         https://bugs.webkit.org/show_bug.cgi?id=199181
1054
1055         Reviewed by Don Olmstead.
1056
1057         * CMakeLists.txt:
1058
1059 2019-06-26  Konstantin Tokarev  <annulen@yandex.ru>
1060
1061         Remove unneeded #include <wtf/glib/GRefPtr.h>
1062         https://bugs.webkit.org/show_bug.cgi?id=199228
1063
1064         Reviewed by Michael Catanzaro.
1065
1066         * wtf/MemoryPressureHandler.h:
1067
1068 2019-06-26  Myles C. Maxfield  <mmaxfield@apple.com>
1069
1070         REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
1071         https://bugs.webkit.org/show_bug.cgi?id=199012
1072
1073         Reviewed by Saam Barati.
1074
1075         * wtf/Platform.h:
1076
1077 2019-06-25  Keith Miller  <keith_miller@apple.com>
1078
1079         CagedPtr doesn't merge PAC bits back into the resulting caged pointer.
1080         https://bugs.webkit.org/show_bug.cgi?id=199214
1081
1082         Reviewed by Yusuke Suzuki.
1083
1084         The current code means that caging will just strip the any failed
1085         authentication bits. Adding this code doesn't appear to be a
1086         regression on iPhone Xs.
1087
1088         * wtf/CagedPtr.h:
1089         (WTF::CagedPtr::get const):
1090         (WTF::CagedPtr::getMayBeNull const):
1091         (WTF::CagedPtr::getUnsafe const):
1092         (WTF::CagedPtr::mergePointers):
1093
1094 2019-06-25  Sam Weinig  <weinig@apple.com>
1095
1096         Experiment with simple structured bindings use
1097         https://bugs.webkit.org/show_bug.cgi?id=198905
1098
1099         Reviewed by Darin Adler.
1100
1101         * wtf/URLHelpers.cpp:
1102         (WTF::URLHelpers::mapHostNames):
1103         Simplify code using c++ structured bindings (https://en.cppreference.com/w/cpp/language/structured_binding)
1104         to see if all the platforms will work with it.
1105
1106 2019-06-25  Adam Barth  <abarth@webkit.org>
1107
1108         [fuchsia] Update to newer zx_clock_get syscall
1109         https://bugs.webkit.org/show_bug.cgi?id=199191
1110
1111         Reviewed by Sam Weinig.
1112
1113         Fuchsia has changed the zx_clock_get syscall to return the clock value
1114         via an out parameter rather than via its return value. This change
1115         makes zx_clock_get consistent with all the other syscalls.
1116
1117         This patch updates our use of zx_clock_get to use the new syscall. The
1118         old syscall is no longer supported by Fuchsia.
1119
1120         * wtf/fuchsia/CPUTimeFuchsia.cpp:
1121         (WTF::CPUTime::get): Switch to using the out parameter.
1122         (WTF::CPUTime::forCurrentThread): Switch to using the out parameter.
1123
1124 2019-06-25  Michael Catanzaro  <mcatanzaro@igalia.com>
1125
1126         Fully rename WebKitGTK+ -> WebKitGTK everywhere
1127         https://bugs.webkit.org/show_bug.cgi?id=199159
1128
1129         Reviewed by Carlos Garcia Campos.
1130
1131         * wtf/URLParser.cpp:
1132         (WTF::URLParser::internationalDomainNameTranscoder):
1133
1134 2019-06-25  Michael Catanzaro  <mcatanzaro@igalia.com>
1135
1136         Require GCC 7
1137         https://bugs.webkit.org/show_bug.cgi?id=198914
1138
1139         Reviewed by Darin Adler.
1140
1141         Remove now-stale GCC version check.
1142
1143         * wtf/Compiler.h:
1144
1145 2019-06-23  Simon Fraser  <simon.fraser@apple.com>
1146
1147         Add OverflowScrollProxyNodes to the scrolling tree
1148         https://bugs.webkit.org/show_bug.cgi?id=199132
1149
1150         Reviewed by Antti Koivisto.
1151         
1152         Setting indent is useful if you want to make a new stream with the indent of an
1153         existing stream.
1154
1155         * wtf/text/TextStream.h:
1156         (WTF::TextStream::setIndent):
1157
1158 2019-06-20  Fujii Hironori  <Hironori.Fujii@sony.com>
1159
1160         Try to use C++14 std::enable_if_t in CheckedArithmetic.h again
1161         https://bugs.webkit.org/show_bug.cgi?id=199099
1162
1163         Reviewed by Ross Kirsling.
1164
1165         r242235 changed CheckedArithmetic to not use C++14. Let's try
1166         C++14 again.
1167
1168         * wtf/CheckedArithmetic.h: Use C++14 std::make_unsigned_t and std::enable_if_t.
1169
1170 2019-06-18  Darin Adler  <darin@apple.com>
1171
1172         Tidy up the remaining bits of the AtomicString to AtomString rename
1173         https://bugs.webkit.org/show_bug.cgi?id=198990
1174
1175         Reviewed by Michael Catanzaro.
1176
1177         * wtf/text/AtomString.cpp: Fix a comment.
1178         * wtf/text/AtomString.h: Tweak formatting a bit. Use nullptr instead of 0.
1179         Removed "using AtomicString = AtomString".
1180         * wtf/text/AtomStringImpl.cpp:
1181         (WTF::CStringTranslator::translate): Use setIsAtom instead of setIsAtomic.
1182         (WTF::UCharBufferTranslator::translate): Ditto.
1183         (WTF::HashAndUTF8CharactersTranslator::translate): Ditto.
1184         (WTF::SubstringTranslator::translate): Ditto.
1185         (WTF::LCharBufferTranslator::translate): Ditto.
1186         (WTF::BufferFromStaticDataTranslator::translate): Ditto.
1187         (WTF::AtomStringImpl::addSlowCase): Ditto.
1188         (WTF::AtomStringImpl::lookUpSlowCase): Updated assertion message.
1189
1190         * wtf/text/AtomStringImpl.h: Tweaked the implementation of add.
1191         Updated comments to say AtomString.
1192
1193         * wtf/text/AtomStringTable.cpp:
1194         (WTF::AtomStringTable::~AtomStringTable): Use setIsAtom.
1195
1196         * wtf/text/StringImpl.h: Updated name of StringAtomic and
1197         s_hashFlagStringKindIsAtom. Renamed to flagIsAtom and setIsAtom.
1198
1199         * wtf/text/WTFString.cpp:
1200         (WTF::String::isSafeToSendToAnotherThread const): Updated comment.
1201
1202 2019-06-20  Carlos Garcia Campos  <cgarcia@igalia.com>
1203
1204         [GTK] Remove support for GTK2 plugins
1205         https://bugs.webkit.org/show_bug.cgi?id=199065
1206
1207         Reviewed by Sergio Villar Senin.
1208
1209         * wtf/Platform.h:
1210         * wtf/glib/GTypedefs.h:
1211
1212 2019-06-19  Yusuke Suzuki  <ysuzuki@apple.com>
1213
1214         [bmalloc] IsoHeap's initialization is racy with IsoHeap::isInitialized
1215         https://bugs.webkit.org/show_bug.cgi?id=199053
1216
1217         Reviewed by Saam Barati.
1218
1219         Add constexpr static functions to generate pseudo random numbers from __LINE__.
1220
1221         * wtf/WeakRandom.h:
1222         (WTF::WeakRandom::nextState):
1223         (WTF::WeakRandom::generate):
1224         (WTF::WeakRandom::advance):
1225
1226 2019-06-19  Fujii Hironori  <Hironori.Fujii@sony.com>
1227
1228         Add WTF::crossThreadCopy(T&&) to utilize String::isolatedCopy() &&
1229         https://bugs.webkit.org/show_bug.cgi?id=198957
1230
1231         Reviewed by Alex Christensen.
1232
1233         &&-qualified String::isolatedCopy() has a optimization path which
1234         does just WTFMove if it isSafeToSendToAnotherThread which means
1235         the object hasOneRef.
1236
1237         However, WTF::crossThreadCopy was using only &-qualified
1238         isolatedCopy. To use the optimization, added
1239         WTF::crossThreadCopy(T&&) overloading.
1240
1241         * wtf/CrossThreadCopier.h:
1242         (WTF::crossThreadCopy): Added a overload of (T&&).
1243         * wtf/CrossThreadTask.h:
1244         (WTF::createCrossThreadTask): Removed explicit template arguments of crossThreadCopy.
1245
1246 2019-06-19  Devin Rousso  <drousso@apple.com>
1247
1248         Web Inspector: Network: replace CFNetwork SPI with new API where able
1249         https://bugs.webkit.org/show_bug.cgi?id=198762
1250
1251         Reviewed by Timothy Hatcher.
1252
1253         * wtf/Platform.h:
1254
1255 2019-06-19  Alex Christensen  <achristensen@webkit.org>
1256
1257         Add a unit test for client certificate authentication
1258         https://bugs.webkit.org/show_bug.cgi?id=197800
1259
1260         Reviewed by Youenn Fablet.
1261
1262         * wtf/spi/cocoa/SecuritySPI.h:
1263         Move declarations from ArgumentCodersCF.cpp so they can be shared.
1264
1265 2019-06-19  Adrian Perez de Castro  <aperez@igalia.com>
1266
1267         [WPE][GTK] Fix build with unified sources disabled
1268         https://bugs.webkit.org/show_bug.cgi?id=198752
1269
1270         Reviewed by Michael Catanzaro.
1271
1272         * wtf/text/StringBuilder.h: Add missing include of StringConcatenateNumbers.h
1273
1274 2019-06-19  Zan Dobersek  <zdobersek@igalia.com>
1275
1276         USE_ANGLE macro can be evaluated without being defined
1277         https://bugs.webkit.org/show_bug.cgi?id=198991
1278
1279         Reviewed by Carlos Garcia Campos.
1280
1281         * wtf/Platform.h: On platforms not yet defining USE_ANGLE, the
1282         incompatibility check with some other flags leads to the macro being
1283         evaluated even when it was not defined, producing compiler warnings.
1284         To avoid this, the macro should be defined to 0 before the check in
1285         case it was not defined already.
1286
1287 2019-06-18  Dean Jackson  <dino@apple.com>
1288
1289         UIContextMenuInteraction implementation for WKContentView
1290         https://bugs.webkit.org/show_bug.cgi?id=198986
1291         <rdar://problem/51875189>
1292
1293         Reviewed by Andy Estes.
1294
1295         Add USE_UICONTEXTMENU for iOS 13+.
1296
1297         * wtf/Platform.h:
1298
1299 2019-06-18  Kenneth Russell  <kbr@chromium.org>
1300
1301         Add preliminary ANGLE backend to WebCore
1302         https://bugs.webkit.org/show_bug.cgi?id=197755
1303
1304         Reviewed by Dean Jackson.
1305
1306         Add a USE_ANGLE definition to wtf/Platform.h (currently disabled)
1307         which, when enabled, uses ANGLE instead of the OpenGL or OpenGL ES
1308         backend.
1309
1310         * wtf/Platform.h:
1311
1312 2019-06-17  Jiewen Tan  <jiewen_tan@apple.com>
1313
1314         Move SOAuthorization from WebKitAdditions to WebKit
1315         https://bugs.webkit.org/show_bug.cgi?id=198874
1316         <rdar://problem/47573431>
1317
1318         Reviewed by Brent Fulgham.
1319
1320         * wtf/Platform.h:
1321         Adds a feature flag to detect AppSSO framework.
1322
1323 2019-06-17  Ryan Haddad  <ryanhaddad@apple.com>
1324
1325         Unreviewed, rolling out r246501.
1326
1327         Breaks Apple internal builds.
1328
1329         Reverted changeset:
1330
1331         "Support using ANGLE as the backend for the WebGL
1332         implementation"
1333         https://bugs.webkit.org/show_bug.cgi?id=197755
1334         https://trac.webkit.org/changeset/246501
1335
1336 2019-06-17  Kenneth Russell  <kbr@chromium.org>
1337
1338         Support using ANGLE as the backend for the WebGL implementation
1339         https://bugs.webkit.org/show_bug.cgi?id=197755
1340
1341         Reviewed by Dean Jackson.
1342
1343         Add a USE_ANGLE definition to wtf/Platform.h (currently disabled)
1344         which, when enabled, uses ANGLE instead of the OpenGL or OpenGL ES
1345         backend.
1346
1347         * wtf/Platform.h:
1348
1349 2019-06-16  Darin Adler  <darin@apple.com>
1350
1351         Rename AtomicString to AtomString
1352         https://bugs.webkit.org/show_bug.cgi?id=195276
1353
1354         Reviewed by Michael Catanzaro.
1355
1356         * many files: Let do-webcore-rename do the renaming.
1357
1358         * wtf/text/AtomString.h: After renaming, added AtomicString as a synonym for
1359         now; helps smooth things over with a tiny bit of Apple internal software so
1360         we don't have to do this all at once. Can remove it soon.
1361
1362 2019-06-16  Eric Carlson  <eric.carlson@apple.com>
1363
1364         [MediaStream] Avoid roundoff error when setting AVCapture min/max frame rate
1365         https://bugs.webkit.org/show_bug.cgi?id=198875
1366         <rdar://problem/51768374>
1367
1368         Reviewed by Youenn Fablet.
1369
1370         * wtf/MediaTime.h:
1371         (WTF::LogArgument<MediaTime>::toString):
1372         (WTF::LogArgument<MediaTimeRange>::toString):
1373
1374 2019-06-12  Antoine Quint  <graouts@apple.com>
1375
1376         Show the web page URL when sharing an AR model
1377         https://bugs.webkit.org/show_bug.cgi?id=198812
1378         <rdar://problem/48689498>
1379
1380         Reviewed by Dean Jackson.
1381
1382         * wtf/Platform.h:
1383
1384 2019-06-12  Youenn Fablet  <youenn@apple.com>
1385
1386         Use NSURLSession for WebSocket
1387         https://bugs.webkit.org/show_bug.cgi?id=198568
1388
1389         Reviewed by Geoffrey Garen.
1390
1391         * wtf/Platform.h:
1392         Introduce compile flag for WebSocket NSURLSession
1393
1394 2019-06-12  Commit Queue  <commit-queue@webkit.org>
1395
1396         Unreviewed, rolling out r246322.
1397         https://bugs.webkit.org/show_bug.cgi?id=198796
1398
1399         "It's a huge page load regression on iOS" (Requested by
1400         saamyjoon on #webkit).
1401
1402         Reverted changeset:
1403
1404         "Roll out PAC cage"
1405         https://bugs.webkit.org/show_bug.cgi?id=198726
1406         https://trac.webkit.org/changeset/246322
1407
1408 2019-06-10  Simon Fraser  <simon.fraser@apple.com>
1409
1410         Add logging for UI-side compositing hit-testing
1411         https://bugs.webkit.org/show_bug.cgi?id=198739
1412
1413         Reviewed by Antti Koivisto.
1414
1415         Make it possible to output an Objective-C object to TextStream, which will
1416         log its -description.
1417
1418         Also add a template for OptionSet<> printing.
1419
1420         * WTF.xcodeproj/project.pbxproj:
1421         * wtf/text/TextStream.h:
1422         (WTF::operator<<):
1423         * wtf/text/cocoa/TextStreamCocoa.mm: Added.
1424         (WTF::TextStream::operator<<):
1425
1426 2019-06-11  Saam Barati  <sbarati@apple.com>
1427
1428         Roll out PAC cage
1429         https://bugs.webkit.org/show_bug.cgi?id=198726
1430
1431         Reviewed by Keith Miller.
1432
1433         * WTF.xcodeproj/project.pbxproj:
1434         * wtf/CMakeLists.txt:
1435         * wtf/CagedPtr.h:
1436         (WTF::CagedPtr::CagedPtr):
1437         (WTF::CagedPtr::get const):
1438         (WTF::CagedPtr::getMayBeNull const):
1439         (WTF::CagedPtr::operator=):
1440         (WTF::CagedPtr::operator== const):
1441         (WTF::CagedPtr::operator!= const):
1442         (WTF::CagedPtr::operator bool const):
1443         (WTF::CagedPtr::operator* const):
1444         (WTF::CagedPtr::operator-> const):
1445         (WTF::CagedPtr::operator[] const):
1446         (WTF::CagedPtr::getUnsafe const): Deleted.
1447         (WTF::CagedPtr::at const): Deleted.
1448         (WTF::CagedPtr::recage): Deleted.
1449         * wtf/CagedUniquePtr.h:
1450         (WTF::CagedUniquePtr::CagedUniquePtr):
1451         (WTF::CagedUniquePtr::create):
1452         (WTF::CagedUniquePtr::operator=):
1453         (WTF::CagedUniquePtr::~CagedUniquePtr):
1454         (WTF::CagedUniquePtr::destroy):
1455         * wtf/Gigacage.h:
1456         (Gigacage::caged):
1457         (Gigacage::cagedMayBeNull): Deleted.
1458         * wtf/PtrTag.h:
1459         (WTF::tagArrayPtr): Deleted.
1460         (WTF::untagArrayPtr): Deleted.
1461         (WTF::removeArrayPtrTag): Deleted.
1462         (WTF::retagArrayPtr): Deleted.
1463         * wtf/TaggedArrayStoragePtr.h:
1464         (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr): Deleted.
1465         (WTF::TaggedArrayStoragePtr::get const): Deleted.
1466         (WTF::TaggedArrayStoragePtr::getUnsafe const): Deleted.
1467         (WTF::TaggedArrayStoragePtr::resize): Deleted.
1468         (WTF::TaggedArrayStoragePtr::operator bool const): Deleted.
1469
1470 2019-06-10  Andy Estes  <aestes@apple.com>
1471
1472         [iOS] Use PDFKit SPI for taking snapshots when the hosting app is not entitled for global capture
1473         https://bugs.webkit.org/show_bug.cgi?id=198731
1474         <rdar://problem/46215174>
1475
1476         Reviewed by Tim Horton.
1477
1478         * wtf/FeatureDefines.h:
1479
1480 2019-06-10  Sam Weinig  <weinig@apple.com>
1481
1482         Remove Dashboard support
1483         https://bugs.webkit.org/show_bug.cgi?id=198615
1484
1485         Reviewed by Ryosuke Niwa.
1486
1487         * wtf/FeatureDefines.h:
1488
1489 2019-06-10  Timothy Hatcher  <timothy@apple.com>
1490
1491         Integrate dark mode support for iOS.
1492         https://bugs.webkit.org/show_bug.cgi?id=198687
1493         rdar://problem/51545643
1494
1495         Reviewed by Tim Horton.
1496
1497         * wtf/Platform.h:
1498
1499 2019-06-08  Andy Estes  <aestes@apple.com>
1500
1501         [Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests
1502         https://bugs.webkit.org/show_bug.cgi?id=198690
1503         <rdar://problem/48041803>
1504
1505         Reviewed by Tim Horton.
1506
1507         * wtf/FeatureDefines.h: Defined HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER, and cleaned up some
1508         other PassKit HAVEs.
1509
1510 2019-06-06  Caio Lima  <ticaiolima@gmail.com>
1511
1512         [JSCOnly] JSCOnly port is not building on macOS
1513         https://bugs.webkit.org/show_bug.cgi?id=198563
1514
1515         Reviewed by Don Olmstead.
1516
1517         We are adding `<mach/vm_types.h>` to fix build issues when compiling
1518         JSCOnly port on macOS.
1519
1520         * wtf/WTFAssertions.cpp:
1521
1522 2019-06-03  Commit Queue  <commit-queue@webkit.org>
1523
1524         Unreviewed, rolling out r246022.
1525         https://bugs.webkit.org/show_bug.cgi?id=198486
1526
1527         Causing Internal build failures and JSC test failures
1528         (Requested by ShawnRoberts on #webkit).
1529
1530         Reverted changeset:
1531
1532         "Reenable Gigacage on ARM64."
1533         https://bugs.webkit.org/show_bug.cgi?id=198453
1534         https://trac.webkit.org/changeset/246022
1535
1536 2019-06-03  Darin Adler  <darin@apple.com>
1537
1538         Finish cleanup of String::number for floating point
1539         https://bugs.webkit.org/show_bug.cgi?id=198471
1540
1541         Reviewed by Yusuke Suzuki.
1542
1543         * wtf/JSONValues.cpp:
1544         (WTF::JSONImpl::Value::writeJSON const): Use appendNumber instead of
1545         appendECMAScriptNumber, since that's now the default.
1546
1547         * wtf/text/StringBuilder.cpp:
1548         (WTF::StringBuilder::appendNumber): Renamed from appendShortestFormNumber.
1549         * wtf/text/StringBuilder.h: Removed appendShortestFormNumber and
1550         appendECMAScriptNumber, replacing both with overload of appendNumber.
1551
1552         * wtf/text/WTFString.cpp:
1553         (WTF::String::number): Renamed from numberToStringShortest.
1554         * wtf/text/WTFString.h: Removed numberToStringShortest and
1555         numberToStringECMAScript, replacing both with overload of number.
1556
1557 2019-06-02  Keith Miller  <keith_miller@apple.com>
1558
1559         Reenable Gigacage on ARM64.
1560         https://bugs.webkit.org/show_bug.cgi?id=198453
1561
1562         Reviewed by Filip Pizlo.
1563
1564         * wtf/CagedPtr.h:
1565         (WTF::CagedPtr::authenticatingLoad):
1566         (WTF::CagedPtr::get const):
1567         (WTF::CagedPtr::getMayBeNull const):
1568
1569 2019-05-31  Alex Christensen  <achristensen@webkit.org>
1570
1571         URLParser::parseIPv6Host should properly parse 0's around compression
1572         https://bugs.webkit.org/show_bug.cgi?id=198424
1573
1574         Reviewed by Tim Horton.
1575
1576         * wtf/URLParser.cpp:
1577         (WTF::URLParser::parseIPv6Host):
1578
1579 2019-05-31  Alex Christensen  <achristensen@webkit.org>
1580
1581         URLParser::parseHostAndPort should not allow non-port characters after an ipv6 host
1582         https://bugs.webkit.org/show_bug.cgi?id=198428
1583         <rdar://problem/51209196>
1584
1585         Reviewed by Tim Horton.
1586
1587         This matches Chrome and Firefox.
1588
1589         * wtf/URLParser.cpp:
1590         (WTF::URLParser::parseHostAndPort):
1591
1592 2019-05-31  Tim Horton  <timothy_horton@apple.com>
1593
1594         Optionally respect device management restrictions when loading from the network
1595         https://bugs.webkit.org/show_bug.cgi?id=198318
1596         <rdar://problem/44263806>
1597
1598         Reviewed by Alex Christensen.
1599
1600         * wtf/Platform.h:
1601         Add a HAVE flag for DeviceManagement.framework.
1602         It does exist in the simulator, but does not function; pretend it doesn't exist.
1603
1604 2019-05-31  Geoffrey Garen  <ggaren@apple.com>
1605
1606         Some WeakPtr cleanup
1607         https://bugs.webkit.org/show_bug.cgi?id=198390
1608
1609         Reviewed by Chris Dumez.
1610
1611         * wtf/WeakHashSet.h:
1612         (WTF::HashTraits<Ref<WeakPtrImpl>>::isReleasedWeakValue):
1613         (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
1614         Updated for rename to WeakPtrImpl.
1615
1616         (WTF::WeakHashSet::WeakHashSetConstIterator::get const): Updated for new
1617         get() interface. Also, switched to iterator operator* to help clarify
1618         the double dereference here.
1619
1620         (WTF::WeakHashSet::add):
1621         (WTF::WeakHashSet::remove):
1622         (WTF::WeakHashSet::contains const):
1623         (WTF::WeakHashSet::computeSize const):
1624         (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Deleted.
1625         Updated for rename to WeakPtrImpl.
1626
1627         * wtf/WeakPtr.h:
1628         (WTF::WeakPtrImpl::create):
1629         (WTF::WeakPtrImpl::~WeakPtrImpl): Renamed WeakReference to WeakPtrImpl.
1630         Now we don't need a comment explaining that this class is the backing
1631         implementation of WeakPtr.
1632
1633         (WTF::WeakPtrImpl::get): Return the pointer type we stored, rather than
1634         the pointer type requested by our client. It's a little too surprising
1635         for a field to store one pointer type and load another.
1636
1637         (WTF::WeakPtrImpl::WeakPtrImpl): Fixed a theoretical type safety bug.
1638         Make sure to store T::WeakValueType* instead of T*, since they might
1639         not be the same pointer value. (In practice, T and T::WeakValueType*
1640         are always the same type in this constructor because WeakPtrFactory
1641         makes them so, but it's best not to depend on implementation details
1642         across classes.)
1643
1644         (WTF::WeakPtr::get const): Updated for new get() interface.
1645
1646         (WTF::WeakPtr::operator bool const):
1647         (WTF::WeakPtr::operator=):
1648         (WTF::WeakPtr::clear):
1649         (WTF::WeakPtr::WeakPtr): Updated for WeakPtrImpl rename.
1650
1651         (WTF::WeakPtrFactory::~WeakPtrFactory): Updated for WeakPtrImpl rename.
1652
1653         (WTF::WeakPtrFactory::createWeakPtr const): ASSERT that the passed-in
1654         pointer is equal to the stored pointer. As a space optimization, we
1655         require our client to remind us what we point to each time a weak
1656         pointer is created -- but nothing guarantees that our client will do
1657         this correctly.
1658
1659         (WTF::WeakPtrFactory::revokeAll): Updated for WeakPtrImpl rename.
1660
1661         (WTF::CanMakeWeakPtr::weakPtrFactory const):
1662         (WTF::CanMakeWeakPtr::weakPtrFactory): Use idiomatic accessor naming.
1663
1664         (WTF::weak_ptr_impl_cast): Fixed a theoretical type safety bug.
1665         Previously, if Base and Derived both inherited CanMakeWeakPtr, and
1666         you casted WeakPtr<Base> to WeakPtr<Derived> (or vice versa), and
1667         casting Base <-> Derived required pointer fixup, the previous
1668         compile-time check would accept the cast, even though the stored pointer
1669         would be wrong.
1670
1671         (WTF::WeakPtr<T>::WeakPtr):
1672         (WTF::=):
1673         (WTF::makeWeakPtr):
1674         (WTF::WeakReference::create): Deleted.
1675         (WTF::WeakReference::~WeakReference): Deleted.
1676         (WTF::WeakReference::get const): Deleted.
1677         (WTF::WeakReference::operator bool const): Deleted.
1678         (WTF::WeakReference::clear): Deleted.
1679         (WTF::WeakReference::WeakReference): Deleted.
1680         (WTF::weak_reference_cast): Deleted. Updated for rename to WeakPtrImpl.
1681
1682         Don't export WeakPtrImpl because it's an implmenetation detail and
1683         it shouldn't be easy to use outside WTF.
1684
1685 2019-05-31  Don Olmstead  <don.olmstead@sony.com>
1686
1687         [CMake] Add WebKit::WTF target
1688         https://bugs.webkit.org/show_bug.cgi?id=198400
1689
1690         Reviewed by Konstantin Tokarev.
1691
1692         Create the WebKit::WTF target and use that to propagate headers. Use
1693         WEBKIT_COPY_FILES instead of WEBKIT_MAKE_FORWARDING_HEADERS.
1694
1695         * wtf/CMakeLists.txt:
1696
1697 2019-05-30  Saam Barati  <sbarati@apple.com>
1698
1699         [WHLSL] Enforce variable lifetimes
1700         https://bugs.webkit.org/show_bug.cgi?id=195794
1701         <rdar://problem/50746293>
1702
1703         Reviewed by Myles C. Maxfield.
1704
1705         * wtf/PrintStream.h:
1706
1707 2019-05-30  Keith Rollin  <krollin@apple.com>
1708
1709         Fix yet more deprecated uses of -[UIApplication interfaceOrientation]
1710         https://bugs.webkit.org/show_bug.cgi?id=198381
1711         <rdar://problem/51265846>
1712
1713         Reviewed by Wenson Hsieh.
1714
1715         r245267, r245272, and r245874 fixed many instances of this issue; this
1716         change fixes the issue for tvOS.
1717
1718         * wtf/FeatureDefines.h:
1719
1720 2019-05-29  David Kilzer  <ddkilzer@apple.com>
1721
1722         Clean up a few #include statements in WTF
1723         <https://webkit.org/b/198351>
1724
1725         Reviewed by Alex Christensen.
1726
1727         * benchmarks/HashSetDFGReplay.cpp:
1728         - Add missing "config.h" include.
1729         * wtf/ParallelJobsGeneric.cpp:
1730         - Replace include of ParallelJobs.h with
1731           ParallelJobsGeneric.h.
1732         * wtf/StackBounds.cpp:
1733         - Fix include ordering of StackBounds.h.
1734
1735 2019-05-29  Keith Rollin  <krollin@apple.com>
1736
1737         Followup to r245267 and r245272: fix even more deprecated uses of -[UIApplication interfaceOrientation]
1738         https://bugs.webkit.org/show_bug.cgi?id=198348
1739         <rdar://problem/51234077>
1740
1741         Reviewed by Wenson Hsieh.
1742
1743         r245267 and r245272 fixed many instances of this issue; this change
1744         fixes the issue for watchOS.
1745
1746         * wtf/FeatureDefines.h:
1747
1748 2019-05-29  David Kilzer  <ddkilzer@apple.com>
1749
1750         IndexedDatabase Server thread in com.apple.WebKit.Networking process leaks objects into an autoreleasePool that's never cleared
1751         <https://webkit.org/b/198346>
1752         <rdar://problem/50895658>
1753
1754         Reviewed by Brent Fulgham.
1755
1756         * wtf/CrossThreadTaskHandler.cpp:
1757         (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
1758         - Add optional second argument to enable use of an
1759           AutodrainedPool when running the runloop.
1760         (WTF::CrossThreadTaskHandler::taskRunLoop):
1761         - Create an AutodrainedPool if requested when
1762           CrossThreadTaskHandler was created.
1763         * wtf/CrossThreadTaskHandler.h:
1764         (WTF::CrossThreadTaskHandler::AutodrainedPoolForRunLoop):
1765         - Add enum class for enabling an AutodrainedPool for
1766           CrossThreadTaskHandler::taskRunLoop().
1767         (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
1768         - Add optional second argument to enable use of an
1769           AutodrainedPool when running the runloop.
1770
1771 2019-05-29  Geoffrey Garen  <ggaren@apple.com>
1772
1773         WeakPtr breaks vtables when upcasting to base classes
1774         https://bugs.webkit.org/show_bug.cgi?id=188799
1775
1776         Reviewed by Youenn Fablet.
1777
1778         This patch switches from reinterpret_cast to static_cast when loading
1779         from WeakReference storage.
1780
1781         We know which type to cast *to* because it's specified by the type of
1782         the calling WeakPtr.
1783
1784         We know which type to cast *from* because it's specified by a typedef
1785         in CanMakeWeakPtr.
1786
1787         (Our convention is that we store a pointer to the class that derives
1788         from CanMakeWeakPtr. We cast from that pointer to derived pointers when
1789         we get(). This means that #include of the derived type header is now
1790         required in order to get() the pointer.)
1791
1792         * wtf/WeakHashSet.h:
1793         (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Definition
1794         is now eagerly required because WeakReference is not a template anymore.
1795
1796         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
1797         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
1798         (WTF::WeakHashSet::remove):
1799         (WTF::WeakHashSet::contains const):
1800         (WTF::WeakHashSet::computesEmpty const):
1801         (WTF::WeakHashSet::hasNullReferences const):
1802         (WTF::WeakHashSet::computeSize const):
1803         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue): Deleted.
1804         Updated for new WeakReference get() API.
1805
1806         * wtf/WeakPtr.h: Use a macro for TestAPI support. We can't use template
1807         specialization because WeakReference is not a class template anymore.
1808         (Or maybe we could have kept it working with a dummy template argument?
1809         Felt weird, so I switched.)
1810
1811         (WTF::WeakReference::create):
1812         (WTF::WeakReference::~WeakReference):
1813         (WTF::WeakReference::get const):
1814         (WTF::WeakReference::operator bool const):
1815         (WTF::WeakReference::WeakReference): WeakReference is just a void* now.
1816         It's the caller's responsibility, when creating and getting, to use
1817         a consistent storage type. We ensure a canonical storage type using a
1818         typedef inside CanMakeWeakPtr.
1819
1820         (WTF::WeakPtr::WeakPtr):
1821         (WTF::WeakPtr::get const):
1822         (WTF::WeakPtr::operator bool const):
1823         (WTF::WeakPtr::operator-> const):
1824         (WTF::WeakPtr::operator* const): Adopted new WeakReference API.
1825
1826         (WTF::WeakPtrFactory::createWeakPtr const): No need for reinterpret_cast.
1827
1828         (WTF::weak_reference_cast): This isn't required for correctness, but it's
1829         nice to show a complier error at WeakPtr construction sites when you know
1830         that the types won't work. Otherwise, you get compiler errors at
1831         dereference sites, which are slightly more mysterious ways of saying that
1832         you constructed your WeakPtr incorrectly.
1833
1834         (WTF::WeakPtr<T>::WeakPtr):
1835         (WTF::=):
1836         (WTF::makeWeakPtr):
1837         (WTF::weak_reference_upcast): Deleted.
1838         (WTF::weak_reference_downcast): Deleted.
1839
1840 2019-05-29  Ryan Haddad  <ryanhaddad@apple.com>
1841
1842         Unreviewed, rolling out r245857.
1843
1844         Breaks internal builds.
1845
1846         Reverted changeset:
1847
1848         "WeakPtr breaks vtables when upcasting to base classes"
1849         https://bugs.webkit.org/show_bug.cgi?id=188799
1850         https://trac.webkit.org/changeset/245857
1851
1852 2019-05-28  Geoffrey Garen  <ggaren@apple.com>
1853
1854         WeakPtr breaks vtables when upcasting to base classes
1855         https://bugs.webkit.org/show_bug.cgi?id=188799
1856
1857         Reviewed by Youenn Fablet.
1858
1859         This patch switches from reinterpret_cast to static_cast when loading
1860         from WeakReference storage.
1861
1862         We know which type to cast *to* because it's specified by the type of
1863         the calling WeakPtr.
1864
1865         We know which type to cast *from* because it's specified by a typedef
1866         in CanMakeWeakPtr.
1867
1868         (Our convention is that we store a pointer to the class that derives
1869         from CanMakeWeakPtr. We cast from that pointer to derived pointers when
1870         we get(). This means that #include of the derived type header is now
1871         required in order to get() the pointer.)
1872
1873         * wtf/WeakHashSet.h:
1874         (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Definition
1875         is now eagerly required because WeakReference is not a template anymore.
1876
1877         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
1878         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
1879         (WTF::WeakHashSet::remove):
1880         (WTF::WeakHashSet::contains const):
1881         (WTF::WeakHashSet::computesEmpty const):
1882         (WTF::WeakHashSet::hasNullReferences const):
1883         (WTF::WeakHashSet::computeSize const):
1884         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue): Deleted.
1885         Updated for new WeakReference get() API.
1886
1887         * wtf/WeakPtr.h: Use a macro for TestAPI support. We can't use template
1888         specialization because WeakReference is not a class template anymore.
1889         (Or maybe we could have kept it working with a dummy template argument?
1890         Felt weird, so I switched.)
1891
1892         (WTF::WeakReference::create):
1893         (WTF::WeakReference::~WeakReference):
1894         (WTF::WeakReference::get const):
1895         (WTF::WeakReference::operator bool const):
1896         (WTF::WeakReference::WeakReference): WeakReference is just a void* now.
1897         It's the caller's responsibility, when creating and getting, to use
1898         a consistent storage type. We ensure a canonical storage type using a
1899         typedef inside CanMakeWeakPtr.
1900
1901         (WTF::WeakPtr::WeakPtr):
1902         (WTF::WeakPtr::get const):
1903         (WTF::WeakPtr::operator bool const):
1904         (WTF::WeakPtr::operator-> const):
1905         (WTF::WeakPtr::operator* const): Adopted new WeakReference API.
1906
1907         (WTF::WeakPtrFactory::createWeakPtr const): No need for reinterpret_cast.
1908
1909         (WTF::weak_reference_cast): This isn't required for correctness, but it's
1910         nice to show a complier error at WeakPtr construction sites when you know
1911         that the types won't work. Otherwise, you get compiler errors at
1912         dereference sites, which are slightly more mysterious ways of saying that
1913         you constructed your WeakPtr incorrectly.
1914
1915         (WTF::WeakPtr<T>::WeakPtr):
1916         (WTF::=):
1917         (WTF::makeWeakPtr):
1918         (WTF::weak_reference_upcast): Deleted.
1919         (WTF::weak_reference_downcast): Deleted.
1920
1921 2019-05-27  Chris Dumez  <cdumez@apple.com>
1922
1923         Use a strongly-typed identifier for pages
1924         https://bugs.webkit.org/show_bug.cgi?id=198206
1925
1926         Reviewed by Youenn Fablet.
1927
1928         * wtf/ObjectIdentifier.h:
1929         (WTF::operator<<):
1930
1931 2019-05-23  Don Olmstead  <don.olmstead@sony.com>
1932
1933         [CMake] Use target oriented design for bmalloc
1934         https://bugs.webkit.org/show_bug.cgi?id=198046
1935
1936         Reviewed by Konstantin Tokarev.
1937
1938         Use WebKit::bmalloc target.
1939
1940         * wtf/CMakeLists.txt:
1941
1942 2019-05-23  Ross Kirsling  <ross.kirsling@sony.com>
1943
1944         [PlayStation] Implement platformUserPreferredLanguages.
1945         https://bugs.webkit.org/show_bug.cgi?id=198149
1946
1947         Reviewed by Fujii Hironori.
1948
1949         * wtf/PlatformPlayStation.cmake:
1950         * wtf/playstation/LanguagePlayStation.cpp: Added.
1951         (WTF::platformUserPreferredLanguages):
1952
1953 2019-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
1954
1955         font-optical-sizing applies the wrong variation value
1956         https://bugs.webkit.org/show_bug.cgi?id=197528
1957         <rdar://problem/50152854>
1958
1959         Reviewed by Antti Koivisto.
1960
1961         * wtf/Platform.h:
1962
1963 2019-05-22  Ryan Haddad  <ryanhaddad@apple.com>
1964
1965         Unreviewed, rolling out r245598.
1966
1967         Breaks watchOS build.
1968
1969         Reverted changeset:
1970
1971         "font-optical-sizing applies the wrong variation value"
1972         https://bugs.webkit.org/show_bug.cgi?id=197528
1973         https://trac.webkit.org/changeset/245598
1974
1975 2019-05-21  Ross Kirsling  <ross.kirsling@sony.com>
1976
1977         [PlayStation] Don't call fcntl.
1978         https://bugs.webkit.org/show_bug.cgi?id=197961
1979
1980         Reviewed by Fujii Hironori.
1981
1982         * wtf/PlatformGTK.cmake:
1983         * wtf/PlatformJSCOnly.cmake:
1984         * wtf/PlatformPlayStation.cmake:
1985         * wtf/PlatformWPE.cmake:
1986         * wtf/UniStdExtras.h:
1987         * wtf/playstation/UniStdExtrasPlayStation.cpp: Added.
1988         (WTF::setCloseOnExec):
1989         (WTF::dupCloseOnExec):
1990         (WTF::setNonBlock):
1991         * wtf/unix/UniStdExtrasUnix.cpp: Renamed from Source/WTF/wtf/UniStdExtras.cpp.
1992         (WTF::setNonBlock):
1993         Move UniStdExtras to unix/, add a PlayStation version that doesn't use fcntl, add an abstraction for O_NONBLOCK.
1994
1995 2019-05-20  Tadeu Zagallo  <tzagallo@apple.com>
1996
1997         Only cache bytecode for API clients in data vaults
1998         https://bugs.webkit.org/show_bug.cgi?id=197898
1999
2000         Reviewed by Keith Miller.
2001
2002         Add SPI to check if a filesystem path is restricted as a data vault.
2003
2004         * WTF.xcodeproj/project.pbxproj:
2005         * wtf/spi/darwin/DataVaultSPI.h: Added.
2006
2007 2019-05-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2008
2009         [GLIB] Repeating timer is not stopped when stop is called from the callback
2010         https://bugs.webkit.org/show_bug.cgi?id=197986
2011
2012         Reviewed by Michael Catanzaro.
2013
2014         In case of repeating timers we always update the ready time to fire interval after the user callback is called.
2015
2016         * wtf/glib/RunLoopGLib.cpp:
2017         (WTF::RunLoop::TimerBase::stop): Reset m_fireInterval and m_isRepeating.
2018
2019 2019-05-19  Darin Adler  <darin@apple.com>
2020
2021         Change String::number to use "shortest" instead of "fixed precision 6 digits"
2022         https://bugs.webkit.org/show_bug.cgi?id=178319
2023
2024         Reviewed by Sam Weinig.
2025
2026         * wtf/text/StringBuilder.h: Delete appendNumber for floating point and
2027         appendECMAScriptNumber for single-precision.
2028
2029         * wtf/text/WTFString.h: Delete String::number for floating point and
2030         numberToStringECMAScript for single-precision.
2031
2032 2019-05-18  Tadeu Zagallo  <tzagallo@apple.com>
2033
2034         Add extra information to dumpJITMemory
2035         https://bugs.webkit.org/show_bug.cgi?id=197998
2036
2037         Reviewed by Saam Barati.
2038
2039         Add a new trace point code for JSC::dumpJITMemory
2040
2041         * wtf/SystemTracing.h:
2042
2043 2019-05-17  Don Olmstead  <don.olmstead@sony.com>
2044
2045         [CMake] Use builtin FindICU
2046         https://bugs.webkit.org/show_bug.cgi?id=197934
2047
2048         Reviewed by Michael Catanzaro.
2049
2050         Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. Use ICU:: targets which end
2051         up propagating to all consumers of WTF.
2052
2053         * wtf/CMakeLists.txt:
2054         * wtf/PlatformPlayStation.cmake:
2055
2056 2019-05-17  Commit Queue  <commit-queue@webkit.org>
2057
2058         Unreviewed, rolling out r245418.
2059         https://bugs.webkit.org/show_bug.cgi?id=197989
2060
2061         New API test causing crashes on Mojave testers (Requested by
2062         ShawnRoberts on #webkit).
2063
2064         Reverted changeset:
2065
2066         "Add a unit test for client certificate authentication"
2067         https://bugs.webkit.org/show_bug.cgi?id=197800
2068         https://trac.webkit.org/changeset/245418
2069
2070 2019-05-16  Keith Miller  <keith_miller@apple.com>
2071
2072         Wasm should cage the memory base pointers in structs
2073         https://bugs.webkit.org/show_bug.cgi?id=197620
2074
2075         Reviewed by Saam Barati.
2076
2077         Rename reauthenticate to recage.
2078
2079         * wtf/CagedPtr.h:
2080         (WTF::CagedPtr::recage):
2081         (WTF::CagedPtr::reauthenticate): Deleted.
2082
2083 2019-05-16  Alex Christensen  <achristensen@webkit.org>
2084
2085         Add a unit test for client certificate authentication
2086         https://bugs.webkit.org/show_bug.cgi?id=197800
2087
2088         Reviewed by Youenn Fablet.
2089
2090         * wtf/spi/cocoa/SecuritySPI.h:
2091         Move declarations from ArgumentCodersCF.cpp so they can be shared.
2092
2093 2019-05-16  Eike Rathke  <erack@redhat.com>
2094
2095         Fix memcpy() call for big endian
2096         https://bugs.webkit.org/show_bug.cgi?id=197945
2097
2098         Reviewed by Michael Catanzaro.
2099
2100         * wtf/Packed.h:
2101         (WTF::alignof):
2102
2103 2019-05-15  Ross Kirsling  <ross.kirsling@sony.com>
2104
2105         [PlayStation] WTFCrash should preserve register state.
2106         https://bugs.webkit.org/show_bug.cgi?id=197932
2107
2108         Reviewed by Don Olmstead.
2109
2110         * wtf/Assertions.cpp:
2111         * wtf/Assertions.h:
2112         Let r196397 apply to PlayStation port as well.
2113
2114 2019-05-15  Simon Fraser  <simon.fraser@apple.com>
2115
2116         Make LOG_WITH_STREAM more efficient
2117         https://bugs.webkit.org/show_bug.cgi?id=197905
2118
2119         Reviewed by Alex Christensen.
2120
2121         Add a streamable repeat() class that can be used to output a series of characters.
2122         This is useful for indenting output.
2123
2124         * wtf/text/TextStream.h:
2125         (WTF::TextStream::repeat::repeat):
2126         (WTF::TextStream::operator<<):
2127
2128 2019-05-15  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
2129
2130         compilation failure with clang 9
2131         https://bugs.webkit.org/show_bug.cgi?id=197911
2132
2133         Reviewed by Alex Christensen.
2134
2135         Use std namespace for nullptr_t in tagArrayPtr templates.
2136
2137         * wtf/PtrTag.h:
2138         (WTF::tagArrayPtr):
2139
2140 2019-05-14  Commit Queue  <commit-queue@webkit.org>
2141
2142         Unreviewed, rolling out r245281.
2143         https://bugs.webkit.org/show_bug.cgi?id=197887
2144
2145         Broke API Test TestWebKitAPI.Challenge.ClientCertificate
2146         (Requested by aakashjain on #webkit).
2147
2148         Reverted changeset:
2149
2150         "Add a unit test for client certificate authentication"
2151         https://bugs.webkit.org/show_bug.cgi?id=197800
2152         https://trac.webkit.org/changeset/245281
2153
2154 2019-05-14  Alex Christensen  <achristensen@webkit.org>
2155
2156         Add a unit test for client certificate authentication
2157         https://bugs.webkit.org/show_bug.cgi?id=197800
2158
2159         Reviewed by Youenn Fablet.
2160
2161         * wtf/spi/cocoa/SecuritySPI.h:
2162         Move declarations from ArgumentCodersCF.cpp so they can be shared.
2163
2164 2019-05-13  Robin Morisset  <rmorisset@apple.com>
2165
2166         IndexSet::isEmpty should use BitVector::isEmpty() instead of size()
2167         https://bugs.webkit.org/show_bug.cgi?id=197857
2168
2169         Reviewed by Darin Adler.
2170
2171         * wtf/IndexSet.h:
2172         (WTF::IndexSet::isEmpty const):
2173
2174 2019-05-13  Youenn Fablet  <youenn@apple.com>
2175
2176         [Mac] Use realpath for dlopen_preflight
2177         https://bugs.webkit.org/show_bug.cgi?id=197803
2178
2179         Reviewed by Eric Carlson.
2180
2181         * wtf/cocoa/SoftLinking.h:
2182
2183 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
2184
2185         Unreviewed, wrokaround for MACH_VM_MAX_ADDRESS in ARM32_64
2186         https://bugs.webkit.org/show_bug.cgi?id=197730
2187
2188         Interestingly, MACH_VM_MAX_ADDRESS is larger than 32bit in ARM32_64, I think this is a bug.
2189         But for now, we workaround for this case by using `CPU(ADDRESS64)`.
2190
2191         * wtf/WTFAssertions.cpp:
2192
2193 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
2194
2195         [WTF] Remove Threading workaround for support libraries in Windows
2196         https://bugs.webkit.org/show_bug.cgi?id=197350
2197
2198         Reviewed by Darin Adler.
2199
2200         We kept old APIs for some support libraries at 2017. This patch removes them.
2201
2202         * wtf/Threading.h:
2203         * wtf/win/ThreadingWin.cpp:
2204         (WTF::createThread): Deleted.
2205         (WTF::waitForThreadCompletion): Deleted.
2206
2207 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
2208
2209         [WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread
2210         https://bugs.webkit.org/show_bug.cgi?id=197146
2211
2212         Reviewed by Saam Barati.
2213
2214         Since GCThread and CompilationThread flags exist in WTF, we put these flags into WTF::Thread directly instead of holding them in ThreadSpecific<>.
2215         And this patch removes dependency from Threading.h to ThreadSpecific.h. ThreadSpecific.h's OS threading primitives are moved to ThreadingPrimitives.h,
2216         and Threading.h relies on it instead.
2217
2218         * wtf/CompilationThread.cpp:
2219         (WTF::isCompilationThread):
2220         (WTF::initializeCompilationThreads): Deleted.
2221         (WTF::exchangeIsCompilationThread): Deleted.
2222         * wtf/CompilationThread.h:
2223         (WTF::CompilationScope::CompilationScope):
2224         (WTF::CompilationScope::~CompilationScope):
2225         (WTF::CompilationScope::leaveEarly):
2226         * wtf/MainThread.cpp:
2227         (WTF::initializeMainThread):
2228         (WTF::initializeMainThreadToProcessMainThread):
2229         (WTF::isMainThreadOrGCThread):
2230         (WTF::initializeGCThreads): Deleted.
2231         (WTF::registerGCThread): Deleted.
2232         (WTF::mayBeGCThread): Deleted.
2233         * wtf/MainThread.h:
2234         * wtf/ThreadSpecific.h:
2235         (WTF::canBeGCThread>::ThreadSpecific):
2236         (WTF::canBeGCThread>::set):
2237         (WTF::threadSpecificKeyCreate): Deleted.
2238         (WTF::threadSpecificKeyDelete): Deleted.
2239         (WTF::threadSpecificSet): Deleted.
2240         (WTF::threadSpecificGet): Deleted.
2241         * wtf/Threading.cpp:
2242         (WTF::Thread::exchangeIsCompilationThread):
2243         (WTF::Thread::registerGCThread):
2244         (WTF::Thread::mayBeGCThread):
2245         * wtf/Threading.h:
2246         (WTF::Thread::isCompilationThread const):
2247         (WTF::Thread::gcThreadType const):
2248         (WTF::Thread::joinableState const):
2249         (WTF::Thread::hasExited const):
2250         (WTF::Thread::Thread):
2251         (WTF::Thread::joinableState): Deleted.
2252         (WTF::Thread::hasExited): Deleted.
2253         * wtf/ThreadingPrimitives.h:
2254         (WTF::threadSpecificKeyCreate):
2255         (WTF::threadSpecificKeyDelete):
2256         (WTF::threadSpecificSet):
2257         (WTF::threadSpecificGet):
2258         * wtf/win/ThreadSpecificWin.cpp:
2259         (WTF::flsKeys):
2260
2261 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
2262
2263         Unreviewed, follow-up after r245214
2264         https://bugs.webkit.org/show_bug.cgi?id=197730
2265
2266         Suggested by Sam. We should have static_assert with MACH_VM_MAX_ADDRESS.
2267
2268         * wtf/WTFAssertions.cpp:
2269
2270 2019-05-13  Youenn Fablet  <youenn@apple.com>
2271
2272         Use kDNSServiceFlagsKnownUnique for DNSServiceRegisterRecord only on platforms supporting it
2273         https://bugs.webkit.org/show_bug.cgi?id=197802
2274
2275         Reviewed by Eric Carlson.
2276
2277         * wtf/Platform.h:
2278
2279 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
2280
2281         [JSC] Compress miscelaneous JIT related data structures with Packed<>
2282         https://bugs.webkit.org/show_bug.cgi?id=197830
2283
2284         Reviewed by Saam Barati.
2285
2286         * wtf/Packed.h:
2287         (WTF::alignof):
2288
2289 2019-05-13  Michael Catanzaro  <mcatanzaro@igalia.com>
2290
2291         Unreviewed, fix unused variable warnings in release builds
2292
2293         * wtf/URLHelpers.cpp:
2294         (WTF::URLHelpers::escapeUnsafeCharacters):
2295
2296 2019-05-12  Yusuke Suzuki  <ysuzuki@apple.com>
2297
2298         [JSC] Compress Watchpoint size by using enum type and Packed<> data structure
2299         https://bugs.webkit.org/show_bug.cgi?id=197730
2300
2301         Reviewed by Filip Pizlo.
2302
2303         This patch introduces a new data structures, WTF::Packed, WTF::PackedPtr, and WTF::PackedAlignedPtr.
2304
2305         - WTF::Packed
2306
2307             WTF::Packed is data storage. We can read and write trivial (in C++ term [1]) data to this storage. The difference to
2308             the usual storage is that the alignment of this storage is always 1. We access the underlying data by using unalignedLoad/unalignedStore.
2309             This class offers alignment = 1 data structure instead of missing the following characteristics.
2310
2311                 1. Load / Store are non atomic even if the data size is within a pointer width. We should not use this for a member which can be accessed
2312                    in a racy way. (e.g. fields accessed optimistically from the concurrent compilers).
2313
2314                 2. We cannot take reference / pointer to the underlying storage since they are unaligned.
2315
2316                 3. Access to this storage is unaligned access. The code is using memcpy, and the compiler will convert to an appropriate unaligned access
2317                    in certain architectures (x86_64 / ARM64). It could be slow. So use it for non performance sensitive & memory sensitive places.
2318
2319         - WTF::PackedPtr
2320
2321             WTF::PackedPtr is a specialization of WTF::Packed<T*>. And it is basically WTF::PackedAlignedPtr with alignment = 1. We further compact
2322             the pointer by leveraging the platform specific knowledge. In 64bit architectures, the effective width of pointers are less than 64 bit.
2323             In x86_64, it is 48 bits. And Darwin ARM64 is further smaller, 36 bits. This information allows us to compact the pointer to 6 bytes in
2324             x86_64 and 5 bytes in Darwin ARM64.
2325
2326         - WTF::PackedAlignedPtr
2327
2328             WTF::PackedAlignedPtr is the WTF::PackedPtr with alignment information of the T. If we use this alignment information, we could reduce the
2329             size of packed pointer further in some cases. For example, since we guarantee that JSCells are 16 byte aligned, low 4 bits are empty. Leveraging
2330             this information in Darwin ARM64 platform allows us to make packed JSCell pointer 4 bytes (36 - 4 bits). We do not use passed alignment
2331             information if it is not profitable.
2332
2333         We also have PackedPtrTraits. This is new PtrTraits and use it for various data structures such as Bag<>.
2334
2335         [1]: https://en.cppreference.com/w/cpp/types/is_trivial
2336
2337         * WTF.xcodeproj/project.pbxproj:
2338         * wtf/Bag.h:
2339         (WTF::Bag::clear):
2340         (WTF::Bag::iterator::operator++):
2341         * wtf/CMakeLists.txt:
2342         * wtf/DumbPtrTraits.h:
2343         * wtf/DumbValueTraits.h:
2344         * wtf/MathExtras.h:
2345         (WTF::clzConstexpr):
2346         (WTF::clz):
2347         (WTF::ctzConstexpr):
2348         (WTF::ctz):
2349         (WTF::getLSBSetConstexpr):
2350         (WTF::getMSBSetConstexpr):
2351         * wtf/Packed.h: Added.
2352         (WTF::Packed::Packed):
2353         (WTF::Packed::get const):
2354         (WTF::Packed::set):
2355         (WTF::Packed::operator=):
2356         (WTF::Packed::exchange):
2357         (WTF::Packed::swap):
2358         (WTF::alignof):
2359         (WTF::PackedPtrTraits::exchange):
2360         (WTF::PackedPtrTraits::swap):
2361         (WTF::PackedPtrTraits::unwrap):
2362         * wtf/Platform.h:
2363         * wtf/SentinelLinkedList.h:
2364         (WTF::BasicRawSentinelNode::BasicRawSentinelNode):
2365         (WTF::BasicRawSentinelNode::prev):
2366         (WTF::BasicRawSentinelNode::next):
2367         (WTF::PtrTraits>::remove):
2368         (WTF::PtrTraits>::prepend):
2369         (WTF::PtrTraits>::append):
2370         (WTF::RawNode>::SentinelLinkedList):
2371         (WTF::RawNode>::remove):
2372         (WTF::BasicRawSentinelNode<T>::remove): Deleted.
2373         (WTF::BasicRawSentinelNode<T>::prepend): Deleted.
2374         (WTF::BasicRawSentinelNode<T>::append): Deleted.
2375         * wtf/StdLibExtras.h:
2376         (WTF::roundUpToMultipleOfImpl):
2377         (WTF::roundUpToMultipleOfImpl0): Deleted.
2378         * wtf/UnalignedAccess.h:
2379         (WTF::unalignedLoad):
2380         (WTF::unalignedStore):
2381
2382 2019-05-10  Saam barati  <sbarati@apple.com>
2383
2384         Bag's move operator= leaks memory
2385         https://bugs.webkit.org/show_bug.cgi?id=197757
2386
2387         Reviewed by Keith Miller.
2388
2389         It was unused. So I'm just removing it. We can implement it properly
2390         if we ever need it.
2391
2392         * wtf/Bag.h:
2393         (WTF::Bag::operator=): Deleted.
2394
2395 2019-05-10  Fujii Hironori  <Hironori.Fujii@sony.com>
2396
2397         [WinCairo] storage/indexeddb tests are timing out
2398         https://bugs.webkit.org/show_bug.cgi?id=196289
2399
2400         Reviewed by Alex Christensen.
2401
2402         * wtf/FileSystem.h: Added hardLink.
2403         * wtf/glib/FileSystemGlib.cpp:
2404         (WTF::FileSystemImpl::hardLink):
2405         (WTF::FileSystemImpl::hardLinkOrCopyFile):
2406         * wtf/posix/FileSystemPOSIX.cpp:
2407         (WTF::FileSystemImpl::hardLink):
2408         (WTF::FileSystemImpl::hardLinkOrCopyFile):
2409         * wtf/win/FileSystemWin.cpp:
2410         (WTF::FileSystemImpl::hardLink):
2411         (WTF::FileSystemImpl::hardLinkOrCopyFile):
2412         Added hardLink. Let hardLinkOrCopyFile use the hardLink.
2413
2414 2019-05-10  Yusuke Suzuki  <ysuzuki@apple.com>
2415
2416         [WTF] Remove "private:" from Noncopyable and Nonmovable macros
2417         https://bugs.webkit.org/show_bug.cgi?id=197767
2418
2419         Reviewed by Saam Barati.
2420
2421         We no longer need "private:".
2422
2423         * wtf/Noncopyable.h:
2424         * wtf/Nonmovable.h:
2425
2426 2019-05-08  Zan Dobersek  <zdobersek@igalia.com>
2427
2428         [GLib] Rework WPE RunLoopSourcePriority values
2429         https://bugs.webkit.org/show_bug.cgi?id=197167
2430
2431         Reviewed by Carlos Garcia Campos.
2432
2433         The GLib priorities for the WPE port were initially aligned on the -70
2434         value, theory being that this would help avoid any default-priority
2435         GSources spawned in different dependency libraries affecting our
2436         scheduling. Today it seems that extra caution might not be really
2437         necessary.
2438
2439         This change aligns the base priority value with GLib's default priority
2440         value of 0. We maintain the relativity of priority values by effectively
2441         increasing each priority by 70.
2442
2443         * wtf/glib/RunLoopSourcePriority.h:
2444
2445 2019-05-08  Alex Christensen  <achristensen@webkit.org>
2446
2447         Add SPI to set HSTS storage directory
2448         https://bugs.webkit.org/show_bug.cgi?id=197259
2449
2450         Reviewed by Brady Eidson.
2451
2452         * wtf/Platform.h:
2453
2454 2019-05-08  Keith Miller  <keith_miller@apple.com>
2455
2456         Remove Gigacage from arm64 and use PAC for arm64e instead
2457         https://bugs.webkit.org/show_bug.cgi?id=197110
2458
2459         Reviewed by Saam Barati.
2460
2461         This patch changes the Gigacage to use PAC on arm64e. As part of
2462         this process all platforms must provide their length when
2463         materializing the caged pointer. Since it would be somewhat
2464         confusing to have two parameters for an operator [] those methods
2465         have been removed. Lastly, this patch removes the specializations
2466         for void* caged pointers, instead opting to use enable_if on the
2467         methods that would normally fail on void* e.g. anything that
2468         returns a T&.
2469
2470         * WTF.xcodeproj/project.pbxproj:
2471         * wtf/CMakeLists.txt:
2472         * wtf/CagedPtr.h:
2473         (WTF::CagedPtr::CagedPtr):
2474         (WTF::CagedPtr::get const):
2475         (WTF::CagedPtr::getMayBeNull const):
2476         (WTF::CagedPtr::getUnsafe const):
2477         (WTF::CagedPtr::at const):
2478         (WTF::CagedPtr::reauthenticate):
2479         (WTF::CagedPtr::operator=):
2480         (WTF::CagedPtr::operator== const):
2481         (WTF::CagedPtr::operator bool const):
2482         (WTF::CagedPtr::operator* const): Deleted.
2483         (WTF::CagedPtr::operator-> const): Deleted.
2484         (WTF::CagedPtr::operator[] const): Deleted.
2485         (): Deleted.
2486         * wtf/CagedUniquePtr.h:
2487         (WTF::CagedUniquePtr::CagedUniquePtr):
2488         (WTF::CagedUniquePtr::create):
2489         (WTF::CagedUniquePtr::~CagedUniquePtr):
2490         (WTF::CagedUniquePtr::destroy):
2491         (): Deleted.
2492         * wtf/Gigacage.h:
2493         (Gigacage::cagedMayBeNull):
2494         * wtf/PtrTag.h:
2495         (WTF::tagArrayPtr):
2496         (WTF::untagArrayPtr):
2497         (WTF::removeArrayPtrTag):
2498         (WTF::retagArrayPtr):
2499         * wtf/TaggedArrayStoragePtr.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferView.cpp.
2500         (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr):
2501         (WTF::TaggedArrayStoragePtr::get const):
2502         (WTF::TaggedArrayStoragePtr::getUnsafe const):
2503         (WTF::TaggedArrayStoragePtr::resize):
2504         (WTF::TaggedArrayStoragePtr::operator bool const):
2505
2506 2019-05-08  Robin Morisset  <rmorisset@apple.com>
2507
2508         WTF::TimingScope should show the total duration and not just the mean
2509         https://bugs.webkit.org/show_bug.cgi?id=197672
2510
2511         Reviewed by Alex Christensen.
2512
2513         * wtf/TimingScope.cpp:
2514         (WTF::TimingScope::scopeDidEnd):
2515
2516 2019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
2517
2518         [JSC] LLIntPrototypeLoadAdaptiveStructureWatchpoint does not require Bag<>
2519         https://bugs.webkit.org/show_bug.cgi?id=197645
2520
2521         Reviewed by Saam Barati.
2522
2523         * WTF.xcodeproj/project.pbxproj:
2524         * wtf/CMakeLists.txt:
2525         * wtf/Nonmovable.h: Copied from Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h.
2526         * wtf/Vector.h:
2527         (WTF::minCapacity>::uncheckedConstructAndAppend):
2528
2529 2019-05-07  Eric Carlson  <eric.carlson@apple.com>
2530
2531         Define media buffering policy
2532         https://bugs.webkit.org/show_bug.cgi?id=196979
2533         <rdar://problem/28383861>
2534
2535         Reviewed by Jer Noble.
2536
2537         * wtf/Platform.h:
2538
2539 2019-05-07  Robin Morisset  <rmorisset@apple.com>
2540
2541         WTF::BitVector should have an isEmpty() method
2542         https://bugs.webkit.org/show_bug.cgi?id=197637
2543
2544         Reviewed by Keith Miller.
2545
2546         * wtf/BitVector.cpp:
2547         (WTF::BitVector::isEmptySlow const):
2548         * wtf/BitVector.h:
2549         (WTF::BitVector::isEmpty const):
2550
2551 2019-05-07  Brent Fulgham  <bfulgham@apple.com>
2552
2553         Correct JSON parser to address unterminated escape character
2554         https://bugs.webkit.org/show_bug.cgi?id=197582
2555         <rdar://problem/50459177>
2556
2557         Reviewed by Alex Christensen.
2558
2559         Correct JSON parser code to properly deal with unterminated escape
2560         characters.
2561
2562         * wtf/JSONValues.cpp:
2563         (WTF::JSONImpl::decodeString):
2564         (WTF::JSONImpl::parseStringToken):
2565
2566 2019-05-07  Alex Christensen  <achristensen@webkit.org>
2567
2568         Add a release assertion that Functions can only be constructed from non-null CompletionHandlers
2569         https://bugs.webkit.org/show_bug.cgi?id=197641
2570
2571         Reviewed by Chris Dumez.
2572
2573         This will help us find the cause of rdar://problem/48679972 by seeing the crash when the Function is dispatched,
2574         not when it's called with no interesting stack trace.  I manually verified this assertion is hit in such a case.
2575         We should also have no legitimate use of creating a Function out of a null CompletionHandler then never calling it.
2576
2577         * wtf/CompletionHandler.h:
2578         (WTF::Detail::CallableWrapper<CompletionHandler<Out):
2579         * wtf/Function.h:
2580         (WTF::Detail::CallableWrapperBase::~CallableWrapperBase):
2581         (WTF::Detail::CallableWrapper::CallableWrapper):
2582         (WTF::Function<Out):
2583
2584 2019-05-06  Christopher Reid  <chris.reid@sony.com>
2585
2586         [JSC] Respect already defined USE_LLINT_EMBEDDED_OPCODE_ID compiler variable.
2587         https://bugs.webkit.org/show_bug.cgi?id=197633
2588
2589         Reviewed by Don Olmstead.
2590
2591         When the variable `USE_LLINT_EMBEDDED_OPCODE_ID` is defined, stop defining
2592         its value with platform default one.
2593
2594         * wtf/Platform.h:
2595
2596 2019-05-03  Sihui Liu  <sihui_liu@apple.com>
2597
2598         Add assertion to check whether shm files have maximum FileProtection of CompleteUnlessOpen
2599         https://bugs.webkit.org/show_bug.cgi?id=197390
2600         <rdar://problem/42685773>
2601
2602         Reviewed by Geoffrey Garen.
2603
2604         * wtf/FileSystem.cpp:
2605         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
2606         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
2607         * wtf/FileSystem.h:
2608         * wtf/cocoa/FileSystemCocoa.mm:
2609         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
2610         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
2611
2612 2019-05-03  Commit Queue  <commit-queue@webkit.org>
2613
2614         Unreviewed, rolling out r244881.
2615         https://bugs.webkit.org/show_bug.cgi?id=197559
2616
2617         Breaks compilation of jsconly on linux, breaking compilation
2618         for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
2619         guijemont on #webkit).
2620
2621         Reverted changeset:
2622
2623         "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
2624         WEBKIT_COPY_FILES"
2625         https://bugs.webkit.org/show_bug.cgi?id=197174
2626         https://trac.webkit.org/changeset/244881
2627
2628 2019-05-02  Alex Christensen  <achristensen@webkit.org>
2629
2630         Mark U+01C0 as a homograph of U+006C
2631         https://bugs.webkit.org/show_bug.cgi?id=197526
2632         <rdar://problem/50301904>
2633
2634         Reviewed by Tim Horton.
2635
2636         * wtf/URLHelpers.cpp:
2637         (WTF::URLHelpers::isLookalikeCharacter):
2638
2639 2019-05-02  Don Olmstead  <don.olmstead@sony.com>
2640
2641         [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
2642         https://bugs.webkit.org/show_bug.cgi?id=197174
2643
2644         Reviewed by Alex Christensen.
2645
2646         Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES.
2647
2648         * wtf/CMakeLists.txt:
2649
2650 2019-05-01  Darin Adler  <darin@apple.com>
2651
2652         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
2653         https://bugs.webkit.org/show_bug.cgi?id=195535
2654
2655         Reviewed by Alexey Proskuryakov.
2656
2657         * wtf/text/AtomicString.cpp:
2658         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
2659         end is nullptr; this behavior used to be implemented inside the
2660         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
2661
2662         * wtf/text/AtomicStringImpl.cpp:
2663         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
2664         convertUTF8ToUTF16.
2665
2666         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
2667         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
2668         the AtomicString class and its behavior changed subtly in this patch; it's helpful
2669         to document that it's not exported.
2670
2671         * wtf/text/StringImpl.cpp:
2672         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
2673         since strict is the default. Also updated for changes to ConversionResult.
2674         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
2675         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
2676
2677         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
2678
2679         * wtf/text/WTFString.cpp:
2680         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
2681
2682         * wtf/unicode/UTF8Conversion.cpp:
2683         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
2684         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
2685         (WTF::Unicode::UTF8SequenceLength): Deleted.
2686         (WTF::Unicode::decodeUTF8Sequence): Deleted.
2687         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
2688         almost everything in the function. Also changed resturn value to be a boolean
2689         to indicate success since there is only one possible failure (target exhausted).
2690         There is room for further simplification, since most callers have lengths rather
2691         than end pointers for the source buffer, and all but one caller supplies a buffer
2692         size known to be sufficient, so those don't need a return value, nor do they need
2693         to pass an end of buffer pointer.
2694         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
2695         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
2696         for non-strict mode so that unpaired surrogates will be turned into the
2697         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
2698         won't create an invalid UTF-8 sequence, and because we don't need to do that
2699         for any good reason at any call site.
2700         (WTF::Unicode::isLegalUTF8): Deleted.
2701         (WTF::Unicode::readUTF8Sequence): Deleted.
2702         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
2703         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
2704         U16_APPEND instead of lots of code that does the same thing. There is
2705         room for further simplification since most callers don't need the "all ASCII"
2706         feature and could probably pass the arguments in a more natural way.
2707         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
2708         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
2709         error handling checks for things that are handled by U8_NEXT. Also removed
2710         support for passing nullptr for end to specify a null-terminated string.
2711         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
2712
2713         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
2714         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
2715         style, with an eye toward perhaps removing it in the future. Changed
2716         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
2717         argument since no caller was passing false. Changed the convertLatin1ToUTF8
2718         return value to a boolean. Tweaked comments.
2719
2720 2019-05-01  Shawn Roberts  <sroberts@apple.com>
2721
2722         Unreviewed, rolling out r244821.
2723
2724         Causing
2725
2726         Reverted changeset:
2727
2728         "WebKit has too much of its own UTF-8 code and should rely
2729         more on ICU's UTF-8 support"
2730         https://bugs.webkit.org/show_bug.cgi?id=195535
2731         https://trac.webkit.org/changeset/244821
2732
2733 2019-05-01  Shawn Roberts  <sroberts@apple.com>
2734
2735         Unreviewed, rolling out r244822.
2736
2737         Causing 4 Test262 failures on JSC Release and Debug
2738
2739         Reverted changeset:
2740
2741         https://trac.webkit.org/changeset/244822 https://trac.webkit.org/changeset/244821
2742
2743 2019-04-29  Darin Adler  <darin@apple.com>
2744
2745         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
2746         https://bugs.webkit.org/show_bug.cgi?id=195535
2747
2748         Reviewed by Alexey Proskuryakov.
2749
2750         * wtf/text/AtomicString.cpp:
2751         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
2752         end is nullptr; this behavior used to be implemented inside the
2753         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
2754
2755         * wtf/text/AtomicStringImpl.cpp:
2756         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
2757         convertUTF8ToUTF16.
2758
2759         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
2760         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
2761         the AtomicString class and its behavior changed subtly in this patch; it's helpful
2762         to document that it's not exported.
2763
2764         * wtf/text/StringImpl.cpp:
2765         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
2766         since strict is the default. Also updated for changes to ConversionResult.
2767         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
2768         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
2769
2770         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
2771
2772         * wtf/text/WTFString.cpp:
2773         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
2774
2775         * wtf/unicode/UTF8Conversion.cpp:
2776         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
2777         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
2778         (WTF::Unicode::UTF8SequenceLength): Deleted.
2779         (WTF::Unicode::decodeUTF8Sequence): Deleted.
2780         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
2781         almost everything in the function. Also changed resturn value to be a boolean
2782         to indicate success since there is only one possible failure (target exhausted).
2783         There is room for further simplification, since most callers have lengths rather
2784         than end pointers for the source buffer, and all but one caller supplies a buffer
2785         size known to be sufficient, so those don't need a return value, nor do they need
2786         to pass an end of buffer pointer.
2787         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
2788         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
2789         for non-strict mode so that unpaired surrogates will be turned into the
2790         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
2791         won't create an invalid UTF-8 sequence, and because we don't need to do that
2792         for any good reason at any call site.
2793         (WTF::Unicode::isLegalUTF8): Deleted.
2794         (WTF::Unicode::readUTF8Sequence): Deleted.
2795         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
2796         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
2797         U16_APPEND instead of lots of code that does the same thing. There is
2798         room for further simplification since most callers don't need the "all ASCII"
2799         feature and could probably pass the arguments in a more natural way.
2800         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
2801         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
2802         error handling checks for things that are handled by U8_NEXT. Also removed
2803         support for passing nullptr for end to specify a null-terminated string.
2804         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
2805
2806         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
2807         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
2808         style, with an eye toward perhaps removing it in the future. Changed
2809         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
2810         argument since no caller was passing false. Changed the convertLatin1ToUTF8
2811         return value to a boolean. Tweaked comments.
2812
2813 2019-04-30  John Wilander  <wilander@apple.com>
2814
2815         Add logging of Ad Click Attribution errors and events to a dedicated channel
2816         https://bugs.webkit.org/show_bug.cgi?id=197332
2817         <rdar://problem/49918800>
2818
2819         Reviewed by Youenn Fablet.
2820
2821         Added missing RELEASE_LOG_INFO and RELEASE_LOG_INFO_IF dummies
2822         for RELEASE_LOG_DISABLED.
2823
2824         * wtf/Assertions.h:
2825
2826 2019-04-30  Youenn Fablet  <youenn@apple.com>
2827
2828         Make Document audio producers use WeakPtr
2829         https://bugs.webkit.org/show_bug.cgi?id=197382
2830
2831         Reviewed by Eric Carlson.
2832
2833         * wtf/WeakHashSet.h:
2834         (WTF::WeakHashSet::hasNullReferences const):
2835
2836 2019-04-30  Commit Queue  <commit-queue@webkit.org>
2837
2838         Unreviewed, rolling out r244773.
2839         https://bugs.webkit.org/show_bug.cgi?id=197436
2840
2841         Causing assertion failures on debug queues (Requested by
2842         ShawnRoberts on #webkit).
2843
2844         Reverted changeset:
2845
2846         "Make Document audio producers use WeakPtr"
2847         https://bugs.webkit.org/show_bug.cgi?id=197382
2848         https://trac.webkit.org/changeset/244773
2849
2850 2019-04-30  Youenn Fablet  <youenn@apple.com>
2851
2852         Make Document audio producers use WeakPtr
2853         https://bugs.webkit.org/show_bug.cgi?id=197382
2854
2855         Reviewed by Eric Carlson.
2856
2857         * wtf/WeakHashSet.h:
2858         (WTF::WeakHashSet::hasNullReferences const):
2859
2860 2019-04-29  Alex Christensen  <achristensen@webkit.org>
2861
2862         <rdar://problem/50299396> Fix internal High Sierra build
2863         https://bugs.webkit.org/show_bug.cgi?id=197388
2864
2865         * Configurations/Base.xcconfig:
2866
2867 2019-04-29  Yusuke Suzuki  <ysuzuki@apple.com>
2868
2869         JITStubRoutineSet wastes 180KB of HashTable capacity on can.com
2870         https://bugs.webkit.org/show_bug.cgi?id=186732
2871
2872         Reviewed by Saam Barati.
2873
2874         * wtf/Range.h:
2875         (WTF::Range::contains const):
2876
2877 2019-04-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>
2878
2879         [Win] Add flag to enable version information stamping and disable by default.
2880         https://bugs.webkit.org/show_bug.cgi?id=197249
2881         <rdar://problem/50224412>
2882
2883         Reviewed by Ross Kirsling.
2884
2885         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
2886         Then enable it by default on AppleWin.
2887
2888         * wtf/CMakeLists.txt:
2889
2890 2019-04-26  Don Olmstead  <don.olmstead@sony.com>
2891
2892         Add WTF::findIgnoringASCIICaseWithoutLength to replace strcasestr
2893         https://bugs.webkit.org/show_bug.cgi?id=197291
2894
2895         Reviewed by Konstantin Tokarev.
2896
2897         Adds an implementation of strcasestr within WTF.
2898
2899         * wtf/text/StringCommon.h:
2900         (WTF::findIgnoringASCIICaseWithoutLength):
2901
2902 2019-04-26  Sihui Liu  <sihui_liu@apple.com>
2903
2904         Stop IDB transactions to release locked database files when network process is ready to suspend
2905         https://bugs.webkit.org/show_bug.cgi?id=196372
2906         <rdar://problem/48930116>
2907
2908         Reviewed by Brady Eidson.
2909
2910         Provide a method to suspend the thread and block main thread until the thread is suspended.
2911
2912         * wtf/CrossThreadTaskHandler.cpp:
2913         (WTF::CrossThreadTaskHandler::taskRunLoop):
2914         (WTF::CrossThreadTaskHandler::suspendAndWait):
2915         (WTF::CrossThreadTaskHandler::resume):
2916         * wtf/CrossThreadTaskHandler.h:
2917
2918 2019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>
2919
2920         Unreviewed, rolling out r244669.
2921
2922         Windows ports can't clean build.
2923
2924         Reverted changeset:
2925
2926         "[Win] Add flag to enable version information stamping and
2927         disable by default."
2928         https://bugs.webkit.org/show_bug.cgi?id=197249
2929         https://trac.webkit.org/changeset/244669
2930
2931 2019-04-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>
2932
2933         [Win] Add flag to enable version information stamping and disable by default.
2934         https://bugs.webkit.org/show_bug.cgi?id=197249
2935
2936         Reviewed by Ross Kirsling.
2937
2938         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
2939         Then enable it by default on AppleWin.
2940
2941         * wtf/CMakeLists.txt:
2942
2943 2019-04-25  Timothy Hatcher  <timothy@apple.com>
2944
2945         Disable date and time inputs on iOSMac.
2946         https://bugs.webkit.org/show_bug.cgi?id=197287
2947         rdar://problem/46794376
2948
2949         Reviewed by Wenson Hsieh.
2950
2951         * wtf/FeatureDefines.h:
2952
2953 2019-04-25  Alex Christensen  <achristensen@webkit.org>
2954
2955         Fix High Sierra build after r244653
2956         https://bugs.webkit.org/show_bug.cgi?id=197131
2957
2958         * wtf/StdLibExtras.h:
2959         High Sierra thinks __cplusplus is 201406 even when using C++17.
2960         Removing the __cplusplus check resolves the build failure on High Sierra.
2961         We can clean up StdLibExtras more later.
2962
2963 2019-04-25  Alex Christensen  <achristensen@webkit.org>
2964
2965         Start using C++17
2966         https://bugs.webkit.org/show_bug.cgi?id=197131
2967
2968         Reviewed by Darin Adler.
2969
2970         * Configurations/Base.xcconfig:
2971         * wtf/CMakeLists.txt:
2972         * wtf/Variant.h:
2973         (WTF::switchOn):
2974
2975 2019-04-25  Alex Christensen  <achristensen@webkit.org>
2976
2977         Remove DeprecatedOptional
2978         https://bugs.webkit.org/show_bug.cgi?id=197161
2979
2980         Reviewed by Darin Adler.
2981
2982         * WTF.xcodeproj/project.pbxproj:
2983         * wtf/CMakeLists.txt:
2984         * wtf/DeprecatedOptional.h: Removed.
2985
2986 2019-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
2987
2988         [GTK] Hardcoded text color in input fields
2989         https://bugs.webkit.org/show_bug.cgi?id=126907
2990
2991         Reviewed by Michael Catanzaro.
2992
2993         Define HAVE_OS_DARK_MODE_SUPPORT for GTK port.
2994
2995         * wtf/Platform.h:
2996
2997 2019-04-24  Tim Horton  <timothy_horton@apple.com>
2998
2999         Clean up WKActionSheetAssistant's use of LaunchServices
3000         https://bugs.webkit.org/show_bug.cgi?id=194645
3001         <rdar://problem/47707952>
3002
3003         Reviewed by Andy Estes.
3004
3005         * wtf/Platform.h:
3006
3007 2019-04-24  chris fleizach  <cfleizach@apple.com>
3008
3009         AX: Remove deprecated Accessibility Object Model events
3010         https://bugs.webkit.org/show_bug.cgi?id=197073
3011         <rdar://problem/50027819>
3012
3013         Reviewed by Ryosuke Niwa.
3014
3015         * wtf/Platform.h:
3016
3017 2019-04-23  Commit Queue  <commit-queue@webkit.org>
3018
3019         Unreviewed, rolling out r244558.
3020         https://bugs.webkit.org/show_bug.cgi?id=197219
3021
3022         Causing crashes on iOS Sim Release and Debug (Requested by
3023         ShawnRoberts on #webkit).
3024
3025         Reverted changeset:
3026
3027         "Remove DeprecatedOptional"
3028         https://bugs.webkit.org/show_bug.cgi?id=197161
3029         https://trac.webkit.org/changeset/244558
3030
3031 2019-04-23  Alex Christensen  <achristensen@webkit.org>
3032
3033         Remove DeprecatedOptional
3034         https://bugs.webkit.org/show_bug.cgi?id=197161
3035
3036         Reviewed by Darin Adler.
3037
3038         This was added in r209326 to be compatible with a shipping version of Safari.
3039         We have released several versions of Safari since then, so do what the comments say and remove it.
3040         The existence of this std::optional makes migrating to C++17 harder, and there's no reason to keep it.
3041
3042         * WTF.xcodeproj/project.pbxproj:
3043         * wtf/CMakeLists.txt:
3044         * wtf/DeprecatedOptional.h: Removed.
3045
3046 2019-04-21  Zan Dobersek  <zdobersek@igalia.com>
3047
3048         [WTF] Generic memoryFootprint() implementation should use bmalloc on Linux
3049         https://bugs.webkit.org/show_bug.cgi?id=196963
3050
3051         Reviewed by Don Olmstead.
3052
3053         Have the generic memoryFootprint() implementation use bmalloc's
3054         memoryFootprint() API on Linux, whenever the system malloc option is
3055         not enabled. Limitation to Linux platforms is due to the bmalloc
3056         implementation being limited to those configurations (excluding iOS
3057         which doesn't use MemoryFootprintGeneric.cpp).
3058
3059         * wtf/PlatformWPE.cmake: Switch to building MemoryFootprintGeneric.cpp.
3060         * wtf/generic/MemoryFootprintGeneric.cpp:
3061         (WTF::memoryFootprint):
3062
3063 2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>
3064
3065         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
3066         https://bugs.webkit.org/show_bug.cgi?id=196681
3067         <rdar://problem/49917764>
3068
3069         Reviewed by Darin Adler.
3070
3071         Address Darin's comments by removing the explicit type from std::max.
3072
3073         * wtf/HashTable.h:
3074         (WTF::KeyTraits>::computeBestTableSize):
3075         (WTF::KeyTraits>::shrinkToBestSize):
3076
3077 2019-04-18  Chris Dumez  <cdumez@apple.com>
3078
3079         [iOS] Improve detection of when web views go to background / foreground
3080         https://bugs.webkit.org/show_bug.cgi?id=197035
3081         <rdar://problem/45281182>
3082
3083         Reviewed by Tim Horton.
3084
3085         Add build time flag.
3086
3087         * wtf/FeatureDefines.h:
3088
3089 2019-04-18  Jer Noble  <jer.noble@apple.com>
3090
3091         Add support for parsing FairPlayStreaming PSSH boxes.
3092         https://bugs.webkit.org/show_bug.cgi?id=197064
3093
3094         Reviewed by Eric Carlson.
3095
3096         * wtf/Platform.h:
3097
3098 2019-04-18  Yusuke Suzuki  <ysuzuki@apple.com>
3099
3100         [WTF] StringBuilder should set correct m_is8Bit flag when merging
3101         https://bugs.webkit.org/show_bug.cgi?id=197053
3102
3103         Reviewed by Saam Barati.
3104
3105         When appending StringBuilder to the other StringBuilder, we have a path that does not set m_is8Bit flag correctly.
3106         This patch correctly sets this flag. And we also change 0 to nullptr when we are using 0 as a pointer.
3107
3108         * wtf/text/StringBuilder.cpp:
3109         (WTF::StringBuilder::reserveCapacity):
3110         (WTF::StringBuilder::appendUninitializedSlow):
3111         (WTF::StringBuilder::append):
3112         * wtf/text/StringBuilder.h:
3113         (WTF::StringBuilder::append):
3114         (WTF::StringBuilder::characters8 const):
3115         (WTF::StringBuilder::characters16 const):
3116         (WTF::StringBuilder::clear):
3117
3118 2019-04-17  Tim Horton  <timothy_horton@apple.com>
3119
3120         Adopt different scroll view flashing SPI
3121         https://bugs.webkit.org/show_bug.cgi?id=197043
3122         <rdar://problem/49996476>
3123
3124         Reviewed by Wenson Hsieh.
3125
3126         * wtf/Platform.h:
3127
3128 2019-04-17  Jer Noble  <jer.noble@apple.com>
3129
3130         Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
3131         https://bugs.webkit.org/show_bug.cgi?id=196994
3132         <rdar://problem/44158331>
3133
3134         Reviewed by Alex Christensen.
3135
3136         * wtf/Platform.h:
3137
3138 2019-04-16  Stephan Szabo  <stephan.szabo@sony.com>
3139
3140         [PlayStation] Update port for system library changes
3141         https://bugs.webkit.org/show_bug.cgi?id=196978
3142
3143         Reviewed by Ross Kirsling.
3144
3145         * wtf/PlatformPlayStation.cmake:
3146         Remove reference to deleted system library
3147
3148 2019-04-16  Jer Noble  <jer.noble@apple.com>
3149
3150         Enable HAVE_AVKIT on PLATFORM(IOSMAC)
3151         https://bugs.webkit.org/show_bug.cgi?id=196987
3152
3153         Reviewed by Tim Horton.
3154
3155         * wtf/Platform.h:
3156
3157 2019-04-16  Robin Morisset  <rmorisset@apple.com>
3158
3159         [WTF] holdLock should be marked WARN_UNUSED_RETURN
3160         https://bugs.webkit.org/show_bug.cgi?id=196922
3161
3162         Reviewed by Keith Miller.
3163
3164         * wtf/Locker.h:
3165
3166 2019-04-16  Don Olmstead  <don.olmstead@sony.com>
3167
3168         [CMake] Set WTF_SCRIPTS_DIR
3169         https://bugs.webkit.org/show_bug.cgi?id=196917
3170
3171         Reviewed by Konstantin Tokarev.
3172
3173         Use WTF_SCRIPTS_DIR for copying the unified sources script.
3174
3175         * wtf/CMakeLists.txt:
3176
3177 2019-04-15  Myles C. Maxfield  <mmaxfield@apple.com>
3178
3179         [Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
3180         https://bugs.webkit.org/show_bug.cgi?id=196846
3181         <rdar://problem/49499971>
3182
3183         Reviewed by Simon Fraser and Darin Adler.
3184
3185         * wtf/RetainPtr.h:
3186         (WTF::safeCFEqual):
3187         (WTF::safeCFHash):
3188
3189 2019-04-12  Ryosuke Niwa  <rniwa@webkit.org>
3190
3191         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
3192         https://bugs.webkit.org/show_bug.cgi?id=196681
3193
3194         Reviewed by Darin Adler.
3195
3196         Made HashTable::removeIf shrink to the "best size", which is the least power of two bigger
3197         than twice the key count as already used in the copy constructor.
3198
3199         * wtf/HashTable.h:
3200         (WTF::HashTable::computeBestTableSize): Extracted from the copy constructor.
3201         (WTF::HashTable::shrinkToBestSize): Added.
3202         (WTF::HashTable::removeIf): Use shrinkToBestSize instead of shrink.
3203         (WTF::HashTable::HashTable):
3204
3205 2019-04-12  Eric Carlson  <eric.carlson@apple.com>
3206
3207         Update AudioSession route sharing policy
3208         https://bugs.webkit.org/show_bug.cgi?id=196776
3209         <rdar://problem/46501611>
3210
3211         Reviewed by Jer Noble.
3212
3213         * wtf/Platform.h: Define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO.
3214
3215 2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
3216
3217         requestAnimationFrame should execute before the next frame
3218         https://bugs.webkit.org/show_bug.cgi?id=177484
3219
3220         Reviewed by Simon Fraser.
3221
3222         Add trace points for the page RenderingUpdate.
3223
3224         * wtf/SystemTracing.h:
3225
3226 2019-04-10  Claudio Saavedra  <csaavedra@igalia.com>
3227
3228         Do not generate empty unified sources when unified builds are disabled
3229         https://bugs.webkit.org/show_bug.cgi?id=196767
3230
3231         Reviewed by Konstantin Tokarev.
3232
3233         If unified builds are disabled, the ruby script to generate them
3234         is still used to list the sources that need to be
3235         compiled. Currently, the script always generates bundled unified
3236         sources, even if it's being used just to list all the sources. So
3237         when the unified builds are disabled and no files are going to be
3238         bundled, the script generates one empty file per bundle manager
3239         (that is, one C++ and one ObjectiveC), that gets added to the
3240         sources to be compiled.
3241
3242         * Scripts/generate-unified-source-bundles.rb: Only go through the
3243         bundle managers file generation when not running in
3244         PrintAllSources mode, to avoid generating empty bundle files.
3245
3246 2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>
3247
3248         [WPE] Avoid async IO starving timers
3249         https://bugs.webkit.org/show_bug.cgi?id=196733
3250
3251         Reviewed by Carlos Garcia Campos.
3252
3253         If AsyncIONetwork and DiskCacheRead priorities are higher than
3254         MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
3255         to accumulate MB of data instead of handing it down to the WebProcess (done
3256         using a Timer). This eventually causes an Out Of Memory kill on the
3257         NetworkProcess on some embedded platforms with low memory limits.
3258
3259         This patch levels the three priorities to the same value, while still leaving
3260         DiskCacheWrite with less priority than DiskCacheRead.
3261
3262         * wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.
3263
3264 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
3265
3266         [CMake] WTF derived sources should only be referenced inside WTF
3267         https://bugs.webkit.org/show_bug.cgi?id=196706
3268
3269         Reviewed by Konstantin Tokarev.
3270
3271         Use ${WTF_DERIVED_SOURCES_DIR} instead of ${DERIVED_SOURCES_DIR} within WTF.
3272
3273         * wtf/CMakeLists.txt:
3274         * wtf/PlatformJSCOnly.cmake:
3275         * wtf/PlatformMac.cmake:
3276
3277 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
3278
3279         [CMake] Apple builds should use ICU_INCLUDE_DIRS
3280         https://bugs.webkit.org/show_bug.cgi?id=196720
3281
3282         Reviewed by Konstantin Tokarev.
3283
3284         Copy ICU headers for Apple builds into ICU_INCLUDE_DIRS.
3285
3286         * CMakeLists.txt:
3287         * wtf/PlatformMac.cmake:
3288
3289 2019-04-08  Don Olmstead  <don.olmstead@sony.com>
3290
3291         [CMake][WinCairo] Separate copied headers into different directories
3292         https://bugs.webkit.org/show_bug.cgi?id=196655
3293
3294         Reviewed by Michael Catanzaro.
3295
3296         * wtf/CMakeLists.txt:
3297
3298 2019-04-08  Guillaume Emont  <guijemont@igalia.com>
3299
3300         Enable DFG on MIPS
3301         https://bugs.webkit.org/show_bug.cgi?id=196689
3302
3303         Reviewed by Žan Doberšek.
3304
3305         Since the bytecode change, we enabled the baseline JIT on mips in
3306         r240432, but DFG is still missing. With this change, all tests are
3307         passing on a ci20 board.
3308
3309         * wtf/Platform.h: Enable DFG on MIPS by default.
3310
3311 2019-04-06  Ryosuke Niwa  <rniwa@webkit.org>
3312
3313         Added tests for WeakHashSet::computesEmpty and WeakHashSet::computeSize
3314         https://bugs.webkit.org/show_bug.cgi?id=196669
3315
3316         Reviewed by Geoffrey Garen.
3317
3318         Removed the superflous type names from forward declarations, and made WeakHashSet::add
3319         take a const object to match other container types in WTF.
3320
3321         * wtf/WeakHashSet.h:
3322         (WTF::WeakHashSet::add):
3323         * wtf/WeakPtr.h:
3324
3325 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
3326
3327         Make WeakPtr<Element> possible and deploy it in form associated elements code
3328         https://bugs.webkit.org/show_bug.cgi?id=196626
3329
3330         Reviewed by Antti Koivisto.
3331
3332         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
3333         a subclass type U of a type T used to define WeakReference<T>.
3334
3335         Also added computesEmpty, which is slightly more efficient than computeSize
3336         when m_set is either empty or when there are non-released weak references in the set.
3337
3338         * wtf/WeakHashSet.h:
3339         (WTF::WeakHashSet::remove):
3340         (WTF::WeakHashSet::contains const):
3341         (WTF::WeakHashSet::computesEmpty const): Added.
3342         * wtf/WeakPtr.h: Added an explicit forward declaration of WeakHashSet to avoid
3343         build failures in GTK+ and WPE ports.
3344
3345 2019-04-05  Eric Carlson  <eric.carlson@apple.com>
3346
3347         Remove AUDIO_TOOLBOX_AUDIO_SESSION
3348         https://bugs.webkit.org/show_bug.cgi?id=196653
3349         <rdar://problem/49652098>
3350
3351         Reviewed by Jer Noble.
3352
3353         * wtf/Platform.h:
3354
3355 2019-04-05  Michael Catanzaro  <mcatanzaro@igalia.com>
3356
3357         Unreviewed manual rollout of r243929
3358         https://bugs.webkit.org/show_bug.cgi?id=196626
3359
3360         * wtf/WeakHashSet.h:
3361         (WTF::WeakHashSet::remove):
3362         (WTF::WeakHashSet::contains const):
3363         (WTF::WeakHashSet::computesEmpty const): Deleted.
3364
3365 2019-04-05  Commit Queue  <commit-queue@webkit.org>
3366
3367         Unreviewed, rolling out r243833.
3368         https://bugs.webkit.org/show_bug.cgi?id=196645
3369
3370         This change breaks build of WPE and GTK ports (Requested by
3371         annulen on #webkit).
3372
3373         Reverted changeset:
3374
3375         "[CMake][WTF] Mirror XCode header directories"
3376         https://bugs.webkit.org/show_bug.cgi?id=191662
3377         https://trac.webkit.org/changeset/243833
3378
3379 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
3380
3381         Make WeakPtr<Element> possible and deploy it in form associated elements code
3382         https://bugs.webkit.org/show_bug.cgi?id=196626
3383
3384         Reviewed by Antti Koivisto.
3385
3386         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
3387         a subclass type U of a type T used to define WeakReference<T>.
3388
3389         Also added computesEmpty, which is slightly more efficient than computeSize
3390         when m_set is either empty or when there are non-released weak references in the set.
3391
3392         * wtf/WeakHashSet.h:
3393         (WTF::WeakHashSet::remove):
3394         (WTF::WeakHashSet::contains const):
3395         (WTF::WeakHashSet::computesEmpty const): Added.
3396
3397 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
3398
3399         [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
3400         https://bugs.webkit.org/show_bug.cgi?id=196475
3401
3402         Reviewed by Saam Barati.
3403
3404         * wtf/ForbidHeapAllocation.h:
3405         * wtf/IsoMalloc.h:
3406         * wtf/IsoMallocInlines.h:
3407
3408 2019-04-03  Don Olmstead  <don.olmstead@sony.com>
3409
3410         [CMake][WTF] Mirror XCode header directories
3411         https://bugs.webkit.org/show_bug.cgi?id=191662
3412
3413         Reviewed by Konstantin Tokarev.
3414
3415         Rename WTF forwarding header target to WTFFramework and update the install location
3416         to WTF_FRAMEWORK_HEADERS_DIR.
3417
3418         * wtf/CMakeLists.txt:
3419
3420 2019-04-03  Joseph Pecoraro  <pecoraro@apple.com>
3421
3422         Web Inspector: Remote Inspector indicate callback should always happen on the main thread
3423         https://bugs.webkit.org/show_bug.cgi?id=196513
3424         <rdar://problem/49498284>
3425
3426         Reviewed by Devin Rousso.
3427
3428         * wtf/MainThread.h:
3429         * wtf/cocoa/MainThreadCocoa.mm:
3430         (WTF::dispatchAsyncOnMainThreadWithWebThreadLockIfNeeded):
3431         * wtf/ios/WebCoreThread.cpp:
3432         * wtf/ios/WebCoreThread.h:
3433
3434 2019-04-02  Keith Rollin  <krollin@apple.com>
3435
3436         Inhibit CFNetwork logging in private sessions
3437         https://bugs.webkit.org/show_bug.cgi?id=196268
3438         <rdar://problem/48210793>
3439
3440         Fix a conditional in Platform.h where IOS should have been used
3441         instead of IOS_FAMILY. The latter happened to work, but we really want
3442         to be using the proper symbol here.
3443
3444         Reviewed by Alexey Proskuryakov.
3445
3446         * wtf/Platform.h:
3447
3448 2019-04-01  Michael Catanzaro  <mcatanzaro@igalia.com>
3449
3450         Stop trying to support building JSC with clang 3.8
3451         https://bugs.webkit.org/show_bug.cgi?id=195947
3452         <rdar://problem/49069219>
3453
3454         Reviewed by Darin Adler.
3455
3456         It seems WebKit hasn't built with clang 3.8 in a while, no devs are using this compiler, we
3457         don't know how much effort it would be to make JSC work again, and it's making the code
3458         worse. Remove my hacks to support clang 3.8 from WTF.
3459
3460         * wtf/MetaAllocator.cpp:
3461         (WTF::MetaAllocator::allocate):
3462         * wtf/text/StringConcatenate.h:
3463         (WTF::tryMakeStringFromAdapters):
3464
3465 2019-03-31  Yusuke Suzuki  <ysuzuki@apple.com>
3466
3467         [JSC] Butterfly allocation from LargeAllocation should try "realloc" behavior if collector thread is not active
3468         https://bugs.webkit.org/show_bug.cgi?id=196160
3469
3470         Reviewed by Saam Barati.
3471
3472         * wtf/FastMalloc.h:
3473         (WTF::FastMalloc::tryRealloc):
3474         * wtf/Gigacage.cpp:
3475         (Gigacage::tryRealloc):
3476         * wtf/Gigacage.h:
3477
3478 2019-03-31  Andy Estes  <aestes@apple.com>
3479
3480         [iOS] WebKit should consult the navigation response policy delegate before previewing a QuickLook document
3481         https://bugs.webkit.org/show_bug.cgi?id=196433
3482         <rdar://problem/49293305>
3483
3484         Reviewed by Tim Horton.
3485
3486         * wtf/NeverDestroyed.h:
3487         (WTF::NeverDestroyed::operator->):
3488         (WTF::NeverDestroyed::operator-> const):
3489
3490 2019-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>
3491
3492         Unreviewed build fix.
3493
3494         * wtf/CMakeLists.txt: Added SpanningTree.h to WTF_PUBLIC_HEADERS.
3495
3496 2019-03-28  Saam Barati  <sbarati@apple.com>
3497
3498         BackwardsGraph needs to consider back edges as the backward's root successor
3499         https://bugs.webkit.org/show_bug.cgi?id=195991
3500
3501         Reviewed by Filip Pizlo.
3502
3503         Previously, our backwards graph analysis was slightly wrong. The idea of
3504         backwards graph is that the root of the graph has edges to terminals in
3505         the original graph. And then the original directed edges in the graph are flipped.
3506         
3507         However, we weren't considering loops as a form of terminality. For example,
3508         we wouldn't consider an infinite loop as a terminal. So there were no edges
3509         from the root to a node in the infinite loop. This lead us to make mistakes
3510         when we used backwards dominators to compute control flow equivalence.
3511         
3512         This is better understood in an example:
3513         
3514         ```
3515         preheader:
3516         while (1) {
3517             if (!isCell(v))
3518                 continue;
3519             load structure ID
3520             if (cond)
3521                continue;
3522             return
3523         }
3524         ```
3525         
3526         In the previous version of this algorithm, the only edge from the backwards
3527         root would be to the block containing the return. This would lead us to
3528         believe that the loading of the structureID backwards dominates the preheader,
3529         leading us to believe it's control flow equivalent to preheader. This is
3530         obviously wrong, since we can loop forever if "v" isn't a cell.
3531         
3532         The solution here is to treat any backedge in the graph as a "terminal" node.
3533         Since a backedge implies the existence of a loop.
3534         
3535         In the above example, the backwards root now has an edge to both blocks with
3536         "continue". This prevents us from falsely claiming that the return is control
3537         flow equivalent with the preheader.
3538         
3539         This patch uses DFS spanning trees to compute back edges. An edge
3540         u->v is a back edge when u is a descendent of v in the DFS spanning
3541         tree of the Graph.
3542
3543         * WTF.xcodeproj/project.pbxproj:
3544         * wtf/BackwardsGraph.h:
3545         (WTF::BackwardsGraph::BackwardsGraph):
3546         * wtf/SpanningTree.h: Added.
3547         (SpanningTree::SpanningTree):
3548         (SpanningTree::isDescendent):
3549
3550 2019-03-28  Tim Horton  <timothy_horton@apple.com>
3551
3552         Un-fix the build
3553
3554         * wtf/Platform.h:
3555         It is no longer necessary to exclude this from PLATFORM(IOSMAC).
3556
3557 2019-03-27  Per Arne Vollan  <pvollan@apple.com>
3558
3559         Layout Test js/math-clz32.html is failing
3560         https://bugs.webkit.org/show_bug.cgi?id=196209
3561
3562         Reviewed by Ross Kirsling.
3563
3564         Use the correct number of loop iterations when counting leading zeros. Also, the
3565         count was off by one for the Win64 case.
3566
3567         * wtf/MathExtras.h:
3568         (WTF::clz):
3569
3570 2019-03-26  Keith Rollin  <krollin@apple.com>
3571
3572         Inhibit CFNetwork logging in private sessions
3573         https://bugs.webkit.org/show_bug.cgi?id=196268
3574         <rdar://problem/48210793>
3575
3576         Reviewed by Alex Christensen.
3577
3578         Before performing any logging, the NetworkProcess checks to see if
3579         it's performing an operation associated with a private (ephemeral)
3580         browsing session. If so, it skips the logging. However, networking
3581         layers below the NetworkProcess don't know about private browsing, so
3582         they would still perform their own logging. CFNetwork now has a flag
3583         that lets us control that, so set it to False if private browsing.
3584
3585         * wtf/Platform.h:
3586
3587 2019-03-25  Alex Christensen  <achristensen@webkit.org>
3588
3589         Expected shouldn't assume its contained types are copyable
3590         https://bugs.webkit.org/show_bug.cgi?id=195986
3591
3592         Reviewed by JF Bastien.
3593
3594         * wtf/Expected.h:
3595         (std::experimental::fundamentals_v3::__expected_detail::constexpr_base::constexpr_base):
3596         (std::experimental::fundamentals_v3::operator==):
3597         (std::experimental::fundamentals_v3::operator!=):
3598         * wtf/Unexpected.h:
3599         (std::experimental::fundamentals_v3::unexpected::unexpected):
3600
3601 2019-03-24  Keith Miller  <keith_miller@apple.com>
3602
3603         Unreviewed, forgot to refactor variable name for windows build in
3604         r243418.
3605
3606         * wtf/MathExtras.h:
3607         (WTF::clz):
3608         (WTF::ctz):
3609
3610 2019-03-24  Andy Estes  <aestes@apple.com>
3611
3612         [watchOS] Remove unused Proximity Networking code
3613         https://bugs.webkit.org/show_bug.cgi?id=196188
3614
3615         Reviewed by Tim Horton.
3616
3617         * wtf/FeatureDefines.h:
3618
3619 2019-03-23  Keith Miller  <keith_miller@apple.com>
3620
3621         Refactor clz/ctz and fix getLSBSet.
3622         https://bugs.webkit.org/show_bug.cgi?id=196162
3623
3624         Reviewed by Saam Barati.
3625
3626         This patch makes clz32/64 and ctz32 generic so they work on any
3627         numeric type. Since these methods work on any type we don't need
3628         to have a separate implementation of getLSBSet, which also
3629         happened to be getMSBSet. This patch also adds getMSBSet as there
3630         may be users who want that in the future.
3631
3632         * wtf/MathExtras.h:
3633         (WTF::clz):
3634         (WTF::ctz):
3635         (WTF::getLSBSet):
3636         (WTF::getMSBSet):
3637         (getLSBSet): Deleted.
3638         (WTF::clz32): Deleted.
3639         (WTF::clz64): Deleted.
3640         (WTF::ctz32): Deleted.
3641
3642 2019-03-22  Keith Rollin  <krollin@apple.com>
3643