Unreviewed, rolling out r245857.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-05-29  Ryan Haddad  <ryanhaddad@apple.com>
2
3         Unreviewed, rolling out r245857.
4
5         Breaks internal builds.
6
7         Reverted changeset:
8
9         "WeakPtr breaks vtables when upcasting to base classes"
10         https://bugs.webkit.org/show_bug.cgi?id=188799
11         https://trac.webkit.org/changeset/245857
12
13 2019-05-28  Geoffrey Garen  <ggaren@apple.com>
14
15         WeakPtr breaks vtables when upcasting to base classes
16         https://bugs.webkit.org/show_bug.cgi?id=188799
17
18         Reviewed by Youenn Fablet.
19
20         This patch switches from reinterpret_cast to static_cast when loading
21         from WeakReference storage.
22
23         We know which type to cast *to* because it's specified by the type of
24         the calling WeakPtr.
25
26         We know which type to cast *from* because it's specified by a typedef
27         in CanMakeWeakPtr.
28
29         (Our convention is that we store a pointer to the class that derives
30         from CanMakeWeakPtr. We cast from that pointer to derived pointers when
31         we get(). This means that #include of the derived type header is now
32         required in order to get() the pointer.)
33
34         * wtf/WeakHashSet.h:
35         (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Definition
36         is now eagerly required because WeakReference is not a template anymore.
37
38         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
39         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
40         (WTF::WeakHashSet::remove):
41         (WTF::WeakHashSet::contains const):
42         (WTF::WeakHashSet::computesEmpty const):
43         (WTF::WeakHashSet::hasNullReferences const):
44         (WTF::WeakHashSet::computeSize const):
45         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue): Deleted.
46         Updated for new WeakReference get() API.
47
48         * wtf/WeakPtr.h: Use a macro for TestAPI support. We can't use template
49         specialization because WeakReference is not a class template anymore.
50         (Or maybe we could have kept it working with a dummy template argument?
51         Felt weird, so I switched.)
52
53         (WTF::WeakReference::create):
54         (WTF::WeakReference::~WeakReference):
55         (WTF::WeakReference::get const):
56         (WTF::WeakReference::operator bool const):
57         (WTF::WeakReference::WeakReference): WeakReference is just a void* now.
58         It's the caller's responsibility, when creating and getting, to use
59         a consistent storage type. We ensure a canonical storage type using a
60         typedef inside CanMakeWeakPtr.
61
62         (WTF::WeakPtr::WeakPtr):
63         (WTF::WeakPtr::get const):
64         (WTF::WeakPtr::operator bool const):
65         (WTF::WeakPtr::operator-> const):
66         (WTF::WeakPtr::operator* const): Adopted new WeakReference API.
67
68         (WTF::WeakPtrFactory::createWeakPtr const): No need for reinterpret_cast.
69
70         (WTF::weak_reference_cast): This isn't required for correctness, but it's
71         nice to show a complier error at WeakPtr construction sites when you know
72         that the types won't work. Otherwise, you get compiler errors at
73         dereference sites, which are slightly more mysterious ways of saying that
74         you constructed your WeakPtr incorrectly.
75
76         (WTF::WeakPtr<T>::WeakPtr):
77         (WTF::=):
78         (WTF::makeWeakPtr):
79         (WTF::weak_reference_upcast): Deleted.
80         (WTF::weak_reference_downcast): Deleted.
81
82 2019-05-27  Chris Dumez  <cdumez@apple.com>
83
84         Use a strongly-typed identifier for pages
85         https://bugs.webkit.org/show_bug.cgi?id=198206
86
87         Reviewed by Youenn Fablet.
88
89         * wtf/ObjectIdentifier.h:
90         (WTF::operator<<):
91
92 2019-05-23  Don Olmstead  <don.olmstead@sony.com>
93
94         [CMake] Use target oriented design for bmalloc
95         https://bugs.webkit.org/show_bug.cgi?id=198046
96
97         Reviewed by Konstantin Tokarev.
98
99         Use WebKit::bmalloc target.
100
101         * wtf/CMakeLists.txt:
102
103 2019-05-23  Ross Kirsling  <ross.kirsling@sony.com>
104
105         [PlayStation] Implement platformUserPreferredLanguages.
106         https://bugs.webkit.org/show_bug.cgi?id=198149
107
108         Reviewed by Fujii Hironori.
109
110         * wtf/PlatformPlayStation.cmake:
111         * wtf/playstation/LanguagePlayStation.cpp: Added.
112         (WTF::platformUserPreferredLanguages):
113
114 2019-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
115
116         font-optical-sizing applies the wrong variation value
117         https://bugs.webkit.org/show_bug.cgi?id=197528
118         <rdar://problem/50152854>
119
120         Reviewed by Antti Koivisto.
121
122         * wtf/Platform.h:
123
124 2019-05-22  Ryan Haddad  <ryanhaddad@apple.com>
125
126         Unreviewed, rolling out r245598.
127
128         Breaks watchOS build.
129
130         Reverted changeset:
131
132         "font-optical-sizing applies the wrong variation value"
133         https://bugs.webkit.org/show_bug.cgi?id=197528
134         https://trac.webkit.org/changeset/245598
135
136 2019-05-21  Ross Kirsling  <ross.kirsling@sony.com>
137
138         [PlayStation] Don't call fcntl.
139         https://bugs.webkit.org/show_bug.cgi?id=197961
140
141         Reviewed by Fujii Hironori.
142
143         * wtf/PlatformGTK.cmake:
144         * wtf/PlatformJSCOnly.cmake:
145         * wtf/PlatformPlayStation.cmake:
146         * wtf/PlatformWPE.cmake:
147         * wtf/UniStdExtras.h:
148         * wtf/playstation/UniStdExtrasPlayStation.cpp: Added.
149         (WTF::setCloseOnExec):
150         (WTF::dupCloseOnExec):
151         (WTF::setNonBlock):
152         * wtf/unix/UniStdExtrasUnix.cpp: Renamed from Source/WTF/wtf/UniStdExtras.cpp.
153         (WTF::setNonBlock):
154         Move UniStdExtras to unix/, add a PlayStation version that doesn't use fcntl, add an abstraction for O_NONBLOCK.
155
156 2019-05-20  Tadeu Zagallo  <tzagallo@apple.com>
157
158         Only cache bytecode for API clients in data vaults
159         https://bugs.webkit.org/show_bug.cgi?id=197898
160
161         Reviewed by Keith Miller.
162
163         Add SPI to check if a filesystem path is restricted as a data vault.
164
165         * WTF.xcodeproj/project.pbxproj:
166         * wtf/spi/darwin/DataVaultSPI.h: Added.
167
168 2019-05-20  Carlos Garcia Campos  <cgarcia@igalia.com>
169
170         [GLIB] Repeating timer is not stopped when stop is called from the callback
171         https://bugs.webkit.org/show_bug.cgi?id=197986
172
173         Reviewed by Michael Catanzaro.
174
175         In case of repeating timers we always update the ready time to fire interval after the user callback is called.
176
177         * wtf/glib/RunLoopGLib.cpp:
178         (WTF::RunLoop::TimerBase::stop): Reset m_fireInterval and m_isRepeating.
179
180 2019-05-19  Darin Adler  <darin@apple.com>
181
182         Change String::number to use "shortest" instead of "fixed precision 6 digits"
183         https://bugs.webkit.org/show_bug.cgi?id=178319
184
185         Reviewed by Sam Weinig.
186
187         * wtf/text/StringBuilder.h: Delete appendNumber for floating point and
188         appendECMAScriptNumber for single-precision.
189
190         * wtf/text/WTFString.h: Delete String::number for floating point and
191         numberToStringECMAScript for single-precision.
192
193 2019-05-18  Tadeu Zagallo  <tzagallo@apple.com>
194
195         Add extra information to dumpJITMemory
196         https://bugs.webkit.org/show_bug.cgi?id=197998
197
198         Reviewed by Saam Barati.
199
200         Add a new trace point code for JSC::dumpJITMemory
201
202         * wtf/SystemTracing.h:
203
204 2019-05-17  Don Olmstead  <don.olmstead@sony.com>
205
206         [CMake] Use builtin FindICU
207         https://bugs.webkit.org/show_bug.cgi?id=197934
208
209         Reviewed by Michael Catanzaro.
210
211         Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. Use ICU:: targets which end
212         up propagating to all consumers of WTF.
213
214         * wtf/CMakeLists.txt:
215         * wtf/PlatformPlayStation.cmake:
216
217 2019-05-17  Commit Queue  <commit-queue@webkit.org>
218
219         Unreviewed, rolling out r245418.
220         https://bugs.webkit.org/show_bug.cgi?id=197989
221
222         New API test causing crashes on Mojave testers (Requested by
223         ShawnRoberts on #webkit).
224
225         Reverted changeset:
226
227         "Add a unit test for client certificate authentication"
228         https://bugs.webkit.org/show_bug.cgi?id=197800
229         https://trac.webkit.org/changeset/245418
230
231 2019-05-16  Keith Miller  <keith_miller@apple.com>
232
233         Wasm should cage the memory base pointers in structs
234         https://bugs.webkit.org/show_bug.cgi?id=197620
235
236         Reviewed by Saam Barati.
237
238         Rename reauthenticate to recage.
239
240         * wtf/CagedPtr.h:
241         (WTF::CagedPtr::recage):
242         (WTF::CagedPtr::reauthenticate): Deleted.
243
244 2019-05-16  Alex Christensen  <achristensen@webkit.org>
245
246         Add a unit test for client certificate authentication
247         https://bugs.webkit.org/show_bug.cgi?id=197800
248
249         Reviewed by Youenn Fablet.
250
251         * wtf/spi/cocoa/SecuritySPI.h:
252         Move declarations from ArgumentCodersCF.cpp so they can be shared.
253
254 2019-05-16  Eike Rathke  <erack@redhat.com>
255
256         Fix memcpy() call for big endian
257         https://bugs.webkit.org/show_bug.cgi?id=197945
258
259         Reviewed by Michael Catanzaro.
260
261         * wtf/Packed.h:
262         (WTF::alignof):
263
264 2019-05-15  Ross Kirsling  <ross.kirsling@sony.com>
265
266         [PlayStation] WTFCrash should preserve register state.
267         https://bugs.webkit.org/show_bug.cgi?id=197932
268
269         Reviewed by Don Olmstead.
270
271         * wtf/Assertions.cpp:
272         * wtf/Assertions.h:
273         Let r196397 apply to PlayStation port as well.
274
275 2019-05-15  Simon Fraser  <simon.fraser@apple.com>
276
277         Make LOG_WITH_STREAM more efficient
278         https://bugs.webkit.org/show_bug.cgi?id=197905
279
280         Reviewed by Alex Christensen.
281
282         Add a streamable repeat() class that can be used to output a series of characters.
283         This is useful for indenting output.
284
285         * wtf/text/TextStream.h:
286         (WTF::TextStream::repeat::repeat):
287         (WTF::TextStream::operator<<):
288
289 2019-05-15  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
290
291         compilation failure with clang 9
292         https://bugs.webkit.org/show_bug.cgi?id=197911
293
294         Reviewed by Alex Christensen.
295
296         Use std namespace for nullptr_t in tagArrayPtr templates.
297
298         * wtf/PtrTag.h:
299         (WTF::tagArrayPtr):
300
301 2019-05-14  Commit Queue  <commit-queue@webkit.org>
302
303         Unreviewed, rolling out r245281.
304         https://bugs.webkit.org/show_bug.cgi?id=197887
305
306         Broke API Test TestWebKitAPI.Challenge.ClientCertificate
307         (Requested by aakashjain on #webkit).
308
309         Reverted changeset:
310
311         "Add a unit test for client certificate authentication"
312         https://bugs.webkit.org/show_bug.cgi?id=197800
313         https://trac.webkit.org/changeset/245281
314
315 2019-05-14  Alex Christensen  <achristensen@webkit.org>
316
317         Add a unit test for client certificate authentication
318         https://bugs.webkit.org/show_bug.cgi?id=197800
319
320         Reviewed by Youenn Fablet.
321
322         * wtf/spi/cocoa/SecuritySPI.h:
323         Move declarations from ArgumentCodersCF.cpp so they can be shared.
324
325 2019-05-13  Robin Morisset  <rmorisset@apple.com>
326
327         IndexSet::isEmpty should use BitVector::isEmpty() instead of size()
328         https://bugs.webkit.org/show_bug.cgi?id=197857
329
330         Reviewed by Darin Adler.
331
332         * wtf/IndexSet.h:
333         (WTF::IndexSet::isEmpty const):
334
335 2019-05-13  Youenn Fablet  <youenn@apple.com>
336
337         [Mac] Use realpath for dlopen_preflight
338         https://bugs.webkit.org/show_bug.cgi?id=197803
339
340         Reviewed by Eric Carlson.
341
342         * wtf/cocoa/SoftLinking.h:
343
344 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
345
346         Unreviewed, wrokaround for MACH_VM_MAX_ADDRESS in ARM32_64
347         https://bugs.webkit.org/show_bug.cgi?id=197730
348
349         Interestingly, MACH_VM_MAX_ADDRESS is larger than 32bit in ARM32_64, I think this is a bug.
350         But for now, we workaround for this case by using `CPU(ADDRESS64)`.
351
352         * wtf/WTFAssertions.cpp:
353
354 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
355
356         [WTF] Remove Threading workaround for support libraries in Windows
357         https://bugs.webkit.org/show_bug.cgi?id=197350
358
359         Reviewed by Darin Adler.
360
361         We kept old APIs for some support libraries at 2017. This patch removes them.
362
363         * wtf/Threading.h:
364         * wtf/win/ThreadingWin.cpp:
365         (WTF::createThread): Deleted.
366         (WTF::waitForThreadCompletion): Deleted.
367
368 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
369
370         [WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread
371         https://bugs.webkit.org/show_bug.cgi?id=197146
372
373         Reviewed by Saam Barati.
374
375         Since GCThread and CompilationThread flags exist in WTF, we put these flags into WTF::Thread directly instead of holding them in ThreadSpecific<>.
376         And this patch removes dependency from Threading.h to ThreadSpecific.h. ThreadSpecific.h's OS threading primitives are moved to ThreadingPrimitives.h,
377         and Threading.h relies on it instead.
378
379         * wtf/CompilationThread.cpp:
380         (WTF::isCompilationThread):
381         (WTF::initializeCompilationThreads): Deleted.
382         (WTF::exchangeIsCompilationThread): Deleted.
383         * wtf/CompilationThread.h:
384         (WTF::CompilationScope::CompilationScope):
385         (WTF::CompilationScope::~CompilationScope):
386         (WTF::CompilationScope::leaveEarly):
387         * wtf/MainThread.cpp:
388         (WTF::initializeMainThread):
389         (WTF::initializeMainThreadToProcessMainThread):
390         (WTF::isMainThreadOrGCThread):
391         (WTF::initializeGCThreads): Deleted.
392         (WTF::registerGCThread): Deleted.
393         (WTF::mayBeGCThread): Deleted.
394         * wtf/MainThread.h:
395         * wtf/ThreadSpecific.h:
396         (WTF::canBeGCThread>::ThreadSpecific):
397         (WTF::canBeGCThread>::set):
398         (WTF::threadSpecificKeyCreate): Deleted.
399         (WTF::threadSpecificKeyDelete): Deleted.
400         (WTF::threadSpecificSet): Deleted.
401         (WTF::threadSpecificGet): Deleted.
402         * wtf/Threading.cpp:
403         (WTF::Thread::exchangeIsCompilationThread):
404         (WTF::Thread::registerGCThread):
405         (WTF::Thread::mayBeGCThread):
406         * wtf/Threading.h:
407         (WTF::Thread::isCompilationThread const):
408         (WTF::Thread::gcThreadType const):
409         (WTF::Thread::joinableState const):
410         (WTF::Thread::hasExited const):
411         (WTF::Thread::Thread):
412         (WTF::Thread::joinableState): Deleted.
413         (WTF::Thread::hasExited): Deleted.
414         * wtf/ThreadingPrimitives.h:
415         (WTF::threadSpecificKeyCreate):
416         (WTF::threadSpecificKeyDelete):
417         (WTF::threadSpecificSet):
418         (WTF::threadSpecificGet):
419         * wtf/win/ThreadSpecificWin.cpp:
420         (WTF::flsKeys):
421
422 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
423
424         Unreviewed, follow-up after r245214
425         https://bugs.webkit.org/show_bug.cgi?id=197730
426
427         Suggested by Sam. We should have static_assert with MACH_VM_MAX_ADDRESS.
428
429         * wtf/WTFAssertions.cpp:
430
431 2019-05-13  Youenn Fablet  <youenn@apple.com>
432
433         Use kDNSServiceFlagsKnownUnique for DNSServiceRegisterRecord only on platforms supporting it
434         https://bugs.webkit.org/show_bug.cgi?id=197802
435
436         Reviewed by Eric Carlson.
437
438         * wtf/Platform.h:
439
440 2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
441
442         [JSC] Compress miscelaneous JIT related data structures with Packed<>
443         https://bugs.webkit.org/show_bug.cgi?id=197830
444
445         Reviewed by Saam Barati.
446
447         * wtf/Packed.h:
448         (WTF::alignof):
449
450 2019-05-13  Michael Catanzaro  <mcatanzaro@igalia.com>
451
452         Unreviewed, fix unused variable warnings in release builds
453
454         * wtf/URLHelpers.cpp:
455         (WTF::URLHelpers::escapeUnsafeCharacters):
456
457 2019-05-12  Yusuke Suzuki  <ysuzuki@apple.com>
458
459         [JSC] Compress Watchpoint size by using enum type and Packed<> data structure
460         https://bugs.webkit.org/show_bug.cgi?id=197730
461
462         Reviewed by Filip Pizlo.
463
464         This patch introduces a new data structures, WTF::Packed, WTF::PackedPtr, and WTF::PackedAlignedPtr.
465
466         - WTF::Packed
467
468             WTF::Packed is data storage. We can read and write trivial (in C++ term [1]) data to this storage. The difference to
469             the usual storage is that the alignment of this storage is always 1. We access the underlying data by using unalignedLoad/unalignedStore.
470             This class offers alignment = 1 data structure instead of missing the following characteristics.
471
472                 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
473                    in a racy way. (e.g. fields accessed optimistically from the concurrent compilers).
474
475                 2. We cannot take reference / pointer to the underlying storage since they are unaligned.
476
477                 3. Access to this storage is unaligned access. The code is using memcpy, and the compiler will convert to an appropriate unaligned access
478                    in certain architectures (x86_64 / ARM64). It could be slow. So use it for non performance sensitive & memory sensitive places.
479
480         - WTF::PackedPtr
481
482             WTF::PackedPtr is a specialization of WTF::Packed<T*>. And it is basically WTF::PackedAlignedPtr with alignment = 1. We further compact
483             the pointer by leveraging the platform specific knowledge. In 64bit architectures, the effective width of pointers are less than 64 bit.
484             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
485             x86_64 and 5 bytes in Darwin ARM64.
486
487         - WTF::PackedAlignedPtr
488
489             WTF::PackedAlignedPtr is the WTF::PackedPtr with alignment information of the T. If we use this alignment information, we could reduce the
490             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
491             this information in Darwin ARM64 platform allows us to make packed JSCell pointer 4 bytes (36 - 4 bits). We do not use passed alignment
492             information if it is not profitable.
493
494         We also have PackedPtrTraits. This is new PtrTraits and use it for various data structures such as Bag<>.
495
496         [1]: https://en.cppreference.com/w/cpp/types/is_trivial
497
498         * WTF.xcodeproj/project.pbxproj:
499         * wtf/Bag.h:
500         (WTF::Bag::clear):
501         (WTF::Bag::iterator::operator++):
502         * wtf/CMakeLists.txt:
503         * wtf/DumbPtrTraits.h:
504         * wtf/DumbValueTraits.h:
505         * wtf/MathExtras.h:
506         (WTF::clzConstexpr):
507         (WTF::clz):
508         (WTF::ctzConstexpr):
509         (WTF::ctz):
510         (WTF::getLSBSetConstexpr):
511         (WTF::getMSBSetConstexpr):
512         * wtf/Packed.h: Added.
513         (WTF::Packed::Packed):
514         (WTF::Packed::get const):
515         (WTF::Packed::set):
516         (WTF::Packed::operator=):
517         (WTF::Packed::exchange):
518         (WTF::Packed::swap):
519         (WTF::alignof):
520         (WTF::PackedPtrTraits::exchange):
521         (WTF::PackedPtrTraits::swap):
522         (WTF::PackedPtrTraits::unwrap):
523         * wtf/Platform.h:
524         * wtf/SentinelLinkedList.h:
525         (WTF::BasicRawSentinelNode::BasicRawSentinelNode):
526         (WTF::BasicRawSentinelNode::prev):
527         (WTF::BasicRawSentinelNode::next):
528         (WTF::PtrTraits>::remove):
529         (WTF::PtrTraits>::prepend):
530         (WTF::PtrTraits>::append):
531         (WTF::RawNode>::SentinelLinkedList):
532         (WTF::RawNode>::remove):
533         (WTF::BasicRawSentinelNode<T>::remove): Deleted.
534         (WTF::BasicRawSentinelNode<T>::prepend): Deleted.
535         (WTF::BasicRawSentinelNode<T>::append): Deleted.
536         * wtf/StdLibExtras.h:
537         (WTF::roundUpToMultipleOfImpl):
538         (WTF::roundUpToMultipleOfImpl0): Deleted.
539         * wtf/UnalignedAccess.h:
540         (WTF::unalignedLoad):
541         (WTF::unalignedStore):
542
543 2019-05-10  Saam barati  <sbarati@apple.com>
544
545         Bag's move operator= leaks memory
546         https://bugs.webkit.org/show_bug.cgi?id=197757
547
548         Reviewed by Keith Miller.
549
550         It was unused. So I'm just removing it. We can implement it properly
551         if we ever need it.
552
553         * wtf/Bag.h:
554         (WTF::Bag::operator=): Deleted.
555
556 2019-05-10  Fujii Hironori  <Hironori.Fujii@sony.com>
557
558         [WinCairo] storage/indexeddb tests are timing out
559         https://bugs.webkit.org/show_bug.cgi?id=196289
560
561         Reviewed by Alex Christensen.
562
563         * wtf/FileSystem.h: Added hardLink.
564         * wtf/glib/FileSystemGlib.cpp:
565         (WTF::FileSystemImpl::hardLink):
566         (WTF::FileSystemImpl::hardLinkOrCopyFile):
567         * wtf/posix/FileSystemPOSIX.cpp:
568         (WTF::FileSystemImpl::hardLink):
569         (WTF::FileSystemImpl::hardLinkOrCopyFile):
570         * wtf/win/FileSystemWin.cpp:
571         (WTF::FileSystemImpl::hardLink):
572         (WTF::FileSystemImpl::hardLinkOrCopyFile):
573         Added hardLink. Let hardLinkOrCopyFile use the hardLink.
574
575 2019-05-10  Yusuke Suzuki  <ysuzuki@apple.com>
576
577         [WTF] Remove "private:" from Noncopyable and Nonmovable macros
578         https://bugs.webkit.org/show_bug.cgi?id=197767
579
580         Reviewed by Saam Barati.
581
582         We no longer need "private:".
583
584         * wtf/Noncopyable.h:
585         * wtf/Nonmovable.h:
586
587 2019-05-08  Zan Dobersek  <zdobersek@igalia.com>
588
589         [GLib] Rework WPE RunLoopSourcePriority values
590         https://bugs.webkit.org/show_bug.cgi?id=197167
591
592         Reviewed by Carlos Garcia Campos.
593
594         The GLib priorities for the WPE port were initially aligned on the -70
595         value, theory being that this would help avoid any default-priority
596         GSources spawned in different dependency libraries affecting our
597         scheduling. Today it seems that extra caution might not be really
598         necessary.
599
600         This change aligns the base priority value with GLib's default priority
601         value of 0. We maintain the relativity of priority values by effectively
602         increasing each priority by 70.
603
604         * wtf/glib/RunLoopSourcePriority.h:
605
606 2019-05-08  Alex Christensen  <achristensen@webkit.org>
607
608         Add SPI to set HSTS storage directory
609         https://bugs.webkit.org/show_bug.cgi?id=197259
610
611         Reviewed by Brady Eidson.
612
613         * wtf/Platform.h:
614
615 2019-05-08  Keith Miller  <keith_miller@apple.com>
616
617         Remove Gigacage from arm64 and use PAC for arm64e instead
618         https://bugs.webkit.org/show_bug.cgi?id=197110
619
620         Reviewed by Saam Barati.
621
622         This patch changes the Gigacage to use PAC on arm64e. As part of
623         this process all platforms must provide their length when
624         materializing the caged pointer. Since it would be somewhat
625         confusing to have two parameters for an operator [] those methods
626         have been removed. Lastly, this patch removes the specializations
627         for void* caged pointers, instead opting to use enable_if on the
628         methods that would normally fail on void* e.g. anything that
629         returns a T&.
630
631         * WTF.xcodeproj/project.pbxproj:
632         * wtf/CMakeLists.txt:
633         * wtf/CagedPtr.h:
634         (WTF::CagedPtr::CagedPtr):
635         (WTF::CagedPtr::get const):
636         (WTF::CagedPtr::getMayBeNull const):
637         (WTF::CagedPtr::getUnsafe const):
638         (WTF::CagedPtr::at const):
639         (WTF::CagedPtr::reauthenticate):
640         (WTF::CagedPtr::operator=):
641         (WTF::CagedPtr::operator== const):
642         (WTF::CagedPtr::operator bool const):
643         (WTF::CagedPtr::operator* const): Deleted.
644         (WTF::CagedPtr::operator-> const): Deleted.
645         (WTF::CagedPtr::operator[] const): Deleted.
646         (): Deleted.
647         * wtf/CagedUniquePtr.h:
648         (WTF::CagedUniquePtr::CagedUniquePtr):
649         (WTF::CagedUniquePtr::create):
650         (WTF::CagedUniquePtr::~CagedUniquePtr):
651         (WTF::CagedUniquePtr::destroy):
652         (): Deleted.
653         * wtf/Gigacage.h:
654         (Gigacage::cagedMayBeNull):
655         * wtf/PtrTag.h:
656         (WTF::tagArrayPtr):
657         (WTF::untagArrayPtr):
658         (WTF::removeArrayPtrTag):
659         (WTF::retagArrayPtr):
660         * wtf/TaggedArrayStoragePtr.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferView.cpp.
661         (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr):
662         (WTF::TaggedArrayStoragePtr::get const):
663         (WTF::TaggedArrayStoragePtr::getUnsafe const):
664         (WTF::TaggedArrayStoragePtr::resize):
665         (WTF::TaggedArrayStoragePtr::operator bool const):
666
667 2019-05-08  Robin Morisset  <rmorisset@apple.com>
668
669         WTF::TimingScope should show the total duration and not just the mean
670         https://bugs.webkit.org/show_bug.cgi?id=197672
671
672         Reviewed by Alex Christensen.
673
674         * wtf/TimingScope.cpp:
675         (WTF::TimingScope::scopeDidEnd):
676
677 2019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
678
679         [JSC] LLIntPrototypeLoadAdaptiveStructureWatchpoint does not require Bag<>
680         https://bugs.webkit.org/show_bug.cgi?id=197645
681
682         Reviewed by Saam Barati.
683
684         * WTF.xcodeproj/project.pbxproj:
685         * wtf/CMakeLists.txt:
686         * wtf/Nonmovable.h: Copied from Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h.
687         * wtf/Vector.h:
688         (WTF::minCapacity>::uncheckedConstructAndAppend):
689
690 2019-05-07  Eric Carlson  <eric.carlson@apple.com>
691
692         Define media buffering policy
693         https://bugs.webkit.org/show_bug.cgi?id=196979
694         <rdar://problem/28383861>
695
696         Reviewed by Jer Noble.
697
698         * wtf/Platform.h:
699
700 2019-05-07  Robin Morisset  <rmorisset@apple.com>
701
702         WTF::BitVector should have an isEmpty() method
703         https://bugs.webkit.org/show_bug.cgi?id=197637
704
705         Reviewed by Keith Miller.
706
707         * wtf/BitVector.cpp:
708         (WTF::BitVector::isEmptySlow const):
709         * wtf/BitVector.h:
710         (WTF::BitVector::isEmpty const):
711
712 2019-05-07  Brent Fulgham  <bfulgham@apple.com>
713
714         Correct JSON parser to address unterminated escape character
715         https://bugs.webkit.org/show_bug.cgi?id=197582
716         <rdar://problem/50459177>
717
718         Reviewed by Alex Christensen.
719
720         Correct JSON parser code to properly deal with unterminated escape
721         characters.
722
723         * wtf/JSONValues.cpp:
724         (WTF::JSONImpl::decodeString):
725         (WTF::JSONImpl::parseStringToken):
726
727 2019-05-07  Alex Christensen  <achristensen@webkit.org>
728
729         Add a release assertion that Functions can only be constructed from non-null CompletionHandlers
730         https://bugs.webkit.org/show_bug.cgi?id=197641
731
732         Reviewed by Chris Dumez.
733
734         This will help us find the cause of rdar://problem/48679972 by seeing the crash when the Function is dispatched,
735         not when it's called with no interesting stack trace.  I manually verified this assertion is hit in such a case.
736         We should also have no legitimate use of creating a Function out of a null CompletionHandler then never calling it.
737
738         * wtf/CompletionHandler.h:
739         (WTF::Detail::CallableWrapper<CompletionHandler<Out):
740         * wtf/Function.h:
741         (WTF::Detail::CallableWrapperBase::~CallableWrapperBase):
742         (WTF::Detail::CallableWrapper::CallableWrapper):
743         (WTF::Function<Out):
744
745 2019-05-06  Christopher Reid  <chris.reid@sony.com>
746
747         [JSC] Respect already defined USE_LLINT_EMBEDDED_OPCODE_ID compiler variable.
748         https://bugs.webkit.org/show_bug.cgi?id=197633
749
750         Reviewed by Don Olmstead.
751
752         When the variable `USE_LLINT_EMBEDDED_OPCODE_ID` is defined, stop defining
753         its value with platform default one.
754
755         * wtf/Platform.h:
756
757 2019-05-03  Sihui Liu  <sihui_liu@apple.com>
758
759         Add assertion to check whether shm files have maximum FileProtection of CompleteUnlessOpen
760         https://bugs.webkit.org/show_bug.cgi?id=197390
761         <rdar://problem/42685773>
762
763         Reviewed by Geoffrey Garen.
764
765         * wtf/FileSystem.cpp:
766         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
767         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
768         * wtf/FileSystem.h:
769         * wtf/cocoa/FileSystemCocoa.mm:
770         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
771         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
772
773 2019-05-03  Commit Queue  <commit-queue@webkit.org>
774
775         Unreviewed, rolling out r244881.
776         https://bugs.webkit.org/show_bug.cgi?id=197559
777
778         Breaks compilation of jsconly on linux, breaking compilation
779         for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
780         guijemont on #webkit).
781
782         Reverted changeset:
783
784         "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
785         WEBKIT_COPY_FILES"
786         https://bugs.webkit.org/show_bug.cgi?id=197174
787         https://trac.webkit.org/changeset/244881
788
789 2019-05-02  Alex Christensen  <achristensen@webkit.org>
790
791         Mark U+01C0 as a homograph of U+006C
792         https://bugs.webkit.org/show_bug.cgi?id=197526
793         <rdar://problem/50301904>
794
795         Reviewed by Tim Horton.
796
797         * wtf/URLHelpers.cpp:
798         (WTF::URLHelpers::isLookalikeCharacter):
799
800 2019-05-02  Don Olmstead  <don.olmstead@sony.com>
801
802         [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
803         https://bugs.webkit.org/show_bug.cgi?id=197174
804
805         Reviewed by Alex Christensen.
806
807         Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES.
808
809         * wtf/CMakeLists.txt:
810
811 2019-05-01  Darin Adler  <darin@apple.com>
812
813         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
814         https://bugs.webkit.org/show_bug.cgi?id=195535
815
816         Reviewed by Alexey Proskuryakov.
817
818         * wtf/text/AtomicString.cpp:
819         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
820         end is nullptr; this behavior used to be implemented inside the
821         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
822
823         * wtf/text/AtomicStringImpl.cpp:
824         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
825         convertUTF8ToUTF16.
826
827         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
828         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
829         the AtomicString class and its behavior changed subtly in this patch; it's helpful
830         to document that it's not exported.
831
832         * wtf/text/StringImpl.cpp:
833         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
834         since strict is the default. Also updated for changes to ConversionResult.
835         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
836         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
837
838         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
839
840         * wtf/text/WTFString.cpp:
841         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
842
843         * wtf/unicode/UTF8Conversion.cpp:
844         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
845         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
846         (WTF::Unicode::UTF8SequenceLength): Deleted.
847         (WTF::Unicode::decodeUTF8Sequence): Deleted.
848         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
849         almost everything in the function. Also changed resturn value to be a boolean
850         to indicate success since there is only one possible failure (target exhausted).
851         There is room for further simplification, since most callers have lengths rather
852         than end pointers for the source buffer, and all but one caller supplies a buffer
853         size known to be sufficient, so those don't need a return value, nor do they need
854         to pass an end of buffer pointer.
855         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
856         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
857         for non-strict mode so that unpaired surrogates will be turned into the
858         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
859         won't create an invalid UTF-8 sequence, and because we don't need to do that
860         for any good reason at any call site.
861         (WTF::Unicode::isLegalUTF8): Deleted.
862         (WTF::Unicode::readUTF8Sequence): Deleted.
863         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
864         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
865         U16_APPEND instead of lots of code that does the same thing. There is
866         room for further simplification since most callers don't need the "all ASCII"
867         feature and could probably pass the arguments in a more natural way.
868         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
869         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
870         error handling checks for things that are handled by U8_NEXT. Also removed
871         support for passing nullptr for end to specify a null-terminated string.
872         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
873
874         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
875         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
876         style, with an eye toward perhaps removing it in the future. Changed
877         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
878         argument since no caller was passing false. Changed the convertLatin1ToUTF8
879         return value to a boolean. Tweaked comments.
880
881 2019-05-01  Shawn Roberts  <sroberts@apple.com>
882
883         Unreviewed, rolling out r244821.
884
885         Causing
886
887         Reverted changeset:
888
889         "WebKit has too much of its own UTF-8 code and should rely
890         more on ICU's UTF-8 support"
891         https://bugs.webkit.org/show_bug.cgi?id=195535
892         https://trac.webkit.org/changeset/244821
893
894 2019-05-01  Shawn Roberts  <sroberts@apple.com>
895
896         Unreviewed, rolling out r244822.
897
898         Causing 4 Test262 failures on JSC Release and Debug
899
900         Reverted changeset:
901
902         https://trac.webkit.org/changeset/244822 https://trac.webkit.org/changeset/244821
903
904 2019-04-29  Darin Adler  <darin@apple.com>
905
906         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
907         https://bugs.webkit.org/show_bug.cgi?id=195535
908
909         Reviewed by Alexey Proskuryakov.
910
911         * wtf/text/AtomicString.cpp:
912         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
913         end is nullptr; this behavior used to be implemented inside the
914         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
915
916         * wtf/text/AtomicStringImpl.cpp:
917         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
918         convertUTF8ToUTF16.
919
920         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
921         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
922         the AtomicString class and its behavior changed subtly in this patch; it's helpful
923         to document that it's not exported.
924
925         * wtf/text/StringImpl.cpp:
926         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
927         since strict is the default. Also updated for changes to ConversionResult.
928         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
929         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
930
931         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
932
933         * wtf/text/WTFString.cpp:
934         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
935
936         * wtf/unicode/UTF8Conversion.cpp:
937         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
938         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
939         (WTF::Unicode::UTF8SequenceLength): Deleted.
940         (WTF::Unicode::decodeUTF8Sequence): Deleted.
941         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
942         almost everything in the function. Also changed resturn value to be a boolean
943         to indicate success since there is only one possible failure (target exhausted).
944         There is room for further simplification, since most callers have lengths rather
945         than end pointers for the source buffer, and all but one caller supplies a buffer
946         size known to be sufficient, so those don't need a return value, nor do they need
947         to pass an end of buffer pointer.
948         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
949         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
950         for non-strict mode so that unpaired surrogates will be turned into the
951         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
952         won't create an invalid UTF-8 sequence, and because we don't need to do that
953         for any good reason at any call site.
954         (WTF::Unicode::isLegalUTF8): Deleted.
955         (WTF::Unicode::readUTF8Sequence): Deleted.
956         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
957         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
958         U16_APPEND instead of lots of code that does the same thing. There is
959         room for further simplification since most callers don't need the "all ASCII"
960         feature and could probably pass the arguments in a more natural way.
961         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
962         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
963         error handling checks for things that are handled by U8_NEXT. Also removed
964         support for passing nullptr for end to specify a null-terminated string.
965         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
966
967         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
968         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
969         style, with an eye toward perhaps removing it in the future. Changed
970         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
971         argument since no caller was passing false. Changed the convertLatin1ToUTF8
972         return value to a boolean. Tweaked comments.
973
974 2019-04-30  John Wilander  <wilander@apple.com>
975
976         Add logging of Ad Click Attribution errors and events to a dedicated channel
977         https://bugs.webkit.org/show_bug.cgi?id=197332
978         <rdar://problem/49918800>
979
980         Reviewed by Youenn Fablet.
981
982         Added missing RELEASE_LOG_INFO and RELEASE_LOG_INFO_IF dummies
983         for RELEASE_LOG_DISABLED.
984
985         * wtf/Assertions.h:
986
987 2019-04-30  Youenn Fablet  <youenn@apple.com>
988
989         Make Document audio producers use WeakPtr
990         https://bugs.webkit.org/show_bug.cgi?id=197382
991
992         Reviewed by Eric Carlson.
993
994         * wtf/WeakHashSet.h:
995         (WTF::WeakHashSet::hasNullReferences const):
996
997 2019-04-30  Commit Queue  <commit-queue@webkit.org>
998
999         Unreviewed, rolling out r244773.
1000         https://bugs.webkit.org/show_bug.cgi?id=197436
1001
1002         Causing assertion failures on debug queues (Requested by
1003         ShawnRoberts on #webkit).
1004
1005         Reverted changeset:
1006
1007         "Make Document audio producers use WeakPtr"
1008         https://bugs.webkit.org/show_bug.cgi?id=197382
1009         https://trac.webkit.org/changeset/244773
1010
1011 2019-04-30  Youenn Fablet  <youenn@apple.com>
1012
1013         Make Document audio producers use WeakPtr
1014         https://bugs.webkit.org/show_bug.cgi?id=197382
1015
1016         Reviewed by Eric Carlson.
1017
1018         * wtf/WeakHashSet.h:
1019         (WTF::WeakHashSet::hasNullReferences const):
1020
1021 2019-04-29  Alex Christensen  <achristensen@webkit.org>
1022
1023         <rdar://problem/50299396> Fix internal High Sierra build
1024         https://bugs.webkit.org/show_bug.cgi?id=197388
1025
1026         * Configurations/Base.xcconfig:
1027
1028 2019-04-29  Yusuke Suzuki  <ysuzuki@apple.com>
1029
1030         JITStubRoutineSet wastes 180KB of HashTable capacity on can.com
1031         https://bugs.webkit.org/show_bug.cgi?id=186732
1032
1033         Reviewed by Saam Barati.
1034
1035         * wtf/Range.h:
1036         (WTF::Range::contains const):
1037
1038 2019-04-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1039
1040         [Win] Add flag to enable version information stamping and disable by default.
1041         https://bugs.webkit.org/show_bug.cgi?id=197249
1042         <rdar://problem/50224412>
1043
1044         Reviewed by Ross Kirsling.
1045
1046         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
1047         Then enable it by default on AppleWin.
1048
1049         * wtf/CMakeLists.txt:
1050
1051 2019-04-26  Don Olmstead  <don.olmstead@sony.com>
1052
1053         Add WTF::findIgnoringASCIICaseWithoutLength to replace strcasestr
1054         https://bugs.webkit.org/show_bug.cgi?id=197291
1055
1056         Reviewed by Konstantin Tokarev.
1057
1058         Adds an implementation of strcasestr within WTF.
1059
1060         * wtf/text/StringCommon.h:
1061         (WTF::findIgnoringASCIICaseWithoutLength):
1062
1063 2019-04-26  Sihui Liu  <sihui_liu@apple.com>
1064
1065         Stop IDB transactions to release locked database files when network process is ready to suspend
1066         https://bugs.webkit.org/show_bug.cgi?id=196372
1067         <rdar://problem/48930116>
1068
1069         Reviewed by Brady Eidson.
1070
1071         Provide a method to suspend the thread and block main thread until the thread is suspended.
1072
1073         * wtf/CrossThreadTaskHandler.cpp:
1074         (WTF::CrossThreadTaskHandler::taskRunLoop):
1075         (WTF::CrossThreadTaskHandler::suspendAndWait):
1076         (WTF::CrossThreadTaskHandler::resume):
1077         * wtf/CrossThreadTaskHandler.h:
1078
1079 2019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>
1080
1081         Unreviewed, rolling out r244669.
1082
1083         Windows ports can't clean build.
1084
1085         Reverted changeset:
1086
1087         "[Win] Add flag to enable version information stamping and
1088         disable by default."
1089         https://bugs.webkit.org/show_bug.cgi?id=197249
1090         https://trac.webkit.org/changeset/244669
1091
1092 2019-04-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1093
1094         [Win] Add flag to enable version information stamping and disable by default.
1095         https://bugs.webkit.org/show_bug.cgi?id=197249
1096
1097         Reviewed by Ross Kirsling.
1098
1099         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
1100         Then enable it by default on AppleWin.
1101
1102         * wtf/CMakeLists.txt:
1103
1104 2019-04-25  Timothy Hatcher  <timothy@apple.com>
1105
1106         Disable date and time inputs on iOSMac.
1107         https://bugs.webkit.org/show_bug.cgi?id=197287
1108         rdar://problem/46794376
1109
1110         Reviewed by Wenson Hsieh.
1111
1112         * wtf/FeatureDefines.h:
1113
1114 2019-04-25  Alex Christensen  <achristensen@webkit.org>
1115
1116         Fix High Sierra build after r244653
1117         https://bugs.webkit.org/show_bug.cgi?id=197131
1118
1119         * wtf/StdLibExtras.h:
1120         High Sierra thinks __cplusplus is 201406 even when using C++17.
1121         Removing the __cplusplus check resolves the build failure on High Sierra.
1122         We can clean up StdLibExtras more later.
1123
1124 2019-04-25  Alex Christensen  <achristensen@webkit.org>
1125
1126         Start using C++17
1127         https://bugs.webkit.org/show_bug.cgi?id=197131
1128
1129         Reviewed by Darin Adler.
1130
1131         * Configurations/Base.xcconfig:
1132         * wtf/CMakeLists.txt:
1133         * wtf/Variant.h:
1134         (WTF::switchOn):
1135
1136 2019-04-25  Alex Christensen  <achristensen@webkit.org>
1137
1138         Remove DeprecatedOptional
1139         https://bugs.webkit.org/show_bug.cgi?id=197161
1140
1141         Reviewed by Darin Adler.
1142
1143         * WTF.xcodeproj/project.pbxproj:
1144         * wtf/CMakeLists.txt:
1145         * wtf/DeprecatedOptional.h: Removed.
1146
1147 2019-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1148
1149         [GTK] Hardcoded text color in input fields
1150         https://bugs.webkit.org/show_bug.cgi?id=126907
1151
1152         Reviewed by Michael Catanzaro.
1153
1154         Define HAVE_OS_DARK_MODE_SUPPORT for GTK port.
1155
1156         * wtf/Platform.h:
1157
1158 2019-04-24  Tim Horton  <timothy_horton@apple.com>
1159
1160         Clean up WKActionSheetAssistant's use of LaunchServices
1161         https://bugs.webkit.org/show_bug.cgi?id=194645
1162         <rdar://problem/47707952>
1163
1164         Reviewed by Andy Estes.
1165
1166         * wtf/Platform.h:
1167
1168 2019-04-24  chris fleizach  <cfleizach@apple.com>
1169
1170         AX: Remove deprecated Accessibility Object Model events
1171         https://bugs.webkit.org/show_bug.cgi?id=197073
1172         <rdar://problem/50027819>
1173
1174         Reviewed by Ryosuke Niwa.
1175
1176         * wtf/Platform.h:
1177
1178 2019-04-23  Commit Queue  <commit-queue@webkit.org>
1179
1180         Unreviewed, rolling out r244558.
1181         https://bugs.webkit.org/show_bug.cgi?id=197219
1182
1183         Causing crashes on iOS Sim Release and Debug (Requested by
1184         ShawnRoberts on #webkit).
1185
1186         Reverted changeset:
1187
1188         "Remove DeprecatedOptional"
1189         https://bugs.webkit.org/show_bug.cgi?id=197161
1190         https://trac.webkit.org/changeset/244558
1191
1192 2019-04-23  Alex Christensen  <achristensen@webkit.org>
1193
1194         Remove DeprecatedOptional
1195         https://bugs.webkit.org/show_bug.cgi?id=197161
1196
1197         Reviewed by Darin Adler.
1198
1199         This was added in r209326 to be compatible with a shipping version of Safari.
1200         We have released several versions of Safari since then, so do what the comments say and remove it.
1201         The existence of this std::optional makes migrating to C++17 harder, and there's no reason to keep it.
1202
1203         * WTF.xcodeproj/project.pbxproj:
1204         * wtf/CMakeLists.txt:
1205         * wtf/DeprecatedOptional.h: Removed.
1206
1207 2019-04-21  Zan Dobersek  <zdobersek@igalia.com>
1208
1209         [WTF] Generic memoryFootprint() implementation should use bmalloc on Linux
1210         https://bugs.webkit.org/show_bug.cgi?id=196963
1211
1212         Reviewed by Don Olmstead.
1213
1214         Have the generic memoryFootprint() implementation use bmalloc's
1215         memoryFootprint() API on Linux, whenever the system malloc option is
1216         not enabled. Limitation to Linux platforms is due to the bmalloc
1217         implementation being limited to those configurations (excluding iOS
1218         which doesn't use MemoryFootprintGeneric.cpp).
1219
1220         * wtf/PlatformWPE.cmake: Switch to building MemoryFootprintGeneric.cpp.
1221         * wtf/generic/MemoryFootprintGeneric.cpp:
1222         (WTF::memoryFootprint):
1223
1224 2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>
1225
1226         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
1227         https://bugs.webkit.org/show_bug.cgi?id=196681
1228         <rdar://problem/49917764>
1229
1230         Reviewed by Darin Adler.
1231
1232         Address Darin's comments by removing the explicit type from std::max.
1233
1234         * wtf/HashTable.h:
1235         (WTF::KeyTraits>::computeBestTableSize):
1236         (WTF::KeyTraits>::shrinkToBestSize):
1237
1238 2019-04-18  Chris Dumez  <cdumez@apple.com>
1239
1240         [iOS] Improve detection of when web views go to background / foreground
1241         https://bugs.webkit.org/show_bug.cgi?id=197035
1242         <rdar://problem/45281182>
1243
1244         Reviewed by Tim Horton.
1245
1246         Add build time flag.
1247
1248         * wtf/FeatureDefines.h:
1249
1250 2019-04-18  Jer Noble  <jer.noble@apple.com>
1251
1252         Add support for parsing FairPlayStreaming PSSH boxes.
1253         https://bugs.webkit.org/show_bug.cgi?id=197064
1254
1255         Reviewed by Eric Carlson.
1256
1257         * wtf/Platform.h:
1258
1259 2019-04-18  Yusuke Suzuki  <ysuzuki@apple.com>
1260
1261         [WTF] StringBuilder should set correct m_is8Bit flag when merging
1262         https://bugs.webkit.org/show_bug.cgi?id=197053
1263
1264         Reviewed by Saam Barati.
1265
1266         When appending StringBuilder to the other StringBuilder, we have a path that does not set m_is8Bit flag correctly.
1267         This patch correctly sets this flag. And we also change 0 to nullptr when we are using 0 as a pointer.
1268
1269         * wtf/text/StringBuilder.cpp:
1270         (WTF::StringBuilder::reserveCapacity):
1271         (WTF::StringBuilder::appendUninitializedSlow):
1272         (WTF::StringBuilder::append):
1273         * wtf/text/StringBuilder.h:
1274         (WTF::StringBuilder::append):
1275         (WTF::StringBuilder::characters8 const):
1276         (WTF::StringBuilder::characters16 const):
1277         (WTF::StringBuilder::clear):
1278
1279 2019-04-17  Tim Horton  <timothy_horton@apple.com>
1280
1281         Adopt different scroll view flashing SPI
1282         https://bugs.webkit.org/show_bug.cgi?id=197043
1283         <rdar://problem/49996476>
1284
1285         Reviewed by Wenson Hsieh.
1286
1287         * wtf/Platform.h:
1288
1289 2019-04-17  Jer Noble  <jer.noble@apple.com>
1290
1291         Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
1292         https://bugs.webkit.org/show_bug.cgi?id=196994
1293         <rdar://problem/44158331>
1294
1295         Reviewed by Alex Christensen.
1296
1297         * wtf/Platform.h:
1298
1299 2019-04-16  Stephan Szabo  <stephan.szabo@sony.com>
1300
1301         [PlayStation] Update port for system library changes
1302         https://bugs.webkit.org/show_bug.cgi?id=196978
1303
1304         Reviewed by Ross Kirsling.
1305
1306         * wtf/PlatformPlayStation.cmake:
1307         Remove reference to deleted system library
1308
1309 2019-04-16  Jer Noble  <jer.noble@apple.com>
1310
1311         Enable HAVE_AVKIT on PLATFORM(IOSMAC)
1312         https://bugs.webkit.org/show_bug.cgi?id=196987
1313
1314         Reviewed by Tim Horton.
1315
1316         * wtf/Platform.h:
1317
1318 2019-04-16  Robin Morisset  <rmorisset@apple.com>
1319
1320         [WTF] holdLock should be marked WARN_UNUSED_RETURN
1321         https://bugs.webkit.org/show_bug.cgi?id=196922
1322
1323         Reviewed by Keith Miller.
1324
1325         * wtf/Locker.h:
1326
1327 2019-04-16  Don Olmstead  <don.olmstead@sony.com>
1328
1329         [CMake] Set WTF_SCRIPTS_DIR
1330         https://bugs.webkit.org/show_bug.cgi?id=196917
1331
1332         Reviewed by Konstantin Tokarev.
1333
1334         Use WTF_SCRIPTS_DIR for copying the unified sources script.
1335
1336         * wtf/CMakeLists.txt:
1337
1338 2019-04-15  Myles C. Maxfield  <mmaxfield@apple.com>
1339
1340         [Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
1341         https://bugs.webkit.org/show_bug.cgi?id=196846
1342         <rdar://problem/49499971>
1343
1344         Reviewed by Simon Fraser and Darin Adler.
1345
1346         * wtf/RetainPtr.h:
1347         (WTF::safeCFEqual):
1348         (WTF::safeCFHash):
1349
1350 2019-04-12  Ryosuke Niwa  <rniwa@webkit.org>
1351
1352         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
1353         https://bugs.webkit.org/show_bug.cgi?id=196681
1354
1355         Reviewed by Darin Adler.
1356
1357         Made HashTable::removeIf shrink to the "best size", which is the least power of two bigger
1358         than twice the key count as already used in the copy constructor.
1359
1360         * wtf/HashTable.h:
1361         (WTF::HashTable::computeBestTableSize): Extracted from the copy constructor.
1362         (WTF::HashTable::shrinkToBestSize): Added.
1363         (WTF::HashTable::removeIf): Use shrinkToBestSize instead of shrink.
1364         (WTF::HashTable::HashTable):
1365
1366 2019-04-12  Eric Carlson  <eric.carlson@apple.com>
1367
1368         Update AudioSession route sharing policy
1369         https://bugs.webkit.org/show_bug.cgi?id=196776
1370         <rdar://problem/46501611>
1371
1372         Reviewed by Jer Noble.
1373
1374         * wtf/Platform.h: Define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO.
1375
1376 2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
1377
1378         requestAnimationFrame should execute before the next frame
1379         https://bugs.webkit.org/show_bug.cgi?id=177484
1380
1381         Reviewed by Simon Fraser.
1382
1383         Add trace points for the page RenderingUpdate.
1384
1385         * wtf/SystemTracing.h:
1386
1387 2019-04-10  Claudio Saavedra  <csaavedra@igalia.com>
1388
1389         Do not generate empty unified sources when unified builds are disabled
1390         https://bugs.webkit.org/show_bug.cgi?id=196767
1391
1392         Reviewed by Konstantin Tokarev.
1393
1394         If unified builds are disabled, the ruby script to generate them
1395         is still used to list the sources that need to be
1396         compiled. Currently, the script always generates bundled unified
1397         sources, even if it's being used just to list all the sources. So
1398         when the unified builds are disabled and no files are going to be
1399         bundled, the script generates one empty file per bundle manager
1400         (that is, one C++ and one ObjectiveC), that gets added to the
1401         sources to be compiled.
1402
1403         * Scripts/generate-unified-source-bundles.rb: Only go through the
1404         bundle managers file generation when not running in
1405         PrintAllSources mode, to avoid generating empty bundle files.
1406
1407 2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>
1408
1409         [WPE] Avoid async IO starving timers
1410         https://bugs.webkit.org/show_bug.cgi?id=196733
1411
1412         Reviewed by Carlos Garcia Campos.
1413
1414         If AsyncIONetwork and DiskCacheRead priorities are higher than
1415         MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
1416         to accumulate MB of data instead of handing it down to the WebProcess (done
1417         using a Timer). This eventually causes an Out Of Memory kill on the
1418         NetworkProcess on some embedded platforms with low memory limits.
1419
1420         This patch levels the three priorities to the same value, while still leaving
1421         DiskCacheWrite with less priority than DiskCacheRead.
1422
1423         * wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.
1424
1425 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
1426
1427         [CMake] WTF derived sources should only be referenced inside WTF
1428         https://bugs.webkit.org/show_bug.cgi?id=196706
1429
1430         Reviewed by Konstantin Tokarev.
1431
1432         Use ${WTF_DERIVED_SOURCES_DIR} instead of ${DERIVED_SOURCES_DIR} within WTF.
1433
1434         * wtf/CMakeLists.txt:
1435         * wtf/PlatformJSCOnly.cmake:
1436         * wtf/PlatformMac.cmake:
1437
1438 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
1439
1440         [CMake] Apple builds should use ICU_INCLUDE_DIRS
1441         https://bugs.webkit.org/show_bug.cgi?id=196720
1442
1443         Reviewed by Konstantin Tokarev.
1444
1445         Copy ICU headers for Apple builds into ICU_INCLUDE_DIRS.
1446
1447         * CMakeLists.txt:
1448         * wtf/PlatformMac.cmake:
1449
1450 2019-04-08  Don Olmstead  <don.olmstead@sony.com>
1451
1452         [CMake][WinCairo] Separate copied headers into different directories
1453         https://bugs.webkit.org/show_bug.cgi?id=196655
1454
1455         Reviewed by Michael Catanzaro.
1456
1457         * wtf/CMakeLists.txt:
1458
1459 2019-04-08  Guillaume Emont  <guijemont@igalia.com>
1460
1461         Enable DFG on MIPS
1462         https://bugs.webkit.org/show_bug.cgi?id=196689
1463
1464         Reviewed by Žan Doberšek.
1465
1466         Since the bytecode change, we enabled the baseline JIT on mips in
1467         r240432, but DFG is still missing. With this change, all tests are
1468         passing on a ci20 board.
1469
1470         * wtf/Platform.h: Enable DFG on MIPS by default.
1471
1472 2019-04-06  Ryosuke Niwa  <rniwa@webkit.org>
1473
1474         Added tests for WeakHashSet::computesEmpty and WeakHashSet::computeSize
1475         https://bugs.webkit.org/show_bug.cgi?id=196669
1476
1477         Reviewed by Geoffrey Garen.
1478
1479         Removed the superflous type names from forward declarations, and made WeakHashSet::add
1480         take a const object to match other container types in WTF.
1481
1482         * wtf/WeakHashSet.h:
1483         (WTF::WeakHashSet::add):
1484         * wtf/WeakPtr.h:
1485
1486 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
1487
1488         Make WeakPtr<Element> possible and deploy it in form associated elements code
1489         https://bugs.webkit.org/show_bug.cgi?id=196626
1490
1491         Reviewed by Antti Koivisto.
1492
1493         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
1494         a subclass type U of a type T used to define WeakReference<T>.
1495
1496         Also added computesEmpty, which is slightly more efficient than computeSize
1497         when m_set is either empty or when there are non-released weak references in the set.
1498
1499         * wtf/WeakHashSet.h:
1500         (WTF::WeakHashSet::remove):
1501         (WTF::WeakHashSet::contains const):
1502         (WTF::WeakHashSet::computesEmpty const): Added.
1503         * wtf/WeakPtr.h: Added an explicit forward declaration of WeakHashSet to avoid
1504         build failures in GTK+ and WPE ports.
1505
1506 2019-04-05  Eric Carlson  <eric.carlson@apple.com>
1507
1508         Remove AUDIO_TOOLBOX_AUDIO_SESSION
1509         https://bugs.webkit.org/show_bug.cgi?id=196653
1510         <rdar://problem/49652098>
1511
1512         Reviewed by Jer Noble.
1513
1514         * wtf/Platform.h:
1515
1516 2019-04-05  Michael Catanzaro  <mcatanzaro@igalia.com>
1517
1518         Unreviewed manual rollout of r243929
1519         https://bugs.webkit.org/show_bug.cgi?id=196626
1520
1521         * wtf/WeakHashSet.h:
1522         (WTF::WeakHashSet::remove):
1523         (WTF::WeakHashSet::contains const):
1524         (WTF::WeakHashSet::computesEmpty const): Deleted.
1525
1526 2019-04-05  Commit Queue  <commit-queue@webkit.org>
1527
1528         Unreviewed, rolling out r243833.
1529         https://bugs.webkit.org/show_bug.cgi?id=196645
1530
1531         This change breaks build of WPE and GTK ports (Requested by
1532         annulen on #webkit).
1533
1534         Reverted changeset:
1535
1536         "[CMake][WTF] Mirror XCode header directories"
1537         https://bugs.webkit.org/show_bug.cgi?id=191662
1538         https://trac.webkit.org/changeset/243833
1539
1540 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
1541
1542         Make WeakPtr<Element> possible and deploy it in form associated elements code
1543         https://bugs.webkit.org/show_bug.cgi?id=196626
1544
1545         Reviewed by Antti Koivisto.
1546
1547         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
1548         a subclass type U of a type T used to define WeakReference<T>.
1549
1550         Also added computesEmpty, which is slightly more efficient than computeSize
1551         when m_set is either empty or when there are non-released weak references in the set.
1552
1553         * wtf/WeakHashSet.h:
1554         (WTF::WeakHashSet::remove):
1555         (WTF::WeakHashSet::contains const):
1556         (WTF::WeakHashSet::computesEmpty const): Added.
1557
1558 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
1559
1560         [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
1561         https://bugs.webkit.org/show_bug.cgi?id=196475
1562
1563         Reviewed by Saam Barati.
1564
1565         * wtf/ForbidHeapAllocation.h:
1566         * wtf/IsoMalloc.h:
1567         * wtf/IsoMallocInlines.h:
1568
1569 2019-04-03  Don Olmstead  <don.olmstead@sony.com>
1570
1571         [CMake][WTF] Mirror XCode header directories
1572         https://bugs.webkit.org/show_bug.cgi?id=191662
1573
1574         Reviewed by Konstantin Tokarev.
1575
1576         Rename WTF forwarding header target to WTFFramework and update the install location
1577         to WTF_FRAMEWORK_HEADERS_DIR.
1578
1579         * wtf/CMakeLists.txt:
1580
1581 2019-04-03  Joseph Pecoraro  <pecoraro@apple.com>
1582
1583         Web Inspector: Remote Inspector indicate callback should always happen on the main thread
1584         https://bugs.webkit.org/show_bug.cgi?id=196513
1585         <rdar://problem/49498284>
1586
1587         Reviewed by Devin Rousso.
1588
1589         * wtf/MainThread.h:
1590         * wtf/cocoa/MainThreadCocoa.mm:
1591         (WTF::dispatchAsyncOnMainThreadWithWebThreadLockIfNeeded):
1592         * wtf/ios/WebCoreThread.cpp:
1593         * wtf/ios/WebCoreThread.h:
1594
1595 2019-04-02  Keith Rollin  <krollin@apple.com>
1596
1597         Inhibit CFNetwork logging in private sessions
1598         https://bugs.webkit.org/show_bug.cgi?id=196268
1599         <rdar://problem/48210793>
1600
1601         Fix a conditional in Platform.h where IOS should have been used
1602         instead of IOS_FAMILY. The latter happened to work, but we really want
1603         to be using the proper symbol here.
1604
1605         Reviewed by Alexey Proskuryakov.
1606
1607         * wtf/Platform.h:
1608
1609 2019-04-01  Michael Catanzaro  <mcatanzaro@igalia.com>
1610
1611         Stop trying to support building JSC with clang 3.8
1612         https://bugs.webkit.org/show_bug.cgi?id=195947
1613         <rdar://problem/49069219>
1614
1615         Reviewed by Darin Adler.
1616
1617         It seems WebKit hasn't built with clang 3.8 in a while, no devs are using this compiler, we
1618         don't know how much effort it would be to make JSC work again, and it's making the code
1619         worse. Remove my hacks to support clang 3.8 from WTF.
1620
1621         * wtf/MetaAllocator.cpp:
1622         (WTF::MetaAllocator::allocate):
1623         * wtf/text/StringConcatenate.h:
1624         (WTF::tryMakeStringFromAdapters):
1625
1626 2019-03-31  Yusuke Suzuki  <ysuzuki@apple.com>
1627
1628         [JSC] Butterfly allocation from LargeAllocation should try "realloc" behavior if collector thread is not active
1629         https://bugs.webkit.org/show_bug.cgi?id=196160
1630
1631         Reviewed by Saam Barati.
1632
1633         * wtf/FastMalloc.h:
1634         (WTF::FastMalloc::tryRealloc):
1635         * wtf/Gigacage.cpp:
1636         (Gigacage::tryRealloc):
1637         * wtf/Gigacage.h:
1638
1639 2019-03-31  Andy Estes  <aestes@apple.com>
1640
1641         [iOS] WebKit should consult the navigation response policy delegate before previewing a QuickLook document
1642         https://bugs.webkit.org/show_bug.cgi?id=196433
1643         <rdar://problem/49293305>
1644
1645         Reviewed by Tim Horton.
1646
1647         * wtf/NeverDestroyed.h:
1648         (WTF::NeverDestroyed::operator->):
1649         (WTF::NeverDestroyed::operator-> const):
1650
1651 2019-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>
1652
1653         Unreviewed build fix.
1654
1655         * wtf/CMakeLists.txt: Added SpanningTree.h to WTF_PUBLIC_HEADERS.
1656
1657 2019-03-28  Saam Barati  <sbarati@apple.com>
1658
1659         BackwardsGraph needs to consider back edges as the backward's root successor
1660         https://bugs.webkit.org/show_bug.cgi?id=195991
1661
1662         Reviewed by Filip Pizlo.
1663
1664         Previously, our backwards graph analysis was slightly wrong. The idea of
1665         backwards graph is that the root of the graph has edges to terminals in
1666         the original graph. And then the original directed edges in the graph are flipped.
1667         
1668         However, we weren't considering loops as a form of terminality. For example,
1669         we wouldn't consider an infinite loop as a terminal. So there were no edges
1670         from the root to a node in the infinite loop. This lead us to make mistakes
1671         when we used backwards dominators to compute control flow equivalence.
1672         
1673         This is better understood in an example:
1674         
1675         ```
1676         preheader:
1677         while (1) {
1678             if (!isCell(v))
1679                 continue;
1680             load structure ID
1681             if (cond)
1682                continue;
1683             return
1684         }
1685         ```
1686         
1687         In the previous version of this algorithm, the only edge from the backwards
1688         root would be to the block containing the return. This would lead us to
1689         believe that the loading of the structureID backwards dominates the preheader,
1690         leading us to believe it's control flow equivalent to preheader. This is
1691         obviously wrong, since we can loop forever if "v" isn't a cell.
1692         
1693         The solution here is to treat any backedge in the graph as a "terminal" node.
1694         Since a backedge implies the existence of a loop.
1695         
1696         In the above example, the backwards root now has an edge to both blocks with
1697         "continue". This prevents us from falsely claiming that the return is control
1698         flow equivalent with the preheader.
1699         
1700         This patch uses DFS spanning trees to compute back edges. An edge
1701         u->v is a back edge when u is a descendent of v in the DFS spanning
1702         tree of the Graph.
1703
1704         * WTF.xcodeproj/project.pbxproj:
1705         * wtf/BackwardsGraph.h:
1706         (WTF::BackwardsGraph::BackwardsGraph):
1707         * wtf/SpanningTree.h: Added.
1708         (SpanningTree::SpanningTree):
1709         (SpanningTree::isDescendent):
1710
1711 2019-03-28  Tim Horton  <timothy_horton@apple.com>
1712
1713         Un-fix the build
1714
1715         * wtf/Platform.h:
1716         It is no longer necessary to exclude this from PLATFORM(IOSMAC).
1717
1718 2019-03-27  Per Arne Vollan  <pvollan@apple.com>
1719
1720         Layout Test js/math-clz32.html is failing
1721         https://bugs.webkit.org/show_bug.cgi?id=196209
1722
1723         Reviewed by Ross Kirsling.
1724
1725         Use the correct number of loop iterations when counting leading zeros. Also, the
1726         count was off by one for the Win64 case.
1727
1728         * wtf/MathExtras.h:
1729         (WTF::clz):
1730
1731 2019-03-26  Keith Rollin  <krollin@apple.com>
1732
1733         Inhibit CFNetwork logging in private sessions
1734         https://bugs.webkit.org/show_bug.cgi?id=196268
1735         <rdar://problem/48210793>
1736
1737         Reviewed by Alex Christensen.
1738
1739         Before performing any logging, the NetworkProcess checks to see if
1740         it's performing an operation associated with a private (ephemeral)
1741         browsing session. If so, it skips the logging. However, networking
1742         layers below the NetworkProcess don't know about private browsing, so
1743         they would still perform their own logging. CFNetwork now has a flag
1744         that lets us control that, so set it to False if private browsing.
1745
1746         * wtf/Platform.h:
1747
1748 2019-03-25  Alex Christensen  <achristensen@webkit.org>
1749
1750         Expected shouldn't assume its contained types are copyable
1751         https://bugs.webkit.org/show_bug.cgi?id=195986
1752
1753         Reviewed by JF Bastien.
1754
1755         * wtf/Expected.h:
1756         (std::experimental::fundamentals_v3::__expected_detail::constexpr_base::constexpr_base):
1757         (std::experimental::fundamentals_v3::operator==):
1758         (std::experimental::fundamentals_v3::operator!=):
1759         * wtf/Unexpected.h:
1760         (std::experimental::fundamentals_v3::unexpected::unexpected):
1761
1762 2019-03-24  Keith Miller  <keith_miller@apple.com>
1763
1764         Unreviewed, forgot to refactor variable name for windows build in
1765         r243418.
1766
1767         * wtf/MathExtras.h:
1768         (WTF::clz):
1769         (WTF::ctz):
1770
1771 2019-03-24  Andy Estes  <aestes@apple.com>
1772
1773         [watchOS] Remove unused Proximity Networking code
1774         https://bugs.webkit.org/show_bug.cgi?id=196188
1775
1776         Reviewed by Tim Horton.
1777
1778         * wtf/FeatureDefines.h:
1779
1780 2019-03-23  Keith Miller  <keith_miller@apple.com>
1781
1782         Refactor clz/ctz and fix getLSBSet.
1783         https://bugs.webkit.org/show_bug.cgi?id=196162
1784
1785         Reviewed by Saam Barati.
1786
1787         This patch makes clz32/64 and ctz32 generic so they work on any
1788         numeric type. Since these methods work on any type we don't need
1789         to have a separate implementation of getLSBSet, which also
1790         happened to be getMSBSet. This patch also adds getMSBSet as there
1791         may be users who want that in the future.
1792
1793         * wtf/MathExtras.h:
1794         (WTF::clz):
1795         (WTF::ctz):
1796         (WTF::getLSBSet):
1797         (WTF::getMSBSet):
1798         (getLSBSet): Deleted.
1799         (WTF::clz32): Deleted.
1800         (WTF::clz64): Deleted.
1801         (WTF::ctz32): Deleted.
1802
1803 2019-03-22  Keith Rollin  <krollin@apple.com>
1804
1805         Enable ThinLTO support in Production builds
1806         https://bugs.webkit.org/show_bug.cgi?id=190758
1807         <rdar://problem/45413233>
1808
1809         Reviewed by Daniel Bates.
1810
1811         Enable building with Thin LTO in Production when using Xcode 10.2 or
1812         later. This change results in a 1.45% progression in PLT5. Full
1813         Production build times increase about 2-3%. Incremental build times
1814         are more severely affected, and so LTO is not enabled for local
1815         engineering builds.
1816
1817         LTO is enabled only on macOS for now, until rdar://problem/49013399,
1818         which affects ARM builds, is fixed.
1819
1820         To change the LTO setting when building locally:
1821
1822         - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
1823           command line.
1824         - If building with `build-webkit`, specify --lto-mode={none,thin,full}
1825           on the command line.
1826         - If building with `build-root`, specify --lto={none,thin,full} on the
1827           command line.
1828         - If building with Xcode, create a LocalOverrides.xcconfig file at the
1829           top level of your repository directory (if needed) and define
1830           WK_LTO_MODE to full, thin, or none.
1831
1832         * Configurations/Base.xcconfig:
1833
1834 2019-03-22  Tim Horton  <timothy_horton@apple.com>
1835
1836         Fix the build after r243354
1837
1838         * wtf/Platform.h:
1839
1840 2019-03-22  Tim Horton  <timothy_horton@apple.com>
1841
1842         Fix the build after r243354
1843         https://bugs.webkit.org/show_bug.cgi?id=196138
1844         <rdar://problem/49145951>
1845
1846         * wtf/Platform.h:
1847
1848 2019-03-21  Eric Carlson  <eric.carlson@apple.com>
1849
1850         Add UI process WebRTC runtime logging.
1851         https://bugs.webkit.org/show_bug.cgi?id=196020
1852         <rdar://problem/49071443>
1853
1854         Reviewed by Youenn Fablet.
1855
1856         * wtf/Logger.h:
1857         (WTF::LogArgument::toString): Add long long and unsigned long long variants.
1858
1859 2019-03-20  Simon Fraser  <simon.fraser@apple.com>
1860
1861         Rename ENABLE_ACCELERATED_OVERFLOW_SCROLLING macro to ENABLE_OVERFLOW_SCROLLING_TOUCH
1862         https://bugs.webkit.org/show_bug.cgi?id=196049
1863
1864         Reviewed by Tim Horton.
1865
1866         This macro is about the -webkit-overflow-scrolling CSS property, not accelerated
1867         overflow scrolling in general, so rename it.
1868
1869         * wtf/FeatureDefines.h:
1870
1871 2019-03-20  Mark Lam  <mark.lam@apple.com>
1872
1873         Open source arm64e code.
1874         https://bugs.webkit.org/show_bug.cgi?id=196012
1875         <rdar://problem/49066237>
1876
1877         Reviewed by Keith Miller.
1878
1879         * WTF.xcodeproj/project.pbxproj:
1880         * wtf/BlockPtr.h:
1881         * wtf/Platform.h:
1882         * wtf/PlatformRegisters.cpp: Added.
1883         (WTF::threadStateLRInternal):
1884         (WTF::threadStatePCInternal):
1885         * wtf/PlatformRegisters.h:
1886         * wtf/PointerPreparations.h:
1887         * wtf/PtrTag.cpp: Added.
1888         (WTF::tagForPtr):
1889         (WTF::ptrTagName):
1890         (WTF::registerPtrTagLookup):
1891         (WTF::reportBadTag):
1892         * wtf/PtrTag.h:
1893         (WTF::removeCodePtrTag):
1894         (WTF::tagCodePtrImpl):
1895         (WTF::tagCodePtr):
1896         (WTF::untagCodePtrImplHelper):
1897         (WTF::untagCodePtrImpl):
1898         (WTF::untagCodePtr):
1899         (WTF::retagCodePtrImplHelper):
1900         (WTF::retagCodePtrImpl):
1901         (WTF::retagCodePtr):
1902         (WTF::tagCFunctionPtrImpl):
1903         (WTF::tagCFunctionPtr):
1904         (WTF::untagCFunctionPtrImpl):
1905         (WTF::untagCFunctionPtr):
1906         (WTF::tagInt):
1907         (WTF::assertIsCFunctionPtr):
1908         (WTF::assertIsNullOrCFunctionPtr):
1909         (WTF::assertIsNotTagged):
1910         (WTF::assertIsTagged):
1911         (WTF::assertIsNullOrTagged):
1912         (WTF::isTaggedWith):
1913         (WTF::assertIsTaggedWith):
1914         (WTF::assertIsNullOrTaggedWith):
1915         (WTF::usesPointerTagging):
1916         (WTF::registerPtrTagLookup):
1917         (WTF::reportBadTag):
1918         (WTF::tagForPtr): Deleted.
1919
1920 2019-03-20  Keith Rollin  <krollin@apple.com>
1921
1922         Update checks that determine if WebKit is system WebKit
1923         https://bugs.webkit.org/show_bug.cgi?id=195756
1924
1925         Reviewed by Alexey Proskuryakov.
1926
1927         The system WebKit can be installed in additional locations, so check
1928         for and allow those, too.
1929
1930         * wtf/Platform.h:
1931
1932 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1933
1934         Unreviewed, further attempt to fix clang 3.8 build
1935         https://bugs.webkit.org/show_bug.cgi?id=195947
1936
1937         * wtf/MetaAllocator.cpp:
1938         (WTF::MetaAllocator::allocate):
1939
1940 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1941
1942         REGRESSION(r243115) breaks build for clang 3.8
1943         https://bugs.webkit.org/show_bug.cgi?id=195947
1944
1945         Reviewed by Chris Dumez.
1946
1947         * wtf/text/StringConcatenate.h:
1948         (WTF::tryMakeStringFromAdapters):
1949
1950 2019-03-20  Tim Horton  <timothy_horton@apple.com>
1951
1952         Add an platform-driven spell-checking mechanism
1953         https://bugs.webkit.org/show_bug.cgi?id=195795
1954
1955         Reviewed by Ryosuke Niwa.
1956
1957         * wtf/Platform.h:
1958         Add an ENABLE flag.
1959
1960 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
1961
1962         Build cleanly with GCC 9
1963         https://bugs.webkit.org/show_bug.cgi?id=195920
1964
1965         Reviewed by Chris Dumez.
1966
1967         WebKit triggers three new GCC 9 warnings:
1968
1969         """
1970         -Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
1971         declared copy constructor and assignment operator if one of them is user-provided.
1972         """
1973
1974         Solution is to either add a copy constructor or copy assignment operator, if required, or
1975         else remove one if it is redundant.
1976
1977         """
1978         -Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
1979         -Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
1980         """
1981
1982         These account for most of this patch. Solution is to just remove the bad WTFMove().
1983
1984         Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
1985         These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
1986         would be safer to not use memcpy on nontrivial types, but that's too complex for this
1987         patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)
1988
1989         * wtf/CheckedArithmetic.h:
1990         (WTF::Checked::Checked):
1991         * wtf/MetaAllocator.cpp:
1992         (WTF::MetaAllocator::allocate):
1993         * wtf/URLParser.cpp:
1994         (WTF::CodePointIterator::operator!= const):
1995         (WTF::CodePointIterator::operator=): Deleted.
1996         * wtf/text/StringView.h:
1997         (WTF::StringView::CodePoints::Iterator::operator=): Deleted.
1998
1999 2019-03-19  Alex Christensen  <achristensen@webkit.org>
2000
2001         Make WTFLogChannelState and WTFLogLevel enum classes
2002         https://bugs.webkit.org/show_bug.cgi?id=195904
2003
2004         Reviewed by Eric Carlson.
2005
2006         * wtf/Assertions.cpp:
2007         * wtf/Assertions.h:
2008         * wtf/Logger.h:
2009         (WTF::Logger::logAlways const):
2010         (WTF::Logger::error const):
2011         (WTF::Logger::warning const):
2012         (WTF::Logger::info const):
2013         (WTF::Logger::debug const):
2014         (WTF::Logger::willLog const):
2015         (WTF::Logger::log):
2016         * wtf/MemoryPressureHandler.cpp:
2017         * wtf/RefCountedLeakCounter.cpp:
2018
2019 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
2020
2021         Unreviewed, rolling out r243132.
2022
2023         Broke GTK build
2024
2025         Reverted changeset:
2026
2027         "Make WTFLogChannelState and WTFLogLevel enum classes"
2028         https://bugs.webkit.org/show_bug.cgi?id=195904
2029         https://trac.webkit.org/changeset/243132
2030
2031 2019-03-18  Alex Christensen  <achristensen@webkit.org>
2032
2033         Make WTFLogChannelState and WTFLogLevel enum classes
2034         https://bugs.webkit.org/show_bug.cgi?id=195904
2035
2036         Reviewed by Eric Carlson.
2037
2038         * wtf/Assertions.cpp:
2039         * wtf/Assertions.h:
2040         * wtf/Logger.h:
2041         (WTF::Logger::logAlways const):
2042         (WTF::Logger::error const):
2043         (WTF::Logger::warning const):
2044         (WTF::Logger::info const):
2045         (WTF::Logger::debug const):
2046         (WTF::Logger::willLog const):
2047         (WTF::Logger::log):
2048         * wtf/MemoryPressureHandler.cpp:
2049         * wtf/RefCountedLeakCounter.cpp:
2050
2051 2019-03-18  Darin Adler  <darin@apple.com>
2052
2053         Cut down on use of StringBuffer, possibly leading toward removing it entirely
2054         https://bugs.webkit.org/show_bug.cgi?id=195870
2055
2056         Reviewed by Daniel Bates.
2057
2058         * wtf/URL.cpp: Remove a now-inaccurate comment mentioning StringBuffer.
2059
2060         * wtf/text/StringView.cpp:
2061         (WTF::convertASCIICase): Use createUninitialized instead of StringBuffer.
2062
2063 2019-03-18  Xan Lopez  <xan@igalia.com>
2064
2065         [WTF] Remove redundant std::move in StringConcatenate
2066         https://bugs.webkit.org/show_bug.cgi?id=195798
2067
2068         Reviewed by Darin Adler.
2069
2070         Remove redundant calls to WTFMove in return values for this
2071         method. C++ will already do an implicit move here since we are
2072         returning a local value where copy/move elision is not applicable.
2073
2074         * wtf/text/StringConcatenate.h:
2075         (WTF::tryMakeStringFromAdapters):
2076
2077 2019-03-16  Darin Adler  <darin@apple.com>
2078
2079         Improve normalization code, including moving from unorm.h to unorm2.h
2080         https://bugs.webkit.org/show_bug.cgi?id=195330
2081
2082         Reviewed by Michael Catanzaro.
2083
2084         * wtf/URLHelpers.cpp: Removed unneeded include of unorm.h since the
2085         normalization code is now in StringView.cpp.
2086         (WTF::URLHelpers::escapeUnsafeCharacters): Renamed from
2087         createStringWithEscapedUnsafeCharacters since it now only creates
2088         a new string if one is needed. Use unsigned for string lengths, since
2089         that's what WTF::String uses, not size_t. Added a first loop so that
2090         we can return the string unmodified if no lookalike characters are
2091         found. Removed unnecessary round trip from UTF-16 and then back in
2092         the case where the character is not a lookalike.
2093         (WTF::URLHelpers::toNormalizationFormC): Deleted. Moved this logic
2094         into the WTF::normalizedNFC function in StringView.cpp.
2095         (WTF::URLHelpers::userVisibleURL): Call escapeUnsafeCharacters and
2096         normalizedNFC. The normalizedNFC function is better in multiple ways,
2097         but primarily it handles 8-bit strings and other already-normalized
2098         strings much more efficiently.
2099
2100         * wtf/text/StringView.cpp:
2101         (WTF::normalizedNFC): Added. This has two overloads. One is for when
2102         we already have a String, and want to re-use it if no normalization
2103         is needed, and another is when we only have a StringView, and may need
2104         to allocate a String to hold the result. Includes a fast special case
2105         for 8-bit and already-normalized strings, and uses the same strategy
2106         that JSC::normalize was already using: calls unorm2_normalize twice,
2107         first just to determine the length.
2108
2109         * wtf/text/StringView.h: Added normalizedNFC, which can be called with
2110         either a StringView or a String. Also moved StringViewWithUnderlyingString
2111         here from JSString.h, here for use as the return value of normalizedNFC;
2112         it is used for a similar purpose in the JavaScriptCore rope implementation.
2113         Also removed an inaccurate comment.
2114
2115 2019-03-16  Diego Pino Garcia  <dpino@igalia.com>
2116
2117         [GTK] [WPE] Fix compilation errors due to undefined ALWAYS_LOG_IF
2118         https://bugs.webkit.org/show_bug.cgi?id=195850
2119
2120         Unreviewed build fix after r243033. 
2121
2122         * wtf/LoggerHelper.h:
2123
2124 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
2125
2126         [iOS] Block the accessibility server when accessibility is not enabled.
2127         https://bugs.webkit.org/show_bug.cgi?id=195342
2128
2129         Reviewed by Brent Fulgham.
2130
2131         Add SPI to issue a mach extension to a process by pid. Also, add a macro for
2132         the availability of this SPI.
2133
2134         * wtf/Platform.h:
2135         * wtf/spi/darwin/SandboxSPI.h:
2136
2137 2019-03-15  Eric Carlson  <eric.carlson@apple.com>
2138
2139         Add media stream release logging
2140         https://bugs.webkit.org/show_bug.cgi?id=195823
2141
2142         Reviewed by Youenn Fablet.
2143
2144         * wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging.
2145
2146 2019-03-15  Truitt Savell  <tsavell@apple.com>
2147
2148         Unreviewed, rolling out r243008.
2149
2150         This revision broke High Sierra builders
2151
2152         Reverted changeset:
2153
2154         "[iOS] Block the accessibility server when accessibility is
2155         not enabled."
2156         https://bugs.webkit.org/show_bug.cgi?id=195342
2157         https://trac.webkit.org/changeset/243008
2158
2159 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
2160
2161         [iOS] Block the accessibility server when accessibility is not enabled.
2162         https://bugs.webkit.org/show_bug.cgi?id=195342
2163
2164         Reviewed by Brent Fulgham.
2165
2166         Add SPI to issue a mach extension to a process by pid.
2167
2168         * wtf/spi/darwin/SandboxSPI.h:
2169
2170 2019-03-13  Sam Weinig  <sam@webkit.org>
2171
2172         Add utility function to allow easy reverse range-based iteration of a container
2173         https://bugs.webkit.org/show_bug.cgi?id=195542
2174
2175         Reviewed by Antti Koivisto.
2176
2177         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
2178         works with any container that is compatible with std::rbegin() and std::rend(). It is
2179         expected to be used in conjunction with range-based for-loops like so:
2180
2181         for (auto& value : WTF::makeReversedRange(myContainer)) 
2182             ...
2183
2184         * wtf/IteratorRange.h:
2185         (WTF::makeReversedRange):
2186
2187 2019-03-13  Keith Rollin  <krollin@apple.com>
2188
2189         Add support for new StagedFrameworks layout
2190         https://bugs.webkit.org/show_bug.cgi?id=195543
2191
2192         Reviewed by Alexey Proskuryakov.
2193
2194         Opportunistic cleanup: remove unused JAVASCRIPTCORE_FRAMEWORKS_DIR
2195         variable.
2196
2197         * Configurations/Base.xcconfig:
2198
2199 2019-03-13  Dominik Infuehr  <dinfuehr@igalia.com>
2200
2201         String overflow when using StringBuilder in JSC::createError
2202         https://bugs.webkit.org/show_bug.cgi?id=194957
2203
2204         Reviewed by Mark Lam.
2205
2206         When calculating the new capacity of a StringBuilder object,
2207         use a limit of MaxLength instead of MaxLength+1.  Allocating
2208         a string of size MaxLength+1 always fails. This means that expanding
2209         a StringBuilder only worked when the newly doubled capacity is less or
2210         equal to MaxLength.
2211
2212         * wtf/text/StringBuilder.cpp:
2213
2214 2019-03-13  Chris Dumez  <cdumez@apple.com>
2215
2216         Better build fix after r242901.
2217
2218         Reviewed by Jer Noble.
2219
2220         * wtf/Logger.h:
2221         (WTF::LogArgument::toString):
2222
2223 2019-03-13  Jer Noble  <jer.noble@apple.com>
2224
2225         Add AggregateLogger, a Logger specialization for singleton classes.
2226         https://bugs.webkit.org/show_bug.cgi?id=195644
2227
2228         Reviewed by Eric Carlson.
2229
2230         Add a new class, AggregateLogger, which will log messages to each of its aggregated loggers.
2231
2232         Drive-by fixes: allow "const void*" to be directly logged by converting the pointer to a hex string.
2233
2234         * WTF.xcodeproj/project.pbxproj:
2235         * wtf/AggregateLogger.h: Added.
2236         (WTF::AggregateLogger::create):
2237         (WTF::AggregateLogger::addLogger):
2238         (WTF::AggregateLogger::removeLogger):
2239         (WTF::AggregateLogger::logAlways const):
2240         (WTF::AggregateLogger::error const):
2241         (WTF::AggregateLogger::warning const):
2242         (WTF::AggregateLogger::info const):
2243         (WTF::AggregateLogger::debug const):
2244         (WTF::AggregateLogger::willLog const):
2245         (WTF::AggregateLogger::AggregateLogger):
2246         (WTF::AggregateLogger::log const):
2247         * wtf/CMakeLists.h:
2248         * wtf/Logger.cpp:
2249         (WTF::>::toString):
2250         * wtf/Logger.h:
2251
2252 2019-03-12  Commit Queue  <commit-queue@webkit.org>
2253
2254         Unreviewed, rolling out r242747.
2255         https://bugs.webkit.org/show_bug.cgi?id=195641
2256
2257         Performance measurement is difficult in this period, rolling
2258         out it and rolling in later to isolate it from the other
2259         sensitive patches (Requested by yusukesuzuki on #webkit).
2260
2261         Reverted changeset:
2262
2263         "[JSC] Make StaticStringImpl & StaticSymbolImpl actually
2264         static"
2265         https://bugs.webkit.org/show_bug.cgi?id=194212
2266         https://trac.webkit.org/changeset/242747
2267
2268 2019-03-12  Robin Morisset  <rmorisset@apple.com>
2269
2270         A lot more classes have padding that can be reduced by reordering their fields
2271         https://bugs.webkit.org/show_bug.cgi?id=195579
2272
2273         Reviewed by Mark Lam.
2274
2275         * wtf/CrossThreadQueue.h:
2276         * wtf/Logger.h:
2277         * wtf/MemoryPressureHandler.h:
2278         * wtf/MetaAllocator.h:
2279         * wtf/Threading.cpp:
2280
2281 2019-03-11  Alex Christensen  <achristensen@webkit.org>
2282
2283         WTF::Expected should use std::addressof instead of operator&
2284         https://bugs.webkit.org/show_bug.cgi?id=195604
2285
2286         Reviewed by Myles Maxfield.
2287
2288         The latter was causing problems with types that do tricky things with constructors and operator&,
2289         specifically UniqueRef but I made a reduced test case.  When it used operator&, it would get the contained
2290         type and call the constructor that takes a contained type instead of the move constructor.
2291
2292         * wtf/Expected.h:
2293         (std::experimental::fundamentals_v3::__expected_detail::base::base):
2294         (std::experimental::fundamentals_v3::expected::swap):
2295
2296 2019-03-11  Ross Kirsling  <ross.kirsling@sony.com>
2297
2298         Add Optional to Forward.h.
2299         https://bugs.webkit.org/show_bug.cgi?id=195586
2300
2301         Reviewed by Darin Adler.
2302
2303         * wtf/Forward.h:
2304         Add forward declaration for Optional.
2305
2306         * wtf/CPUTime.h:
2307         * wtf/Expected.h:
2308         * wtf/MainThread.h:
2309         * wtf/MemoryFootprint.h:
2310         * wtf/URLHelpers.cpp:
2311         * wtf/URLHelpers.h:
2312         * wtf/cocoa/CPUTimeCocoa.cpp:
2313         * wtf/fuchsia/CPUTimeFuchsia.cpp:
2314         * wtf/unix/CPUTimeUnix.cpp:
2315         * wtf/win/CPUTimeWin.cpp:
2316         Remove unnecessary includes from headers.
2317
2318 2019-03-11  Andy Estes  <aestes@apple.com>
2319
2320         [Apple Pay] Use PKPaymentAuthorizationController to present the Apple Pay UI remotely from the Networking service on iOS
2321         https://bugs.webkit.org/show_bug.cgi?id=195530
2322         <rdar://problem/48747164>
2323
2324         Reviewed by Alex Christensen.
2325
2326         * wtf/FeatureDefines.h: Defined ENABLE_APPLE_PAY_REMOTE_UI.
2327
2328 2019-03-11  Yusuke Suzuki  <ysuzuki@apple.com>
2329
2330         [JSC] Make StaticStringImpl & StaticSymbolImpl actually static
2331         https://bugs.webkit.org/show_bug.cgi?id=194212
2332
2333         Reviewed by Mark Lam.
2334
2335         Avoid mutation onto refcounts if `isStatic()` returns true so that the content of StaticStringImpl never gets modified.
2336
2337         * wtf/text/StringImpl.h:
2338         (WTF::StringImpl::ref):
2339         (WTF::StringImpl::deref):
2340
2341 2019-03-11  Sihui Liu  <sihui_liu@apple.com>
2342
2343         Crash under WebCore::IDBDatabase::connectionToServerLost
2344         https://bugs.webkit.org/show_bug.cgi?id=195563
2345         <rdar://problem/37193655>
2346
2347         CrossThreadTask should protect callee if it is ThreadSafeRefCounted.
2348
2349         Reviewed by Geoffrey Garen.
2350
2351         * wtf/CrossThreadTask.h:
2352         (WTF::createCrossThreadTask):
2353
2354 2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>
2355
2356         Unreviewed, rolling out r242688, r242643, r242624.
2357
2358         Caused multiple layout test failures and crashes on iOS and macOS.
2359
2360         Reverted changeset:
2361
2362         "requestAnimationFrame should execute before the next frame"
2363         https://bugs.webkit.org/show_bug.cgi?id=177484
2364         https://trac.webkit.org/changeset/242624/webkit
2365
2366         * wtf/SystemTracing.h:
2367
2368 2019-03-11  Darin Adler  <darin@apple.com>
2369
2370         Specify fixed precision explicitly to prepare to change String::number and StringBuilder::appendNumber floating point behavior
2371         https://bugs.webkit.org/show_bug.cgi?id=195533
2372
2373         Reviewed by Brent Fulgham.
2374
2375         Soon, we will change String::number and StringBuilder::appendNumber for floating
2376         point to use "shortest form" serialization instead of the current default, which is
2377         "6-digit fixed precision stripping trailing zeros". To prepare to do this safely
2378         without accidentally changing any behavior, changing callers to call the explicit
2379         versions. Later, we may want to return and change many of them to use shortest form
2380         instead, but that may require rebaselining tests, and in some extreme cases, getting
2381         rid of flawed logic that converts between different single and double precision
2382         floating point; such problems may be hidden by fixed precision serialization.
2383
2384         Since "shortest form" is already the behavior for AtomicString::number and
2385         for makeString, no changes required for clients of either of those.
2386
2387         * wtf/Logger.h:
2388         (WTF::LogArgument::toString): Use numberToStringFixedPrecision.
2389         * wtf/MediaTime.cpp:
2390         (WTF::MediaTime::toString const): Use appendFixedPrecisionNumber.
2391         * wtf/text/ValueToString.h:
2392         (WTF::ValueToString<float>::string): Use numberToStringFixedPrecision.
2393         (WTF::ValueToString<double>::string): Ditto.
2394
2395 2019-03-11  Truitt Savell  <tsavell@apple.com>
2396
2397         Unreviewed, rolling out r242702.
2398
2399         Broke High Sierra builders.
2400
2401         Reverted changeset:
2402
2403         "Add utility function to allow easy reverse range-based
2404         iteration of a container"
2405         https://bugs.webkit.org/show_bug.cgi?id=195542
2406         https://trac.webkit.org/changeset/242702
2407
2408 2019-03-11  Sam Weinig  <sam@webkit.org>
2409
2410         Add utility function to allow easy reverse range-based iteration of a container
2411         https://bugs.webkit.org/show_bug.cgi?id=195542
2412
2413         Reviewed by Antti Koivisto.
2414
2415         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
2416         works with any container that is compatible with std::rbegin() and std::rend(). It is
2417         expected to be used in conjunction with range-based for-loops like so:
2418
2419         for (auto& value : WTF::makeReversedRange(myContainer)) 
2420             ...
2421
2422         * wtf/IteratorRange.h:
2423         (WTF::makeReversedRange):
2424
2425 2019-03-10  Yusuke Suzuki <utatane.tea@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
2426
2427         [WTF] Align assumption in RunLoopWin to the other platform's RunLoop
2428         https://bugs.webkit.org/show_bug.cgi?id=181151
2429
2430         Reviewed by Don Olmstead.
2431
2432         This patch fixes RunLoop in Windows to align it to the implementations in the other platforms
2433         to use RunLoop more aggressively.
2434
2435         * wtf/RunLoop.h:
2436         (WTF::RunLoop::Timer::Timer):
2437         * wtf/win/MainThreadWin.cpp:
2438         (initializeMainThreadPlatform): Call RunLoop::registerRunLoopMessageWindowClass.
2439         * wtf/win/RunLoopWin.cpp:
2440         (WTF::RunLoop::wndProc):
2441         (WTF::RunLoop::iterate):
2442         (WTF::RunLoop::stop):
2443         PostQuitMessage is only available in the RunLoop's thread. We should post a message and call
2444         it inside this task.
2445
2446         (WTF::RunLoop::registerRunLoopMessageWindowClass):
2447         Changed the return type from bool to void, and added RELEASE_ASSERT to check the return value of RegisterClass.
2448
2449         (WTF::RunLoop::~RunLoop):
2450         When the RunLoop's thread is freed, its associated window is freed. We do not need to do here.
2451
2452         (WTF::RunLoop::TimerBase::timerFired):
2453         (WTF::RunLoop::TimerBase::TimerBase):
2454         (WTF::RunLoop::TimerBase::start):
2455         (WTF::RunLoop::TimerBase::stop):
2456         (WTF::RunLoop::TimerBase::isActive const):
2457         (WTF::RunLoop::TimerBase::secondsUntilFire const):
2458         (WTF::generateTimerID): Deleted.
2459         We can use TimerBase's pointer as ID since it is uintptr_t.
2460
2461 2019-03-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
2462
2463         requestAnimationFrame should execute before the next frame
2464         https://bugs.webkit.org/show_bug.cgi?id=177484
2465
2466         Reviewed by Simon Fraser.
2467
2468         Add trace points for the page RenderingUpdate.
2469
2470         * wtf/SystemTracing.h:
2471
2472 2019-03-06  Ross Kirsling  <ross.kirsling@sony.com>
2473
2474         [Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
2475         https://bugs.webkit.org/show_bug.cgi?id=195346
2476
2477         Reviewed by Fujii Hironori.
2478
2479         * wtf/PlatformWin.cmake:
2480         * wtf/text/AtomicString.h:
2481         (WTF::AtomicString::AtomicString):
2482         * wtf/text/WTFString.h:
2483         (WTF::String::String):
2484         * wtf/text/win/StringWin.cpp: Added.
2485         (WTF::String::wideCharacters const): Renamed from WTF::stringToNullTerminatedWChar.
2486         * wtf/text/win/WCharStringExtras.h:
2487         (WTF::ucharFrom):
2488         (WTF::wcharFrom):
2489         (WTF::stringToNullTerminatedWChar): Deleted.
2490         (WTF::wcharToString): Deleted.
2491         (WTF::nullTerminatedWCharToString): Deleted.
2492         Add static_assert-guarded reinterpret_cast wrappers for going between UChar* and wchar_t*.
2493         Move existing to/from-String helpers into the String (and AtomicString) class(es).
2494
2495         * wtf/win/FileSystemWin.cpp:
2496         (WTF::FileSystemImpl::getFindData):
2497         (WTF::FileSystemImpl::getFinalPathName):
2498         (WTF::FileSystemImpl::createSymbolicLink):
2499         (WTF::FileSystemImpl::deleteFile):
2500         (WTF::FileSystemImpl::deleteEmptyDirectory):
2501         (WTF::FileSystemImpl::moveFile):
2502         (WTF::FileSystemImpl::pathByAppendingComponent):
2503         (WTF::FileSystemImpl::fileSystemRepresentation):
2504         (WTF::FileSystemImpl::makeAllDirectories):
2505         (WTF::FileSystemImpl::pathGetFileName):
2506         (WTF::FileSystemImpl::storageDirectory):
2507         (WTF::FileSystemImpl::generateTemporaryPath):
2508         (WTF::FileSystemImpl::openTemporaryFile):
2509         (WTF::FileSystemImpl::openFile):
2510         (WTF::FileSystemImpl::hardLinkOrCopyFile):
2511         (WTF::FileSystemImpl::deleteNonEmptyDirectory):
2512         * wtf/win/LanguageWin.cpp:
2513         (WTF::localeInfo):
2514         * wtf/win/PathWalker.cpp:
2515         (WTF::PathWalker::PathWalker):
2516         Use wchar helpers as needed.
2517
2518 2019-02-28  Ryosuke Niwa  <rniwa@webkit.org>
2519
2520         Add WeakHashSet
2521         https://bugs.webkit.org/show_bug.cgi?id=195152
2522
2523         Reviewed by Antti Koivisto.
2524
2525         Added WeakHashSet which is a HashSet of WeakPtr. When the object pointed by WeakPtr is deleted,
2526         WeakHashSet treats the key to be no longer in the set. That is, WeakHashSet::contains returns false
2527         and const_iterator skips such a WeakPtr in the set.
2528
2529         We decided not to make HashSet<WeahPtr<T>> work because it involves weird semantics such as making
2530         find(X) delete the table entry as remove(find(X)) would be a no-op otherwise as find(X) would return
2531         necessarily need to return HashSet<WeakPtr<T>>::end().
2532
2533         Furthermore, we cannot determine the true size of this set in O(1) because the objected pointed by
2534         some of WeakPtr in the set may have already been deleted. This has implications that we can't have
2535         size(), isEmpty(), random(), etc... as O(1) operation.
2536
2537         WeakHashSet is implemented as HashSet<WeakReference<T>>. HashTable::rehash has been updated to delete
2538         WeakReference<T>'s whose m_ptr has become null, and HashTable::expand first deletes any such entry
2539         before deciding an actual expansion is needed. This is accomplished via newly added hash trait,
2540         hasIsReleasedWeakValueFunction, and HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue which
2541         returns true for when WeakReference<T> pointed by Ref<WeakReference<T>> has null m_ptr, not to be
2542         confused with Ref<WeakReference<T>> itself pointing to a null WeakReference<T>.
2543
2544         * WTF.xcodeproj/project.pbxproj:
2545         * wtf/CMakeLists.txt:
2546         * wtf/Forward.h:
2547         * wtf/HashSet.h:
2548         (WTF::HashSet<T, U, V>::checkConsistency const): Added.
2549         * wtf/HashTable.h:
2550         (WTF::HashTable::isReleasedWeakBucket): Added.
2551         (WTF::HashTable::expand): Delete WeakReference<T> with null m_ptr first. This updates m_keyCount
2552         and may make mustRehashInPlace() return true.
2553         (WTF::HashTable::deleteReleasedWeakBuckets): Added.
2554         (WTF::HashTable::rehash): Delete WeakReference<T> with null m_ptr. Also refactored the code a bit
2555         to avoid keep repeating oldTable[i].
2556         * wtf/HashTraits.h:
2557         (WTF::HashTraits<T>::isHashTraitsReleasedWeakValue): Added.
2558         (WTF::RefHashTraits<T>): Extracted from HashTraits<Ref<P>> to share code with
2559         HashTraits<Ref<WeakReference<T>>>.
2560         (WTF::HashTraitsReleasedWeakValueChecker<Traits, hasIsReleasedWeakValueFunction>): Added.
2561         (WTF::isHashTraitsReleasedWeakValue<Traits, hasIsReleasedWeakValueFunction>): Added.
2562         * wtf/WeakHashSet.h: Added.
2563         (WTF::WeakHashSet): Added.
2564         (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
2565         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
2566         (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const):
2567         (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const):
2568         (WTF::WeakHashSet::WeakHashSetConstIterator::operator++):
2569         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
2570         (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const):
2571         (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const):
2572         (WTF::WeakHashSet::WeakHashSet):
2573         (WTF::WeakHashSet::begin const):
2574         (WTF::WeakHashSet::end const):
2575         (WTF::WeakHashSet::add):
2576         (WTF::WeakHashSet::remove):
2577         (WTF::WeakHashSet::contains const):
2578         (WTF::WeakHashSet::capacity const):
2579         (WTF::WeakHashSet::computeSize const): Deletes any WeakReference<T> with null m_ptr first.
2580         (WTF::WeakHashSet::checkConsistency const):
2581         (WTF::HashTraits<Ref<WeakReference<T>>>): Added. This hash traits triggers the new code in HashTable's
2582         expand and rehash methods to delete WeakReference<T> with null m_ptr.
2583         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue):
2584         * wtf/WeakPtr.h:
2585         (WTF::WeakReference::~WeakReference): Added so that we can keep track the number of live WeakReference
2586         in API tests by template specializations.
2587
2588 2019-03-03  Darin Adler  <darin@apple.com>
2589
2590         Prepare to improve handling of conversion of float to strings
2591         https://bugs.webkit.org/show_bug.cgi?id=195262
2592
2593         Reviewed by Daniel Bates.
2594
2595         * wtf/dtoa.cpp:
2596         (WTF::truncateTrailingZeros): Renamed from
2597         formatStringTruncatingTrailingZerosIfNeeded and removed the calls
2598         to double_conversion::StringBuilder::Finalizer, since the caller
2599         already does that.
2600         (WTF::numberToFixedPrecisionString): Added an overload for float
2601         and updated to use the new truncateTrailingZeros.
2602         (WTF::numberToFixedWidthString): Added an overload for float.
2603
2604         * wtf/text/AtomicString.cpp:
2605         (WTF::AtomicString::number): Added float overload. This is a
2606         behavior change, but in all cases for the better. The old behavior
2607         was to convert to double first and then do "shortest form"
2608         conversion, and it's always better to just do that as float.
2609         * wtf/text/AtomicString.h: Added float overload of AtomicString::number.
2610
2611         * wtf/text/StringBuilder.cpp:
2612         (WTF::StringBuilder::appendFixedPrecisionNumber): Added float
2613         overload.
2614         (WTF::StringBuilder::appendShortestFormNumber): Renamed from
2615         appendECMAScriptNumber and did the above.
2616         (WTF::StringBuilder::appendFixedWidthNumber): Ditto.
2617         * wtf/text/StringBuilder.h: Added overloads for float and
2618         appendShortestFormNumber. The appendNumber and appendECMAScriptNumber
2619         functions are now inlines in the header, since they are expressed
2620         entirely in terms of the other functions.
2621
2622         * wtf/text/WTFString.cpp:
2623         (WTF::String::numberToStringFixedPrecision): Added float overload.
2624         Removed unnecessary explicit conversion to String.
2625         (WTF::String::numberToStringShortest): Renamed from
2626         numberToStringECMAScript and did the above.
2627         (WTF::String::numberToStringFixedWidth): Ditto.
2628
2629         * wtf/text/WTFString.h: Added overloads for float and
2630         numberToStringShortest. The number and numberToStringECMAScript
2631         functions are now inlines in the header, since they are expressed
2632         entirely in terms of the other functions.
2633
2634 2019-03-04  Andy Estes  <aestes@apple.com>
2635
2636         [Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
2637         https://bugs.webkit.org/show_bug.cgi?id=195080
2638         <rdar://problem/48421558>
2639
2640         Reviewed by Antti Koivisto.
2641
2642         * wtf/FeatureDefines.h:
2643
2644 2019-03-04  Michael Catanzaro  <mcatanzaro@igalia.com>
2645
2646         URLHelpers should use unorm2_quickCheck before converting to NFC
2647         https://bugs.webkit.org/show_bug.cgi?id=194272
2648
2649         Reviewed by Darin Adler.
2650
2651         If the string is already in normalization form C, don't try to normalize it.
2652
2653         * wtf/URLHelpers.cpp:
2654         (WTF::URLHelpers::toNormalizationFormC):
2655
2656 2019-03-02  Darin Adler  <darin@apple.com>
2657
2658         Retire legacy dtoa function and DecimalNumber class
2659         https://bugs.webkit.org/show_bug.cgi?id=195253
2660
2661         Reviewed by Daniel Bates.
2662
2663         * WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
2664         * wtf/CMakeLists.txt: Ditto.
2665
2666         * wtf/DecimalNumber.cpp: Removed.
2667         * wtf/DecimalNumber.h: Removed.
2668
2669         * wtf/JSONValues.cpp:
2670         (WTF::JSONImpl::Value::writeJSON const): Use
2671         StringBuilder::appendECMAScriptNumber instead of custom logic
2672         using the DecimalNumber class.
2673
2674         * wtf/dtoa.cpp:
2675         (WTF::storeInc): Deleted.
2676         (WTF::BigInt): Deleted.
2677         (WTF::multadd): Deleted.
2678         (WTF::hi0bits): Deleted.
2679         (WTF::lo0bits): Deleted.
2680         (WTF::i2b): Deleted.
2681         (WTF::mult): Deleted.
2682         (WTF::P5Node::P5Node): Deleted.
2683         (WTF::pow5mult): Deleted.
2684         (WTF::lshift): Deleted.
2685         (WTF::cmp): Deleted.
2686         (WTF::diff): Deleted.
2687         (WTF::d2b): Deleted.
2688         (WTF::quorem): Deleted.
2689         (WTF::dtoa): Deleted.
2690
2691         * wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.
2692
2693 2019-02-27  Darin Adler  <darin@apple.com>
2694
2695         Fixed makeString(float) to do shortest-form serialization without first converting to double
2696         https://bugs.webkit.org/show_bug.cgi?id=195142
2697
2698         Reviewed by Daniel Bates.
2699
2700         * wtf/DecimalNumber.cpp: Removed unneeded includes.
2701
2702         * wtf/DecimalNumber.h: Removed unused constructors; over time we will be
2703         deprecating DecimalNumber, so we should removed the unused parts. Also
2704         marked the constructor explicit, removed types used only for arguments for
2705         the constructors, and removed the sign, exponent, significand, and precision
2706         member functions.
2707
2708         * wtf/JSONValues.cpp:
2709         (WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
2710         switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
2711         std::array instead of C arrays.
2712
2713         * wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.
2714         (WTF::dtoa): Updated to use std::array instead of C arrays.
2715         (WTF::dtoaRoundSF): Removed.
2716         (WTF::dtoaRoundDP): Removed.
2717         (WTF::numberToString): Added an overload for float and updated to use std::array.
2718         (WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
2719         (WTF::numberToFixedPrecisionString): Ditto.
2720         (WTF::numberToFixedWidthString): Ditto.
2721
2722         * wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the
2723         array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
2724         Added float overloads for numberToString, numberToFixedPrecisionString,
2725         and numberToFixedWidthString. The only one of these that is called at this
2726         time is numberToString, called by the floating point StringTypeAdapter in
2727         StringConcatenateNummbers.h.
2728
2729         * wtf/text/StringConcatenateNumbers.h: Updated for std::array.
2730
2731 2019-03-01  Darin Adler  <darin@apple.com>
2732
2733         Finish removing String::format
2734         https://bugs.webkit.org/show_bug.cgi?id=194893
2735
2736         Reviewed by Daniel Bates.
2737
2738         * wtf/Assertions.cpp:
2739         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
2740         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
2741
2742         * wtf/HexNumber.h: Deleted unneeded toString function.
2743
2744         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
2745         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
2746         a bit. Use function templates for writeTo functions rather than having two of each.
2747         Removed unused toString functions. Optimized case where we use have a UChar* and
2748         a length of zero to not force the result to be 16-bit. Also gets rid of a small
2749         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
2750         static member helper functions to compute string lengths. Added the pad function
2751         and the PaddingSpecification struct template, so we can add padding to anything
2752         we can turn into a string. Got rid of the special case overload for single
2753         arguments, since it only worked for things that the String constructor can handle.
2754         Instead we will now use StringTypeAdapter, which works for more types. Possibly
2755         less optimal for some special cases, which we could specialize for later if we like.
2756         * wtf/text/StringConcatenateNumbers.h: Ditto.
2757         * wtf/text/StringOperators.h: Ditto.
2758         * wtf/text/StringView.h: Ditto.
2759
2760         * wtf/text/WTFString.cpp:
2761         (WTF::createWithFormatAndArguments): Deleted.
2762         (WTF::String::format): Deleted.
2763         * wtf/text/WTFString.h: Deleted declaration of String::format.
2764
2765 2019-03-01  Alex Christensen  <achristensen@webkit.org>
2766
2767         Revert r241223, r241235, and r241287
2768         https://bugs.webkit.org/show_bug.cgi?id=194427
2769         <rdar://48045861>
2770
2771         * wtf/spi/darwin/XPCSPI.h:
2772
2773 2019-03-01  Simon Fraser  <simon.fraser@apple.com>
2774
2775         Add a system trace scope for event region building
2776         https://bugs.webkit.org/show_bug.cgi?id=195226
2777
2778         Reviewed by Jon Lee.
2779
2780         This trace scope measures the time spend converting element rects into Region objects,
2781         which can be large on some pages.
2782
2783         The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.
2784
2785         * wtf/SystemTracing.h:
2786
2787 2019-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
2788
2789         [JSC] sizeof(JSString) should be 16
2790         https://bugs.webkit.org/show_bug.cgi?id=194375
2791
2792         Reviewed by Saam Barati.
2793
2794         * wtf/text/StringImpl.h:
2795         (WTF::StringImpl::flagIs8Bit):
2796         (WTF::StringImpl::flagIsAtomic):
2797         (WTF::StringImpl::flagIsSymbol):
2798         (WTF::StringImpl::maskStringKind):
2799         * wtf/text/WTFString.cpp:
2800         (WTF::nullString):
2801         * wtf/text/WTFString.h:
2802
2803 2019-02-28  Mark Lam  <mark.lam@apple.com>
2804
2805         Change CheckedArithmetic to not use std::enable_if_t.
2806         https://bugs.webkit.org/show_bug.cgi?id=195187
2807         <rdar://problem/48464665>
2808
2809         Reviewed by Keith Miller.
2810
2811         Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.
2812
2813         * wtf/CheckedArithmetic.h:
2814
2815 2019-02-27  Simon Fraser  <simon.fraser@apple.com>
2816
2817         Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)
2818
2819         * wtf/Assertions.cpp:
2820         (WTF::createWithFormatAndArguments): Deleted.
2821         * wtf/HexNumber.h:
2822         (WTF::StringTypeAdapter<HexNumberBuffer>::toString const):
2823         * wtf/text/StringConcatenate.h:
2824         (WTF::makeString):
2825         (WTF::pad): Deleted.
2826         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
2827         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
2828         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
2829         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.
2830         * wtf/text/StringConcatenateNumbers.h:
2831         (WTF::FormattedNumber::fixedPrecision):
2832         (WTF::FormattedNumber::fixedWidth):
2833         (WTF::StringTypeAdapter<FormattedNumber>::toString const):
2834         * wtf/text/StringOperators.h:
2835         (WTF::StringAppend::StringAppend):
2836         * wtf/text/StringView.h:
2837         (WTF::StringView::invalidate):
2838         * wtf/text/WTFString.cpp:
2839         (WTF::createWithFormatAndArguments):
2840         (WTF::String::format):
2841         * wtf/text/WTFString.h:
2842
2843 2019-02-26  Mark Lam  <mark.lam@apple.com>
2844
2845         Remove remaining poisoning code.
2846         https://bugs.webkit.org/show_bug.cgi?id=194138
2847
2848         Reviewed by Saam Barati.
2849
2850         This patch removes the instantiation of Poisoned variants of the various containers
2851         but retains the ability of those containers to work with pointer traits.  This
2852         allows us to use them with smart pointers in the future (just like we used to with
2853         Poisoned values).  At minimum, this ability will be useful when we want to insert
2854         an observer into the container storage type for debugging purposes, or to collect
2855         statistics for profiling.
2856
2857         * WTF.xcodeproj/project.pbxproj:
2858         * wtf/Bag.h:
2859         * wtf/CMakeLists.txt:
2860         * wtf/Platform.h:
2861         * wtf/Poisoned.cpp: Removed.
2862         * wtf/Poisoned.h: Removed.
2863         * wtf/PoisonedUniquePtr.h: Removed.
2864         * wtf/Ref.h:
2865         * wtf/RefCountedArray.h:
2866         * wtf/RefPtr.h:
2867         * wtf/WTFAssertions.cpp:
2868
2869 2019-02-26  Keith Miller  <keith_miller@apple.com>
2870
2871         Code quality cleanup in NeverDestroyed
2872         https://bugs.webkit.org/show_bug.cgi?id=194824
2873
2874         Reviewed by Yusuke Suzuki.
2875
2876         First, move data members to the end of the class per WebKit
2877         style. Also, add forbid heap allocation since we expect the
2878         NeverDestroyed classes to be static.
2879
2880         * wtf/NeverDestroyed.h:
2881
2882 2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2883
2884         Fix WTFLogVerbose variadic parameters forwarding
2885         https://bugs.webkit.org/show_bug.cgi?id=194920
2886
2887         Reviewed by Alex Christensen.
2888
2889         WTFLogVerbose was passing the va_list to WTFLog but this function
2890         also used variadic parameters and this is not allowed in C (that
2891         part of the code is extern "C").
2892
2893         * wtf/Assertions.cpp:
2894         (WTF::WTFLogVaList): Created to take a va_list argument instead of
2895         variadic parameters.
2896         (WTF::WTFLog): Kept with variadic parameters, which are
2897         transformed to va_list and passed to WTFLogVaList.
2898         (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.
2899
2900 2019-02-25  Sam Weinig  <sam@webkit.org>
2901
2902         Update double-conversion to the latest version
2903         https://bugs.webkit.org/show_bug.cgi?id=194994
2904
2905         Import the latest version of the double-conversion library based on
2906         https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307
2907
2908         In additon to importing the code, the following changes were applied (or re-applied) to maintain 
2909         parity with what we had previously:
2910              - Add #include "config.h" to each cpp file.
2911              - Put everything inside the WTF namespace.
2912              - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
2913              - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
2914              - Replaced duplicated functions with ASCIICType.h variants
2915              - Made CachedPower table a constexpr.
2916              - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
2917              - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
2918                parameterization, as we only ever want one configuration. Instead of constructing a
2919                configured class and calling StringToDouble on it, StringToDouble is now a static
2920                function. This allows a bunch of now dead code (hex support, octal support, etc.) to
2921                be eliminated. As StringToDoubleConverter now supports single precision floats, some
2922                additional templating of StringToIeee was added to avoid extra unnecessary branching.
2923              - Added RemoveCharacters function to double_conversion::StringBuilder.
2924
2925         Reviewed by Darin Adler.
2926
2927         * WTF.xcodeproj/project.pbxproj:
2928         * wtf/CMakeLists.txt:
2929         * wtf/dtoa/AUTHORS: Added.
2930         * wtf/dtoa/README: Removed.
2931         * wtf/dtoa/README.md: Added.
2932         * wtf/dtoa/bignum-dtoa.cc:
2933         * wtf/dtoa/bignum-dtoa.h:
2934         * wtf/dtoa/bignum.cc:
2935         * wtf/dtoa/bignum.h:
2936         (WTF::double_conversion::Bignum::Times10):
2937         (WTF::double_conversion::Bignum::Equal):
2938         (WTF::double_conversion::Bignum::LessEqual):
2939         (WTF::double_conversion::Bignum::Less):
2940         (WTF::double_conversion::Bignum::PlusEqual):
2941         (WTF::double_conversion::Bignum::PlusLessEqual):
2942         (WTF::double_conversion::Bignum::PlusLess):
2943         (WTF::double_conversion::Bignum::EnsureCapacity):
2944         (WTF::double_conversion::Bignum::BigitLength const):
2945         * wtf/dtoa/cached-powers.cc:
2946         * wtf/dtoa/cached-powers.h:
2947         * wtf/dtoa/diy-fp.cc:
2948         * wtf/dtoa/diy-fp.h:
2949         (WTF::double_conversion::DiyFp::DiyFp):
2950         (WTF::double_conversion::DiyFp::Subtract):
2951         (WTF::double_conversion::DiyFp::Minus):
2952         (WTF::double_conversion::DiyFp::Times):
2953         (WTF::double_conversion::DiyFp::Normalize):
2954         (WTF::double_conversion::DiyFp::f const):
2955         (WTF::double_conversion::DiyFp::e const):
2956         (WTF::double_conversion::DiyFp::set_f):
2957         (WTF::double_conversion::DiyFp::set_e):
2958         * wtf/dtoa/double-conversion.cc:
2959         * wtf/dtoa/double-conversion.h:
2960         (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
2961         (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
2962         (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
2963         (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
2964         * wtf/dtoa/double.h: Removed.
2965         * wtf/dtoa/fast-dtoa.cc:
2966         * wtf/dtoa/fast-dtoa.h:
2967         * wtf/dtoa/fixed-dtoa.cc:
2968         * wtf/dtoa/fixed-dtoa.h:
2969         * wtf/dtoa/ieee.h: Added.
2970         (WTF::double_conversion::double_to_uint64):
2971         (WTF::double_conversion::uint64_to_double):
2972         (WTF::double_conversion::float_to_uint32):
2973         (WTF::double_conversion::uint32_to_float):
2974         (WTF::double_conversion::Double::Double):
2975         (WTF::double_conversion::Double::AsDiyFp const):
2976         (WTF::double_conversion::Double::AsNormalizedDiyFp const):
2977         (WTF::double_conversion::Double::AsUint64 const):
2978         (WTF::double_conversion::Double::NextDouble const):
2979         (WTF::double_conversion::Double::PreviousDouble const):
2980         (WTF::double_conversion::Double::Exponent const):
2981         (WTF::double_conversion::Double::Significand const):
2982         (WTF::double_conversion::Double::IsDenormal const):
2983         (WTF::double_conversion::Double::IsSpecial const):
2984         (WTF::double_conversion::Double::IsNan const):
2985         (WTF::double_conversion::Double::IsInfinite const):
2986         (WTF::double_conversion::Double::Sign const):
2987         (WTF::double_conversion::Double::UpperBoundary const):
2988         (WTF::double_conversion::Double::NormalizedBoundaries const):
2989         (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
2990         (WTF::double_conversion::Double::value const):
2991         (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
2992         (WTF::double_conversion::Double::Infinity):
2993         (WTF::double_conversion::Double::NaN):
2994         (WTF::double_conversion::Double::DiyFpToUint64):
2995         (WTF::double_conversion::Single::Single):
2996         (WTF::double_conversion::Single::AsDiyFp const):
2997         (WTF::double_conversion::Single::AsUint32 const):
2998         (WTF::double_conversion::Single::Exponent const):
2999         (WTF::double_conversion::Single::Significand const):
3000         (WTF::double_conversion::Single::IsDenormal const):
3001         (WTF::double_conversion::Single::IsSpecial const):
3002         (WTF::double_conversion::Single::IsNan const):
3003         (WTF::double_conversion::Single::IsInfinite const):
3004         (WTF::double_conversion::Single::Sign const):
3005         (WTF::double_conversion::Single::NormalizedBoundaries const):
3006         (WTF::double_conversion::Single::UpperBoundary const):
3007         (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
3008         (WTF::double_conversion::Single::value const):
3009         (WTF::double_conversion::Single::Infinity):
3010         (WTF::double_conversion::Single::NaN):
3011         * wtf/dtoa/strtod.cc:
3012         * wtf/dtoa/strtod.h:
3013         * wtf/dtoa/utils.h:
3014         (abort_noreturn):
3015         (WTF::double_conversion::Max):
3016         (WTF::double_conversion::Min):
3017         (WTF::double_conversion::StrLength):
3018         (WTF::double_conversion::BufferReference::BufferReference):
3019         (WTF::double_conversion::BufferReference::SubVector):
3020         (WTF::double_conversion::BufferReference::length const):
3021         (WTF::double_conversion::BufferReference::is_empty const):
3022         (WTF::double_conversion::BufferReference::start const):
3023         (WTF::double_conversion::BufferReference::operator[] const):
3024         (WTF::double_conversion::BufferReference::first):
3025         (WTF::double_conversion::BufferReference::last):
3026         (WTF::double_conversion::StringBuilder::StringBuilder):
3027         (WTF::double_conversion::StringBuilder::~StringBuilder):
3028         (WTF::double_conversion::StringBuilder::size const):
3029         (WTF::double_conversion::StringBuilder::position const):
3030         (WTF::double_conversion::StringBuilder::Reset):
3031         (WTF::double_conversion::StringBuilder::AddCharacter):
3032         (WTF::double_conversion::StringBuilder::AddString):
3033         (WTF::double_conversion::StringBuilder::AddSubstring):
3034         (WTF::double_conversion::StringBuilder::AddPadding):
3035         (WTF::double_conversion::StringBuilder::RemoveCharacters):
3036         (WTF::double_conversion::StringBuilder::Finalize):
3037         (WTF::double_conversion::StringBuilder::is_finalized const):
3038         (WTF::double_conversion::BitCast):
3039         (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
3040         (WTF::double_conversion::StringBuilder::SetPosition): Deleted.
3041
3042 2019-02-20  Darin Adler  <darin@apple.com>
3043
3044         Finish removing String::format
3045         https://bugs.webkit.org/show_bug.cgi?id=194893
3046
3047         Reviewed by Daniel Bates.
3048
3049         * wtf/Assertions.cpp:
3050         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
3051         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
3052
3053         * wtf/HexNumber.h: Deleted unneeded toString function.
3054
3055         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
3056         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
3057         a bit. Use function templates for writeTo functions rather than having two of each.
3058         Removed unused toString functions. Optimized case where we use have a UChar* and
3059         a length of zero to not force the result to be 16-bit. Also gets rid of a small
3060         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
3061         static member helper functions to compute string lengths. Added the pad function
3062         and the PaddingSpecification struct template, so we can add padding to anything
3063         we can turn into a string. Got rid of the special case overload for single
3064         arguments, since it only worked for things that the String constructor can handle.
3065         Instead we will now use StringTypeAdapter, which works for more types. Possibly
3066         less optimal for some special cases, which we could specialize for later if we like.
3067         * wtf/text/StringConcatenateNumbers.h: Ditto.
3068         * wtf/text/StringOperators.h: Ditto.
3069         * wtf/text/StringView.h: Ditto.
3070
3071         * wtf/text/WTFString.cpp:
3072         (WTF::createWithFormatAndArguments): Deleted.
3073         (WTF::String::format): Deleted.
3074         * wtf/text/WTFString.h: Deleted declaration of String::format.
3075
3076 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
3077
3078         Unreviewed, fix find/replace error from r232178
3079
3080         Looks like this was the only such error in that commit.
3081
3082         * wtf/URLHelpers.cpp:
3083         (WTF::URLHelpers::isLookalikeCharacter):
3084
3085 2019-02-23  Mark Lam  <mark.lam@apple.com>
3086
3087         Add an exception check and some assertions in StringPrototype.cpp.
3088         https://bugs.webkit.org/show_bug.cgi?id=194962
3089         <rdar://problem/48013416>
3090
3091         Reviewed by Yusuke Suzuki and Saam Barati.
3092
3093         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
3094         for assertion purpose only on debug builds but sacrifices no performance on
3095         release builds.
3096
3097         * wtf/CheckedArithmetic.h:
3098         (WTF::AssertNoOverflow::overflowed):
3099         (WTF::AssertNoOverflow::clearOverflow):
3100         (WTF::AssertNoOverflow::crash):
3101         (WTF::AssertNoOverflow::hasOverflowed const):
3102         (WTF::observesOverflow):
3103         (WTF::observesOverflow<AssertNoOverflow>):
3104         (WTF::safeAdd):
3105         (WTF::safeSub):
3106         (WTF::safeMultiply):
3107         (WTF::Checked::operator+=):
3108         (WTF::Checked::operator-=):
3109         (WTF::Checked::operator*=):
3110         (WTF::operator+):
3111         (WTF::operator-):
3112         (WTF::operator*):
3113
3114 2019-02-23  Keith Miller  <keith_miller@apple.com>
3115
3116         Add new mac target numbers
3117         https://bugs.webkit.org/show_bug.cgi?id=194955
3118
3119         Reviewed by Tim Horton.
3120
3121         * Configurations/Base.xcconfig:
3122         * Configurations/DebugRelease.xcconfig:
3123
3124 2019-02-21  Antoine Quint  <graouts@apple.com>
3125
3126         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
3127         https://bugs.webkit.org/show_bug.cgi?id=194531
3128         <rdar://problem/47714562>
3129
3130         Reviewed by Tim Horton.
3131
3132         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
3133
3134         * wtf/Platform.h:
3135
3136 2019-02-21  Dean Jackson  <dino@apple.com>
3137
3138         Rotation animations sometimes use the wrong origin (affects apple.com)
3139         https://bugs.webkit.org/show_bug.cgi?id=194878
3140         <rdar://problem/43908047>
3141
3142         Follow-up commit to ensure this change only affects newer versions
3143         of iOS.
3144
3145         * wtf/Platform.h: Add a version check.
3146
3147 2019-02-20  Alex Christensen  <achristensen@webkit.org>
3148
3149         URL percent-encode operations should use checked arithmetic for buffer allocation length
3150         https://bugs.webkit.org/show_bug.cgi?id=194877
3151         <rdar://problem/48212062>
3152
3153         Reviewed by Tim Horton.
3154
3155         * wtf/URLHelpers.cpp:
3156         (WTF::URLHelpers::userVisibleURL):
3157         * wtf/cocoa/NSURLExtras.mm:
3158         (WTF::dataWithUserTypedString):
3159
3160 2019-02-20  Dean Jackson  <dino@apple.com>
3161
3162         Rotation animations sometimes use the wrong origin (affects apple.com)
3163         https://bugs.webkit.org/show_bug.cgi?id=194878
3164         <rdar://problem/43908047>
3165
3166         Reviewed by Simon Fraser.
3167
3168         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
3169
3170 2019-02-20  Andy Estes  <aestes@apple.com>
3171
3172         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
3173         https://bugs.webkit.org/show_bug.cgi?id=194869
3174
3175         Rubber-stamped by Jer Noble.
3176
3177         * WTF.xcodeproj/project.pbxproj:
3178
3179 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
3180
3181         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
3182         https://bugs.webkit.org/show_bug.cgi?id=167941
3183
3184         Reviewed by Carlos Garcia Campos.
3185
3186         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
3187
3188         * wtf/glib/GRefPtr.cpp:
3189         (WTF::refGPtr): Added.
3190         (WTF::derefGPtr): Added.
3191         * wtf/glib/GRefPtr.h: Declare template specializations.
3192
3193 2019-02-19  Commit Queue  <commit-queue@webkit.org>
3194
3195         Unreviewed, rolling out r241770.
3196         https://bugs.webkit.org/show_bug.cgi?id=194833
3197
3198         Caused crashes (Requested by smfr on #webkit).
3199
3200         Reverted changeset:
3201
3202         "Code quality cleanup in NeverDestroyed"
3203         https://bugs.webkit.org/show_bug.cgi?id=194824
3204         https://trac.webkit.org/changeset/241770
3205
3206 2019-02-19  Keith Miller  <keith_miller@apple.com>
3207
3208         Code quality cleanup in NeverDestroyed
3209         https://bugs.webkit.org/show_bug.cgi?id=194824
3210
3211         Reviewed by Yusuke Suzuki.
3212
3213         First, move data members to the end of the class per WebKit
3214         style. Also, add forbid heap allocation since we expect the
3215         NeverDestroyed classes to be static.
3216
3217         * wtf/NeverDestroyed.h:
3218
3219 2019-02-16  Darin Adler  <darin@apple.com>
3220
3221         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
3222         https://bugs.webkit.org/show_bug.cgi?id=194752
3223
3224         Reviewed by Daniel Bates.
3225
3226         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
3227         * wtf/CMakeLists.txt: Ditto.
3228
3229         * wtf/HexNumber.cpp: Added.
3230         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
3231
3232         * wtf/HexNumber.h:
3233         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
3234         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
3235         use with StringTypeAdapter.
3236         (WTF::appendUnsignedAsHex): Ditto.
3237         (WTF::appendUnsignedAsHexFixedSize): Ditto.
3238         (WTF::hex): Added.
3239         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
3240
3241         * wtf/Logger.cpp: Added.
3242         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
3243         function and moved it here so that we don't need to include HexNumber.h
3244         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
3245         don't include it in any other headers.
3246
3247         * wtf/Logger.h:
3248         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
3249         a non-template function, LogSiteIdentifier::toString.
3250
3251         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
3252         with function templates and used StringImpl::copyCharacters instead of
3253         hand-written loops.
3254
3255 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
3256
3257         Web Inspector: Better categorize CPU usage per-thread / worker
3258         https://bugs.webkit.org/show_bug.cgi?id=194564
3259
3260         Reviewed by Devin Rousso.
3261
3262         * wtf/Threading.h:
3263         * wtf/Threading.cpp:
3264         (WTF::Thread::allThreadsMutex):
3265         (WTF::Thread::create):
3266         (WTF::Thread::didExit):
3267         Add a set of all WTF::Thread created threads.
3268
3269 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
3270
3271         Bytecode cache should a have a boot-specific validation
3272         https://bugs.webkit.org/show_bug.cgi?id=194769
3273         <rdar://problem/48149509>
3274
3275         Reviewed by Keith Miller.
3276
3277         Add helper to get kern.bootsessionuuid from sysctl
3278
3279         * wtf/UUID.cpp:
3280         (WTF::bootSessionUUIDString):
3281         * wtf/UUID.h:
3282
3283 2019-02-17  David Kilzer  <ddkilzer@apple.com>
3284
3285         Unreviewed, rolling out r241620.
3286
3287         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
3288         (Requested by ddkilzer on #webkit.)
3289
3290         Reverted changeset:
3291
3292         "[WTF] Add environment variable helpers"
3293         https://bugs.webkit.org/show_bug.cgi?id=192405
3294         https://trac.webkit.org/changeset/241620
3295
3296 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
3297
3298         [WTF] Add environment variable helpers
3299         https://bugs.webkit.org/show_bug.cgi?id=192405
3300
3301         Reviewed by Michael Catanzaro.
3302
3303         Create a new Environment API as a platform-independent, thread-safe(r)
3304         way to get and set environment variables.
3305
3306         * WTF.xcodeproj/project.pbxproj:
3307         * wtf/CMakeLists.txt:
3308         * wtf/Environment.h: Added.
3309         * wtf/PlatformGTK.cmake:
3310         * wtf/PlatformJSCOnly.cmake:
3311         * wtf/PlatformMac.cmake:
3312         * wtf/PlatformPlayStation.cmake:
3313         * wtf/PlatformWPE.cmake:
3314         * wtf/PlatformWin.cmake:
3315         * wtf/posix/EnvironmentPOSIX.cpp: Added.
3316         * wtf/win/EnvironmentWin.cpp: Added.
3317         Introduce WTF::Environment.
3318
3319         * wtf/Threading.cpp:
3320         (WTF::threadingIsInitialized):
3321         (WTF::initializeThreading):
3322         * wtf/Threading.h:
3323         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
3324         false before setting an environment variable through the new API.
3325
3326         * wtf/DataLog.cpp:
3327         (WTF::initializeLogFileOnce):
3328         * wtf/NumberOfCores.cpp:
3329         (WTF::numberOfProcessorCores):
3330         * wtf/posix/FileSystemPOSIX.cpp:
3331         (WTF::FileSystemImpl::openTemporaryFile):
3332         Utilize WTF::Environment where possible.
3333
3334 2019-02-15  Brian Burg  <bburg@apple.com>
3335
3336         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
3337         https://bugs.webkit.org/show_bug.cgi?id=194411
3338         <rdar://problem/47787614>
3339
3340         Reviewed by Joseph Pecoraro.
3341
3342         * wtf/cocoa/SoftLinking.h:
3343         Remove macro that now has no uses.
3344
3345 2019-02-15  Commit Queue  <commit-queue@webkit.org>
3346
3347         Unreviewed, rolling out r241559 and r241566.
3348         https://bugs.webkit.org/show_bug.cgi?id=194710
3349
3350         Causes layout test crashes under GuardMalloc (Requested by
3351         ryanhaddad on #webkit).
3352
3353         Reverted changesets:
3354
3355         "[WTF] Add environment variable helpers"
3356         https://bugs.webkit.org/show_bug.cgi?id=192405
3357         https://trac.webkit.org/changeset/241559
3358
3359         "Unreviewed build fix for WinCairo Debug after r241559."
3360         https://trac.webkit.org/changeset/241566
3361
3362 2019-02-15  Truitt Savell  <tsavell@apple.com>
3363
3364         Unreviewed, rolling out r241564.
3365
3366         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
3367
3368         Reverted changeset:
3369
3370         "[Mac] WebInspectorUI.framework does not need to be soft-
3371         linked anymore"
3372         https://bugs.webkit.org/show_bug.cgi?id=194411
3373         https://trac.webkit.org/changeset/241564
3374
3375 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
3376
3377         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
3378         https://bugs.webkit.org/show_bug.cgi?id=194014
3379
3380         Reviewed by Michael Catanzaro.
3381
3382         Do not block SIGUSR1 when installing signal handlers, since this signal
3383         is used to suspend/resume machine threads on Linux.
3384
3385         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
3386         enabled watchdog and sampling.
3387
3388         Deadlock happened in the following situation:
3389
3390         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
3391         and then tries to suspend the main thread.
3392
3393         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
3394         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
3395         SignalSender tries to lock codeBlockSet, but this is already locked by the
3396         SamplingProfiler.
3397
3398         The SamplingProfiler can only give up the lock when it suspends
3399         the thread. However since the VMTraps signal handler is active, all other signals blocked,
3400         therefore the SamplingProfiler also waits until its signal handler is invoked.
3401
3402         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
3403         it is used to suspend/resume threads on Linux.
3404
3405         * wtf/Threading.h:
3406         * wtf/posix/ThreadingPOSIX.cpp:
3407         * wtf/threads/Signals.cpp:
3408         (WTF::installSignalHandler):
3409
3410 2019-02-15  Saam barati  <sbarati@apple.com>
3411
3412         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
3413         https://bugs.webkit.org/show_bug.cgi?id=194036
3414
3415         Reviewed by Yusuke Suzuki.
3416
3417         * wtf/IndexMap.h:
3418         (WTF::IndexMap::at):
3419         (WTF::IndexMap::at const):
3420         (WTF::IndexMap::operator[]):
3421         (WTF::IndexMap::operator[] const):
3422
3423 2019-02-14  Brian Burg  <bburg@apple.com>
3424
3425         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
3426         https://bugs.webkit.org/show_bug.cgi?id=194411
3427         <rdar://problem/47787614>
3428
3429         Reviewed by Joseph Pecoraro.
3430
3431         * wtf/cocoa/SoftLinking.h:
3432         Remove macro that now has no uses.
3433
3434 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
3435
3436         [WTF] Add environment variable helpers
3437         https://bugs.webkit.org/show_bug.cgi?id=192405
3438
3439         Reviewed by Michael Catanzaro.
3440
3441         Create a new Environment API as a platform-independent, thread-safe(r)
3442         way to get and set environment variables.
3443
3444         * WTF.xcodeproj/project.pbxproj:
3445         * wtf/CMakeLists.txt:
3446         * wtf/Environment.h: Added.
3447         * wtf/PlatformGTK.cmake:
3448         * wtf/PlatformJSCOnly.cmake:
3449         * wtf/PlatformMac.cmake:
3450         * wtf/PlatformPlayStation.cmake:
3451         * wtf/PlatformWPE.cmake:
3452         * wtf/PlatformWin.cmake:
3453         * wtf/posix/EnvironmentPOSIX.cpp: Added.
3454         * wtf/win/EnvironmentWin.cpp: Added.
3455         Introduce WTF::Environment.
3456
3457         * wtf/Threading.cpp:
3458         (WTF::threadingIsInitialized):
3459         (WTF::initializeThreading):
3460         * wtf/Threading.h:
3461         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
3462         false before setting an environment variable through the new API.
3463
3464         * wtf/DataLog.cpp:
3465         (WTF::initializeLogFileOnce):
3466         * wtf/NumberOfCores.cpp:
3467         (WTF::numberOfProcessorCores):
3468         * wtf/posix/FileSystemPOSIX.cpp:
3469         (WTF::FileSystemImpl::openTemporaryFile):
3470         Utilize WTF::Environment where possible.
3471
3472 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
3473
3474         We should only make rope strings when concatenating strings long enough.
3475         https://bugs.webkit.org/show_bug.cgi?id=194465
3476
3477         Reviewed by Mark Lam.
3478
3479         * wtf/text/StringImpl.h:
3480         (WTF::StringImpl::headerSize):
3481
3482 2019-02-12  Tim Horton  <timothy_horton@apple.com>
3483
3484         Remove WKLegacyPDFView
3485         https://bugs.webkit.org/show_bug.cgi?id=194559
3486
3487         Reviewed by Andy Estes.
3488
3489         * wtf/FeatureDefines.h:
3490
3491 2019-02-12  David Kilzer  <ddkilzer@apple.com>
3492
3493         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
3494         <https://webkit.org/b/194529>
3495         <rdar://problem/47924449>
3496
3497         Reviewed by Eric Carlson.
3498
3499         * wtf/cocoa/SoftLinking.h:
3500         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
3501         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
3502         and change `assertion` argument to `isOptional`.  Pass
3503         `isOptional` to framework##Library() method to control assertion
3504         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
3505         that code should be optimized out by the compiler.  This fixes
3506         the crash.
3507         (NO_ASSERT): Remove macro since it's no longer used.
3508         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
3509         optional classes.
3510         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
3511         non-optional classes.
3512         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
3513         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
3514         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
3515         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
3516         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
3517
3518 2019-02-12  Andy Estes  <aestes@apple.com>
3519
3520         [iOSMac] Enable Parental Controls Content Filtering
3521         https://bugs.webkit.org/show_bug.cgi?id=194521
3522         <rdar://39732376>
3523
3524         Reviewed by Tim Horton.
3525
3526         * wtf/Platform.h:
3527
3528 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
3529
3530         [Cocoa] Ask platform for generic font family mappings
3531         https://bugs.webkit.org/show_bug.cgi?id=187723
3532         <rdar://problem/41892438>
3533
3534         Reviewed by Brent Fulgham.
3535
3536         Add an ENABLE in Platform.
3537
3538         * wtf/Platform.h:
3539
3540 2019-02-11  Truitt Savell  <tsavell@apple.com>
3541
3542         Unreviewed, rolling out r241229.
3543
3544         Revision broke internal builds for watchOS.
3545
3546         Reverted changeset:
3547
3548         "[Cocoa] Ask platform for generic font family mappings"
3549         https://bugs.webkit.org/show_bug.cgi?id=187723
3550         https://trac.webkit.org/changeset/241229
3551
3552 2019-02-10  Darin Adler  <darin@apple.com>
3553
3554         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
3555         https://bugs.webkit.org/show_bug.cgi?id=194485
3556
3557         Reviewed by Daniel Bates.
3558
3559         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
3560         placeByteAsHex. Can always bring them back if someone needs them. Updated
3561         appendUnsignedAsHex to be a template so we can use it on any integer type,
3562         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
3563         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
3564         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
3565
3566         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
3567
3568         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
3569
3570         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
3571         worked around in NSURLExtras.mm.
3572         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
3573         and Foundation.h.
3574
3575 2019-02-09  Darin Adler  <darin@apple.com>
3576
3577         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
3578         https://bugs.webkit.org/show_bug.cgi?id=194021
3579
3580         Reviewed by Geoffrey Garen.
3581
3582         * wtf/URL.cpp:
3583         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
3584         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
3585         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
3586         and sometimes used for UTF-16 code units (UChar) and can be the same type.
3587
3588         * wtf/text/StringConcatenateNumbers.h:
3589         Changed FormattedNumber::fixedPrecision to more closely match String::number and
3590         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
3591         a named enumeration for the truncation policy rather than a boolean.
3592
3593
3594 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
3595
3596         Unreviewed, rolling in r241237 again
3597         https://bugs.webkit.org/show_bug.cgi?id=194469
3598
3599         After the measurement, this patch was unrelated to recent regression.
3600
3601         * wtf/text/StringImpl.h: