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