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