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