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