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