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