[GStreamer] Multi-channel (>2) support for the AudioFileReader
[WebKit-https.git] / Source / WTF / ChangeLog
1 2020-09-25  Antti Koivisto  <antti@apple.com>
2
3         [LFC][Integration] Enable on Apple Windows port
4         https://bugs.webkit.org/show_bug.cgi?id=216928
5         <rdar://problem/69505961>
6
7         Reviewed by Zalan Bujtas.
8
9         * wtf/PlatformEnableWinApple.h:
10
11 2020-09-24  Keith Miller  <keith_miller@apple.com>
12
13         CSS angle unit conversions should consistently use the same associativity
14         https://bugs.webkit.org/show_bug.cgi?id=216906
15
16         Reviewed by Simon Fraser.
17
18         Right now we inconsistently associate our floating point math for
19         angle unit conversions. In particular,
20         conversionToCanonicalUnitsScaleFactor expects there to be a single
21         fixed constant we can multiply by to change units. However, the
22         various conversion functions in WTF are not associated in this
23         way. e.g. rad2deg does ((radian * 180) / pi) rather than
24         (radian  *(180 / pi)). Since FP math is NOT associative these
25         produce different results. For example, 1.57 radians is
26         89.954373835539258 degrees in the first case but
27         89.954373835539243 in the second.
28
29         This patch changes those WTF functions to operate on a single
30         scale factor when converting to/from the canonical
31         unit. Conversions between non-canonical units first convert to the
32         canonical unit (degree).
33
34         * wtf/MathExtras.h:
35         (deg2rad):
36         (rad2deg):
37         (deg2grad):
38         (grad2deg):
39         (deg2turn):
40         (turn2deg):
41         (rad2grad):
42         (grad2rad):
43
44 2020-09-24  Antti Koivisto  <antti@apple.com>
45
46         [LFC][Integration] Enable on Apple Windows port
47         https://bugs.webkit.org/show_bug.cgi?id=216928
48
49         Reviewed by Sam Weinig.
50
51         * wtf/PlatformEnableWinApple.h:
52
53         For consistency.
54
55 2020-09-23  Fujii Hironori  <Hironori.Fujii@sony.com>
56
57         Remove ENABLE_SVG_FONTS macro
58         https://bugs.webkit.org/show_bug.cgi?id=216850
59
60         Reviewed by Don Olmstead.
61
62         * wtf/PlatformEnable.h:
63
64 2020-09-23  Youenn Fablet  <youenn@apple.com>
65
66         Add support for HTMLMediaElement.setSinkId
67         https://bugs.webkit.org/show_bug.cgi?id=216696
68
69         Reviewed by Eric Carlson.
70
71         Add HAVE_AUDIO_OUTPUT_DEVICE_UNIQUE_ID.
72         * wtf/PlatformHave.h:
73
74 2020-09-21  Yusuke Suzuki  <ysuzuki@apple.com>
75
76         [JSC] BigInt should work with Map / Set
77         https://bugs.webkit.org/show_bug.cgi?id=216667
78
79         Reviewed by Robin Morisset.
80
81         * wtf/Hasher.h:
82         (WTF::Hasher::hash const):
83         (WTF::add):
84
85 2020-09-21  Mark Lam  <mark.lam@apple.com>
86
87         Move some LLInt globals into JSC::Config.
88         https://bugs.webkit.org/show_bug.cgi?id=216685
89         rdar://68964544
90
91         Reviewed by Keith Miller.
92
93         1. Introduce ConfigAlignment as a distinct value from ConfigSizeToProtect.
94            This is because ConfigSizeToProtect is now larger than 1 CeilingOnPageSize on
95            some platforms, but ConfigAlignment only needs to match CeilingOnPageSize.
96
97         2. Introduced ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) to disable using the
98            unified g_config record for Windows ports.
99
100            This is needed because WTF is built as a DLL on Windows.  offlineasm does not
101            know how to resolve a DLL exported variable.  Additionally, the Windows ports
102            have never supported freezing of the Config record to begin with.  So, we're
103            working around this by disabling ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD)
104            for Windows.  This allows JSC to have its own g_jscConfig record, which solves
105            this issue for now.
106
107         * wtf/PlatformEnable.h:
108         * wtf/WTFConfig.cpp:
109         (WTF::Config::permanentlyFreeze):
110         * wtf/WTFConfig.h:
111
112 2020-09-18  Don Olmstead  <don.olmstead@sony.com>
113
114         [WebGPU] Add ENABLE(WHLSL_COMPILER) guard
115         https://bugs.webkit.org/show_bug.cgi?id=216713
116
117         Reviewed by Myles C. Maxfield.
118
119         Adds a default for ENABLE_WHLSL_COMPILER on Cocoa platforms.
120
121         * wtf/PlatformEnable.h:
122         * wtf/PlatformEnableCocoa.h:
123
124 2020-09-17  Devin Rousso  <drousso@apple.com>
125
126         Web Inspector: REGRESSION(r266885): fix open source build
127         https://bugs.webkit.org/show_bug.cgi?id=216675
128
129         Reviewed by Timothy Hatcher.
130
131         Add back methods used by `WebInspector.framework`.
132
133         * wtf/JSONValues.h:
134         * wtf/JSONValues.cpp:
135         (WTF::JSONImpl::Value::asDouble const): Added.
136         (WTF::JSONImpl::Value::asInteger const): Added.
137         (WTF::JSONImpl::Value::asString const): Added.
138         (WTF::JSONImpl::ObjectBase::getBoolean const): Added.
139         (WTF::JSONImpl::ObjectBase::getString const): Added.
140         (WTF::JSONImpl::ObjectBase::getObject const): Added.
141         (WTF::JSONImpl::ObjectBase::getArray const): Added.
142         (WTF::JSONImpl::ObjectBase::getValue const): Added.
143
144 2020-09-16  Stephan Szabo  <stephan.szabo@sony.com>
145
146         Remove ENABLE_METER_ELEMENT
147         https://bugs.webkit.org/show_bug.cgi?id=216582
148
149         Reviewed by Fujii Hironori.
150
151         With PlayStation finally planning to turn this on,
152         no ports had this disabled, so remove the enable flag.
153
154         * wtf/PlatformEnable.h:
155
156 2020-09-16  Alex Christensen  <achristensen@webkit.org>
157
158         Remove unneeded HAVE_FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER
159         https://bugs.webkit.org/show_bug.cgi?id=216572
160
161         Reviewed by Youenn Fablet.
162
163         * wtf/PlatformHave.h:
164
165 2020-09-15  David Kilzer  <ddkilzer@apple.com>
166
167         WebKit should support building with clang ThreadSanitizer enabled
168         <https://webkit.org/b/216318>
169         <rdar://problem/31615729>
170
171         Reviewed by Darin Adler.
172
173         This patch doesn't attempt to resolve every potential false
174         positive, but makes it easy to build WebKit with TSan enabled.
175
176         * WTF.xcodeproj/project.pbxproj:
177         * wtf/CMakeLists.txt:
178         - Add ThreadSanitizerSupport.h to the project.
179
180         * wtf/Compiler.h:
181         - Define TSAN_ENABLED and SUPPRESS_TSAN macros.
182
183         * wtf/Locker.h:
184         (WTF::Locker::~Locker):
185         (WTF::Locker::unlockEarly):
186         (WTF::Locker::operator=):
187         (WTF::Locker::lock):
188         - Instrument lock/unlock methods for ThreadSanitizer.
189
190         * wtf/ThreadSanitizerSupport.h: Add.
191         (AnnotateHappensBefore):
192         (AnnotateHappensAfter):
193         - Declare TSan runtime functions needed to annotate WTF::Locker.
194         (TSAN_ANNOTATE_HAPPENS_BEFORE):
195         (TSAN_ANNOTATE_HAPPENS_AFTER):
196         - Define macros used to call TSan runtime functions if TSan is
197           enabled.
198
199 2020-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
200
201         [macOS Big Sur] CGFontRenderingGetFontSmoothingDisabled() is no longer useful
202         https://bugs.webkit.org/show_bug.cgi?id=216588
203         <rdar://problem/68657748>
204
205         Reviewed by Simon Fraser.
206
207         We can eliminate WebKit's use of it to eventually phase it out entirely.
208
209         * wtf/PlatformHave.h:
210
211 2020-09-12  Simon Fraser  <simon.fraser@apple.com>
212
213         Convert TextStream::FormattingFlags to an OptionSet<>
214         https://bugs.webkit.org/show_bug.cgi?id=216443
215
216         Reviewed by Darin Adler.
217
218         Use an OptionSet<> for FormattingFlags.
219
220         * wtf/text/TextStream.h:
221         (WTF::TextStream::TextStream):
222         (WTF::TextStream::formattingFlags const):
223         (WTF::TextStream::setFormattingFlags):
224         (WTF::TextStream::hasFormattingFlag const):
225
226 2020-09-11  Yusuke Suzuki  <ysuzuki@apple.com>
227
228         [JSC] Canonicalize "true" unicode extension type value to ""
229         https://bugs.webkit.org/show_bug.cgi?id=216224
230
231         Reviewed by Ross Kirsling.
232
233         * wtf/text/StringView.h:
234         (WTF::StringView::characterAt const):
235         (WTF::StringView::operator[] const):
236
237 2020-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
238
239         [Cocoa] Migrate CoreText-specific code from ***Cocoa.mm to ***CoreText.cpp
240         https://bugs.webkit.org/show_bug.cgi?id=216400
241
242         Reviewed by Tim Horton.
243
244         * wtf/PlatformUse.h:
245
246 2020-09-11  Kate Cheney  <katherine_cheney@apple.com>
247
248         Followup to Bug 215027: address comments to improve APP_BOUND_DOMAINS macro use
249         https://bugs.webkit.org/show_bug.cgi?id=216373
250         <rdar://problem/68645704>
251
252         Reviewed by Darin Adler.
253
254         Remove unnecessary default. All enable flags are off by default.
255
256         * wtf/PlatformEnable.h:
257
258 2020-09-10  Ben Nham  <nham@apple.com>
259
260         Disable hardware JPEG decoding on x86 Mac
261         https://bugs.webkit.org/show_bug.cgi?id=216377
262
263         Reviewed by Geoff Garen.
264
265         Add macros to disable HW JPEG decoding on x86 Macs and indicate the presence of a new MediaToolbox SPI.
266         (The latter is to prevent unnecessary dlopen/dlsym calls since we soft-link MediaToolbox.)
267
268         * wtf/PlatformEnableCocoa.h:
269         * wtf/PlatformHave.h:
270
271 2020-09-10  Devin Rousso  <drousso@apple.com>
272
273         Web Inspector: modernize generated backend protocol code
274         https://bugs.webkit.org/show_bug.cgi?id=216302
275         <rdar://problem/68547649>
276
277         Reviewed by Brian Burg.
278
279         * wtf/JSONValues.h:
280         (WTF::JSONImpl::ObjectBase::setValue):
281         (WTF::JSONImpl::ObjectBase::setObject):
282         (WTF::JSONImpl::ObjectBase::setArray):
283         (WTF::JSONImpl::ArrayBase::pushValue):
284         (WTF::JSONImpl::ArrayBase::pushObject):
285         (WTF::JSONImpl::ArrayBase::pushArray):
286         (WTF::JSONImpl::ArrayOf::ArrayOf): Deleted.
287         (WTF::JSONImpl::ArrayOf::castedArray): Deleted.
288         (WTF::JSONImpl::ArrayOf::addItem): Deleted.
289         (WTF::JSONImpl::ArrayOf::create): Deleted.
290         * wtf/JSONValues.cpp:
291         (WTF::JSONImpl::Value::asValue):
292         (WTF::JSONImpl::Value::asObject):
293         (WTF::JSONImpl::Value::asArray):
294         (WTF::JSONImpl::Value::parseJSON):
295         (WTF::JSONImpl::Value::asBoolean const):
296         (WTF::JSONImpl::Value::asDouble const):
297         (WTF::JSONImpl::Value::asInteger const):
298         (WTF::JSONImpl::Value::asString const):
299         (WTF::JSONImpl::ObjectBase::asObject):
300         (WTF::JSONImpl::ObjectBase::memoryCost const):
301         (WTF::JSONImpl::ObjectBase::getBoolean const):
302         (WTF::JSONImpl::ObjectBase::getDouble const):
303         (WTF::JSONImpl::ObjectBase::getInteger const):
304         (WTF::JSONImpl::ObjectBase::getString const):
305         (WTF::JSONImpl::ObjectBase::getObject const):
306         (WTF::JSONImpl::ObjectBase::getArray const):
307         (WTF::JSONImpl::ObjectBase::getValue const):
308         (WTF::JSONImpl::ObjectBase::ObjectBase):
309         (WTF::JSONImpl::ArrayBase::asArray):
310         (WTF::JSONImpl::ArrayBase::writeJSON const):
311         (WTF::JSONImpl::ArrayBase::ArrayBase):
312         (WTF::JSONImpl::ArrayBase::get const):
313         (WTF::JSONImpl::ArrayBase::memoryCost const):
314         (WTF::JSONImpl::ObjectBase::openAccessors): Deleted.
315         Use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*`
316         so that values can be more easily manipulated and can be confidently assumed to exist.
317         Remove unused overloads and allow subclasses to call `as*` instead of `openAccessors` as
318         they're effectively the same thing.
319
320 2020-09-10  Jer Noble  <jer.noble@apple.com>
321
322         [Cocoa] PERF: Don't instantiate AVPlayer-based audio decoders or renderers if an element is initially muted.
323         https://bugs.webkit.org/show_bug.cgi?id=216299
324
325         Reviewed by Eric Carlson.
326
327         * wtf/PlatformHave.h:
328
329 2020-09-10  Tim Horton  <timothy_horton@apple.com>
330
331         Upstream additional linked-on-or-after version checks
332         https://bugs.webkit.org/show_bug.cgi?id=216365
333
334         Reviewed by Sam Weinig.
335
336         * wtf/spi/darwin/dyldSPI.h:
337
338 2020-09-10  Kate Cheney  <katherine_cheney@apple.com>
339
340         Clean up App-Bound Domains code to only compile for iOS with its own macro
341         https://bugs.webkit.org/show_bug.cgi?id=215027
342         <rdar://problem/63688232>
343
344         Reviewed by Darin Adler.
345
346         Define a new APP_BOUND_DOMAINS preprocessor macro to more aptly gate
347         App Bound Domains behavior.
348
349         * wtf/PlatformEnable.h:
350         * wtf/PlatformEnableCocoa.h:
351
352 2020-09-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
353
354         [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
355         https://bugs.webkit.org/show_bug.cgi?id=216018
356         <rdar://problem/68304035>
357
358         Reviewed by Tim Horton.
359
360         Add a new macro for the new accurate behavior of CGImageSource.
361
362         Unrelated change: Fix the conditions for enabling the WebP images.
363
364         * wtf/PlatformHave.h:
365
366 2020-09-09  Ryosuke Niwa  <rniwa@webkit.org>
367
368         Simplify OptionSet::set
369         https://bugs.webkit.org/show_bug.cgi?id=216335
370
371         Reviewed by Said Abou-Hallawa.
372
373         Simplified the implementation of OptionSet::set since we've verified that both clang and gcc
374         generate comparable code in x86_64 and clang does the same for arm64.
375
376         * wtf/OptionSet.h:
377         (WTF::OptionSet::set):
378
379 2020-09-09  Wenson Hsieh  <wenson_hsieh@apple.com>
380
381         Text copied and pasted from Mac Catalyst apps appears larger than expected
382         https://bugs.webkit.org/show_bug.cgi?id=215971
383         <rdar://problem/65768907>
384
385         Reviewed by Tim Horton.
386
387         Add a new flag to guard the presence of `_UIApplicationCatalystUserInterfaceIdiom`,
388         `_UIApplicationCatalystScaleFactor`, and `_UIApplicationCatalystRequestViewServiceIdiomAndScaleFactor`.
389
390         * wtf/PlatformHave.h:
391
392 2020-09-08  Ryosuke Niwa  <rniwa@webkit.org>
393
394         Node flags should be an OptionSet
395         https://bugs.webkit.org/show_bug.cgi?id=216305
396
397         Reviewed by Antti Koivisto.
398
399         * wtf/OptionSet.h:
400         (WTF::OptionSet::set): Added.
401
402 2020-09-06  Ryosuke Niwa  <rniwa@webkit.org>
403
404         Make CompactUniquePtrTuple actually work with subclassing and custom deleter
405         https://bugs.webkit.org/show_bug.cgi?id=216225
406
407         Reviewed by Darin Adler.
408
409         Fixed bugs in CompactUniquePtrTuple which prevented subclassing and custom deleter to work.
410
411         * wtf/CompactPointerTuple.h:
412         (WTF::CompactPointerTuple::CompactPointerTuple): Added move constructor with implicit cast
413         of a convertible pointer type.
414         * wtf/CompactUniquePtrTuple.h:
415         (WTF::makeCompactUniquePtr): Added the missing deleter from the return type.
416         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Allow Deleter to be different if it's
417         the default deleter in the move constructor so that CompactUniquePtrTuple<U, Type> could be
418         moved to CompactUniquePtrTuple<T, Type> if U is convertible to T without having to specify
419         the same deleter (std::default_delete<U> is not same as std::default_delete<T> but allow it).
420         (WTF::CompactUniquePtrTuple::operator=): Ditto.
421         (WTF::CompactUniquePtrTuple::setPointer): Ditto from std::unique_ptr.
422         (WTF::CompactUniquePtrTuple): Friend declare all other specializations of CompactUniquePtrTuple
423         so that the above fixes work.
424
425 2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
426
427         [iOS] attachmentActionFont() Needs to use kCTFontSymbolicTrait: @(kCTFontTraitTightLeading | kCTFontTraitEmphasized) to get the short emphasized footnote font
428         https://bugs.webkit.org/show_bug.cgi?id=215707
429         <rdar://problem/63930892>
430
431         Reviewed by Darin Adler.
432
433         * wtf/PlatformHave.h:
434
435 2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
436
437         CTFontGetPhysicalSymbolicTraits() is faster than CTFontCopyPhysicalFont()/CTFontGetSymbolicTraits()
438         https://bugs.webkit.org/show_bug.cgi?id=215685
439
440         Reviewed by Darin Adler.
441
442         * wtf/PlatformHave.h:
443
444 2020-09-06  Darin Adler  <darin@apple.com>
445
446         TextCodec refinements
447         https://bugs.webkit.org/show_bug.cgi?id=216219
448
449         Reviewed by Sam Weinig.
450
451         * wtf/unicode/CharacterNames.h: Use constexpr instead of just const.
452         Added byteOrderMark, synonym for zeroWidthNoBreakSpace.
453
454 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
455
456         [Cocoa] USE(PLATFORM_SYSTEM_FALLBACK_LIST) is true on all Cocoa platforms, so there's no need to consult it in Cocoa-specific files
457         https://bugs.webkit.org/show_bug.cgi?id=215684
458
459         Reviewed by Darin Adler.
460
461         * wtf/PlatformUse.h:
462
463 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
464
465         [Cocoa] CTFontIsSystemUIFont() is faster than CTFontDescriptorIsSystemUIFont()/CTFontCopyFontDescriptor()
466         https://bugs.webkit.org/show_bug.cgi?id=215687
467
468         Reviewed by Darin Adler.
469
470         * wtf/PlatformHave.h:
471
472 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
473
474         [Cocoa] Migrate off SPI in Font::platformWidthForGlyph()
475         https://bugs.webkit.org/show_bug.cgi?id=215670
476
477         Reviewed by Zalan Bujtas.
478
479         * wtf/PlatformUse.h:
480
481 2020-09-04  Alex Christensen  <achristensen@webkit.org>
482
483         Move PDF heads-up display to UI process on macOS
484         https://bugs.webkit.org/show_bug.cgi?id=215780
485         <rdar://problem/58715847>
486
487         Reviewed by Tim Horton.
488
489         * wtf/PlatformHave.h:
490
491 2020-09-03  Ryosuke Niwa  <rniwa@webkit.org>
492
493         GTK+ build fix attempt after r266573.
494
495         * wtf/CompactUniquePtrTuple.h:
496
497 2020-09-02  Ryosuke Niwa  <rniwa@webkit.org>
498
499         Add CompactUniquePtrTuple
500         https://bugs.webkit.org/show_bug.cgi?id=215936
501
502         Reviewed by Darin Adler.
503
504         Added a new template class, CompactUniquePtrTuple, which stores a pointer and up to 16-bits of
505         a POD type using CompactPointerTuple.
506
507         * WTF.xcodeproj/project.pbxproj:
508         * wtf/CMakeLists.txt:
509         * wtf/CompactUniquePtrTuple.h: Added.
510         (WTF::makeCompactUniquePtr): Added. Like makeUnique, creates an object of the specified type
511         and returns CompactUniquePtrTuple.
512         (WTF::CompactUniquePtrTuple): Added.
513         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Move constructor.
514         (WTF::CompactUniquePtrTuple::~CompactUniquePtrTuple):
515         (WTF::CompactUniquePtrTuple::operator=):
516         (WTF::CompactUniquePtrTuple::pointer):
517         (WTF::CompactUniquePtrTuple::moveToUniquePtr): Clears this pointer and returns unique_ptr.
518         (WTF::CompactUniquePtrTuple::setPointer): Like CompactPointerTuple sets the pointer component
519         of this tuple, freeing the old object if there is already one stored.
520         (WTF::CompactUniquePtrTuple::type):
521         (WTF::CompactUniquePtrTuple::setType):
522         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Constructor which takes unique_ptr&&.
523         (WTF::CompactUniquePtrTuple::deletePointer):
524
525 2020-09-02  Ryosuke Niwa  <rniwa@webkit.org>
526
527         Add a variant of map which filters items to Vector.h
528         https://bugs.webkit.org/show_bug.cgi?id=215879
529
530         Reviewed by Darin Adler and Yusuke Suzuki.
531
532         This patch adds WTF::compactMap, which calls a function on each item in an iterable object like WTF::map
533         but also filters the returned value. The mapped function may return Optional<T> or RefPtr<T>. The value
534         is kept in the result if the returned value is not WTF::nullopt in the case of Optional<T> and not null
535         in the case of RefPtr<T>. The result will be either Vector<T> for Optional<T> or else Vector<Ref<T>>.
536
537         * wtf/Vector.h:
538         (WTF::CompactMapTraits:): Added. Traits to have a different behavior
539         (WTF::CompactMapTraits<Optional<T>>::hasValue): Added.
540         (WTF::CompactMapTraits<Optional<T>>::extractValue): Added.
541         (WTF::CompactMapTraits<RefPtr<T>>::hasValue): Added.
542         (WTF::CompactMapTraits<RefPtr<T>>::extractValue): Added.
543         (WTF::CompactMap): Added. The helper to use WTFMove on the argument to the mapped function if possible.
544         (WTF::compactMap): Added.
545
546 2020-09-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
547
548         Unreviewed, reverting r266449.
549
550         Underlying frameworks do not work correctly for loopCount >=
551         1.
552
553         Reverted changeset:
554
555         "[CG] REGRESSION (Big Sur): A GIF image with a finite
556         loopCount loops an extra cycle"
557         https://bugs.webkit.org/show_bug.cgi?id=216018
558         https://trac.webkit.org/changeset/266449
559
560 2020-09-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
561
562         [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
563         https://bugs.webkit.org/show_bug.cgi?id=216018
564         <rdar://problem/66660579>
565
566         Reviewed by Tim Horton.
567
568         Add a new macro for the new accurate behavior of CGImageSource.
569
570         Unrelated change: Fix the conditions for enabling the WebP images.
571
572         * wtf/PlatformHave.h:
573
574 2020-08-31  Mark Lam  <mark.lam@apple.com>
575
576         Remove some PtrTag debugging code from release builds.
577         https://bugs.webkit.org/show_bug.cgi?id=216025
578         <rdar://problem/68098263>
579
580         Reviewed by Saam Barati.
581
582         Converted uses of PtrTagAction::ReleaseAssert to PtrTagAction::DebugAssert.
583         These assertions serve a purpose during development (hence, PtrTagAction::DebugAssert),
584         but is no longer needed for release builds.  Previously, we use these assertions
585         to verify that pointers are tagged correctly in release build.  Clang takes care
586         of that automatically now.
587
588         Also removed PtrTag name lookup debugging utility from release builds.
589
590         * wtf/PtrTag.cpp:
591         * wtf/PtrTag.h:
592         (WTF::untagCodePtr):
593         (WTF::retagCodePtrImpl):
594         (WTF::assertIsCFunctionPtr):
595         (WTF::assertIsNotTagged):
596         (WTF::assertIsTagged):
597         (WTF::assertIsTaggedWith):
598
599 2020-09-01  Alex Christensen  <achristensen@webkit.org>
600
601         Update URL fragment percent encode set
602         https://bugs.webkit.org/show_bug.cgi?id=216022
603
604         Reviewed by Youenn Fablet.
605
606         It now matches the behavior of Chrome and Firefox, as well as the spec at
607         https://url.spec.whatwg.org/#fragment-percent-encode-set
608
609         * wtf/URLParser.cpp:
610         (WTF::isInFragmentEncodeSet):
611         (WTF::URLParser::parse):
612
613 2020-09-01  Alex Christensen  <achristensen@webkit.org>
614
615         Align Big5 decoding with spec, Chrome, and Firefox
616         https://bugs.webkit.org/show_bug.cgi?id=216016
617
618         Reviewed by Darin Adler.
619
620         * wtf/text/CodePointIterator.h:
621
622 2020-09-01  Carlos Garcia Campos  <cgarcia@igalia.com>
623
624         [Linux] Web Inspector: show per thread cpu usage
625         https://bugs.webkit.org/show_bug.cgi?id=215883
626
627         Reviewed by Adrian Perez de Castro.
628
629         Add API to get the thread ID in Linux platform.
630
631         * wtf/Threading.cpp:
632         (WTF::Thread::initializeInThread):
633         * wtf/Threading.h:
634         (WTF::Thread::id const):
635         * wtf/ThreadingPrimitives.h:
636         * wtf/posix/ThreadingPOSIX.cpp:
637         (WTF::Thread::currentID):
638
639 2020-08-31  Alex Christensen  <achristensen@webkit.org>
640
641         Make Big5 encoder conform to the specification and behavior of Chrome and Firefox
642         https://bugs.webkit.org/show_bug.cgi?id=215983
643
644         Reviewed by Darin Adler.
645
646         * WTF.xcodeproj/project.pbxproj:
647         * wtf/CMakeLists.txt:
648         * wtf/URLParser.cpp:
649         (WTF::CodePointIterator::CodePointIterator): Deleted.
650         (WTF::CodePointIterator::operator== const): Deleted.
651         (WTF::CodePointIterator::operator!= const): Deleted.
652         (WTF::CodePointIterator::atEnd const): Deleted.
653         (WTF::CodePointIterator::codeUnitsSince const): Deleted.
654         (WTF::CodePointIterator<LChar>::operator const): Deleted.
655         (WTF::CodePointIterator<LChar>::operator): Deleted.
656         (WTF::CodePointIterator<UChar>::operator const): Deleted.
657         (WTF::CodePointIterator<UChar>::operator): Deleted.
658         * wtf/text/CodePointIterator.h: Added.
659         (WTF::CodePointIterator::CodePointIterator):
660         (WTF::CodePointIterator::operator== const):
661         (WTF::CodePointIterator::operator!= const):
662         (WTF::CodePointIterator::atEnd const):
663         (WTF::CodePointIterator::codeUnitsSince const):
664         (WTF::CodePointIterator<LChar>::operator const):
665         (WTF::CodePointIterator<LChar>::operator):
666         (WTF::CodePointIterator<UChar>::operator const):
667         (WTF::CodePointIterator<UChar>::operator):
668
669 2020-08-30  Jim Mason  <jmason@ibinx.com>
670
671         [GTK] REGRESSION(r150392) insufficient space allocation results in heap corruption
672         https://bugs.webkit.org/show_bug.cgi?id=215976
673
674         Reviewed by Carlos Garcia Campos.
675
676         * wtf/glib/RunLoopGLib.cpp:
677         (WTF::RunLoop::TimerBase::TimerBase):
678
679 2020-08-27  Stephan Szabo  <stephan.szabo@sony.com>
680
681         [PlayStation] Build fix due to memmem not always being available.
682         https://bugs.webkit.org/show_bug.cgi?id=215893
683
684         Unreviewed build fix
685
686         * wtf/PlatformHave.h: Don't always HAVE_MEMMEM on playstation
687
688 2020-08-27  Carlos Garcia Campos  <cgarcia@igalia.com>
689
690         [GTK] Include the run loop source name in frame rendering timeline
691         https://bugs.webkit.org/show_bug.cgi?id=215847
692
693         Reviewed by Adrian Perez de Castro.
694
695         Pass the run loop source name to the observer.
696
697         * wtf/RunLoop.h:
698         * wtf/glib/RunLoopGLib.cpp:
699         (WTF::RunLoop::RunLoop):
700         (WTF::RunLoop::notify):
701
702 2020-08-26  Alexey Shvayka  <shvaikalesh@gmail.com>
703
704         Use jsTypeofIsObject() in DFG AI and operationTypeOfIsObject()
705         https://bugs.webkit.org/show_bug.cgi?id=144457
706
707         Reviewed by Saam Barati.
708
709         * wtf/TriState.h:
710         (WTF::invert):
711
712 2020-08-25  Ryosuke Niwa  <rniwa@webkit.org>
713
714         HashMap<Ref<T>>::take should return RefPtr<T>
715         https://bugs.webkit.org/show_bug.cgi?id=215830
716
717         Reviewed by Darin Adler.
718
719         Updated the hash traits for Ref<T> to make HashMap<Ref<T>> and HashSet<Ref<T>>
720         return RefPtr<T> instad of Optional<Ref<T>>.
721
722         * wtf/HashTraits.h:
723         (WTF::RefHashTraits::take):
724
725 2020-08-25  Per Arne Vollan  <pvollan@apple.com>
726
727         [Win] Assert failure under RunLoop::RunLoop
728         https://bugs.webkit.org/show_bug.cgi?id=215812
729
730         Reviewed by Brent Fulgham.
731
732         The assert 'ASSERT(::IsWindow(m_runLoopMessageWindow))' under RunLoop::RunLoop will fail if the JSC API JSGlobalContextCreate*()
733         is being called by a client before WTF::initializeMainThread() has been called. The assertion fails because the method
734         RunLoop::registerRunLoopMessageWindowClass() has not been called yet, since it is only called when initializing the main thread.
735         This patch addresses this issue by making sure the window class has been registered before being referenced in RunLoop::RunLoopl
736         The method call is also removed from the main thread initialization, since the window class is only used in RunLoop::RunLoop,
737         making it sufficient to only be registered there. Also change the debug assert to a release assert, so we can catch similar
738         issues in release builds.
739
740         * wtf/win/MainThreadWin.cpp:
741         (WTF::initializeMainThreadPlatform):
742         * wtf/win/RunLoopWin.cpp:
743         (WTF::RunLoop::registerRunLoopMessageWindowClass):
744         (WTF::RunLoop::RunLoop):
745
746 2020-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
747
748         [GTK] Implement rendering frames timeline panel for GTK+ port
749         https://bugs.webkit.org/show_bug.cgi?id=150392
750         <rdar://problem/23200510>
751
752         Reviewed by Brian Burg.
753
754         Add API to observe RunLoop events for GLib event loop implementation.
755
756         * wtf/RunLoop.h:
757         * wtf/glib/RunLoopGLib.cpp:
758         (WTF::RunLoop::RunLoop): Use RunLoopSource struct and initialize the RunLoop.
759         (WTF::RunLoop::observe): Add the given observer to the set.
760         (WTF::RunLoop::notify): Notife observers of the given event.
761         (WTF::RunLoop::TimerBase::TimerBase): Use RunLoopSource struct and initialize the RunLoop.
762
763 2020-08-24  Alex Christensen  <achristensen@webkit.org>
764
765         Implement Request/Response consuming as FormData
766         https://bugs.webkit.org/show_bug.cgi?id=215671
767
768         Reviewed by Darin Adler.
769
770         In order to be compatible with other browsers, we need a verson of String::fromUTF8 that
771         uses U8_NEXT_OR_FFFD instead of U8_NEXT, but changing that across the board will break other things.
772         Leave everything else as it is, use templates and constexpr to not add any branches, but add
773         String::fromUTF8ReplacingInvalidSequences to allow me to make our FormData consuming compatible with other browsers.
774
775         * wtf/text/WTFString.cpp:
776         (WTF::fromUTF8Helper):
777         (WTF::String::fromUTF8):
778         (WTF::String::fromUTF8ReplacingInvalidSequences):
779         * wtf/text/WTFString.h:
780         * wtf/unicode/UTF8Conversion.cpp:
781         (WTF::Unicode::convertUTF8ToUTF16Impl):
782         (WTF::Unicode::convertUTF8ToUTF16):
783         (WTF::Unicode::convertUTF8ToUTF16ReplacingInvalidSequences):
784         * wtf/unicode/UTF8Conversion.h:
785
786 2020-08-24  Alex Christensen  <achristensen@webkit.org>
787
788         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
789         https://bugs.webkit.org/show_bug.cgi?id=213048
790
791         Reviewed by Youenn Fablet.
792
793         * wtf/PlatformHave.h:
794
795 2020-08-22  Yusuke Suzuki  <ysuzuki@apple.com>
796
797         [JSC] Add Intl.Segmenter
798         https://bugs.webkit.org/show_bug.cgi?id=213638
799
800         Reviewed by Ross Kirsling.
801
802         * wtf/text/WTFString.cpp:
803         (WTF::String::charactersWithoutNullTermination const):
804         (WTF::String::charactersWithNullTermination const):
805         * wtf/text/WTFString.h:
806
807 2020-08-18  Simon Fraser  <simon.fraser@apple.com>
808
809         Turn off wheel event regions until we need them
810         https://bugs.webkit.org/show_bug.cgi?id=215586
811
812         Reviewed by Darin Adler.
813         
814         Leave ENABLE_WHEEL_EVENT_REGIONS off because it's currently unused, and adds extra
815         region building overhead on macOS.
816
817         * wtf/PlatformEnableCocoa.h:
818
819 2020-08-17  Fujii Hironori  <Hironori.Fujii@sony.com>
820
821         [WTF] HashTable<Ref<K>, V>::HashTable(const HashTable& other) can't compile
822         https://bugs.webkit.org/show_bug.cgi?id=215550
823
824         Reviewed by Darin Adler.
825
826         Even though the copy constructor takes a const HashTable
827         reference, RefHashTraits::assignToEmpty takes non-const Ref<P>. It
828         seems that RefHashTraits::assignToEmpty and
829         Ref::assignToHashTableEmptyValue are unnecessary. Just remove them.
830
831         * wtf/HashTraits.h:
832         (WTF::RefHashTraits::assignToEmpty): Deleted.
833         * wtf/Ref.h:
834         (WTF::Ref::assignToHashTableEmptyValue): Deleted.
835
836 2020-08-17  Youenn Fablet  <youenn@apple.com>
837
838         Bump HAVE_NSURLSESSION_WEBSOCKET requirement to BigSur for MacOS
839         https://bugs.webkit.org/show_bug.cgi?id=215517
840
841         Reviewed by Alex Christensen.
842
843         Catalina NSURLSession WebSocket is missing some features we need.
844         Bump it to Big Sur.
845
846         * wtf/PlatformHave.h:
847
848 2020-08-15  Yusuke Suzuki  <ysuzuki@apple.com>
849
850         Use std::call_once + LazyNeverDestroyed to initialize complex data structures
851         https://bugs.webkit.org/show_bug.cgi?id=215535
852         <rdar://problem/66774266>
853
854         Reviewed by Mark Lam.
855
856         NeverDestroyed<> is not thread-safe in Darwin build since it is not using C++11 thread-safe static variable semantics.
857         This patch uses LazyNeverDestroyed and call_once to initialize complex data structures so that we can ensure they are
858         initialized atomically.
859
860         We also move some of `singleton` definitions from headers to cpp files. This is important since this ensures that singleton
861         is only one instance which is generated in one translation unit.
862
863         * WTF.xcodeproj/project.pbxproj:
864         * wtf/CMakeLists.txt:
865         * wtf/FastMalloc.cpp:
866         (WTF::MallocCallTracker::singleton):
867         * wtf/Language.cpp:
868         (WTF::observerMap):
869         (WTF::preferredLanguagesOverride):
870         * wtf/Logger.cpp:
871         (WTF::Logger::observers):
872         * wtf/Logger.h:
873         (WTF::Logger::observerLock):
874         (WTF::Logger::observers): Deleted.
875         * wtf/MemoryPressureHandler.cpp:
876         (WTF::MemoryPressureHandler::singleton):
877         * wtf/MemoryPressureHandler.h:
878         * wtf/RunLoop.cpp:
879         (WTF::RunLoop::current):
880         * wtf/Threading.cpp:
881         (WTF::Thread::initializeInThread):
882         * wtf/URL.cpp:
883         (WTF::aboutBlankURL):
884         (WTF::aboutSrcDocURL):
885         * wtf/cf/LanguageCF.cpp:
886         (WTF::preferredLanguages):
887         * wtf/cocoa/NSURLExtras.mm:
888         (WTF::rangeOfURLScheme):
889         * wtf/text/LineBreakIteratorPoolICU.cpp: Copied from Source/WTF/wtf/Logger.cpp.
890         (WTF::LineBreakIteratorPool::sharedPool):
891         * wtf/text/LineBreakIteratorPoolICU.h:
892         (WTF::LineBreakIteratorPool::sharedPool): Deleted.
893         * wtf/text/StringView.cpp:
894         * wtf/text/TextBreakIterator.cpp:
895         (WTF::TextBreakIteratorCache::singleton):
896         * wtf/text/TextBreakIterator.h:
897         (WTF::TextBreakIteratorCache::singleton): Deleted.
898         * wtf/threads/Signals.cpp:
899         (WTF::activeThreads):
900
901 2020-08-11  Wenson Hsieh  <wenson_hsieh@apple.com>
902
903         Text input autocorrect="off" attribute ignored on Mac
904         https://bugs.webkit.org/show_bug.cgi?id=151019
905         <rdar://problem/65061700>
906
907         Reviewed by Simon Fraser.
908
909         * wtf/PlatformEnableCocoa.h: Turn the feature on for macOS.
910
911 2020-08-10  Myles C. Maxfield  <mmaxfield@apple.com>
912
913         [Cocoa] Migrate from CTFontTransformGlyphsWithLanguage() to CTFontShapeGlyphs()
914         https://bugs.webkit.org/show_bug.cgi?id=215059
915
916         Reviewed by Darin Adler.
917
918         * wtf/PlatformUse.h: Rename CTFONTTRANSFORMGLYPHSWITHLANGUAGE to CTFONTSHAPEGLYPHS,
919         because that's the new function.
920
921 2020-08-09  Ben Nham  <nham@apple.com>
922
923         Preload graphics drivers in Mac WebProcess
924         https://bugs.webkit.org/show_bug.cgi?id=215183
925
926         Reviewed by Darin Adler.
927
928         Enable GPU driver preheating in versions of the OS that might not have the drivers in the dyld
929         shared cache due to size restrictions.
930
931         * wtf/PlatformEnableCocoa.h:
932
933 2020-08-09  Commit Queue  <commit-queue@webkit.org>
934
935         Unreviewed, reverting r263195, r263252, and r265394.
936         https://bugs.webkit.org/show_bug.cgi?id=215312
937
938         Revert all related GC Bitmap changes because some of perf is
939         not fully recovered
940
941         Reverted changesets:
942
943         "Replace JSC::FreeList linked list with a Bitmap."
944         https://bugs.webkit.org/show_bug.cgi?id=213071
945         https://trac.webkit.org/changeset/263195
946
947         "Unify Bitmap math loops in
948         MarkedBlock::Handle::specializedSweep()."
949         https://bugs.webkit.org/show_bug.cgi?id=213345
950         https://trac.webkit.org/changeset/263252
951
952         "[JSC] Disable ENABLE_BITMAP_FREELIST"
953         https://bugs.webkit.org/show_bug.cgi?id=215285
954         https://trac.webkit.org/changeset/265394
955
956 2020-08-08  Joonghun Park  <jh718.park@samsung.com>
957
958         [WTF] Remove the build warning since r265344.
959         https://bugs.webkit.org/show_bug.cgi?id=215269
960
961         warning: parameter ‘integer’ set but not used [-Wunused-but-set-parameter]
962
963         * wtf/text/IntegerToStringConversion.h:
964         (WTF::lengthOfIntegerAsString):
965
966 2020-08-07  John Wilander  <wilander@apple.com>
967
968         Experimental: Cap the expiry of persistent cookies set in 3rd-party CNAME cloaked HTTP responses
969         https://bugs.webkit.org/show_bug.cgi?id=215201
970         <rdar://problem/57454633>
971
972         Reviewed by Brent Fulgham. Also reviewed and commented on by Chris Dumez, Jiten Mehta, Sam Weinig, and Alex Christensen.
973
974         This change defines HAVE_CFNETWORK_CNAME_AND_COOKIE_TRANSFORM_SPI.
975
976         * wtf/PlatformHave.h:
977
978 2020-08-07  Saam Barati  <sbarati@apple.com>
979
980         Use thread_switch instead of switch_pri to drop priority to zero for 1ms instead of 10
981         https://bugs.webkit.org/show_bug.cgi?id=215248
982
983         Reviewed by Yusuke Suzuki.
984
985         This seems to be a slight JetStream2 and Speedometer2 speedup. In the
986         range of 0%-0.75%, depending on device.
987
988         * wtf/posix/ThreadingPOSIX.cpp:
989         (WTF::Thread::yield):
990
991 2020-08-07  Robin Morisset  <rmorisset@apple.com>
992
993         Fix inequality in newly added assertion
994         https://bugs.webkit.org/show_bug.cgi?id=215272
995
996         Reviewed by Alexey Proskuryakov.
997
998         No new tests, as it was caught by our testing infrastructure (not sure why it only got caught after landing).
999
1000         * wtf/IndexSparseSet.h:
1001         (WTF::OverflowHandler>::validate):
1002
1003 2020-08-07  Robin Morisset  <rmorisset@apple.com>
1004
1005         IndexSparseSet::sort() should update m_map
1006         https://bugs.webkit.org/show_bug.cgi?id=215100
1007
1008         Reviewed by Yusuke Suzuki and Mark Lam.
1009
1010         IndexSparseSet is made of two fields: m_values and m_map, and the two must be kept in sync.
1011         But its sort routine currently only sorts m_values.
1012         This might be related to a random crash that seems to occasionally occur in the vicinity of this code in the wild (rdar://problem/64594569)
1013
1014         I added a validation routine, that I run in the tests that I added to TestWTF.
1015         I verified, and without the fix, the validation routine fails after the sorting.
1016
1017         I also fixed remove() which was wrong on non-trivial types (thanks to Mark for catching this other bug).
1018
1019         * wtf/IndexSparseSet.h:
1020         (WTF::OverflowHandler>::remove):
1021         (WTF::OverflowHandler>::sort):
1022         (WTF::OverflowHandler>::validate):
1023
1024 2020-08-07  Youenn Fablet  <youenn@apple.com>
1025
1026         Introduce a Vector::isolatedCopy() &&
1027         https://bugs.webkit.org/show_bug.cgi?id=215160
1028
1029         Reviewed by Alex Christensen.
1030
1031         By introducing an isolatedCopy() &&, we remove the need to allocate a vector buffer.
1032         This can make a Vector<String>::isolatedCopy() allocate no memory at all in cases like RegistrationDatabase::schedulePushChanges.
1033
1034         * wtf/Vector.h:
1035         (WTF::Malloc>::isolatedCopy const):
1036         (WTF::Malloc>::isolatedCopy):
1037
1038 2020-08-06  David Kilzer  <ddkilzer@apple.com>
1039
1040         WTF::makeString() should handle enum values
1041         <https://webkit.org/b/214906>
1042
1043         Reviewed by Sam Weinig.
1044
1045         * wtf/text/IntegerToStringConversion.h:
1046         (WTF::numberToStringSigned):
1047         - Drive-by fix to change std::make_unsigned<>::type to
1048           std::make_unsigned_t<>.
1049         (WTF::writeNumberToBufferImpl): Delete.
1050         (WTF::writeIntegerToBufferImpl):
1051         - Rename from WTF::writeNumberToBufferImpl().
1052         (WTF::writeNumberToBufferSigned): Delete.
1053         (WTF::writeNumberToBufferUnsigned): Delete.
1054         (WTF::writeIntegerToBuffer):
1055         - Replace WTF::writeNumberToBufferSigned() and
1056           WTF::writeNumberToBufferUnsigned() with a single function that
1057           uses constexpr checks to let the compiler eliminate code.  Had
1058           to use if/else if/else construct to help the compiler
1059           eliminate unused cases.
1060         (WTF::lengthOfNumberAsStringImpl): Delete.
1061         (WTF::lengthOfIntegerAsStringImpl):
1062         - Rename from WTF::lengthOfNumberAsStringImpl().
1063         (WTF::lengthOfNumberAsStringSigned): Delete.
1064         (WTF::lengthOfNumberAsStringUnsigned): Delete.
1065         (WTF::lengthOfIntegerAsString):
1066         - Replace WTF::lengthOfNumberAsStringSigned() and
1067           WTF::lengthOfNumberAsStringUnsigned() with a single function
1068           that uses constexpr checks to let the compiler eliminate code.
1069           Had to use if/else if/else construct to help the compiler
1070           eliminate unused cases.
1071
1072         * wtf/text/StringConcatenateNumbers.h:
1073         (WTF::StringTypeAdapter<SignedInt, ...>): Deleted.
1074         (WTF::StringTypeAdapter<UnignedInt, ...>): Deleted.
1075         (WTF::StringTypeAdapter<Integer, ...>):
1076         - Combine signed/unsigned templated classes into a single class
1077           now that WTF::lengthOfIntegerAsString() and
1078           WTF::writeIntegerToBuffer() are templated.
1079         (WTF::StringTypeAdapter<Enum, ...>):
1080         - Add support for enum types to WTF::makeString().  This also
1081           takes advantage of templated WTF::lengthOfIntegerAsString()
1082           and WTF::writeIntegerToBuffer() functions since enum types may
1083           be either signed or unsigned.
1084
1085 2020-08-05  Tim Horton  <timothy_horton@apple.com>
1086
1087         Remove all references to non-existent 10.16
1088         https://bugs.webkit.org/show_bug.cgi?id=215202
1089
1090         Reviewed by Wenson Hsieh.
1091
1092         * Configurations/Base.xcconfig:
1093         * Configurations/DebugRelease.xcconfig:
1094         * wtf/PlatformEnableCocoa.h:
1095         * wtf/PlatformHave.h:
1096         * wtf/PlatformUse.h:
1097
1098 2020-08-04  Yusuke Suzuki  <ysuzuki@apple.com>
1099
1100         [JSC] Use LazyNeverDestroyed & std::call_once for complex singletons
1101         https://bugs.webkit.org/show_bug.cgi?id=215153
1102         <rdar://problem/65718983>
1103
1104         Reviewed by Mark Lam.
1105
1106         Add lock's bits in crash information to investigate if this speculative fix does not work.
1107
1108         * wtf/LockAlgorithmInlines.h:
1109         (WTF::Hooks>::lockSlow):
1110         (WTF::Hooks>::unlockSlow):
1111
1112 2020-08-04  Keith Miller  <keith_miller@apple.com>
1113
1114         CheckpointSideState shoud play nicely with StackOverflowException unwinding.
1115         https://bugs.webkit.org/show_bug.cgi?id=215114
1116
1117         Reviewed by Saam Barati.
1118
1119         Add a helper so we can have soft stack bounds.
1120
1121         * wtf/StackBounds.h:
1122         (WTF::StackBounds::withSoftOrigin const):
1123
1124 2020-08-04  Fujii Hironori  <Hironori.Fujii@sony.com>
1125
1126         [MSVC] wtf/Optional.h: error C2280: 'WTF::constexpr_storage_t<T> &WTF::constexpr_storage_t<T>::operator =(const WTF::constexpr_storage_t<T> &)': attempting to reference a deleted function
1127         https://bugs.webkit.org/show_bug.cgi?id=215003
1128
1129         Reviewed by Yusuke Suzuki.
1130
1131         Microsoft reported the upcoming MSVC can't compile
1132         Optional<std::pair<JSC::SamplingProfiler::StackFrame::CodeLocation,JSC::CodeBlock *>>.
1133
1134         > wtf/Optional.h(419,39): error C2280: 'WTF::constexpr_storage_t<T> &WTF::constexpr_storage_t<T>::operator =(const WTF::constexpr_storage_t<T> &)': attempting to reference a deleted function
1135
1136         They suggests using std::is_trivially_copy_assignable_v in
1137         Optional ctor instead of std::is_trivially_copyable_v.
1138
1139         * wtf/Optional.h:
1140         (WTF::Optional::Optional): Replaced std::is_trivially_copyable_v with std::is_trivially_copy_assignable_v.
1141
1142 2020-08-04  Alex Christensen  <achristensen@webkit.org>
1143
1144         about: scheme URL constants should be backed by StaticStringImpl
1145         https://bugs.webkit.org/show_bug.cgi?id=215113
1146
1147         Reviewed by Darin Adler.
1148
1149         * wtf/URL.cpp:
1150         (WTF::aboutBlankURL):
1151         (WTF::aboutSrcDocURL):
1152
1153 2020-08-03  Wenson Hsieh  <wenson_hsieh@apple.com>
1154
1155         Remove the ENABLE_DATA_INTERACTION feature flag
1156         https://bugs.webkit.org/show_bug.cgi?id=215091
1157
1158         Reviewed by Megan Gardner.
1159
1160         * wtf/PlatformEnable.h:
1161         * wtf/PlatformEnableCocoa.h:
1162
1163 2020-08-01  Commit Queue  <commit-queue@webkit.org>
1164
1165         Unreviewed, reverting r265097, r265113, and r265122.
1166         https://bugs.webkit.org/show_bug.cgi?id=215065
1167
1168         Broke AppleSilicon Big Sur
1169
1170         Reverted changesets:
1171
1172         "Strip pointers instead of authing for byteOffset to not allow
1173         for a possible way to guess data pac"
1174         https://bugs.webkit.org/show_bug.cgi?id=214952
1175         https://trac.webkit.org/changeset/265097
1176
1177         "Compute number of PAC bits from what the OS says its address
1178         space is"
1179         https://bugs.webkit.org/show_bug.cgi?id=214986
1180         https://trac.webkit.org/changeset/265113
1181
1182         "Remove UB from nonPACBitsMask computation"
1183         https://bugs.webkit.org/show_bug.cgi?id=214996
1184         https://trac.webkit.org/changeset/265122
1185
1186 2020-07-30  Simon Fraser  <simon.fraser@apple.com>
1187
1188         Have TimingScope track the max event duration
1189         https://bugs.webkit.org/show_bug.cgi?id=215006
1190
1191         Reviewed by Tim Horton.
1192
1193         Have TimingScope track and print the longest event, as well as the count and
1194         mean duration.
1195
1196         * wtf/TimingScope.cpp:
1197         (WTF::TimingScope::scopeDidEnd):
1198
1199 2020-07-30  Keith Miller  <keith_miller@apple.com>
1200
1201         Remove UB from nonPACBitsMask computation
1202         https://bugs.webkit.org/show_bug.cgi?id=214996
1203
1204         Reviewed by Tadeu Zagallo.
1205
1206         For non-ARM64E we now set numberOfPACBits to zero, which was causing UB in our computation of the nonPACBitsMask.
1207
1208         * wtf/CagedPtr.h:
1209
1210 2020-07-30  Jer Noble  <jer.noble@apple.com>
1211
1212         [Cocoa] Adopt -[AVContentKeyRequest willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:]
1213         https://bugs.webkit.org/show_bug.cgi?id=214659
1214         <rdar://problem/63555006>
1215
1216         Reviewed by Darin Adler.
1217         
1218         Add a new Observer template class. This allows classes to provide support for listeners without requiring
1219         those listeners to subclass from a pure-virtual (and CanMakeWeakPtr capable) client class. Instead, clients
1220         can just create one of these Observer objects, and pass a WeakPtr to that observer to the notifying object.
1221         When the client object destroys the observer, it is automatically unregistered when the observing object
1222         uses a WeakHashSet.
1223
1224         * WTF.xcodeproj/project.pbxproj:
1225         * wtf/CMakeLists.txt:
1226         * wtf/Observer.h: Added.
1227         (WTF::Observer<Out):
1228
1229 2020-07-30  Keith Miller  <keith_miller@apple.com>
1230
1231         Compute number of PAC bits from what the OS says its address space is
1232         https://bugs.webkit.org/show_bug.cgi?id=214986
1233
1234         Reviewed by Saam Barati.
1235
1236         * wtf/CagedPtr.h:
1237         * wtf/PtrTag.h:
1238
1239 2020-07-29  Fujii Hironori  <Hironori.Fujii@sony.com>
1240
1241         [Win Debug] Unreviewed build fix
1242
1243         > JavaScriptCore/runtime/JSArrayBufferView.cpp(51): error C2660: 'Gigacage::isEnabled': function does not take 0 arguments
1244
1245         * wtf/Gigacage.h:
1246         (Gigacage::isEnabled): Added isEnabled taking no argument which was adeed to bmalloc in r249556 (Bug 201521).
1247
1248 2020-07-29  Don Olmstead  <don.olmstead@sony.com>
1249
1250         Remove USE(ZLIB)
1251         https://bugs.webkit.org/show_bug.cgi?id=214929
1252
1253         Reviewed by Darin Adler.
1254
1255         Remove setting a default value of USE_ZLIB.
1256
1257         * wtf/PlatformUse.h:
1258
1259 2020-07-28  Karl Rackler  <rackler@apple.com>
1260
1261         Unreviewed, reverting r264955.
1262
1263         Reverting because this commit may have caused issues with
1264         tests.
1265
1266         Reverted changeset:
1267
1268         "WebCoreResourceHandleAsOperationQueueDelegate can use
1269         RunLoop::dispatch"
1270         https://bugs.webkit.org/show_bug.cgi?id=214771
1271         https://trac.webkit.org/changeset/264955
1272
1273 2020-07-27  Geoffrey Garen  <ggaren@apple.com>
1274
1275         WebCoreResourceHandleAsOperationQueueDelegate can use RunLoop::dispatch
1276         https://bugs.webkit.org/show_bug.cgi?id=214771
1277
1278         Reviewed by Darin Adler.
1279
1280         * wtf/cf/RunLoopCF.cpp:
1281         (WTF::RunLoop::dispatch): Migrated the optimization from
1282         WebCoreResourceHandleAsOperationQueueDelegate. All Cocoa WebViews begin
1283         life with a single SchedulePair scheduled in kCFRunLoopCommonModes, so
1284         this optimization is the common case.
1285
1286         (Note that I did not copy the kCFRunLoopDefaultMode clause from
1287         the WebCoreResourceHandleAsOperationQueueDelegate optimization. That's
1288         because it's not the common case, and also because it's not correct to
1289         do a vanilla disptach() in the case of kCFRunLoopDefaultMode because a
1290         vanilla dispatch() would use kCFRunLoopCommonModes.)
1291
1292 2020-07-27  Yusuke Suzuki  <ysuzuki@apple.com>
1293
1294         [JSC] Disable BIGINT32 optimization temporarily because of SP2 / JS2 regression
1295         https://bugs.webkit.org/show_bug.cgi?id=214776
1296
1297         Reviewed by Darin Adler.
1298
1299         We disable BIGINT32 optimization because it causes 1% regression in JetStream2 and Speedometer2.
1300         We should enable it after we fix the cause of regression.
1301
1302         * wtf/PlatformUse.h:
1303
1304 2020-07-27  Carlos Garcia Campos  <cgarcia@igalia.com>
1305
1306         [WPE][GTK] Add API to support "Privacy Report"
1307         https://bugs.webkit.org/show_bug.cgi?id=213493
1308
1309         Reviewed by Adrian Perez de Castro.
1310
1311         Add support for using GRefPtr with GDateTime.
1312
1313         * wtf/glib/GRefPtr.cpp:
1314         (WTF::refGPtr):
1315         (WTF::derefGPtr):
1316         * wtf/glib/GRefPtr.h:
1317
1318 2020-07-23  Keith Miller  <keith_miller@apple.com>
1319
1320         iOS simulator does not support WebAssembly
1321         https://bugs.webkit.org/show_bug.cgi?id=191064
1322
1323         Reviewed by Yusuke Suzuki.
1324
1325         Now that it seems we can JIT in the Simulator we should enable
1326         WebAssembly there. This just means enabling FTL/B3 so WASM gets
1327         enabled.
1328
1329         * wtf/PlatformEnable.h:
1330         * wtf/PlatformEnableCocoa.h:
1331
1332 2020-07-23  Aditya Keerthi  <akeerthi@apple.com>
1333
1334         [macOS] Datalist dropdown scrollbar position does not match visible region
1335         https://bugs.webkit.org/show_bug.cgi?id=214656
1336
1337         Reviewed by Wenson Hsieh.
1338
1339         * wtf/PlatformHave.h: Define HAVE_NSTABLEVIEWSTYLE.
1340
1341 2020-07-23  Brady Eidson  <beidson@apple.com>
1342
1343         Add Gamepad tests that exercise the native frameworks
1344         <rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188
1345
1346         Reviewed by Tim Horton.
1347
1348         * wtf/PlatformHave.h:
1349
1350 2020-07-23  Commit Queue  <commit-queue@webkit.org>
1351
1352         Unreviewed, reverting r264745.
1353         https://bugs.webkit.org/show_bug.cgi?id=214681
1354
1355         Broke 3 web-platform-tests on iOS
1356
1357         Reverted changeset:
1358
1359         "iOS simulator does not support WebAssembly"
1360         https://bugs.webkit.org/show_bug.cgi?id=191064
1361         https://trac.webkit.org/changeset/264745
1362
1363 2020-07-22  Jer Noble  <jer.noble@apple.com>
1364
1365         [Cocoa] Add feature flag for WebM & VP9
1366         https://bugs.webkit.org/show_bug.cgi?id=214672
1367         <rdar://problem/65959506>
1368
1369         Reviewed by Beth Dakin.
1370
1371         * wtf/PlatformEnableCocoa.h:
1372
1373 2020-07-22  Conrad Shultz  <conrad_shultz@apple.com>
1374
1375         Update macOS Version macros
1376         https://bugs.webkit.org/show_bug.cgi?id=214653
1377
1378         Reviewed by Tim Horton.
1379
1380         * Configurations/Base.xcconfig:
1381         * Configurations/DebugRelease.xcconfig:
1382         * wtf/PlatformHave.h:
1383
1384 2020-07-22  Keith Miller  <keith_miller@apple.com>
1385
1386         iOS simulator does not support WebAssembly
1387         https://bugs.webkit.org/show_bug.cgi?id=191064
1388
1389         Reviewed by Yusuke Suzuki.
1390
1391         Now that it seems we can JIT in the Simulator we should enable
1392         WebAssembly there. This just means enabling FTL/B3 so WASM gets
1393         enabled.
1394
1395         * wtf/PlatformEnable.h:
1396         * wtf/PlatformEnableCocoa.h:
1397
1398 2020-07-22  Geoffrey Garen  <ggaren@apple.com>
1399
1400         WTF::Function adoption should be explicit instead of implicit
1401         https://bugs.webkit.org/show_bug.cgi?id=214654
1402
1403         Reviewed by Darin Adler.
1404
1405         * wtf/Function.h:
1406         (WTF::Function<Out):
1407         (WTF::adoptImpl): Added an adopt function for Functions and made the
1408         adopting constructor private.
1409
1410         * wtf/cf/RunLoopCF.cpp:
1411         (WTF::RunLoop::dispatch): Use new adopt function.
1412
1413 2020-07-22  Jer Noble  <jer.noble@apple.com>
1414
1415         Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.
1416
1417         * wtf/PlatformHave.h:
1418
1419 2020-07-22  Geoffrey Garen  <ggaren@apple.com>
1420
1421         JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
1422         https://bugs.webkit.org/show_bug.cgi?id=214102
1423
1424         Unreviewed, re-landing r264242 with crash fixed.
1425
1426         To support JSC using external locking around a RunLoop timer, we needed
1427         to avoid modifying unsynchronized timer state while firing.
1428
1429         * wtf/cf/RunLoopCF.cpp:
1430         (WTF::RunLoop::TimerBase::start):
1431
1432 2020-07-21  Eric Carlson  <eric.carlson@apple.com>
1433
1434         Use AVRoutePickerView when available for choosing AirPlay devices
1435         https://bugs.webkit.org/show_bug.cgi?id=213497
1436         <rdar://problem/58610662>
1437
1438         Reviewed by Jer Noble.
1439
1440         * wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.
1441
1442 2020-07-20  Yusuke Suzuki  <ysuzuki@apple.com>
1443
1444         [ECMA-402] Implement Intl.DisplayNames
1445         https://bugs.webkit.org/show_bug.cgi?id=209779
1446
1447         Reviewed by Ross Kirsling.
1448
1449         * wtf/text/StringView.h:
1450
1451 2020-07-20  Adrian Perez de Castro  <aperez@igalia.com>
1452
1453         Non unified build fixes, midsummer 2020 edition
1454         https://bugs.webkit.org/show_bug.cgi?id=213616
1455
1456         Unreviewed build fix.
1457
1458         * wtf/text/StringParsingBuffer.h: Add missing inclusion of wtf/text/StringView.h,
1459         and removed other now-unneeded header inclusions.
1460
1461 2020-07-19  Geoffrey Garen  <ggaren@apple.com>
1462
1463         There should be only one RunLoop Timer class
1464         https://bugs.webkit.org/show_bug.cgi?id=214340
1465
1466         Reviewed by Darin Adler.
1467
1468         RunLoop::Timer wins. RunLoopTimer loses.
1469
1470         * WTF.xcodeproj/project.pbxproj:
1471         * wtf/CMakeLists.txt:
1472         * wtf/PlatformHave.h:
1473         * wtf/PlatformMac.cmake: Remove RunLoopTimer.
1474
1475         * wtf/RunLoop.cpp:
1476         (WTF::RunLoop::dispatchAfter): While we're here. let's make dispatchAfter
1477         available on all platforms. We had cross-platform code, but it was
1478         factored to be needlessly platform-specific.
1479
1480         * wtf/RunLoop.h: Added a version of dispatch() that accepts a
1481         SchedulePairHashSet for Cocoa. Removed some indirection from timer
1482         stuff, since it was confusing me. Consistently named all time intervals
1483         "interval".
1484
1485         * wtf/RunLoopTimer.h: Removed.
1486
1487         * wtf/cf/RunLoopCF.cpp:
1488         (WTF::createTimer): Factored out a helper function for dispatch() to use.
1489         (WTF::RunLoop::dispatch): This function is the meat of the patch. It's
1490         the only unique functionality that RunLoopTimer used to provide.
1491         (WTF::RunLoop::TimerBase::start): Adopted helper function.
1492         (WTF::RunLoop::runForDuration): Deleted.
1493         (WTF::RunLoop::TimerBase::timerFired): Deleted.
1494
1495         * wtf/cf/RunLoopTimerCF.cpp: Removed.
1496
1497         * wtf/generic/RunLoopGeneric.cpp:
1498         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
1499
1500         * wtf/glib/RunLoopGLib.cpp:
1501         (WTF::RunLoop::TimerBase::updateReadyTime):
1502         (WTF::RunLoop::TimerBase::start):
1503         (WTF::RunLoop::TimerBase::stop):
1504         (WTF::DispatchAfterContext::DispatchAfterContext): Deleted.
1505         (WTF::DispatchAfterContext::dispatch): Deleted.
1506         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
1507
1508         * wtf/win/RunLoopWin.cpp:
1509         (WTF::RunLoop::TimerBase::start):
1510         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
1511
1512 2020-07-17  Sam Weinig  <weinig@apple.com>
1513
1514         Remove final vestigates of SimpleColor
1515         https://bugs.webkit.org/show_bug.cgi?id=214439
1516
1517         Reviewed by Simon Fraser.
1518
1519         * wtf/KeyValuePair.h:
1520         (WTF::KeyValuePair::KeyValuePair):
1521         Add overload of constructor that is not a template function to aid deduction
1522         when using std::initializer_lists to contruct a HashMap.
1523
1524 2020-07-17  Fujii Hironori  <Hironori.Fujii@sony.com>
1525
1526         Don't include <wtf/text/WTFString.h> in SVGParserUtilities.h
1527         https://bugs.webkit.org/show_bug.cgi?id=214320
1528
1529         Reviewed by Darin Adler.
1530
1531         * wtf/Forward.h: Added foward declarations for template specializations of DefaultHash.
1532
1533 2020-07-17  Keith Miller  <keith_miller@apple.com>
1534
1535         Fix 32-bit debug watchos build
1536         https://bugs.webkit.org/show_bug.cgi?id=214480
1537
1538         Reviewed by Michael Saboff.
1539
1540         subtracting pointers produces a ptrdiff_t but on 32-bit that's the same
1541         as an int. Since we were comparing that to an unsigned that triggered
1542         the signed comparison warning, which broke the build.
1543
1544         * wtf/text/StringParsingBuffer.h:
1545
1546 2020-07-17  Truitt Savell  <tsavell@apple.com>
1547
1548         Unreviewed, reverting r264482.
1549
1550         Part of an attempted fix for the build
1551
1552         Reverted changeset:
1553
1554         "Use AVRoutePickerView when available for choosing AirPlay
1555         devices"
1556         https://bugs.webkit.org/show_bug.cgi?id=213497
1557         https://trac.webkit.org/changeset/264482
1558
1559 2020-07-16  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1560
1561         Rename createBoxPtr into adoptBoxPtr
1562         https://bugs.webkit.org/show_bug.cgi?id=214171
1563
1564         Reviewed by Darin Adler.
1565
1566         * wtf/BoxPtr.h:
1567         (WTF::adoptInBoxPtr):
1568
1569 2020-07-16  Per Arne Vollan  <pvollan@apple.com>
1570
1571         XPC connection should be suspended before setting target queue
1572         https://bugs.webkit.org/show_bug.cgi?id=214427
1573
1574         Reviewed by Darin Adler.
1575
1576         Declare function to suspend XPC connection.
1577
1578         * wtf/spi/darwin/XPCSPI.h:
1579
1580 2020-07-16  Fujii Hironori  <Hironori.Fujii@sony.com>
1581
1582         [WTF] Remove the unnecessary inner class DefaultHash<T>::Hash
1583         https://bugs.webkit.org/show_bug.cgi?id=214389
1584
1585         Reviewed by Darin Adler.
1586
1587         DefaultHash<T> doesn't need to have a inner struct Hash. This can
1588         be a problem for forward declarations (Bug 214320 Comment 5).
1589
1590         * wtf/BitVector.h:
1591         * wtf/Forward.h:
1592         * wtf/HashFunctions.h:
1593         (WTF::PairHash::hash):
1594         (WTF::PairHash::equal):
1595         (WTF::TupleHash::hash):
1596         (WTF::TupleHash::equal):
1597         * wtf/ListHashSet.h:
1598         * wtf/LoggingHashMap.h:
1599         * wtf/LoggingHashSet.h:
1600         * wtf/MetaAllocatorPtr.h:
1601         * wtf/ObjectIdentifier.h:
1602         * wtf/OptionSetHash.h:
1603         (WTF::DefaultHash<OptionSet<T>>::hash):
1604         (WTF::DefaultHash<OptionSet<T>>::equal):
1605         (WTF::DefaultHash<OptionSet<T>>::Hash::hash): Deleted.
1606         (WTF::DefaultHash<OptionSet<T>>::Hash::equal): Deleted.
1607         * wtf/Packed.h:
1608         * wtf/RetainPtr.h:
1609         * wtf/StackShot.h:
1610         * wtf/URLHash.h:
1611         * wtf/VectorHash.h:
1612         (WTF::VectorHash::hash):
1613         * wtf/text/AtomString.h:
1614         * wtf/text/AtomStringHash.h:
1615         * wtf/text/CString.h:
1616         * wtf/text/StringHash.h:
1617         * wtf/text/StringImpl.h:
1618         * wtf/text/SymbolRegistry.h:
1619         (WTF::DefaultHash<SymbolRegistryKey>::hash):
1620         (WTF::DefaultHash<SymbolRegistryKey>::equal):
1621         (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash): Deleted.
1622         (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal): Deleted.
1623         * wtf/text/WTFString.h:
1624
1625 2020-07-16  Eric Carlson  <eric.carlson@apple.com>
1626
1627         Use AVRoutePickerView when available for choosing AirPlay devices
1628         https://bugs.webkit.org/show_bug.cgi?id=213497
1629         <rdar://problem/58610662>
1630
1631         Unreviewed build fix.
1632
1633         * wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.
1634
1635 2020-07-16  Jonathan Bedard  <jbedard@apple.com>
1636
1637         [Big Sur] De-duplicate SPI
1638         https://bugs.webkit.org/show_bug.cgi?id=214415
1639         <rdar://problem/65678060>
1640
1641         Reviewed by Darin Adler.
1642
1643         * wtf/PlatformHave.h:
1644
1645 2020-07-16  Jonathan Bedard  <jbedard@apple.com>
1646
1647         [Big Sur] Build on Seed 1
1648         https://bugs.webkit.org/show_bug.cgi?id=214396
1649         <rdar://problem/65644762>
1650
1651         Reviewed by Tim Horton.
1652
1653         * wtf/PlatformHave.h: Add HAVE(LARGE_CONTROL_SIZE).
1654
1655 2020-07-15  Saagar Jha  <saagar@saagarjha.com>
1656
1657         Add some missing boilerplate to help fix build on macOS Big Sur
1658         https://bugs.webkit.org/show_bug.cgi?id=214338
1659
1660         Reviewed by Darin Adler.
1661
1662         * wtf/PlatformHave.h: Add HAVE_LARGE_CONTROL_SIZE and enable it on Big Sur.
1663
1664 2020-07-15  Darin Adler  <darin@apple.com>
1665
1666         Remove a few more uses of the terms black/white list
1667         https://bugs.webkit.org/show_bug.cgi?id=214371
1668
1669         Reviewed by Alex Christensen.
1670
1671         * wtf/URLHelpers.cpp:
1672         (WTF::URLHelpers::loadIDNAllowedScriptList): Renamed.
1673         (WTF::URLHelpers::isLookalikeCharacter): Renamed.
1674         (WTF::URLHelpers::addScriptToIDNAllowedScriptList): Renamed.
1675         (WTF::URLHelpers::initializeDefaultIDNAllowedScriptList): Renamed.
1676         (WTF::URLHelpers::allCharactersInAllowedIDNScriptList): Renamed.
1677         (WTF::URLHelpers::mapHostName): Updated for name changes.
1678         * wtf/URLHelpers.h: Renamed things.
1679
1680         * wtf/cocoa/NSURLExtras.mm:
1681         (WTF::readIDNAllowedScriptListFile): Renamed.
1682         (WTF::URLHelpers::loadIDNAllowedScriptList): Renamed. Also use a modern for
1683         loop to simplify the code.
1684
1685 2020-07-15  Jim Mason  <jmason@ibinx.com>
1686
1687         [WTF] Fix PackedAlignedPtr for X86_64 canonical addresses
1688         https://bugs.webkit.org/show_bug.cgi?id=214142
1689
1690         Reviewed by Mark Lam
1691
1692         * wtf/Packed.h:
1693         (WTF::PackedAlignedPtr::get const):
1694         (WTF::PackedAlignedPtr::set):
1695
1696 2020-07-15  Brady Eidson  <beidson@apple.com>
1697
1698         Resolve race between IOHIDManager and GameController framework.
1699         <rdar://problem/65554490> and https://bugs.webkit.org/show_bug.cgi?id=214245
1700
1701         Reviewed by Tim Horton.
1702
1703         * wtf/PlatformHave.h:
1704
1705 2020-07-14  Alex Christensen  <achristensen@webkit.org>
1706
1707         REGRESSION(r262341) URL::createCFURL should produce a CFURL that uses UTF-8 to decode its percent-encoded sequences
1708         https://bugs.webkit.org/show_bug.cgi?id=214314
1709         <rdar://problem/65079249>
1710
1711         Reviewed by Darin Adler.
1712
1713         r262341 made it so we usually pass kCFStringEncodingISOLatin1 into CFURLCreateAbsoluteURLWithBytes when creating a CFURLRef from a WTF::URL.
1714         This is correct for the interpretation of the bytes to create a CFStringRef, and that is a change we want to make.
1715         The encoding, however, is also stored with the CFURL and used later when interpreting percent-encoded sequences.
1716         We want to use kCFStringEncodingUTF8 to make the interpretation of percent-encoded sequences the same as it used to be.
1717         To avoid making a separate CString most of the time, use characters8() only for ASCII-only URLs, where UTF-8 and Latin1 are the same.
1718         For all other URLs, we have to make a CString containing the UTF-8 representation of the string to get the percent-encoded sequences interpreted the same.
1719
1720         * wtf/cf/URLCF.cpp:
1721         (WTF::URL::createCFURL const):
1722         * wtf/cocoa/URLCocoa.mm:
1723         (WTF::URL::createCFURL const):
1724
1725 2020-07-14  Jer Noble  <jer.noble@apple.com>
1726
1727         Add support for parsing VP-style codec strings.
1728         https://bugs.webkit.org/show_bug.cgi?id=214270
1729         <rdar://problem/65500048>
1730
1731         Reviewed by Eric Carlson.
1732
1733         Add a variant of toIntegralType<> which returns an Optional. Since no existing callers of the
1734         original toIntegralType fail to pass in the optional bool* parameter, make that parameter
1735         non-optional, as it causes a conflict with the new Optional-returning version.
1736
1737         * wtf/text/StringToIntegerConversion.h:
1738         (WTF::toIntegralType):
1739
1740 2020-07-13  Keith Miller  <keith_miller@apple.com>
1741
1742         Clean up SourceProvider and add caller relative load script to jsc.cpp
1743         https://bugs.webkit.org/show_bug.cgi?id=214205
1744
1745         Reviewed by Yusuke Suzuki.
1746
1747         Using a URL as a boolean in a conditional should be a compile
1748         error.  Currently, it "works" because it actually calls `operator
1749         NSURL*()`... which is likely NOT what you wanted. Until we decide
1750         what it means to have a URL in a conditional it will be a compile
1751         error.
1752
1753         * wtf/URL.cpp:
1754         (WTF::URL::fileSystemPath const):
1755         * wtf/URL.h:
1756
1757 2020-07-12  Yusuke Suzuki  <ysuzuki@apple.com>
1758
1759         [JSC] String.protoytpe.toLocaleLowerCase's availableLocales HashSet is inefficient
1760         https://bugs.webkit.org/show_bug.cgi?id=213158
1761
1762         Reviewed by Darin Adler.
1763
1764         Add characterAt method to ASCIILiteral.
1765
1766         * wtf/text/ASCIILiteral.h:
1767
1768 2020-07-12  Darin Adler  <darin@apple.com>
1769
1770         Some further streamlining of Gradient handling code
1771         https://bugs.webkit.org/show_bug.cgi?id=214239
1772
1773         Reviewed by Sam Weinig.
1774
1775         * wtf/Vector.h: Added an overload for insert analogous to the ones we already have
1776         for append and uncheckedAppend, helpful for type deduction.
1777
1778 2020-07-12  Said Abou-Hallawa  <sabouhallawa@apple.com>
1779
1780         [macOS]: A HEIF image, selected from the OpenPanel, should be converted to an accepted MIME type
1781         https://bugs.webkit.org/show_bug.cgi?id=213347
1782         <rdar://problem/57258464>
1783
1784         Reviewed by Darin Adler.
1785
1786         Allow a suffix to be included in the temporary file name. The goal is to
1787         make it possible to create temporary image files with valid extensions.
1788
1789         * wtf/FileSystem.h:
1790         (WTF::FileSystemImpl::openTemporaryFile):
1791         * wtf/cocoa/FileSystemCocoa.mm:
1792         (WTF::FileSystemImpl::openTemporaryFile):
1793         * wtf/glib/FileSystemGlib.cpp:
1794         (WTF::FileSystemImpl::openTemporaryFile):
1795         * wtf/posix/FileSystemPOSIX.cpp:
1796         (WTF::FileSystemImpl::openTemporaryFile):
1797         * wtf/win/FileSystemWin.cpp:
1798         (WTF::FileSystemImpl::openTemporaryFile):
1799
1800 2020-07-12  Rob Buis  <rbuis@igalia.com>
1801
1802         Improve IPv6 detection when setting host/hostname
1803         https://bugs.webkit.org/show_bug.cgi?id=214218
1804
1805         Reviewed by Darin Adler.
1806
1807         * wtf/URL.cpp:
1808         (WTF::URL::setHost): do not bail out if ':' was found but we start
1809         with a '[', since the host may be IPv6.
1810         (WTF::URL::setHostAndPort): multiple colons are acceptable only in case of IPv6.
1811
1812 2020-07-11  Sam Weinig  <weinig@apple.com> and Yusuke Suzuki  <ysuzuki@apple.com>
1813
1814         Relanding "Make hasher work with tuple-like classes"
1815         https://bugs.webkit.org/show_bug.cgi?id=214224
1816
1817         Reviewed by Darin Adler.
1818
1819         The original patch broke the internal build. And reverting patch (r264274) broke the build too.
1820         This patch relands r264270 with `constexpr` => `inline constexpr` template variable fix.
1821
1822         * wtf/Hasher.h:
1823         (WTF::add):
1824         (WTF::addTupleLikeHelper):
1825         (WTF::TypeCheckHelper<decltype): Deleted.
1826         (WTF::addTupleHelper): Deleted.
1827         Add support for tuple-like classes. These are classes that:
1828         - Have defined specializations of std::tuple_size<> and std::tuple_element<>.
1829         - And have either a member function named get<> or there exists a function get<>()
1830           that takes the class as argument that can be looked up via ADL.
1831
1832         To avoid abiguity when hashing std::array, the add() overload enabled for containers
1833         with a begin member functions also now checks that the container is not tuple-like.
1834         The std::pair overload is no longer needed as it will use the tuple-like one now.
1835
1836         * wtf/OptionSet.h:
1837         * wtf/StdLibExtras.h:
1838         Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
1839         adhere to WebKit style as IsTypeComplete<>.
1840
1841 2020-07-11  Commit Queue  <commit-queue@webkit.org>
1842
1843         Unreviewed, reverting r264270.
1844         https://bugs.webkit.org/show_bug.cgi?id=214228
1845
1846         Broke the build
1847
1848         Reverted changeset:
1849
1850         "Make hasher work with tuple-like classes"
1851         https://bugs.webkit.org/show_bug.cgi?id=214224
1852         https://trac.webkit.org/changeset/264270
1853
1854 2020-07-11  Darin Adler  <darin@apple.com>
1855
1856         Remove live ranges from AccessibilityObject.h, AccessibilityObjectInterface.h, AccessibilityRenderObject.h, AXIsolatedObject.h
1857         https://bugs.webkit.org/show_bug.cgi?id=214215
1858
1859         Reviewed by Sam Weinig.
1860
1861         * wtf/cocoa/VectorCocoa.h: Added a new makeVector that takes a function.
1862         Also updated createNSArray to use std::invoke.
1863
1864 2020-07-11  Sam Weinig  <weinig@apple.com>
1865
1866         Make hasher work with tuple-like classes
1867         https://bugs.webkit.org/show_bug.cgi?id=214224
1868
1869         Reviewed by Darin Adler.
1870
1871         * wtf/Hasher.h:
1872         (WTF::add):
1873         (WTF::addTupleLikeHelper):
1874         (WTF::TypeCheckHelper<decltype): Deleted.
1875         (WTF::addTupleHelper): Deleted.
1876         Add support for tuple-like classes. These are classes that:
1877         - Have defined specializations of std::tuple_size<> and std::tuple_element<>.
1878         - And have either a member function named get<> or there exists a function get<>()
1879           that takes the class as argument that can be looked up via ADL.
1880
1881         To avoid abiguity when hashing std::array, the add() overload enabled for containers
1882         with a begin member functions also now checks that the container is not tuple-like.
1883         The std::pair overload is no longer needed as it will use the tuple-like one now.
1884
1885         * wtf/OptionSet.h:
1886         * wtf/StdLibExtras.h:
1887         Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
1888         adhere to WebKit style as IsTypeComplete<>.
1889
1890 2020-07-10  Brady Eidson  <beidson@apple.com>
1891
1892         GameController.framework gamepads should support Home buttons.
1893         <rdar://problem/63500696> and https://bugs.webkit.org/show_bug.cgi?id=212933
1894
1895         Reviewed by Tim Horton.
1896
1897         * wtf/PlatformHave.h:
1898
1899 2020-07-10  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1900
1901         [GStreamer][EME][OpenCDM] Implement OpenCDM support
1902         https://bugs.webkit.org/show_bug.cgi?id=213550
1903
1904         Reviewed by Philippe Normand.
1905
1906         * wtf/PlatformEnable.h: Disable OPENCDM by default.
1907
1908 2020-07-09  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1909
1910         Simplify BoxPtr::create
1911         https://bugs.webkit.org/show_bug.cgi?id=214144
1912
1913         Reviewed by Darin Adler.
1914
1915         * wtf/BoxPtr.h:
1916         (WTF::createBoxPtr): Use the alias instead of the unrolled type.
1917
1918 2020-07-09  Per Arne Vollan  <pvollan@apple.com>
1919
1920         [Cocoa] Update Launch Services database in the WebContent process from the Network process
1921         https://bugs.webkit.org/show_bug.cgi?id=213794
1922
1923         Reviewed by Brent Fulgham.
1924
1925         Added HAVE define for determining if the class LSDatabaseContext is present.
1926
1927         * wtf/PlatformHave.h:
1928
1929 2020-07-09  Commit Queue  <commit-queue@webkit.org>
1930
1931         Unreviewed, reverting r264148.
1932         https://bugs.webkit.org/show_bug.cgi?id=214136
1933
1934         Introduced layout test failures
1935
1936         Reverted changeset:
1937
1938         "[Cocoa] Update Launch Services database in the WebContent
1939         process from the Network process"
1940         https://bugs.webkit.org/show_bug.cgi?id=213794
1941         https://trac.webkit.org/changeset/264148
1942
1943 2020-07-09  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1944
1945         [WTF] Implement new BoxPtr alias
1946         https://bugs.webkit.org/show_bug.cgi?id=212379
1947
1948         Reviewed by Darin Adler.
1949
1950         Added BoxPtr.h that includes BoxPtr<T> as alias of
1951         Box<std::unique_ptr<T>>. We discussed about this class on bugzilla
1952         and we agreed on this alias being the best idea. Apart from the
1953         alias I'm adding a couple of helpers like a create function and
1954         the operator== and operator!=.
1955
1956         Tests: BoxPtr API tests added.
1957
1958         * WTF.xcodeproj/project.pbxproj:
1959         * wtf/BoxPtr.h: Added.
1960         (WTF::createBoxPtr):
1961         (WTF::operator==):
1962         (WTF::operator!=):
1963         * wtf/CMakeLists.txt:
1964
1965 2020-07-08  Per Arne Vollan  <pvollan@apple.com>
1966
1967         [Cocoa] Update Launch Services database in the WebContent process from the Network process
1968         https://bugs.webkit.org/show_bug.cgi?id=213794
1969
1970         Reviewed by Brent Fulgham.
1971
1972         Added HAVE define for determining if the class LSDatabaseContext is present.
1973
1974         * wtf/PlatformHave.h:
1975
1976 2020-07-08  Per Arne Vollan  <pvollan@apple.com>
1977
1978         [Cocoa] Make it possible to establish direct XPC connections between WebKit processes
1979         https://bugs.webkit.org/show_bug.cgi?id=214079
1980
1981         Reviewed by Brent Fulgham.
1982
1983         Declare function to create a xpc endpoint, as well as a function to create a connection from an endpoint.
1984
1985         * wtf/spi/darwin/XPCSPI.h:
1986
1987 2020-07-08  Geoffrey Garen  <ggaren@apple.com>
1988
1989         dyld: Symbol not found: __ZN3WTF19initializeThreadingEv - webkit MacOSX
1990         https://bugs.webkit.org/show_bug.cgi?id=214034
1991
1992         Reviewed by Mark Lam.
1993
1994         * wtf/Threading.cpp:
1995         (WTF::initializeThreading): Export the old symbol name for compatibility.
1996
1997 2020-07-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1998
1999         [GTK] WebProcess hangs when browsing GitHub
2000         https://bugs.webkit.org/show_bug.cgi?id=213970
2001
2002         Reviewed by Sergio Villar Senin.
2003
2004         Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
2005         drawing with the idea of keeping a good rendering performance without being affected by other timers. The
2006         problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
2007         higher priority than drawing.
2008
2009         * wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.
2010
2011 2020-07-06  Geoffrey Garen  <ggaren@apple.com>
2012
2013         callOnMainThread should use the same queue as RunLoop::dispatch
2014         https://bugs.webkit.org/show_bug.cgi?id=213830
2015
2016         Reviewed by Brady Eidson.
2017
2018         This should reduce flakiness in scheduled tasks.
2019
2020         There's no need to keep a separate queue anymore since both APIs have
2021         the same semantics now.
2022
2023         * wtf/MainThread.cpp:
2024         (WTF::callOnMainThread):
2025         (WTF::functionQueue): Deleted.
2026         (WTF::dispatchFunctionsFromMainThread): Deleted.
2027         * wtf/MainThread.h:
2028         * wtf/cocoa/MainThreadCocoa.mm:
2029         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2030         * wtf/generic/MainThreadGeneric.cpp:
2031         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2032         * wtf/win/MainThreadWin.cpp:
2033         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2034
2035 2020-07-06  Michael Catanzaro  <mcatanzaro@gnome.org>
2036
2037         Spams system logs with "Current memory footprint: 10 MB"
2038         https://bugs.webkit.org/show_bug.cgi?id=213991
2039
2040         Reviewed by Darin Adler.
2041
2042         This particular log statement is too much spam in the system journal, since it prints
2043         continuously under normal operating conditions. Let's limit it only to Apple platforms,
2044         which have had RELEASE_LOG() for a long time and where this is presumably expected.
2045
2046         * wtf/MemoryPressureHandler.cpp:
2047         (WTF::MemoryPressureHandler::measurementTimerFired):
2048
2049 2020-07-06  Sam Weinig  <weinig@apple.com>
2050
2051         Compile-time enable (but leave disabled at runtime by default) date/time input types on macOS to allow testing of cross platform (e.g. DOM) aspects of the controls
2052         https://bugs.webkit.org/show_bug.cgi?id=213949
2053
2054         Reviewed by Darin Adler.
2055
2056         * wtf/PlatformEnableCocoa.h:
2057         Enable building date/time input types on all Cocoa ports. 
2058
2059 2020-07-06  Geoffrey Garen  <ggaren@apple.com>
2060
2061         RunLoop::dispatch should only call wakeUp when needed
2062         https://bugs.webkit.org/show_bug.cgi?id=213705
2063
2064         Reviewed by Brady Eidson.
2065
2066         RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
2067         when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
2068         of all database lookup time.
2069
2070         We can reduce the cost a bit by only scheduling a wakeUp when the queue
2071         is empty.
2072
2073         * wtf/RunLoop.cpp:
2074         (WTF::RunLoop::performWork): Take all the functions out of the pending
2075         queue before we start executing them; that way, we can tell if a new
2076         function has been added to the pending queue since we enetered
2077         performWork.
2078
2079         (WTF::RunLoop::dispatch): Only call wakeUp if we need to.
2080
2081         * wtf/RunLoop.h:
2082
2083 2020-07-04  Darin Adler  <darin@apple.com>
2084
2085         [Cocoa] Add almost everything from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2086         https://bugs.webkit.org/show_bug.cgi?id=213964
2087
2088         Reviewed by Sam Weinig.
2089
2090         Added logic that matches what FeatureDefines.xcconfig does for everything
2091         except for ENABLE_EXPERIMENTAL_FEATURES.
2092
2093         Changed format so we mostly list platforms where we do not want to enable
2094         a certain feature; also order it pretty consistently macOS, iOS, Mac Catalyst,
2095         watchOS, then tvOS. This format highlights possible mistakes when not enabling
2096         a feature on some platforms in an easier to understand way.
2097
2098         * wtf/PlatformEnableCocoa.h:
2099         (ENABLE_AIRPLAY_PICKER): List platforms that do *not* enable this.
2100         (ENABLE_APPLE_PAY): All except Mac Catalyst, watchOS, tvOS.
2101         Not sure why disabled in Mac Catalyst, but replicates FeatureDefines.xcconfig.
2102         (ENABLE_APPLE_PAY_REMOTE_UI): List platforms that do *not* enable this.
2103         (ENABLE_AUTOCAPITALIZE): List platforms that do *not* enable this.
2104         (ENABLE_AUTOCORRECT): List platforms that do *not* enable this.
2105         (ENABLE_CONTENT_FILTERING): All except older watchOS simulator and tvOS.
2106         (ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER): Re-sorted this.
2107         (ENABLE_CSS_CONIC_GRADIENTS): All except older macOS and tvOS. The tvOS
2108         exception seems questionable, so added a FIXME.
2109         (ENABLE_DARK_MODE_CSS): All except watchOS and tvOS.
2110         (ENABLE_DATA_INTERACTION): All except macOS, watchOS, and tvOS.
2111         (ENABLE_DATA_DETECTION): All except Mac Catalyst, watchOS, and tvOS.
2112         (ENABLE_EDITABLE_REGION): Only iOS.
2113         (ENABLE_ENCRYPTED_MEDIA): All except older macOS and Mac Catalyst.
2114         (ENABLE_FULLSCREEN_API): All except Mac Catalyst, watchOS, and tvOS.
2115         (ENABLE_FULL_KEYBOARD_ACCESS): All except Mac Catalyst, watchOS, and tvOS.
2116         (ENABLE_GAMEPAD): All except watchOS.
2117         (ENABLE_INPUT_TYPE_DATE): All except macOS, Mac Catalyst, and tvOS.
2118         (ENABLE_INPUT_TYPE_DATETIMELOCAL): Ditto.
2119         (ENABLE_INPUT_TYPE_MONTH): Ditto.
2120         (ENABLE_INPUT_TYPE_TIME): Ditto.
2121         (ENABLE_INPUT_TYPE_WEEK): Ditto.
2122         (ENABLE_MEDIA_CAPTURE): All except macOS.
2123         (ENABLE_MEDIA_SOURCE): All except Mac Catalyst, watchOS, tvOS, and
2124         all simulators.
2125         (ENABLE_MEDIA_STREAM): All except Mac Catalyst, watchOS, and tvOS.
2126         (ENABLE_NAVIGATOR_STANDALONE): All iOS family. (Considered writing as
2127         all except macOS, but left like this to match some .cpp code for now.)
2128         (ENABLE_OVERFLOW_SCROLLING_TOUCH): All iOS family.
2129         (ENABLE_PICTURE_IN_PICTURE_API): All except Mac Catalyst, watchOS, and tvOS.
2130         (ENABLE_SPEECH_SYNTHESIS): All except Mac Catalyst.
2131         (ENABLE_REVEAL): All except older macOS, watchOS, and tvOS.
2132         (ENABLE_SIGILL_CRASH_ANALYZER): All except macOS and watchOS.
2133         (ENABLE_TAKE_UNBOUNDED_NETWORKING_ASSERTION): All except macOS, watchOS, and tvOS.
2134         (ENABLE_VIDEO_PRESENTATION_MODE): All except simulators and tvOS.
2135         (ENABLE_WEBGPU): All except older macOS, Mac Catalyst, and simulators.
2136         (ENABLE_WEB_API_STATISTICS): Re-sorted this.
2137         (ENABLE_WEB_AUTHN): All except Mac Catalyst, watchOS, and tvOS.
2138         (ENABLE_WEB_RTC): All except Mac Catalyst, watchOS, and tvOS.
2139
2140 2020-07-04  Darin Adler  <darin@apple.com>
2141
2142         [Cocoa] Remove all features from FeatureDefines.xcconfig that are already mentioned in PlatformEnableCocoa.h
2143         https://bugs.webkit.org/show_bug.cgi?id=213962
2144
2145         Reviewed by Sam Weinig.
2146
2147         * wtf/PlatformEnableCocoa.h:
2148         (ENABLE_DRAG_SUPPORT): Before, this was enabled for iOS, iOS simulator, and Mac Catalyst in the
2149         FeatureDefines.xcconfig file, but then disabled for any other iOS family platform here, then enabled
2150         by default in PlatformEnable.h, which covered Mac. Instead, disable here only for watchOS and tvOS,
2151         which gives the same result in a more straightforward way.
2152         (ENABLE_GEOLOCATION): Before, this was enabled for iOS, iOS simulator, Mac Catalyst, and Mac in the
2153         FeatureDefines.xcconfig file, then enabled for any other iOS family platform here. Instead, just
2154         enable here for all Cocoa platforms, which gives the same result in a more straightforward way.
2155
2156 2020-07-03  Darin Adler  <darin@apple.com>
2157
2158         Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
2159         https://bugs.webkit.org/show_bug.cgi?id=212420
2160
2161         Reviewed by Don Olmstead.
2162
2163         * Scripts/generate-unified-source-bundles.rb: Removed the --feature-flags
2164         command line option along with the code that implements it.
2165
2166 2020-07-03  Sam Weinig  <weinig@apple.com>
2167
2168         Remove support for ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE
2169         https://bugs.webkit.org/show_bug.cgi?id=213932
2170
2171         Reviewed by Darin Adler.
2172
2173         Removes support for non-standard <input type="datetime">, currently being 
2174         guarded by the macro ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE. This macro, was
2175         added back in 2013 as a temporary measure to support some engines who shipped
2176         support for <input type="datetime">. It is currently not enabled for any
2177         ports so now seems like as good a time as any to remove it.
2178
2179         * wtf/PlatformEnable.h:
2180
2181 2020-07-03  Sam Weinig  <weinig@apple.com>
2182
2183         Add "-Wliteral-conversion" warning to Xcode based builds and fix the issues it finds
2184         https://bugs.webkit.org/show_bug.cgi?id=213931
2185
2186         Reviewed by Darin Adler.
2187
2188         * Configurations/Base.xcconfig:
2189         Add -Wliteral-conversion.
2190
2191 2020-07-03  Commit Queue  <commit-queue@webkit.org>
2192
2193         Unreviewed, reverting r263882.
2194         https://bugs.webkit.org/show_bug.cgi?id=213933
2195
2196         Broke the build
2197
2198         Reverted changeset:
2199
2200         "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
2201         replace _WKProcessPoolConfiguration.hstsStorageDirectory"
2202         https://bugs.webkit.org/show_bug.cgi?id=213048
2203         https://trac.webkit.org/changeset/263882
2204
2205 2020-07-02  Alex Christensen  <achristensen@webkit.org>
2206
2207         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
2208         https://bugs.webkit.org/show_bug.cgi?id=213048
2209
2210         Reviewed by Youenn Fablet.
2211
2212         * wtf/PlatformHave.h:
2213
2214 2020-07-02  Alex Christensen  <achristensen@webkit.org>
2215
2216         Add testing infrastructure and SPI declaration for HTTP/2 ping
2217         https://bugs.webkit.org/show_bug.cgi?id=213913
2218
2219         Reviewed by Jer Noble.
2220
2221         This is work towards rdar://problem/64495827
2222
2223         * wtf/PlatformHave.h:
2224
2225 2020-07-01  Tim Horton  <timothy_horton@apple.com>
2226
2227         Upstream application accent color support
2228         https://bugs.webkit.org/show_bug.cgi?id=213859
2229
2230         Reviewed by Wenson Hsieh.
2231
2232         * wtf/PlatformHave.h:
2233
2234 2020-07-01  Alexey Shvayka  <shvaikalesh@gmail.com>
2235
2236         Use more efficient makeString() instead of StringBuilder
2237         https://bugs.webkit.org/show_bug.cgi?id=213708
2238
2239         Reviewed by Sam Weinig.
2240
2241         Introduces StringTypeAdapter<std::tuple> overload, which enables using
2242         makeString() instead of StringBuilder in more cases.
2243
2244         * wtf/text/StringConcatenate.h:
2245         (WTF::StringTypeAdapter<std::tuple<StringTypes...>, void>): Added.
2246
2247 2020-06-30  Geoffrey Garen  <ggaren@apple.com>
2248
2249         [Cocoa] [GTK] RunLoop::Timer::isActive() is incorrect for timers while they are firing
2250         https://bugs.webkit.org/show_bug.cgi?id=213771
2251
2252         Reviewed by Darin Adler.
2253
2254         I noticed this because it triggered an assertion failure in
2255         BackgroundProcessResponsivenessTimer::scheduleNextResponsivenessCheck().
2256
2257         In WebKit timer parlance "isActive()" means "will fire again", so a
2258         one-shot timer should report inactive right when it fires. Otherwise,
2259         there's no way to check if it needs to be rescheduled.
2260
2261         * wtf/cf/RunLoopCF.cpp:
2262         (WTF::RunLoop::TimerBase::timerFired): For one-shot timers, stop our
2263         timer before it fires, so that we know it is not active.
2264
2265         * wtf/glib/RunLoopGLib.cpp:
2266         (WTF::RunLoop::TimerBase::TimerBase): For repeating timers, reschedule
2267         our timer before it fires, so that we know it is active.
2268
2269 2020-06-30  Mark Lam  <mark.lam@apple.com>
2270
2271         Add handling for a case of OOME in CSSTokenizer and CSSParser.
2272         https://bugs.webkit.org/show_bug.cgi?id=213702
2273         <rdar://problem/64808889>
2274
2275         Reviewed by Darin Adler.
2276
2277         1. Added FailureAction so that we can parameterize how we want to handle failures.
2278            In this patch, we're only using this for allocation failures, but we could
2279            technically apply this to other types of failures as well.
2280
2281         2. Apply FailureAction to many methods in Vector (and its super classes) so that
2282            we can start de-duplicating code.  Previously, we were always duplicating code
2283            just to have a "try" version of the same method that reports the failure to
2284            allocate instead of crashing.  We can now parameterize all these methods on a
2285            FailureAction template parameter instead, and avoid the code duplication.
2286            This patch also reverses some of the existing code duplication.
2287
2288         * WTF.xcodeproj/project.pbxproj:
2289         * wtf/CMakeLists.txt:
2290         * wtf/FailureAction.h: Added.
2291         * wtf/Vector.h:
2292         (WTF::VectorBufferBase::allocateBuffer):
2293         (WTF::VectorBufferBase::tryAllocateBuffer):
2294         (WTF::VectorBuffer::allocateBuffer):
2295         (WTF::VectorBuffer::tryAllocateBuffer):
2296         (WTF::Vector::reserveCapacity):
2297         (WTF::Vector::tryReserveCapacity):
2298         (WTF::Vector::reserveInitialCapacity):
2299         (WTF::Vector::tryReserveInitialCapacity):
2300         (WTF::Vector::append):
2301         (WTF::Vector::tryAppend):
2302         (WTF::Vector::constructAndAppend):
2303         (WTF::Vector::tryConstructAndAppend):
2304         (WTF::Vector::expandCapacity):
2305         (WTF::Vector::resize):
2306         (WTF::Vector::grow):
2307         (WTF::Vector::reserveCapacity):
2308         (WTF::Vector::reserveInitialCapacity):
2309         (WTF::Vector::append):
2310         (WTF::Vector::constructAndAppend):
2311         (WTF::Vector::appendSlowCase):
2312         (WTF::Vector::constructAndAppendSlowCase):
2313         (WTF::Vector::appendVector):
2314         (WTF::Vector::insert):
2315         (WTF::Vector::tryExpandCapacity): Deleted.
2316         (WTF::Vector::tryReserveCapacity): Deleted.
2317         (WTF::Vector::tryAppend): Deleted.
2318         (WTF::Vector::tryConstructAndAppend): Deleted.
2319         (WTF::Vector::tryConstructAndAppendSlowCase): Deleted.
2320
2321 2020-06-30  Peng Liu  <peng.liu6@apple.com>
2322
2323         Enable the support of FULLSCREEN_API in WebKitTestRunner
2324         https://bugs.webkit.org/show_bug.cgi?id=213774
2325
2326         Reviewed by Youenn Fablet.
2327
2328         Replace the definition of ENABLE_FULLSCREEN_API in FeatureDefines.xcconfig with
2329         the one in PlatformEnableCocoa.h. We have to do that because WebKitTestRunner
2330         does not have a FeatureDefines.xcconfig but it uses "ENABLE(FULLSCREEN_API)"
2331         to conditionally compile code to test the element fullscreen API.
2332         WebKitTestRunner can use the macro defined in PlatformEnableCocoa.h.
2333
2334         * wtf/PlatformEnableCocoa.h:
2335
2336 2020-06-30  Alex Christensen  <achristensen@webkit.org>
2337
2338         Remove WTF::MD5
2339         https://bugs.webkit.org/show_bug.cgi?id=213766
2340
2341         Reviewed by Youenn Fablet.
2342
2343         It was only used for CURL's cache file name generation.
2344         If you want to use a broken hash function, use SHA1.
2345
2346         * WTF.xcodeproj/project.pbxproj:
2347         * wtf/CMakeLists.txt:
2348         * wtf/MD5.cpp: Removed.
2349         * wtf/MD5.h: Removed.
2350
2351 2020-06-30  Andy Estes  <aestes@apple.com>
2352
2353         [Xcode] Enable the "My Mac (Mac Catalyst)" destination in WebKit Xcode projects
2354         https://bugs.webkit.org/show_bug.cgi?id=213740
2355
2356         Reviewed by Darin Adler.
2357
2358         * Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this
2359         project supports building for Mac Catalyst.
2360
2361 2020-06-30  Commit Queue  <commit-queue@webkit.org>
2362
2363         Unreviewed, reverting r263724.
2364         https://bugs.webkit.org/show_bug.cgi?id=213781
2365
2366
2367         Reverted changeset:
2368
2369         "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
2370         replace _WKProcessPoolConfiguration.hstsStorageDirectory"
2371         https://bugs.webkit.org/show_bug.cgi?id=213048
2372         https://trac.webkit.org/changeset/263724
2373
2374 2020-06-29  Geoffrey Garen  <ggaren@apple.com>
2375
2376         Unreviewed, rolling out an accidental change from r263723.
2377
2378         * wtf/cf/RunLoopCF.cpp:
2379         (WTF::RunLoop::TimerBase::timerFired):
2380
2381 2020-06-29  Alex Christensen  <achristensen@webkit.org>
2382
2383         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
2384         https://bugs.webkit.org/show_bug.cgi?id=213048
2385
2386         Reviewed by Youenn Fablet.
2387
2388         * wtf/PlatformHave.h:
2389
2390 2020-06-29  Geoffrey Garen  <ggaren@apple.com>
2391
2392         [GTK] [Win] Build callOnMainThread on WTF::RunLoop rather than on a timer
2393         https://bugs.webkit.org/show_bug.cgi?id=213694
2394
2395         Reviewed by Carlos Garcia Campos.
2396
2397         As of https://bugs.webkit.org/show_bug.cgi?id=213063, Darwin platforms
2398         use the RunLoop. Let's match them for consistency, and to delete some
2399         code.
2400
2401         * wtf/generic/MainThreadGeneric.cpp:
2402         (WTF::scheduleDispatchFunctionsOnMainThread):
2403         (WTF::MainThreadDispatcher::MainThreadDispatcher): Deleted.
2404         (WTF::MainThreadDispatcher::schedule): Deleted.
2405         (WTF::MainThreadDispatcher::fired): Deleted.
2406         * wtf/glib/RunLoopSourcePriority.h:
2407         * wtf/win/MainThreadWin.cpp:
2408         (WTF::initializeMainThreadPlatform):
2409         (WTF::scheduleDispatchFunctionsOnMainThread):
2410         (WTF::ThreadingWindowWndProc): Deleted.
2411
2412 2020-06-29  Guowei Yang  <guowei_yang@apple.com>
2413
2414         Adding Experimental Feature Flags for CoreImage backed SVG/CSS Filters
2415         https://bugs.webkit.org/show_bug.cgi?id=213578
2416
2417         Reviewed by Darin Adler, Simon Fraser, Myles C. Maxfield.
2418
2419         Preparing to implement CoreImage backed filter rendering
2420         Needs Compiler guards and experimental feature guard.
2421
2422         * wtf/PlatformEnableCocoa.h: Added definition of a feature flag, 
2423           ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER
2424         * wtf/PlatformUse.h:  Added compiler guard #define USE_CORE_IMAGE 1
2425           to indicate whether CoreImage code is visible to the compiler
2426
2427 2020-06-29  Tetsuharu Ohzeki  <tetsuharu.ohzeki@gmail.com>
2428
2429         Remove ENABLE_STREAMS_API compilation flag
2430         https://bugs.webkit.org/show_bug.cgi?id=213728
2431
2432         Reviewed by Sam Weinig.
2433
2434         * wtf/PlatformEnable.h:
2435
2436 2020-06-29  Yusuke Suzuki  <ysuzuki@apple.com>
2437
2438         [WTF] Add more StringView / ASCIILiteral helper functions and add ICUDeleter
2439         https://bugs.webkit.org/show_bug.cgi?id=209774
2440
2441         Reviewed by Ross Kirsling and Darin Adler.
2442
2443         Add ICUDeleter for cleaner ICU object deletion.
2444         Add ICU::majorVersion and ICU::minorVersion to switch the skeleton string in Intl.NumberFormat.
2445         Add more features for ASCIILiteral.
2446
2447         This patch is part of https://bugs.webkit.org/show_bug.cgi?id=209774. I land it separately from
2448         Intl.NumberFormat change to unlock the further Intl implementations using ICUDeleter.
2449
2450         * WTF.xcodeproj/project.pbxproj:
2451         * wtf/CMakeLists.txt:
2452         * wtf/text/ASCIILiteral.h:
2453         * wtf/text/StringView.cpp:
2454         (WTF::codePointCompare):
2455         * wtf/text/StringView.h:
2456         (WTF::StringView::StringView):
2457         * wtf/unicode/icu/ICUHelpers.cpp: Copied from Source/WTF/wtf/text/ASCIILiteral.h.
2458         (WTF::ICU::version):
2459         (WTF::ICU::majorVersion):
2460         (WTF::ICU::minorVersion):
2461         * wtf/unicode/icu/ICUHelpers.h:
2462         (WTF::ICUDeleter::operator()):
2463
2464 2020-06-28  Geoffrey Garen  <ggaren@apple.com>
2465
2466         Rename initializeThreading to initialize
2467         https://bugs.webkit.org/show_bug.cgi?id=213674
2468
2469         Reviewed by Mark Lam.
2470
2471         Reasons:
2472
2473         (1) You need to call it even if you don't use threads.
2474
2475         (2) It initializes things unrelated to threads (like the PRNG).
2476
2477         (3) People seem to get confused about the relationship between
2478         initializeThreading() and initializeMainThread(), and sometimes think
2479         initializeThreading() is a superset. The opposite is true! I think the
2480         confusion may come from "threading" being read as "all threading".
2481
2482         Some filenames still use the legacy name. We can fix that in post.
2483
2484         * benchmarks/ConditionSpeedTest.cpp:
2485         (main):
2486         * benchmarks/HashSetDFGReplay.cpp:
2487         (main):
2488         * benchmarks/LockFairnessTest.cpp:
2489         (main):
2490         * benchmarks/LockSpeedTest.cpp:
2491         (main):
2492         * wtf/MainThread.cpp:
2493         (WTF::initializeMainThread):
2494         * wtf/Threading.cpp:
2495         (WTF::Thread::create):
2496         (WTF::initialize):
2497         (WTF::initializeThreading): Deleted.
2498         * wtf/Threading.h:
2499         (WTF::Thread::current):
2500
2501 2020-06-27  Sam Weinig  <weinig@apple.com>
2502
2503         Improve assertions in StringParsingBuffer 
2504         https://bugs.webkit.org/show_bug.cgi?id=213633
2505
2506         Reviewed by Darin Adler.
2507
2508         * wtf/text/StringParsingBuffer.h:
2509         Address additional feedback and improve the assertions by making them more
2510         clear and avoid potential overflows.
2511
2512 2020-06-26  Geoffrey Garen  <ggaren@apple.com>
2513
2514         Re-land r262863
2515         https://bugs.webkit.org/show_bug.cgi?id=213654
2516
2517         Reviewed by Tadeu Zagallo.
2518
2519         r263575 should fix the crash we saw.
2520
2521         * wtf/cocoa/MainThreadCocoa.mm:
2522         (WTF::initializeMainThreadPlatform):
2523         (WTF::scheduleDispatchFunctionsOnMainThread):
2524         (-[JSWTFMainThreadCaller call]): Deleted.
2525
2526 2020-06-26  Geoffrey Garen  <ggaren@apple.com>
2527
2528         Initializing the main thread should initialize the main run loop
2529         https://bugs.webkit.org/show_bug.cgi?id=213637
2530
2531         Reviewed by Anders Carlsson.
2532
2533         Previously, some code initialized one, some the other, and some both;
2534         and some code tried to initialize more than once; and some code tried
2535         to initialize in ways that would crash but luckily got pre-empted by
2536         other code that had already initialized.
2537
2538         In addition to general confusion, this setup made it subtly high stakes
2539         to call certain functions, like callOnMainThread or
2540         RunLoop::main().dispatch(), because they might crash if the right
2541         initialization had not been performed.
2542
2543         Let's fix that.
2544
2545         * wtf/MainThread.cpp:
2546         (WTF::initializeMainThread): Removed defunct comment about
2547         initializeMainThreadToProcessMainThread. Shrank scope of initializeKey.
2548         * wtf/RunLoop.cpp:
2549         (WTF::RunLoop::initializeMain): Don't call initializeMainThread anymore
2550         because it calls us now. No need for a store fence since we run on the
2551         main thread and we don't store anything.
2552         (WTF::RunLoop::initializeWeb): Upgrade to RELEASE_ASSERT.
2553         * wtf/RunLoop.h: Removed incorrect comment. (Fascinating to wonder when
2554         it became incorrect.)
2555
2556 2020-06-25  Sam Weinig  <weinig@apple.com>
2557
2558         Add a new templated string type to help write more idiomatic parsing code
2559         https://bugs.webkit.org/show_bug.cgi?id=213588
2560
2561         Reviewed by Darin Adler.
2562         
2563         Introduce StringParsingBuffer<CharType>, a new class in the String class family
2564         designed to be used by parsing code. It's designed to be used with the helper
2565         function, readCharactersForParsing, and for the user to write the parsing code
2566         in a way that will work for both latin1 and UTF-16 inputs. Most usage will likely
2567         follow something like the following form
2568         
2569         {
2570             ...
2571             auto parsedResult = readCharactersForParsing(stringishObjectToParse, [](auto parsingBuffer) {
2572                 while (parsingBuffer.hasCharactersRemaining()) {
2573                     if (*parsingBuffer == foo) {
2574                         ...
2575                     }
2576                 }
2577
2578                 ...
2579
2580                 return parsedResult
2581             });
2582             ...
2583         }
2584
2585         API tests added.
2586
2587         * WTF.xcodeproj/project.pbxproj:
2588         * wtf/CMakeLists.txt:
2589         Add StringParsingBuffer.h
2590
2591         * wtf/Forward.h:
2592         Forward declare StringParsingBuffer.
2593
2594         * wtf/text/StringParsingBuffer.h: 
2595         Added.
2596
2597 2020-06-25  Tadeu Zagallo  <tzagallo@apple.com>
2598
2599         WTF::callOnMainThread should not require the main runloop to be initialized
2600         https://bugs.webkit.org/show_bug.cgi?id=213612
2601         <rdar://problem/64446028>
2602
2603         Reviewed by Yusuke Suzuki.
2604
2605         When using JavaScriptCore as a framework, the WTF main runloop is never initialized. However,
2606         the inspector uses CFString wrappers, which use `callOnMainThread` when deallocating the
2607         underlying string. For now, we bring back the old `JSWTFMainThreadCaller` to ensure we have
2608         a way of dispatching to the main thread, even when the main runloop hasn't been initialized.
2609
2610         * wtf/RunLoop.cpp:
2611         (WTF::RunLoop::mainIfExists):
2612         * wtf/RunLoop.h:
2613         * wtf/cocoa/MainThreadCocoa.mm:
2614         (-[JSWTFMainThreadCaller call]):
2615         (WTF::initializeMainThreadPlatform):
2616         (WTF::scheduleDispatchFunctionsOnMainThread):
2617
2618 2020-06-24  Umar Iqbal  <uiqbal@apple.com>
2619
2620         We should resurrect the older patch that collects some statistics of web API calls
2621         https://bugs.webkit.org/show_bug.cgi?id=213319
2622
2623         Reviewed by Brent Fulgham.
2624
2625         + Enabled ENABLE_WEB_API_STATISTICS flag
2626         
2627         * wtf/PlatformEnableCocoa.h:
2628
2629 2020-06-24  Geoffrey Garen  <ggaren@apple.com>
2630
2631         Removed the 50ms rescheduling timeout from callOnMainThread
2632         https://bugs.webkit.org/show_bug.cgi?id=213560
2633
2634         Reviewed by Anders Carlsson.
2635
2636         This is a step toward making the engine less flaky by unifying
2637         callOnMainThread with RunLoop::dispatch.
2638
2639         The timeout was added in r40888 to avoid a hang under heavy postMessage
2640         load. A few reasons this isn’t the right approach anymore:
2641
2642         (1) postMessage has migrated to EventLoop, which does its own
2643         scheduling.
2644
2645         (2) postMessage does not use the application process RunLoop in Modern
2646         WebKit.
2647
2648         (3) Delay is not a sufficient solution to a messaging hang — because
2649         you’ll just OOM crash instead. The original author noted this problem
2650         in bug 23705 but never resolved it; and we rediscovered it in r233111.
2651
2652         I verified manually that the r40888 version of
2653         fast/workers/worker-timeout.html does not hang.
2654
2655         * wtf/MainThread.cpp:
2656         (WTF::dispatchFunctionsFromMainThread):
2657
2658 2020-06-23  Geoffrey Garen  <ggaren@apple.com>
2659
2660         Remove WTF::setMainThreadCallbacksPaused
2661         https://bugs.webkit.org/show_bug.cgi?id=213112
2662
2663         Reviewed by Tim Horton.
2664
2665         setMainThreadCallbacksPaused pauses all uses of callOnMainThread. That
2666         has too many side-effects. For example, you can scroll, but you can't
2667         paint any large images (since they do async image decoding).
2668
2669         Meanwhile, setMainThreadCallbacksPaused doesn't pause RunLoop::dispatch.
2670         So, other things don't get paused.
2671
2672         Let's just rely on suspending the ScriptExecutionContext and document
2673         event queue. That should suspend JavaScript-visible stuff without
2674         suspending engine-critical stuff.
2675
2676         * wtf/MainThread.cpp:
2677         (WTF::dispatchFunctionsFromMainThread):
2678         (WTF::setMainThreadCallbacksPaused): Deleted.
2679         * wtf/MainThread.h:
2680
2681 2020-06-23  Chris Dumez  <cdumez@apple.com>
2682
2683         Remove a lot of unnecessary calls to Ref::copyRef()
2684         https://bugs.webkit.org/show_bug.cgi?id=213533
2685
2686         Reviewed by Darin Adler.
2687
2688         Remove a lot of unnecessary calls to Ref::copyRef() now that Ref is copyable.
2689
2690         * wtf/glib/SocketConnection.cpp:
2691         (WTF::SocketConnection::waitForSocketWritability):
2692
2693 2020-06-23  Saam Barati  <sbarati@apple.com>
2694
2695         Remove WKkIsTranslated once our bots are updated to the needed SDK
2696         https://bugs.webkit.org/show_bug.cgi?id=213489
2697
2698         Reviewed by Tim Horton.
2699
2700         We can use the "sysctl.proc_translated" sysctl instead.
2701
2702         * WTF.xcodeproj/project.pbxproj:
2703         * wtf/TranslatedProcess.cpp: Added.
2704         (WTF::isX86BinaryRunningOnARM):
2705         * wtf/TranslatedProcess.h:
2706         (WTF::isX86BinaryRunningOnARM):
2707
2708 2020-06-23  Mark Lam  <mark.lam@apple.com>
2709
2710         Handle string overflow in DFG graph dump while validating AI.
2711         https://bugs.webkit.org/show_bug.cgi?id=213524
2712         <rdar://problem/64635620>
2713
2714         Reviewed by Saam Barati.
2715
2716         * wtf/StringPrintStream.cpp:
2717         (WTF::StringPrintStream::tryToString):
2718         * wtf/StringPrintStream.h:
2719
2720 2020-06-22  Saam Barati  <sbarati@apple.com>
2721
2722         Allow building JavaScriptCore Mac+arm64 in public SDK build
2723         https://bugs.webkit.org/show_bug.cgi?id=213472
2724
2725         Reviewed by Sam Weinig.
2726
2727         * wtf/PlatformEnable.h:
2728         * wtf/PlatformEnableCocoa.h:
2729         * wtf/PlatformHave.h:
2730
2731 2020-06-22  Timothy Horton  <timothy_horton@apple.com>
2732
2733         Fix the build
2734
2735         * wtf/TranslatedProcess.h:
2736         (WTF::isX86BinaryRunningOnARM):
2737
2738 2020-06-22  Tim Horton  <timothy_horton@apple.com>
2739
2740         Disable the JS JIT when running in a translated process
2741         https://bugs.webkit.org/show_bug.cgi?id=213478
2742
2743         Reviewed by Saam Barati.
2744
2745         * wtf/PlatformHave.h:
2746         * wtf/TranslatedProcess.h: Added.
2747         * WTF.xcodeproj/project.pbxproj:
2748         * wtf/CMakeLists.txt:
2749         Add a helper function that can be used to determine that the current process
2750         is being translated; currently the only case is an x86_64 process running on arm64e.
2751
2752 2020-06-22  Tim Horton  <timothy_horton@apple.com>
2753
2754         Update macOS version macros
2755         https://bugs.webkit.org/show_bug.cgi?id=213484
2756
2757         Reviewed by Alexey Proskuryakov.
2758
2759         * Configurations/Base.xcconfig:
2760         * Configurations/DebugRelease.xcconfig:
2761
2762 2020-06-22  Geoffrey Garen  <ggaren@apple.com>
2763
2764         Unreviewed, re-landing r262904.
2765
2766         r263223 should fix the test flakiness we saw.
2767
2768         Re-landed changeset:
2769
2770         "[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
2771         a timer"
2772         https://bugs.webkit.org/show_bug.cgi?id=213063
2773         https://trac.webkit.org/changeset/262904
2774
2775 2020-06-21  Yusuke Suzuki  <ysuzuki@apple.com>
2776
2777         [WTF] Ensure ASCIILiteral is ASCII characters at compile time
2778         https://bugs.webkit.org/show_bug.cgi?id=213449
2779
2780         Reviewed by Ross Kirsling.
2781
2782         The purpose of ASCIILiteral is ensure that this is compile-time (do not need to consider about ownership) ASCII characters.
2783         By using `isASCII` and `ASSERT_UNDER_CONSTEXPR_CONTEXT`, we can make sure that this C string does not include non ASCII characters.
2784         For example,
2785
2786             auto globalVariable = "ラーメン (Ramen in Japanese)"_s;
2787
2788         becomes compile error.
2789
2790         * wtf/ASCIICType.h:
2791         (WTF::isASCII):
2792         * wtf/text/ASCIILiteral.h:
2793         (WTF::StringLiterals::operator _s):
2794
2795 2020-06-21  Yusuke Suzuki  <ysuzuki@apple.com>
2796
2797         [WTF] URL should support dataLog
2798         https://bugs.webkit.org/show_bug.cgi?id=213450
2799
2800         Reviewed by Mark Lam.
2801
2802         Add URL::dump(PrintStream&) to support `dataLog(url)` which is extremely useful for WTF / JSC developers.
2803
2804         * wtf/URL.cpp:
2805         (WTF::URL::dump const):
2806         * wtf/URL.h:
2807
2808 2020-06-19  Yusuke Suzuki  <ysuzuki@apple.com>
2809
2810         [JSC] Check Gigacage usage before launching VM
2811         https://bugs.webkit.org/show_bug.cgi?id=213410
2812
2813         Reviewed by Mark Lam.
2814
2815         * wtf/Gigacage.h:
2816         (Gigacage::footprint):
2817         (Gigacage::maxSize):
2818         (Gigacage::size):
2819
2820 2020-06-19  Truitt Savell  <tsavell@apple.com>
2821
2822         Unreviewed, reverting r263223.
2823
2824         Broke compositing/video/video-border-radius-clipping.html on
2825         Mac release wk1
2826
2827         Reverted changeset:
2828
2829         "Unreviewed, re-landing r262904."
2830         https://bugs.webkit.org/show_bug.cgi?id=213063
2831         https://trac.webkit.org/changeset/263223
2832
2833 2020-06-19  Michael Catanzaro  <mcatanzaro@gnome.org>
2834
2835         -Wsign-compare in isValidOptionSet
2836         https://bugs.webkit.org/show_bug.cgi?id=213383
2837
2838         Reviewed by Darin Adler.
2839
2840         The OptionSet's StorageType is always unsigned, even if the enum's underlying value is not.
2841         Match this in isValidOptionSet to avoid -Wsign-compare during validity checking.
2842
2843         * wtf/OptionSet.h:
2844         (WTF::isValidOptionSet):
2845
2846 2020-06-19  Myles C. Maxfield  <mmaxfield@apple.com>
2847
2848         [Cocoa] Unify "font:" CSS shorthand values between macOS and iOS family
2849         https://bugs.webkit.org/show_bug.cgi?id=213332
2850         <rdar://problem/64479189>
2851
2852         Reviewed by Tim Horton and Darin Adler.
2853
2854         All Cocoa platforms support kCTUIFontTextStyleTitle0 and kCTUIFontTextStyleTitle4.
2855
2856         * wtf/PlatformHave.h:
2857
2858 2020-06-18  Mark Lam  <mark.lam@apple.com>
2859
2860         Unify Bitmap math loops in MarkedBlock::Handle::specializedSweep().
2861         https://bugs.webkit.org/show_bug.cgi?id=213345
2862
2863         Reviewed by Robin Morisset and Saam Barati.
2864
2865         1. Removed Bitmap::words.  Use Bitmap::numberOfWords instead.
2866         2. Removed Bitmap::wordSize.  Use Bitmap::bitsInWord instead.
2867         3. Added a new Bitmap::words() method which returns the address of the underlying
2868            bitmap storage as a Bitmap::Word*.  This enables clients to do direct bit
2869            manipulation on the Bitmap words if needed.
2870
2871         * wtf/Bitmap.h:
2872         (WTF::WordType>::get const):
2873         (WTF::WordType>::set):
2874         (WTF::WordType>::testAndSet):
2875         (WTF::WordType>::testAndClear):
2876         (WTF::WordType>::concurrentTestAndSet):
2877         (WTF::WordType>::concurrentTestAndClear):
2878         (WTF::WordType>::clear):
2879         (WTF::WordType>::invert):
2880         (WTF::WordType>::nextPossiblyUnset const):
2881         (WTF::WordType>::count const):
2882         (WTF::WordType>::isEmpty const):
2883         (WTF::WordType>::isFull const):
2884         (WTF::WordType>::merge):
2885         (WTF::WordType>::filter):
2886         (WTF::WordType>::exclude):
2887         (WTF::WordType>::concurrentFilter):
2888         (WTF::WordType>::subsumes const):
2889         (WTF::WordType>::forEachSetBit const):
2890         (WTF::WordType>::findBit const):
2891         (WTF::WordType>::mergeAndClear):
2892         (WTF::WordType>::setAndClear):
2893         (WTF::WordType>::setEachNthBit):
2894         (WTF::= const):
2895         (WTF::=):
2896         (WTF::WordType>::hash const):
2897
2898 2020-06-18  Geoffrey Garen  <ggaren@apple.com>
2899
2900         Unreviewed, re-landing r262904.
2901
2902         r263219 and r263175 should fix the test flakiness we saw.
2903
2904         Re-landed changeset:
2905
2906         "[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
2907         a timer"
2908         https://bugs.webkit.org/show_bug.cgi?id=213063
2909         https://trac.webkit.org/changeset/262904
2910
2911 2020-06-18  David Kilzer  <ddkilzer@apple.com>
2912
2913         [IPC hardening] OptionSet<> values should be validated
2914         <https://webkit.org/b/213199>
2915         <rdar://problem/64369963>
2916
2917         Reviewed by Anders Carlsson.
2918
2919         * wtf/OptionSet.h:
2920         (WTF::isValidOptionSet): Add.
2921
2922 2020-06-17  Mark Lam  <mark.lam@apple.com>
2923
2924         Replace JSC::FreeList linked list with a Bitmap.
2925         https://bugs.webkit.org/show_bug.cgi?id=213071
2926
2927         Reviewed by Filip Pizlo.
2928
2929         1. Use countOfBits<> template to compute the number of bits.
2930         2. Introduce log2() and log2Constexpr() utility functions.
2931         3. Make Bitmap<>::forEachSetBit() a little bit more efficient: we don't need to
2932            keep iterating if the bitmap word is already empty of bits.
2933
2934         * wtf/Bitmap.h:
2935         (WTF::WordType>::forEachSetBit const):
2936         * wtf/MathExtras.h:
2937         (WTF::clzConstexpr):
2938         (WTF::clz):
2939         (WTF::ctzConstexpr):
2940         (WTF::ctz):
2941         (WTF::getMSBSet):
2942         (WTF::getMSBSetConstexpr):
2943         (WTF::log2):
2944         (WTF::log2Constexpr):
2945
2946 2020-06-17  David Kilzer  <ddkilzer@apple.com>
2947
2948         Replace OptionSetTraits/OptionSetValues with EnumTraits/EnumValues
2949         <https://webkit.org/b/213264>
2950
2951         Reviewed by Brent Fulgham.
2952
2953         * wtf/OptionSet.h:
2954         (WTF::isValidOptionSetEnum):
2955         (WTF::maskRawValue):
2956         - Replace OptionSetTraits<>/OptionSetValues<> with
2957           EnumTraits<>/EnumValues<>.
2958
2959 2020-06-08  Andy Estes  <aestes@apple.com>
2960
2961         [Apple Pay] Enable layout tests on more platforms
2962         https://bugs.webkit.org/show_bug.cgi?id=212955
2963         <rdar://problem/64174156>
2964
2965         Reviewed by Alex Christensen.
2966
2967         * wtf/PlatformEnableCocoa.h: Removed ENABLE_APPLE_PAY_INSTALLMENT_IDENTIFIERS,
2968         ENABLE_APPLE_PAY_INSTALLMENT_ITEMS, ENABLE_APPLE_PAY_SESSION_V8,
2969         ENABLE_APPLE_PAY_SESSION_V9, and ENABLE_APPLE_PAY_SESSION_V10.
2970         * wtf/PlatformHave.h: Removed HAVE_PASSKIT_INSTALLMENT_IDENTIFIERS and corrected iOS version
2971         checks for HAVE_PASSKIT_INSTALLMENTS.
2972
2973 2020-06-16  Michael Catanzaro  <mcatanzaro@gnome.org>
2974
2975         Fix build with !HAVE(MACHINE_CONTEXT)
2976         https://bugs.webkit.org/show_bug.cgi?id=213223
2977         <rdar://problem/64390209>
2978
2979         Reviewed by Yusuke Suzuki.
2980
2981         In r263074, I messed up and broke the build with !HAVE(MACHINE_CONTEXT). Even though the
2982         sole purpose of that commit was to fix !HAVE(MACHINE_CONTEXT), I must have somehow messed up
2983         when testing my change.
2984
2985         Anyway, we can just create an empty PlatformRegisters object when HAVE(MACHINE_CONTEXT) is
2986         false. At first, I was worried that passing an empty PlatformRegisters could be open to
2987         misuse, but it's actually hard to misuse it because the only sensible thing you can do with
2988         it is pass it to MachineContext, and you can't use MachineContext outside
2989         HAVE(MACHINE_CONTEXT), so we should be good.
2990
2991         * wtf/threads/Signals.cpp:
2992         (WTF::jscSignalHandler):
2993
2994 2020-06-16  Chris Dumez  <cdumez@apple.com>
2995
2996         Stop calling userPreferredLanguages() in the UIProcess
2997         https://bugs.webkit.org/show_bug.cgi?id=213214
2998         <rdar://problem/64317593>
2999
3000         Reviewed by Per Arne Vollan.
3001
3002         Export WTF::languageDidChange() so we can call it from WebKit2.
3003
3004         * wtf/Language.h:
3005
3006 2020-06-16  Mark Lam  <mark.lam@apple.com>
3007
3008         Add SIGABRT handler for non OS(DARWIN) builds to the jsc shell with the -s option.
3009         https://bugs.webkit.org/show_bug.cgi?id=213200
3010
3011         Reviewed by Michael Catanzaro.
3012
3013         * wtf/threads/Signals.h:
3014         (WTF::toSystemSignal):
3015         (WTF::fromSystemSignal):
3016
3017 2020-06-15  Michael Catanzaro  <mcatanzaro@gnome.org>
3018
3019         WTF signal machinery is guarded by #if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) but does not use pthreads or machine context
3020         https://bugs.webkit.org/show_bug.cgi?id=213223
3021
3022         Reviewed by Mark Lam.
3023
3024         Use #if OS(UNIX) instead.
3025
3026         * wtf/WTFConfig.h:
3027         * wtf/threads/Signals.cpp:
3028         * wtf/threads/Signals.h:
3029
3030 2020-06-15  Keith Miller  <keith_miller@apple.com>
3031
3032         REGRESSION (r263045): TestWTF.Signals.SignalsWorkOnExit crashing
3033         https://bugs.webkit.org/show_bug.cgi?id=213211
3034
3035         Reviewed by Mark Lam.
3036
3037         Don't call toMachMask on Signal::Usr as mach doesn't support user exceptions.
3038
3039         * wtf/threads/Signals.cpp:
3040         (WTF::SignalHandlers::add):
3041
3042 2020-06-15  Michael Catanzaro  <mcatanzaro@gnome.org>
3043
3044         Consistently use WTF_ATTRIBUTE_PRINTF in Assertions.[cpp,h]
3045         https://bugs.webkit.org/show_bug.cgi?id=213204
3046
3047         Reviewed by Darin Adler.
3048
3049         Use WTF_ATTRIBUTE_PRINTF for all functions taking a printf format specifier. The first
3050         argument should be the position of the format string itself (starting from 1), and the
3051         second argument should be the position of the ... parameter pack, or 0 for functions that
3052         take a va_list.
3053
3054         * wtf/Assertions.cpp:
3055         * wtf/Assertions.h:
3056
3057 2020-06-15  Keith Miller  <keith_miller@apple.com>
3058
3059         Unreviewed, build fix for build without mach exceptions.
3060
3061         * wtf/threads/Signals.cpp:
3062         (WTF::SignalHandlers::add):
3063         (WTF::addSignalHandler):
3064
3065 2020-06-15  Keith Miller  <keith_miller@apple.com>
3066
3067         Signal handlers should have a two phase installation.
3068         https://bugs.webkit.org/show_bug.cgi?id=213160
3069
3070         Reviewed by Mark Lam.
3071
3072         LLDB does not like it when we single step while there are mach exception
3073         handlers installed because LLDB suspends all the non-active threads.
3074         With Mach exception handlers installed, the OS will send a mach message
3075         to our exception handler port, which is different than the active thread.
3076         When this happens, the combination of LLDB and the process JSC is in effectively
3077         deadlock.
3078
3079         Under our new approach, we go back to only telling the OS we care about
3080         these exceptions late but lock down the function pointers early. This way
3081         processes that benefit from our exception handler code are easier to debug.
3082
3083         * wtf/threads/Signals.cpp:
3084         (WTF::addSignalHandler):
3085         (WTF::activateSignalHandlersFor):
3086         (WTF::installSignalHandler): Deleted.
3087         * wtf/threads/Signals.h:
3088
3089 2020-06-15  Per Arne Vollan  <pvollan@apple.com>
3090
3091         Pack bytes a little tighter in MemoryPressureHandler
3092         https://bugs.webkit.org/show_bug.cgi?id=200392
3093
3094         Reviewed by Yusuke Suzuki.
3095
3096         Save a tiny bit of memory by packing member variables tighter in MemoryPressureHandler.
3097
3098         * wtf/MemoryPressureHandler.h:
3099
3100 2020-06-12  Keith Miller  <keith_miller@apple.com>
3101
3102         Tests expecting a crash should use a signal handler in the JSC CLI process
3103         https://bugs.webkit.org/show_bug.cgi?id=212479
3104
3105         Reviewed by Yusuke Suzuki.
3106
3107         Add signals for floating point exceptions and breakpoints. There's a
3108         note for breakpoints that explains how using them in the same process
3109         as lldb will cause badness. Fortunately, the only place I plan on using
3110         the breakpoint handler is to check for tests where crashing is expected.
3111
3112         * wtf/threads/Signals.cpp:
3113         (WTF::fromMachException):
3114         (WTF::toMachMask):
3115         * wtf/threads/Signals.h:
3116         (WTF::toSystemSignal):
3117         (WTF::fromSystemSignal):
3118
3119 2020-06-12  Jason Lawrence  <lawrence.j@apple.com>
3120
3121         Unreviewed, reverting r262904.
3122
3123         This commit broke a test on Mac wk1 Debug.
3124
3125         Reverted changeset:
3126
3127         "[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
3128         a timer"
3129         https://bugs.webkit.org/show_bug.cgi?id=213063
3130         https://trac.webkit.org/changeset/262904
3131
3132 2020-06-12  Adrian Perez de Castro  <aperez@igalia.com>
3133
3134         Build is broken with EVENT_LOOP_TYPE=GLib
3135         https://bugs.webkit.org/show_bug.cgi?id=212987
3136
3137         Reviewed by Konstantin Tokarev.
3138
3139         * wtf/CurrentTime.cpp: Make sure that <time.h> is included to get clock_gettime() and
3140         friends defined when USE_GLIB is disabled.
3141         * wtf/PlatformJSCOnly.cmake: Use FileSystemGLib instead of FileSystemPOSIX when
3142         EVENT_LOOP_TYPE=GLib is set, add missing sources needed when ENABLE_REMOTE_INSPECTOR
3143         is set.
3144         * wtf/glib/RunLoopSourcePriority.h: Use the same list of priorities for WPE and JSCOnly.
3145
3146 2020-06-11  Alex Christensen  <achristensen@webkit.org>
3147
3148         Re-enable download resume tests
3149         https://bugs.webkit.org/show_bug.cgi?id=213098
3150         <rdar://problem/63512518>
3151
3152         Reviewed by Geoffrey Garen.
3153
3154         Workaround is no longer needed because underlying bug has been fixed.
3155
3156         * wtf/PlatformHave.h:
3157
3158 2020-06-11  Jonathan Bedard  <jbedard@apple.com>
3159
3160         WebKit: Make UIGestureRecognizer build for watchOS and tvOS
3161         https://bugs.webkit.org/show_bug.cgi?id=213038
3162         <rdar://problem/64217654>
3163
3164         Reviewed by Tim Horton.
3165
3166         * wtf/PlatformHave.h: Enable HAVE(UI_GESTURE_RECOGNIZER_MODIFIER_FLAGS) for watchOS and tvOS.
3167
3168 2020-06-11  David Kilzer  <ddkilzer@apple.com>
3169
3170         [IPC] Adopt enum class for DragSourceAction
3171         <https://webkit.org/b/212885>
3172         <rdar://problem/64094134>
3173
3174         Reviewed by Darin Adler.
3175
3176         * wtf/OptionSet.h:
3177         (WTF::OptionSet::hasExactlyOneBitSet const): Add.
3178         - Move here from WebCore::ExactlyOneBitSet() in
3179           Source/WebCore/page/EventHandler.cpp.
3180         (WTF::OptionSet::toSingleValue const): Add.
3181         - Use hasExactlyOneBitSet() to determine whether exactly one
3182           enum bitmask value can be returned.
3183
3184 2020-06-11  Geoffrey Garen  <ggaren@apple.com>
3185
3186         [Cocoa] Build callOnMainThread on WTF::RunLoop rather than on a timer
3187         https://bugs.webkit.org/show_bug.cgi?id=213063
3188
3189         Reviewed by Anders Carlsson.
3190
3191         Always use the RunLoop API for main thread tasks.
3192
3193         Previously, callOnMainThread sometimes scheduled a timer and sometimes
3194         used the RunLoop. (Ironically, the timer behavior was added in r55816
3195         with the intention to establish a single point of execution. Now, it has
3196         the opposite effect.)
3197
3198         I picked the RunLoop API rather than the timer API because it moves us
3199         closer to universally applying the RunLoop speedup in
3200         https://bugs.webkit.org/show_bug.cgi?id=202874. Also, it avoids
3201         allocating a timer, which can be expensive.
3202
3203         * wtf/cocoa/MainThreadCocoa.mm:
3204         (WTF::scheduleDispatchFunctionsOnMainThread): The webIfExists() check
3205         is a superset of the isWebThread() check, so we can just remove the
3206         isWebThread() check when scheduling tasks to the web thread.
3207         (WTF::timerFired): Deleted.
3208         (WTF::postTimer): Deleted.
3209
3210 2020-06-10  Geoffrey Garen  <ggaren@apple.com>
3211
3212         Some style improvements to main thread code
3213         https://bugs.webkit.org/show_bug.cgi?id=213051
3214
3215         Reviewed by Darin Adler.
3216
3217         * wtf/RunLoop.cpp:
3218         (WTF::RunLoop::initializeMain): Renamed initializeMainRunLoop => initializeMain
3219         to match the getter's name.
3220         (WTF::RunLoop::initializeWeb): Samesies.
3221         (WTF::RunLoop::webIfExists): Added an IfExists accessor for use in
3222         scheduleDispatchFunctionsOnMainThread().
3223         (WTF::RunLoop::initializeMainRunLoop): Deleted.
3224         (WTF::RunLoop::initializeWebRunLoop): Deleted.
3225
3226         * wtf/RunLoop.h:
3227
3228         * wtf/cocoa/MainThreadCocoa.mm:
3229         (WTF::scheduleDispatchFunctionsOnMainThread): Use RunLoop::webIfExists()
3230         to check for the web thread run loop, since that's more explicit than
3231         checking a pthread variable.
3232
3233         (WTF::isWebThread): Renamed mainThreadPthread => webThreadPthread because
3234         it's the web thread. Changed style on globals to "s_" for consistency.
3235         Removed mainThreadNSThread because it was unused.
3236         (WTF::initializeApplicationUIThread):
3237         (WTF::initializeWebThread):
3238         (WTF::canCurrentThreadAccessThreadLocalData):
3239
3240 2020-06-10  Geoffrey Garen  <ggaren@apple.com>
3241
3242         [Cocoa] Build callOnMainThread on WTF::RunLoop rather than on NSObject methods
3243         https://bugs.webkit.org/show_bug.cgi?id=213043
3244
3245         Reviewed by Simon Fraser.
3246
3247         Original patch by Sihui Liu.
3248
3249         From https://bugs.webkit.org/show_bug.cgi?id=202874, this is the subset
3250         of Sihui's patch that unifies some of RunLoop and callOnMainThread.
3251
3252         My goal is to simplify the code, and shrink the diff when testing
3253         CFRunLoopSource1 in the future.
3254
3255         * wtf/RunLoop.cpp:
3256         (WTF::RunLoop::initializeWebRunLoop):
3257         (WTF::RunLoop::web):
3258         * wtf/RunLoop.h:
3259         * wtf/cocoa/MainThreadCocoa.mm:
3260         (WTF::initializeMainThreadPlatform):
3261         (WTF::scheduleDispatchFunctionsOnMainThread):
3262         (WTF::initializeWebThread):
3263         (-[JSWTFMainThreadCaller call]): Deleted.
3264
3265 2020-06-10  Jer Noble  <jer.noble@apple.com>
3266
3267         Catalyst WebKit apps continue to play audio after quitting
3268         https://bugs.webkit.org/show_bug.cgi?id=212981
3269         <rdar://problem/57089471>
3270
3271         Reviewed by Chris Dumez.
3272
3273         Add the ability to call copyToVector() on a WeakHashSet. This requires two changes:
3274         - A template specialization that returns a Vector<WeakPtr<T>> from copyToVector()
3275         - A template specialization that calls calculateSize() rather than size() on the object
3276           being iterated upon.
3277
3278         * wtf/WeakHashSet.h:
3279         (WTF::copyToVector):
3280
3281 2020-06-09  Tim Horton  <timothy_horton@apple.com>
3282
3283         Use os_log instead of asl_log
3284         https://bugs.webkit.org/show_bug.cgi?id=213001
3285
3286         Reviewed by Saam Barati.
3287
3288         * WTF.xcodeproj/project.pbxproj:
3289         * wtf/Assertions.cpp:
3290
3291 2020-06-09  Chris Dumez  <cdumez@apple.com>
3292
3293         Use bridge cast in String(NSString *) constructor
3294         https://bugs.webkit.org/show_bug.cgi?id=212989
3295
3296         Reviewed by Darin Adler.
3297
3298         Use bridge cast in String(NSString *) constructor instead of a reinterpret_cast as this
3299         is the preferred way of converting a NS Type to a CF one.
3300
3301         * wtf/text/cocoa/StringCocoa.mm:
3302         (WTF::String::String):
3303
3304 2020-06-09  Per Arne Vollan  <pvollan@apple.com>
3305
3306         All platforms should enable CFPrefs read only mode in the WebContent process
3307         https://bugs.webkit.org/show_bug.cgi?id=212910
3308
3309         Reviewed by Tim Horton.
3310
3311         In https://bugs.webkit.org/show_bug.cgi?id=212411, CFPrefs read only mode was adopted, but not all platforms were included.
3312
3313         * wtf/PlatformHave.h:
3314
3315 2020-06-09  Wenson Hsieh  <wenson_hsieh@apple.com>
3316
3317         REGRESSION (r260820): [macCatalyst] Web process crashes when uploading a file
3318         https://bugs.webkit.org/show_bug.cgi?id=212976
3319         <rdar://problem/64033186>
3320
3321         Reviewed by Tim Horton.
3322
3323         Add `HAVE(FRONTBOARD_SYSTEM_APP_SERVICES)`.
3324
3325         * wtf/PlatformHave.h:
3326
3327 2020-06-08  Chris Fleizach  <cfleizach@apple.com>
3328
3329         HAVE(ACCESSIBILITY_BUNDLES_PATH) is defined in terms of PLATFORM(IOS_FAMILY) but only checks the version of __IPHONE_OS_VERSION_MIN_REQUIRED
3330         https://bugs.webkit.org/show_bug.cgi?id=212704
3331         <rdar://problem/63931340>
3332
3333         Reviewed by Darin Adler.
3334
3335         Ensure that this works for all iOS familes.
3336
3337         * wtf/PlatformHave.h:
3338
3339 2020-06-08  Per Arne Vollan  <pvollan@apple.com>
3340
3341         [Cocoa] Adopt read-only mode for preferences in the WebContent process
3342         https://bugs.webkit.org/show_bug.cgi?id=212411
3343
3344         Reviewed by Darin Adler.
3345
3346         Change name of HAVE define to match SPI name.
3347
3348         * wtf/PlatformHave.h:
3349
3350 2020-06-08  Andy Estes  <aestes@apple.com>
3351
3352         [Apple Pay] Remove -respondsToSelector: check before calling -[PKPaymentRequest setBoundInterfaceIdentifier:]
3353         https://bugs.webkit.org/show_bug.cgi?id=212884
3354         <rdar://problem/64090963>
3355
3356         Reviewed by Youenn Fablet.
3357
3358         * wtf/PlatformHave.h: On macOS, HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER should be defined
3359         starting in Catalina.
3360
3361 2020-06-08  Andy Estes  <aestes@apple.com>
3362
3363         [Apple Pay] Remove ENABLE_APPLE_PAY_SETUP, ENABLE_APPLE_PAY_SESSION_V7, and HAVE_PASSKIT_PAYMENT_SETUP
3364         https://bugs.webkit.org/show_bug.cgi?id=212883
3365         <rdar://problem/64090763>
3366
3367         Reviewed by Youenn Fablet.
3368
3369         These macros evaluate to true whenever ENABLE(APPLE_PAY) is true on platforms supported by
3370         trunk WebKit, so we can either remove them or replace them with ENABLE(APPLE_PAY).
3371
3372         * wtf/PlatformEnableCocoa.h:
3373         * wtf/PlatformHave.h:
3374
3375 2020-06-08  youenn fablet  <youenn@apple.com>
3376
3377         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
3378         https://bugs.webkit.org/show_bug.cgi?id=206582
3379
3380         Reviewed by Eric Carlson.
3381
3382         * wtf/PlatformHave.h:
3383
3384 2020-06-07  Andy Estes  <aestes@apple.com>
3385
3386         [Apple Pay] HAVE(PAYMENT_METHOD_BILLING_ADDRESS) should be true on iOS
3387         https://bugs.webkit.org/show_bug.cgi?id=212877
3388         <rdar://problem/64080998>
3389
3390         Reviewed by Sam Weinig.
3391
3392         * wtf/PlatformHave.h:
3393
3394 2020-06-07  Philippe Normand  <pnormand@igalia.com>
3395
3396         Remove ENABLE_VIDEO_TRACK ifdef guards
3397         https://bugs.webkit.org/show_bug.cgi?id=212568
3398
3399         Reviewed by Youenn Fablet.
3400
3401         * wtf/PlatformEnable.h: Remove ENABLE_VIDEO_TRACK, which is now enabled by
3402         default under the ENABLE_VIDEO guard.
3403         * wtf/PlatformEnableCocoa.h: Ditto.
3404
3405 2020-06-06  David Kilzer  <ddkilzer@apple.com>
3406
3407         Use OptionSet<DragOperation> for mask values
3408         <https://webkit.org/b/212605>
3409
3410         Reviewed by Darin Adler.
3411
3412         * wtf/OptionSet.h:
3413         (WTF::OptionSet::OptionSet):
3414         - Add constructor for OptionSet(Optional).
3415
3416 2020-06-05  Ryan Haddad  <ryanhaddad@apple.com>
3417
3418         Unreviewed, reverting r262619, r262625, and r262641.
3419
3420         Caused mediarecorder layout test crashes.
3421
3422         Reverted changesets:
3423
3424         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3425         https://bugs.webkit.org/show_bug.cgi?id=206582
3426         https://trac.webkit.org/changeset/262619
3427
3428         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
3429         https://bugs.webkit.org/show_bug.cgi?id=206582
3430         https://trac.webkit.org/changeset/262625
3431
3432         "Unreviewed, silence deprecation warning to fix build with
3433         latest SDK."
3434         https://trac.webkit.org/changeset/262641
3435
3436 2020-06-05  Per Arne Vollan  <pvollan@apple.com>
3437
3438         [Cocoa] Adopt read-only mode for preferences in the WebContent process
3439         https://bugs.webkit.org/show_bug.cgi?id=212411
3440
3441         Reviewed by Darin Adler.
3442
3443         Create HAVE define indicating support for read-only preference SPI.
3444
3445         * wtf/PlatformHave.h:
3446
3447 2020-06-05  youenn fablet  <youenn@apple.com>
3448
3449         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
3450         https://bugs.webkit.org/show_bug.cgi?id=206582
3451
3452         Reviewed by Eric Carlson.
3453
3454         * wtf/PlatformHave.h:
3455
3456 2020-06-04  Jonathan Bedard  <jbedard@apple.com>
3457
3458         WTF: Exclude MachExceptions.defs from all embedded builds
3459         https://bugs.webkit.org/show_bug.cgi?id=212796
3460
3461         Reviewed by Alexey Proskuryakov.
3462
3463         * Configurations/WTF.xcconfig:
3464
3465 2020-06-04  Wenson Hsieh  <wenson_hsieh@apple.com>
3466
3467         [macOS] Add a way to override the contact AutoFill button image
3468         https://bugs.webkit.org/show_bug.cgi?id=212775
3469         <rdar://problem/60381452>
3470
3471         Reviewed by Tim Horton.
3472
3473         Rename `SYSTEM_ATTACHMENT_PLACEHOLDER_ICON` to `ALTERNATE_ICONS`.
3474
3475         * wtf/PlatformHave.h:
3476
3477 2020-06-04  Jacob Uphoff  <jacob_uphoff@apple.com>
3478
3479         Unreviewed, reverting r262546.
3480
3481         This commit caused internal build failures
3482
3483         Reverted changeset:
3484
3485         "[Cocoa] Adopt read-only mode for preferences in the
3486         WebContent process"
3487         https://bugs.webkit.org/show_bug.cgi?id=212411
3488         https://trac.webkit.org/changeset/262546
3489
3490 2020-06-04  Per Arne Vollan  <pvollan@apple.com>
3491
3492         [Cocoa] Adopt read-only mode for preferences in the WebContent process
3493         https://bugs.webkit.org/show_bug.cgi?id=212411
3494
3495         Reviewed by Darin Adler.
3496
3497         Create HAVE define indicating support for read-only preference SPI.
3498
3499         * wtf/PlatformHave.h:
3500
3501 2020-06-04  Tim Horton  <timothy_horton@apple.com>
3502
3503         Work around broken system version macro
3504         https://bugs.webkit.org/show_bug.cgi?id=212726
3505
3506         Reviewed by Dan Bernstein.
3507
3508         * Configurations/DebugRelease.xcconfig:
3509
3510 2020-06-04  Andy Estes  <aestes@apple.com>
3511
3512         [watchOS] Re-enable content filtering in the simulator build
3513         https://bugs.webkit.org/show_bug.cgi?id=212711
3514         <rdar://problem/63938350>
3515
3516         Reviewed by Wenson Hsieh.
3517
3518         * wtf/PlatformHave.h:
3519
3520 2020-06-03  Andy Estes  <aestes@apple.com>
3521
3522         [Apple Pay] Add new values for -apple-pay-button-type
3523         https://bugs.webkit.org/show_bug.cgi?id=212684
3524         <rdar://problem/63908535>
3525
3526         Reviewed by Anders Carlsson.
3527
3528         * wtf/PlatformEnableCocoa.h:
3529
3530 2020-06-01  Simon Fraser  <simon.fraser@apple.com>
3531
3532         Add ENABLE(WHEEL_EVENT_REGIONS), enabled on macOS which is the only platform that needs wheel event regions for scrolling thread hit-testing
3533         https://bugs.webkit.org/show_bug.cgi?id=212620
3534
3535         Reviewed by Tim Horton.
3536
3537         Surround code related to wheel event regions with ENABLE(WHEEL_EVENT_REGIONS).
3538
3539         Eventually we'll use this same code for touch event regions, and when we do, we
3540         can rejigger the #ifdefs.
3541
3542         * wtf/PlatformEnable.h:
3543         * wtf/PlatformEnableCocoa.h:
3544
3545 2020-06-02  Mark Lam  <mark.lam@apple.com>
3546
3547         Change Gigacage::Config to use storage in WebConfig::g_config instead of its own.
3548         https://bugs.webkit.org/show_bug.cgi?id=212585
3549         <rdar://problem/63812487>
3550
3551         Reviewed by Yusuke Suzuki.
3552
3553         We now think of the various Config records as being allocated from parts of a
3554         WebConfig::g_config buffer.  WTF::Config will manage the mechanics of freezing
3555         that buffer.  And the JSC VM is still the determiner of if/when to freeze the
3556         buffer, and it will do this at the end of the construction of the very first
3557         VM instance (as before).
3558
3559         Gigacage::Config reserves space in WebConfig::g_config.
3560         WTF::Config will honor that reservation and place itself after that.
3561         JSC::Config will continue to place itself at WTF::Config::spaceForExtensions.
3562
3563         The upside of this approach this is that we can now share the same memory page
3564         for all the Configs, and can freeze them in one go.
3565
3566         The downside is that g_gigacageConfig, g_wtfConfig, and g_jscConfig now have to
3567         be macros.  This results in some weirdness e.g. they are no longer qualified by
3568         namespaces: referring to WTF::g_wtfConfig is now incorrect.
3569
3570         * wtf/Gigacage.h:
3571         (Gigacage::disablingPrimitiveGigacageIsForbidden):
3572         (Gigacage::isDisablingPrimitiveGigacageForbidden): Deleted.
3573         (Gigacage::isPrimitiveGigacagePermanentlyEnabled): Deleted.
3574         (Gigacage::canPrimitiveGigacageBeDisabled): Deleted.
3575         * wtf/WTFConfig.cpp:
3576         (WTF::Config::permanentlyFreeze):
3577         * wtf/WTFConfig.h:
3578         (): Deleted.
3579
3580 2020-06-01  Simon Fraser  <simon.fraser@apple.com>
3581
3582         Add ENABLE(TOUCH_ACTION_REGIONS) to wrap code that's only relevant for platforms that consult touch-action for event handling
3583         https://bugs.webkit.org/show_bug.cgi?id=212572
3584
3585         Reviewed by Andy Estes.
3586
3587         * wtf/PlatformEnable.h:
3588         * wtf/PlatformEnableCocoa.h:
3589
3590 2020-05-31  Mark Lam  <mark.lam@apple.com>
3591
3592         Change JSC::Config to use storage in WTF::Config instead of its own.
3593         https://bugs.webkit.org/show_bug.cgi?id=212575
3594         <rdar://problem/63796584>
3595
3596         Reviewed by Yusuke Suzuki.
3597
3598         * wtf/WTFConfig.h:
3599
3600 2020-05-30  Mark Lam  <mark.lam@apple.com>
3601
3602         Rename Signal::BadAccess to Signal::AccessFault.
3603         https://bugs.webkit.org/show_bug.cgi?id=212577
3604
3605         Reviewed by Yusuke Suzuki.
3606
3607         This is needed because GTK port's X11 has a #define for BadAccess (in include/X11/X.h):
3608
3609             #define BadAccess     10    /* depending on context:
3610                                          - key/button already grabbed
3611                                          - attempt to free an illegal 
3612                                            cmap entry 
3613                                          - attempt to store into a read-only 
3614                                            color map entry.
3615                                          - attempt to modify the access control
3616                                            list from other than the local host.
3617                                          */
3618
3619         As a result, this would break the GTK build when wtf/Signals.h is #include'd.
3620
3621         * wtf/threads/Signals.cpp:
3622         (WTF::fromMachException):
3623         (WTF::toMachMask):
3624         (WTF::jscSignalHandler):
3625         * wtf/threads/Signals.h:
3626         (WTF::toSystemSignal):
3627         (WTF::fromSystemSignal):
3628
3629 2020-05-29  Alex Christensen  <achristensen@webkit.org>
3630
3631         Use correct encoding when converting a WTF::URL to CFURLRef
3632         https://bugs.webkit.org/show_bug.cgi?id=212486
3633
3634         Reviewed by Darin Adler.
3635
3636         * wtf/cf/CFURLExtras.cpp:
3637         (WTF::createCFURLFromBuffer):
3638         * wtf/cf/CFURLExtras.h:
3639         * wtf/cf/URLCF.cpp:
3640         (WTF::URL::createCFURL const):
3641         * wtf/cocoa/URLCocoa.mm:
3642         (WTF::URL::createCFURL const):
3643
3644 2020-05-29  Brent Fulgham  <bfulgham@apple.com>
3645
3646         [Cocoa] Improve logging quality for non-ephemeral sessions
3647         https://bugs.webkit.org/show_bug.cgi?id=212551
3648         <rdar://problem/62461099>
3649
3650         Reviewed by David Kilzer.
3651
3652         * wtf/PlatformHave.h: Add new feature check for CFNetwork convenience setter.
3653
3654 2020-05-29  Wenson Hsieh  <wenson_hsieh@apple.com>
3655
3656         REGRESSION (r261812): editing/async-clipboard/clipboard-item-get-type-basic.html is flaky
3657         https://bugs.webkit.org/show_bug.cgi?id=212281
3658         <rdar://problem/63554912>
3659
3660         Reviewed by Tim Horton.
3661
3662         Add a new `HAVE()` define.
3663
3664         * wtf/PlatformHave.h:
3665
3666 2020-05-27  Keith Miller  <keith_miller@apple.com>
3667
3668         for-of should check the iterable is a JSArray for FastArray in DFG iterator_open
3669         https://bugs.webkit.org/show_bug.cgi?id=212383
3670
3671         Reviewed by Saam Barati.
3672
3673         Optional should be able to copy/move constructor itself as long as <T> is
3674         trivially copyable. This lets us copy Optionals into const globals without
3675         global constructors.
3676
3677         * wtf/Optional.h:
3678         (WTF::Optional::Optional):
3679         (WTF::Optional::__NOEXCEPT_):
3680
3681 2020-05-27  Noam Rosenthal  <noam@webkit.org>
3682
3683         Implement AccessKeyLabel attribute.
3684         https://bugs.webkit.org/show_bug.cgi?id=72715
3685
3686         Reviewed by Darin Adler.
3687
3688         Added character names for upArrow/option, as they're needed for accessKeyLabel.
3689
3690         * wtf/unicode/CharacterNames.h:
3691
3692 2020-05-27  Saam Barati  <sbarati@apple.com>
3693
3694         Improve comments about OS/PLATFORM(IOS) and friends
3695         https://bugs.webkit.org/show_bug.cgi?id=212438
3696
3697         Reviewed by Tim Horton.
3698
3699         * wtf/PlatformLegacy.h:
3700         * wtf/PlatformOS.h:
3701
3702 2020-05-27  David Kilzer  <ddkilzer@apple.com>
3703
3704         Add OptionSetTraits<> and use with WebCore::DragDestinationAction
3705         <https://webkit.org/b/212397>
3706
3707         Reviewed by Alex Christensen.
3708
3709         Add OptionSetTraits<> (similar to EnumTraits<>) to define all
3710         valid values for a given enum type.  This allows us to use that
3711         bitmask with OptionSet<>::fromRaw() to clear undefined bits, and
3712         to validate enum values used with the OptionSet<> constructors.
3713
3714         Note that the extra validation possible with OptionSetTraits<>
3715         is enabled based on the existence of that type using the new
3716         WTF::is_type_complete_v<> type trait.  Other OptionSet<> enums
3717         fall back to the original validation checks.
3718
3719         Finally, typename <T> is changed to <E> for OptionSet<> to
3720         emphasize that it's an enum typename.
3721
3722         * wtf/OptionSet.h:
3723         (WTF::is_type_complete_v): Add.
3724         (WTF::OptionSetTraits): Add.
3725         (WTF::OptionSetValues): Add.
3726         (WTF::OptionSetValueChecker): Add.
3727         (WTF::isValidOptionSetEnum): Add.
3728         (WTF::maskRawValue): Add.
3729         (WTF::OptionSet::Iterator::operator* const):
3730         (WTF::OptionSet::fromRaw):
3731         (WTF::OptionSet::OptionSet):
3732         (WTF::OptionSet::contains const):
3733
3734 2020-05-27  Michael Catanzaro  <mcatanzaro@gnome.org>
3735
3736         -Wdeprecated-copy caused by Bitmap copy assignment operator
3737         https://bugs.webkit.org/show_bug.cgi?id=212421
3738
3739         Reviewed by Mark Lam.
3740
3741         This copy assignment operator is not needed, and causes warnings because we do not have a
3742         corresponding copy constructor. We could add a copy constructor, but it's easiest to just
3743         remove the copy assignment operator.
3744
3745         * wtf/Bitmap.h:
3746
3747 2020-05-26  Darin Adler  <darin@apple.com>
3748
3749         Sort PlatformEnableCocoa.h and add definitions for the simple cases from FeatureDefines.xcconfig
3750         https://bugs.webkit.org/show_bug.cgi?id=212389
3751
3752         Reviewed by Anders Carlsson.
3753
3754         Added more PlatformEnableCocoa.h; allowing us to later remove things from
3755         FeatureDefines.xcconfig (patch forthcoming).
3756
3757         * wtf/PlatformEnableCocoa.h: Added definitions from FeatureDefines.xcconfig that
3758         were simple, and that differ from the defaults in PlatformEnable.h. That includes
3759         3D_TRANSFORMS, ACCESSIBILITY_ISOLATED_TREE (macOS >= 10.6), APPLICATION_MANIFEST,
3760         ASYNC_SCROLLING, ATTACHMENT_ELEMENT, AVF_CAPTIONS, CACHE_PARTITIONING,
3761         CSS_COMPOSITING, CSS_PAINTING_API, CSS_SCROLL_SNAP, CSS_SELECTORS_LEVEL4,
3762         CSS_TRAILING_WORD, CSS_TYPED_OM, DATACUE_VALUE, DATALIST_ELEMENT, FILTERS_LEVEL_2,
3763         GPU_PROCESS, INDEXED_DATABASE, INDEXED_DATABASE_IN_WORKERS, INSPECTOR_TELEMETRY,
3764         INTERSECTION_OBSERVER, LAYOUT_FORMATTING_CONTEXT, LEGACY_CSS_VENDOR_PREFIXES,
3765         LEGACY_CUSTOM_PROTOCOL_MANAGER, MEDIA_CONTROLS_SCRIPT, MEMORY_SAMPLER,
3766         MOUSE_CURSOR_SCALE (macOS), NETWORK_CACHE_SPECULATIVE_REVALIDATION,
3767         NETWORK_CACHE_STALE_WHILE_REVALIDATE, NOTIFICATIONS (macOS), PDFKIT_PLUGIN (macOS),
3768         PERIODIC_MEMORY_MONITOR (macOS), PUBLIC_SUFFIX_LIST, RESIZE_OBSERVER,
3769         RESOURCE_LOAD_STATISTICS, RUBBER_BANDING (macOS), SANDBOX_EXTENSIONS,
3770         SERVER_PRECONNECT, SERVICE_CONTROLS (macOS), SHAREABLE_RESOURCE,
3771         TELEPHONE_NUMBER_DETECTION, TEXT_AUTOSIZING, USERSELECT_ALL, USER_MESSAGE_HANDLERS,
3772         VARIATION_FONTS, VIDEO, VIDEO_USES_ELEMENT_FULLSCREEN (macOS),
3773         WEBDRIVER_KEYBOARD_INTERACTIONS, WEBDRIVER_MOUSE_INTERACTIONS (macOS),
3774         WEBGL, WEBGL2, WEB_AUDIO, WEB_CRYPTO, and WIRELESS_PLAYBACK_TARGET. Sorted and
3775         merged all the existing settings.
3776
3777 2020-05-26  Alex Christensen  <achristensen@webkit.org>
3778
3779         UTF-8 encode strings of invalid URLs when converting WTF::URL to NSURL instead of truncating the UTF-16 encoding
3780         https://bugs.webkit.org/show_bug.cgi?id=212393
3781         <rdar://problem/63095503>
3782
3783         Reviewed by Tim Horton.
3784
3785         This only changes behavior in code that is marked as UNLIKELY because it can only be reached by invalid unicode URLs,
3786         but it can be reached and should behave in a reasonable manner in those cases.  This makes Safari behave more similarly
3787         to Firefox in this case instead of doing something similar to no other browser.
3788
3789         * wtf/URL.cpp:
3790         (WTF::copyASCII): Deleted.
3791         (WTF::URL::copyToBuffer const): Deleted.
3792         * wtf/URL.h:
3793         * wtf/cf/URLCF.cpp:
3794         (WTF::URL::createCFURL const):
3795         * wtf/cocoa/URLCocoa.mm:
3796         (WTF::URL::createCFURL const):
3797
3798 2020-05-26  Yoshiaki JITSUKAWA  <yoshiaki.jitsukawa@sony.com>
3799
3800         [PlayStation] Disable LLINT_EMBEDDED_OPCODE_ID
3801         https://bugs.webkit.org/show_bug.cgi?id=212387
3802
3803         Reviewed by Don Olmstead.
3804
3805         * wtf/CMakeLists.txt:
3806         * wtf/PlatformEnable.h:
3807         * wtf/PlatformEnablePlayStation.h: Added.
3808
3809 2020-05-26  Mark Lam  <mark.lam@apple.com>
3810
3811         Enhance Bitmap::setEachNthBit() to also take an end index.
3812         https://bugs.webkit.org/show_bug.cgi?id=212386
3813         <rdar://problem/63643324>
3814
3815         Reviewed by Robin Morisset.
3816
3817         Previously, it was only taking the n interval, and the start index.
3818         Also fixed isEmpty() and isFull() to return a bool instead of size_t.
3819
3820         * wtf/Bitmap.h:
3821         (WTF::WordType>::isEmpty const):
3822         (WTF::WordType>::isFull const):
3823         (WTF::WordType>::setEachNthBit):
3824
3825 2020-05-26  Don Olmstead  <don.olmstead@sony.com>
3826
3827         [CMake] Add static analyzers
3828         https://bugs.webkit.org/show_bug.cgi?id=212280
3829
3830         Reviewed by David Kilzer.
3831
3832         Export headers from Plaform.h so include-what-you-use does not suggest they be
3833         included directly. The headers being exported will #error when included outside of
3834         Platform.h
3835
3836         * wtf/Platform.h:
3837
3838 2020-05-25  Alex Christensen  <achristensen@webkit.org>
3839
3840         Expose more network metrics to WebCoreNSURLSession
3841         https://bugs.webkit.org/show_bug.cgi?id=212359
3842         <rdar://problem/62909440>
3843
3844         Reviewed by Darin Adler.
3845
3846         * wtf/PlatformHave.h:
3847
3848 2020-05-22  David Kilzer  <ddkilzer@apple.com>
3849
3850         WTF::isValidEnum() has a typo in static_assert making it a tautological comparison
3851         <https://webkit.org/b/212290>
3852
3853         Reviewed by Yusuke Suzuki.
3854
3855         * wtf/EnumTraits.h:
3856         (WTF::isValidEnum): Use sizeof(std::underlying_type_t<E>)
3857         instead of std::underlying_type_t<E>() to fix the bug.
3858
3859 2020-05-22  Chris Dumez  <cdumez@apple.com>
3860
3861         RELEASE_ASSERT() that InitializeWebKit2() is getting called on the main thread
3862         https://bugs.webkit.org/show_bug.cgi?id=212283
3863
3864         Reviewed by Alex Christensen.
3865
3866         * wtf/spi/darwin/dyldSPI.h:
3867
3868 2020-05-22  Andy Estes  <aestes@apple.com>
3869
3870         [Apple Pay] Add new ApplePayInstallmentConfiguration members
3871         https://bugs.webkit.org/show_bug.cgi?id=212160
3872         <rdar://problem/60703650>
3873
3874         Reviewed by Alex Christensen.
3875
3876         * wtf/PlatformEnableCocoa.h: Defined ENABLE_APPLE_PAY_INSTALLMENT_IDENTIFIERS.
3877
3878 2020-05-21  Robin Morisset  <rmorisset@apple.com>
3879
3880         Various compile-time boolean flags could/should be marked constexpr
3881         https://bugs.webkit.org/show_bug.cgi?id=212244
3882
3883         Reviewed by Mark Lam.
3884
3885         * wtf/ParkingLot.cpp:
3886
3887 2020-05-20  Mark Lam  <mark.lam@apple.com>
3888
3889         Add more Bitmap methods.
3890         https://bugs.webkit.org/show_bug.cgi?id=212190
3891         <rdar://problem/63481333>
3892
3893         Reviewed by Robin Morisset.
3894
3895         Specifically,
3896             setEachNthBit - sets every Nth bit starting at a specified start bit
3897             operator=     - assignment
3898             operator|=    - bit or and assignment
3899             operator&=    - bit and and assignment
3900             operator^=    - bit xor and assignment
3901
3902         * wtf/Bitmap.h:
3903
3904 2020-05-21  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
3905
3906         [PlayStation] Add minimal WKView API to enable TestWebKitAPI
3907         https://bugs.webkit.org/show_bug.cgi?id=211868
3908
3909         Reviewed by Alex Christensen.
3910
3911         Enable TestWebKitAPI
3912
3913         * wtf/PlatformPlayStation.cmake:
3914         Link libc as a system library.
3915
3916 2020-05-21  Wenson Hsieh  <wenson_hsieh@apple.com>
3917
3918         Unreviewed, fix the iOS 13.4 build after r261978
3919
3920         Add a `HAVE()` macro to guard usages of _UIHoverEventRespondable.
3921
3922         * wtf/PlatformHave.h:
3923
3924 2020-05-20  Simon Fraser  <simon.fraser@apple.com>
3925
3926         [macOS] Scrolling synchronization part 1: Have the scrolling thread wait half a frame for the main thread to complete the rendering update
3927         https://bugs.webkit.org/show_bug.cgi?id=212168
3928
3929         Reviewed by Tim Horton.
3930
3931         Some new trace points for scrolling thread activity.
3932
3933         * wtf/SystemTracing.h:
3934
3935 2020-05-20  Tim Horton  <timothy_horton@apple.com>
3936
3937         WKMouseGestureRecognizer should be implemented without using UIKit internals
3938         https://bugs.webkit.org/show_bug.cgi?id=212173
3939         <rdar://problem/61163726>
3940
3941         Reviewed by Wenson Hsieh.
3942
3943         * wtf/PlatformHave.h:
3944
3945 2020-05-20  Alex Christensen  <achristensen@webkit.org>
3946
3947         Remove implicit URL->String conversion operators
3948         https://bugs.webkit.org/show_bug.cgi?id=211033
3949
3950         Reviewed by Darin Adler.
3951
3952         These operators have been the cause of many subtle bugs related to type inference that are hard to see in the code,
3953         as well as performance bugs where we unnecessarily re-parse parsed URLs.
3954         After my recent cleanup this was easier than I thought it would be.
3955
3956         * wtf/URL.h:
3957         (WTF::URL::operator const String& const): Deleted.
3958         (WTF::URL::operator StringView const): Deleted.
3959         (WTF::URL::operator NSString * const): Deleted.
3960
3961 2020-05-20  Antoine Quint  <graouts@apple.com>
3962
3963         [Web Animations] Animation engine should not wake up every tick for steps timing functions
3964         https://bugs.webkit.org/show_bug.cgi?id=212103
3965         <rdar://problem/62737868>
3966
3967         Reviewed by Simon Fraser.
3968
3969         Allow Seconds to be divided or multiplied by a double with operands in any order.
3970
3971         * wtf/Seconds.h:
3972         (WTF::operator*):
3973         (WTF::operator/):
3974
3975 2020-05-20  Youenn Fablet  <youenn@apple.com>
3976
3977         [Mac] Use preferedPixelBufferFormat for AVVideoCaptureSource
3978         https://bugs.webkit.org/show_bug.cgi?id=212071
3979
3980         Reviewed by Eric Carlson.
3981
3982         * wtf/PlatformHave.h:
3983         Add HAVE_DISPLAY_LAYER_BIPLANAR_SUPPORT macro.
3984
3985 2020-05-19  Adrian Perez de Castro  <aperez@igalia.com>
3986
3987         WTF::LockedPrintStream should be final
3988         https://bugs.webkit.org/show_bug.cgi?id=212107
3989
3990         Reviewed by Darin Adler.
3991
3992         * wtf/LockedPrintStream.h: Make class WTF::LockedPrintStream final.
3993
3994 2020-05-19  Mark Lam  <mark.lam@apple.com>
3995
3996         Put PtrTagLookup data structures in Configs for freezing.
3997         https://bugs.webkit.org/show_bug.cgi?id=212089
3998         <rdar://problem/63401487>
3999
4000         Reviewed by Robin Morisset.
4001
4002         * wtf/PtrTag.cpp:
4003         (WTF::tagForPtr):
4004         (WTF::ptrTagName):
4005         (WTF::registerPtrTagLookup):
4006         * wtf/PtrTag.h:
4007         (WTF::PtrTagLookup::initialize):
4008         * wtf/WTFConfig.h:
4009
4010 2020-05-19  Mark Lam  <mark.lam@apple.com>
4011
4012         Remove unnecessary debug logging from release builds.
4013         https://bugs.webkit.org/show_bug.cgi?id=212084
4014         <rdar://problem/63398704>
4015
4016         Reviewed by Saam Barati.
4017
4018         * wtf/PtrTag.h:
4019
4020 2020-05-18  Andy Estes  <aestes@apple.com>
4021
4022         http/tests/ssl/applepay/ApplePayInstallmentConfiguration.https.html fails in public SDK builds
4023         https://bugs.webkit.org/show_bug.cgi?id=212000
4024         <rdar://problem/63323082>
4025
4026         Reviewed by Youenn Fablet.
4027
4028         * wtf/PlatformEnableCocoa.h:
4029         * wtf/PlatformHave.h:
4030
4031 2020-05-18  Mark Lam  <mark.lam@apple.com>
4032
4033         Implement a faster findBitInWord() using the hardware ctz instruction.
4034         https://bugs.webkit.org/show_bug.cgi?id=212032
4035         <rdar://problem/63348086>
4036
4037         Reviewed by Saam Barati.
4038
4039         Based on local microbenchmarking, both ARM64 and X86_64 shows a speed up of
4040         28% - 95% faster than the loop.
4041
4042         The largest perf regressions for ctz vs the loop, are when finding 1 in a mostly
4043         set word or finding 0 in a mostly cleared word. For example, on X86_64:
4044             Find 1 in 0xffffffffffffffff: using loop 8.67 ms, using ctz 6.07 ms, delta 30.0%
4045             Find 0 in 0x8000000000000000: using loop 9.01 ms, using ctz 6.54 ms, delta 28.1%
4046
4047         The largest perf progressions for ctz vs the loop, are the opposite: finding 1 in
4048         a mostly cleared word, or finding a 0 in a mostly set word. For example, on X86_64:
4049             Find 1 in 0x8000000000000000: using loop 91.4 ms, using ctz 6.48 ms, delta 92.9%
4050             Find 0 in 0xffffffffffffffff: using loop 91.7 ms, using ctz 6.95 ms, delta 92.4%
4051
4052         TL;DR: the microbenchmark methodology used:
4053
4054         findBitInWord() takes:
4055             a. word to scan
4056             b. startIndex
4057             c. endIndex
4058             d. bool value to scan for, either 1 or 0.
4059
4060         1. Randomly select 1000 startIndex and endIndex pairs.
4061            The endIndex is guaranteed to be >= startIndex.
4062
4063         2. Using a base word of 0xffffffffffffffff (or uint64_t) and 0xffffffff (for uint32_t),
4064            shift left by 0 - N (where N is the number of bits in the word) to generate
4065            N + 1 words for the test.  This produces words with contiguous lengths of 1s
4066            and 0s.  We're choosing these words to deliberately measure the effects o
4067            run lengths of 0s or 1s on the algorithm in use.
4068
4069         3. For each test word, call findBitInWord() with the start and end indexes chosen
4070            in 1 for a 100 iterations.
4071
4072         4. Run (3) once to search for a true value, and once to search for a false value.
4073
4074         5. Print the results for each test word and value pair.
4075
4076         * wtf/BitVector.cpp:
4077         * wtf/Bitmap.h:
4078         * wtf/StdLibExtras.h:
4079         (WTF::findBitInWord):
4080
4081 2020-05-18  Darin Adler  <darin@apple.com>
4082
4083         Add iterator checking to ListHashSet
4084         https://bugs.webkit.org/show_bug.cgi?id=211669
4085
4086         Reviewed by Anders Carlsson.
4087
4088         HashSet and HashMap have iterator checking in debug builds.
4089         Add similar checking to ListHashSet, controlled by the same
4090         macro, CHECK_HASHTABLE_ITERATORS. Use WeakPtr to make the
4091         implementation simple.
4092
4093         * wtf/Forward.h: Update to add a second parameter to WeakPtr.
4094         Also rearranged and tweaked the file a bug.
4095
4096         * wtf/ListHashSet.h: Make ListHashSet and ListHashSetNode derive
4097         from CanMakeWeakPtr. Add m_weakSet and m_weakPosition members to
4098         ListHashSetConstIterator, and assert their values at the appropriate
4099         times so we will get a breakpoint or crash.
4100
4101         * wtf/WeakHashSet.h: Updated to add a Counter argument for testing.
4102
4103         * wtf/WeakPtr.h: Removed the DID_CREATE_WEAK_PTR_IMPL and
4104         WILL_DESTROY_WEAK_PTR_IMPL macros, which didn't really work because
4105         using them violated the C++ one-definition rule. Replaced with
4106         a Counter argument, which defaults to EmptyCounter, which is inlines
4107         that do nothing. This required some updates to the classes and
4108         functions to make them work with a second argument.
4109
4110 2020-05-15  Alex Christensen  <achristensen@webkit.org>
4111
4112         Make host parser fail on ^
4113         https://bugs.webkit.org/show_bug.cgi?id=211901
4114
4115         Reviewed by Geoffrey Garen.
4116
4117         This matches the behavior of Chrome and Firefox, and now the specification!
4118         I updated the URL wpt data, and this introduces new PASSes.
4119
4120         * wtf/URLParser.cpp:
4121         (WTF::isC0Control):
4122         (WTF::isForbiddenHostCodePoint):
4123
4124 2020-05-14  Wenson Hsieh  <wenson_hsieh@apple.com>
4125
4126         [macOS] Update the placeholder icon image for attachment elements with progress="0"
4127         https://bugs.webkit.org/show_bug.cgi?id=211898
4128         <rdar://problem/63203900>
4129
4130         Reviewed by Timothy Hatcher.
4131
4132         Add a new flag for HAVE(SYSTEM_ATTACHMENT_PLACEHOLDER_ICON).
4133
4134         * wtf/PlatformHave.h:
4135
4136 2020-05-14  Chris Dumez  <cdumez@apple.com>
4137
4138         Regression(r254856) Family Health iOS app is broken due to lack for WebSQL support
4139         https://bugs.webkit.org/show_bug.cgi?id=211896
4140         <rdar://problem/63025045>
4141
4142         Reviewed by Maciej Stachowiak.
4143
4144         * wtf/spi/darwin/dyldSPI.h:
4145
4146 2020-05-13  Ross Kirsling  <ross.kirsling@sony.com>
4147
4148         [IWYU] Try removing redundant includes in WTF implementation files
4149         https://bugs.webkit.org/show_bug.cgi?id=211821
4150
4151         Reviewed by Simon Fraser.
4152
4153         * wtf/Assertions.cpp:
4154         * wtf/Bag.cpp:
4155         * wtf/BitVector.cpp:
4156         * wtf/ConcurrentBuffer.cpp:
4157         * wtf/ConcurrentPtrHashSet.cpp: