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