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