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