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