8633222
[WebKit-https.git] /
1 2020-04-19  Yusuke Suzuki  <ysuzuki@apple.com>
2
3         [JSC] Enable BigInt
4         https://bugs.webkit.org/show_bug.cgi?id=210726
5
6         Reviewed by Mark Lam.
7
8         * wtf/PlatformUse.h:
9
10 2020-04-18  Robin Morisset  <rmorisset@apple.com>
11
12         Support an inlined representation in JSValue of small BigInts ("BigInt32")
13         https://bugs.webkit.org/show_bug.cgi?id=206182
14
15         Reviewed by Yusuke Suzuki.
16
17         Add a USE(BIGINT32) flag.
18
19         * wtf/PlatformUse.h:
20
21 2020-04-18  Keith Miller  <keith_miller@apple.com>
22
23         Redesign how we do for-of iteration for JSArrays
24         https://bugs.webkit.org/show_bug.cgi?id=175454
25
26         Reviewed by Filip Pizlo.
27
28         * wtf/EnumClassOperatorOverloads.h:
29
30 2020-04-18  Yusuke Suzuki  <ysuzuki@apple.com>
31
32         [WTF] Move DataRef.h from WebCore to WTF to utilize it in JSC
33         https://bugs.webkit.org/show_bug.cgi?id=210689
34
35         Reviewed by Anders Carlsson.
36
37         * WTF.xcodeproj/project.pbxproj:
38         * wtf/CMakeLists.txt:
39         * wtf/DataRef.h: Renamed from Source/WebCore/rendering/style/DataRef.h.
40
41 2020-04-17  Saam Barati  <sbarati@apple.com>
42
43         GetTypedArrayByteOffset is broken on arm64e
44         https://bugs.webkit.org/show_bug.cgi?id=210631
45
46         Reviewed by Mark Lam.
47
48         * wtf/CagedPtr.h:
49         (WTF::CagedPtr::rawBits const):
50
51 2020-04-17  Peng Liu  <peng.liu6@apple.com>
52
53         Cleanup the macros for video fullscreen and picture-in-picture
54         https://bugs.webkit.org/show_bug.cgi?id=210638
55
56         Reviewed by Eric Carlson.
57
58         Add macro ENABLE_VIDEO_PRESENTATION_MODE.
59
60         * wtf/PlatformEnable.h:
61
62 2020-04-17  Claudio Saavedra  <csaavedra@igalia.com>
63
64         [GTK][WPE] Bump dependencies minimum required version in Platform.h
65         https://bugs.webkit.org/show_bug.cgi?id=210651
66
67         Reviewed by Adrian Perez de Castro.
68
69         Bring the minimum required version in Platform.h in sync with the actual
70         minimal required version. This ensures that deprecated APIs used bring up
71         compilation warnings.
72
73         * wtf/Platform.h:
74
75 2020-04-17  Per Arne Vollan  <pvollan@apple.com>
76
77         [iOS] Deny iokit open access to graphics related classes
78         https://bugs.webkit.org/show_bug.cgi?id=210616
79
80         Reviewed by Darin Adler.
81
82         * wtf/spi/darwin/SandboxSPI.h:
83
84 2020-04-17  Youenn Fablet  <youenn@apple.com>
85
86         Make use of WeakHashSet for MediaStreamTrackPrivate and RealtimeMediaSource observers
87         https://bugs.webkit.org/show_bug.cgi?id=210492
88
89         Reviewed by Geoffrey Garen.
90
91         * wtf/WeakHashSet.h:
92
93 2020-04-16  Daniel Bates  <dabates@apple.com>
94
95         Clean up VectorCocoa createNSArray overloads and add documentation for createNSArray taking a map function
96         https://bugs.webkit.org/show_bug.cgi?id=210610
97
98         Reviewed by Darin Adler.
99
100         Remove unnecessary local variable. Rename "map" type in createNSArray function for clarity
101         and add documentation for createNSArray function that takes a map function.
102
103         I was tempted, but decided not to write the createNSArray function that does not take a
104         map function in terms of the one that did. With the "right" optimization settings the
105         compiler should emit the same code, but I didn't verify this. So, I didn't do it.
106
107         While I am here, update  makeVector() to call shrinkToFit() to reduce the memory footprint
108         of the returned vector should it end of having less entries, due to filtering, than its
109         initial capacity.
110
111         * wtf/cocoa/VectorCocoa.h:
112         (WTF::createNSArray): See above description.
113         (WTF::makeVector): Shrink to fit before returning the vector. See above for more details.
114
115 2020-04-16  Daniel Bates  <dabates@apple.com>
116
117         Move -_requestTextInputContextsInRect to WKContentView to simplify implementation
118         https://bugs.webkit.org/show_bug.cgi?id=210398
119         <rdar://problem/61656931>
120
121         Reviewed by Darin Adler.
122
123         Add a convenience function to create an NSArray from a WTF::Vector with a transform function.
124         The tranform function can either return a RetainPtr or an id.
125
126         * wtf/cocoa/VectorCocoa.h:
127         (WTF::createNSArray): Added.
128
129 2020-04-16  Eric Carlson  <eric.carlson@apple.com>
130
131         [macOS] Update ScreenTime as playback state changes
132         https://bugs.webkit.org/show_bug.cgi?id=210518
133         <rdar://problem/61181092>
134
135         Reviewed by Jer Noble.
136         
137         Define HAVE_MEDIA_USAGE_FRAMEWORK and ENABLE_MEDIA_USAGE
138
139         * wtf/PlatformEnableCocoa.h:
140         * wtf/PlatformHave.h:
141
142 2020-04-16  Alberto Garcia  <berto@igalia.com>
143
144         Unreviewed, set CeilingOnPageSize for MIPS64
145
146         This fixes a build failure ("Must set CeilingOnPageSize in
147         PageBlock.h").
148
149         * wtf/PageBlock.h:
150
151 2020-04-15  Chris Dumez  <cdumez@apple.com>
152
153         [IPC Hardening] MachMessage::messageSize() should use checked arithmetic
154         https://bugs.webkit.org/show_bug.cgi?id=210567
155         <rdar://problem/61734355>
156
157         Reviewed by Geoffrey Garen.
158
159         Add operator / to CheckedArithmetic for convenience.
160
161         * wtf/CheckedArithmetic.h:
162         (WTF::safeDivide):
163         (WTF::Checked::operator/=):
164         (WTF::operator/):
165
166 2020-04-15  Robin Morisset  <rmorisset@apple.com>
167
168         Flaky Test: fetch/fetch-worker-crash.html
169         https://bugs.webkit.org/show_bug.cgi?id=187257
170         <rdar://problem/48527526>
171
172         Reviewed by Yusuke Suzuki.
173
174         Make startMachExceptionHandlerThread visible so that we can make sure it is called whenever initializing JSC.
175
176         * wtf/threads/Signals.cpp:
177         (WTF::startMachExceptionHandlerThread):
178         * wtf/threads/Signals.h:
179
180 2020-04-14  Peng Liu  <peng.liu6@apple.com>
181
182         Adopt interface AVAudioRoutingArbiter for Mac
183         https://bugs.webkit.org/show_bug.cgi?id=210167
184
185         Reviewed by Eric Carlson.
186
187         Add macro HAVE_AVAUDIO_ROUTING_ARBITER.
188
189         * wtf/PlatformHave.h:
190
191 2020-04-13  Commit Queue  <commit-queue@webkit.org>
192
193         Unreviewed, reverting r260052.
194         https://bugs.webkit.org/show_bug.cgi?id=210479
195
196         Breaks iOS tests, needs more work (Requested by smfr on
197         #webkit).
198
199         Reverted changeset:
200
201         "Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for
202         non-Cocoa platforms"
203         https://bugs.webkit.org/show_bug.cgi?id=210460
204         https://trac.webkit.org/changeset/260052
205
206 2020-04-13  David Kilzer  <ddkilzer@apple.com>
207
208         Replace use of Checked<size_t, RecordOverflow> with CheckedSize
209         <https://webkit.org/b/210461>
210
211         Reviewed by Mark Lam.
212
213         * wtf/FastMalloc.cpp:
214         (WTF::tryFastCalloc):
215         * wtf/Gigacage.cpp:
216         (Gigacage::tryMallocArray):
217         * wtf/glib/SocketConnection.cpp:
218         (WTF::SocketConnection::sendMessage):
219
220 2020-04-13  Simon Fraser  <simon.fraser@apple.com>
221
222         Add ENABLE_CUSTOM_SCROLLBARS and define it for macOS and for non-Cocoa platforms
223         https://bugs.webkit.org/show_bug.cgi?id=210460
224
225         Reviewed by Tim Horton.
226
227         Define ENABLE_CUSTOM_SCROLLBARS for PLATFORM(MAC) and other non-Cocoa platforms.
228
229         * wtf/PlatformEnable.h:
230         * wtf/PlatformEnableCocoa.h:
231
232 2020-04-13  David Kilzer  <ddkilzer@apple.com>
233
234         Fix clang static analyzer warnings about unused instance variables in WebIconDatabase, WKView
235         <https://webkit.org/b/210427>
236
237         Reviewed by Alex Christensen.
238
239         * wtf/Compiler.h:
240         (WK_UNUSED_INSTANCE_VARIABLE): Add.
241
242 2020-04-13  Joonghun Park  <jh718.park@samsung.com>
243
244         Unreviewed. Remove redundant move in return statement.
245
246         Return statement already returns rvalue,
247         so we don't need move here.
248
249         This patch removes the build warning below since r259922.
250         warning: redundant move in return statement [-Wredundant-move]
251
252         * wtf/persistence/PersistentCoders.cpp:
253         (WTF::Persistence::Coder<CString>::decode):
254         (WTF::Persistence::decodeStringText):
255         (WTF::Persistence::Coder<SHA1::Digest>::decode):
256         * wtf/persistence/PersistentCoders.h:
257
258 2020-04-12  Mark Lam  <mark.lam@apple.com>
259
260         Enable the ability to build the ASM LLInt for ARMv7k.
261         https://bugs.webkit.org/show_bug.cgi?id=210412
262
263         Reviewed by Sam Weinig.
264
265         Remove some old code that forces the ENABLE(C_LOOP) to be true if ENABLE(JIT) is
266         false.  These 2 options used to be mutually exclusive, but is no more.  Now, we
267         allow platforms to choose to build the ASM LLInt instead even if ENABLE(JIT) is
268         false.
269
270         * wtf/PlatformEnable.h:
271
272 2020-04-12  Darin Adler  <darin@apple.com>
273
274         [Cocoa] Minor tweaks to code to get locale strings to remove one-time-initialization booleans
275         https://bugs.webkit.org/show_bug.cgi?id=210410
276
277         Reviewed by Sam Weinig.
278
279         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
280         (WTF::textBreakLocalePreference): Use auto, and no need to explicitly mark this inline.
281         (WTF::topLanguagePreference): Use auto.
282         (WTF::localeIDInBuffer): Renamed from getLocale. Changed to return a std::array and to
283         handle failure cases afterward rather than by initializing beforehand.
284         (WTF::getSearchLocale): Deleted.
285         (WTF::currentSearchLocaleID): Using "static const auto", wrote this in a straightforward
286         and compact way, using localeIDInBuffer and topLanguagePreference.
287         (WTF::textBreakLocale): Renamed from getTextBreakLocale and changed to return a
288         RetainPtr<CFStringRef>.
289         (WTF::currentTextBreakLocaleID): Using "static const auto", wrote this in a straightforward
290         and compact way, using localeIDInBuffer and textBreakLocale.
291
292 2020-04-12  David Kilzer  <ddkilzer@apple.com>
293
294         Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
295         <https://webkit.org/b/210238>
296         <rdar://problem/61491575>
297
298         Changes based on feedback from Alex Christensen and Darin Adler:
299         - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
300         - Place WARN_UNUSED_RETURN consistently before the return type.
301
302         * wtf/persistence/PersistentDecoder.h:
303
304 2020-04-10  Alex Christensen  <achristensen@webkit.org>
305
306         PersistentCoders should use modern decoding syntax
307         https://bugs.webkit.org/show_bug.cgi?id=207497
308
309         Reviewed by Darin Adler.
310
311         This paves the way for more serialized types that do not have a default constructor.
312
313         * wtf/persistence/PersistentCoder.h:
314         (WTF::Persistence::Coder::encode):
315         (WTF::Persistence::Coder::decode):
316         * wtf/persistence/PersistentCoders.cpp:
317         (WTF::Persistence::Coder<AtomString>::decode):
318         (WTF::Persistence::Coder<CString>::decode):
319         (WTF::Persistence::decodeStringText):
320         (WTF::Persistence::Coder<String>::decode):
321         (WTF::Persistence::Coder<SHA1::Digest>::decode):
322         * wtf/persistence/PersistentCoders.h:
323         (WTF::Persistence::Coder<Optional<T>>::decode):
324         (WTF::Persistence::Coder<Seconds>::decode):
325         (WTF::Persistence::Coder<WallTime>::decode):
326         * wtf/persistence/PersistentDecoder.cpp:
327         (WTF::Persistence::Decoder::decodeNumber):
328         (WTF::Persistence::Decoder::operator>>):
329         (WTF::Persistence::Decoder::decode): Deleted.
330         * wtf/persistence/PersistentDecoder.h:
331         (WTF::Persistence::Decoder::operator>>):
332         (WTF::Persistence::Decoder::decode): Deleted.
333         (WTF::Persistence::Decoder::decodeEnum): Deleted.
334         * wtf/persistence/PersistentEncoder.h:
335         (WTF::Persistence::Encoder::operator<<):
336         (WTF::Persistence::Encoder::encode): Deleted.
337         (WTF::Persistence::Encoder::encodeEnum): Deleted.
338
339 2020-04-10  David Kilzer  <ddkilzer@apple.com>
340
341         Follow-up: Add WARN_UNUSED_RETURN to decode methods in Source/WTF
342         <https://webkit.org/b/210323>
343         <rdar://problem/61565764>
344
345         Changes based on feedback from Alex Christensen and Darin Adler:
346         - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
347         - Place WARN_UNUSED_RETURN consistently before the return type.
348
349         * wtf/MediaTime.h:
350         * wtf/MonotonicTime.h:
351         * wtf/ObjectIdentifier.h:
352         (WTF::ObjectIdentifier::decode):
353         * wtf/Seconds.h:
354         * wtf/URL.h:
355
356 2020-04-10  Alicia Boya García  <aboya@igalia.com>
357
358         [WTF] DataMutex: Add runUnlocked()
359         https://bugs.webkit.org/show_bug.cgi?id=209811
360
361         Reviewed by Xabier Rodriguez-Calvar.
362
363         This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
364         to run a lambda function without the lock. This is intended to be used for
365         small sections of the code that need to be unlocked, in cases where using
366         scoping would prove non-ergonomic or where running the unlocked section is only
367         necessary or desired when a certain condition is met -- something that cannot
368         be done with C++ scoping.
369
370         Safety mechanisms are provided. First, because this is used with a lambda, all
371         variables to be used in the unlocked section have to be specified in the
372         capture (global capture is possible but not recommended to simplify analysis).
373         Second, additional checks have been added to DataMutex to detect unlocked
374         accesses among other conditions. This will detect among other things naive
375         access to protected members by means of capturing the LockedWrapper by
376         reference.
377
378         * wtf/DataMutex.h:
379         (WTF::OwnerAwareLockAdapter::lock):
380         (WTF::OwnerAwareLockAdapter::unlock):
381         (WTF::OwnerAwareLockAdapter::tryLock):
382         (WTF::OwnerAwareLockAdapter::isLocked const):
383         (WTF::DataMutex::LockedWrapper::operator->):
384         (WTF::DataMutex::LockedWrapper::operator*):
385         (WTF::DataMutex::LockedWrapper::mutex):
386         (WTF::DataMutex::LockedWrapper::lockHolder):
387         (WTF::DataMutex::LockedWrapper::runUnlocked):
388
389 2020-04-10  David Kilzer  <ddkilzer@apple.com>
390
391         Add WARN_UNUSED_RETURN to decode methods in Source/WTF
392         <https://webkit.org/b/210323>
393         <rdar://problem/61565764>
394
395         Reviewed by Darin Adler.
396
397         * wtf/MediaTime.h:
398         * wtf/MonotonicTime.h:
399         * wtf/ObjectIdentifier.h:
400         (WTF::ObjectIdentifier::decode):
401         * wtf/Seconds.h:
402         * wtf/URL.h:
403         * wtf/persistence/PersistentCoder.h:
404         (WTF::Persistence::Coder::decode):
405
406 2020-04-08  Darin Adler  <darin@apple.com>
407
408         [Cocoa] Simplify NSArray, NSDictionary, and NSNumber idioms throughout WebKit
409         https://bugs.webkit.org/show_bug.cgi?id=210138
410
411         Reviewed by Alex Christensen.
412
413         * WTF.xcodeproj/project.pbxproj: Added VectorCocoa.h.
414         * wtf/PlatformMac.cmake: Ditto.
415
416         * wtf/cocoa/NSURLExtras.mm: Removed unneeded include.
417         * wtf/cocoa/URLCocoa.mm: Ditto.
418
419         * wtf/cocoa/VectorCocoa.h: Added. Contains createNSArray and makeVector
420         function templates for converting NSArray to and from Vector.
421
422         * wtf/text/WTFString.h: Added makeNSArrayElement and makeVectorElement
423         functions, making createNSArray and makeVector compatible with String.
424         * wtf/text/cocoa/StringCocoa.mm:
425         (WTF::makeNSArrayElement): Added.
426         (WTF::makeVectorElement): Added.
427
428 2020-04-09  David Kilzer  <ddkilzer@apple.com>
429
430         Add using WTF::isInBounds to CheckedArithmetic.h
431         <https://webkit.org/b/210299>
432
433         Reviewed by Darin Adler.
434
435         * wtf/CheckedArithmetic.h:
436         - Add `using WTF::isInBounds` statement so this function may be
437           used unprefixed outside the WTF project.
438
439 2020-04-09  David Kilzer  <ddkilzer@apple.com>
440
441         WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
442         <https://webkit.org/b/210238>
443         <rdar://problem/61491575>
444
445         Reviewed by Darin Adler.
446
447         * wtf/persistence/PersistentCoders.cpp:
448         (WTF::Persistence::decodeStringText):
449         - Add WARN_UNUSED_RETURN.
450
451         * wtf/persistence/PersistentCoders.h:
452         (WTF::Persistence::Coder<Optional<T>>::decode):
453         (WTF::Persistence::Coder<Seconds>::decode):
454         (WTF::Persistence::Coder<WallTime>::decode):
455         - Add WARN_UNUSED_RETURN.
456         - Add missing return value check for
457           decode.decodeFixedLengthData().
458
459         * wtf/persistence/PersistentDecoder.h:
460         (WTF::Persistence::Decoder::decode):
461         (WTF::Persistence::Decoder::decodeEnum):
462         (WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
463         - Add WARN_UNUSED_RETURN.
464
465 2020-04-09  David Kilzer  <ddkilzer@apple.com>
466
467         Follow-up: WTF::Persistence::VectorCoder and IPC::VectorArgumentCoder should do bounds checking without crashing
468         <https://webkit.org/b/210227>
469         <rdar://problem/60832243>
470
471         Reviewed by Alex Christensen.
472
473         * wtf/persistence/PersistentCoders.h:
474         (WTF::Persistence::VectorCoder::decode):
475         - Replace safeCast<size_t> with isInBounds<size_t> so that we
476           don't crash if `decodedSize` is too big.  Instead we fail
477           decoding by returning early.
478         - Revert checked arithemtic for multiplication since
479           bufferIsLargeEnoughToContain<T(size) already did this check
480           for us.
481
482 2020-04-09  Mark Lam  <mark.lam@apple.com>
483
484         Implement a more efficient tagCFunction() tool.
485         https://bugs.webkit.org/show_bug.cgi?id=210254
486
487         Reviewed by Keith Miller.
488
489         The current tagCFunctionPtr() tool does some extra work that is not needed if
490         we are tagging a known function and not a potentially arbitrary pointer.  For
491         example,
492         1. it doesn't need to do a null check.
493         2. it doesn't need to authenticate the function address.  
494         3. The RELEASE_ASSERT used to enforce that authentication can also go away.
495
496         We should only use tagCFunction() (instead of tagCFunctionPtr()) if we know for
497         certain that we're operating on a C/C++ function, and not some arbitrary pointer.
498
499         * wtf/PtrTag.h:
500         (WTF::tagCFunction):
501
502 2020-04-08  David Kilzer  <ddkilzer@apple.com>
503
504         WTF::Persistence::VectorCoder and IPC::VectorArgumentCoder should use checked arithmetic
505         <https://webkit.org/b/210227>
506         <rdar://problem/60832243>
507
508         Reviewed by Alex Christensen.
509
510         * wtf/persistence/PersistentCoders.h:
511         (WTF::Persistence::VectorCoder::decode):
512         - Use checked arithemtic for multiplication.
513
514 2020-04-08  Chris Dumez  <cdumez@apple.com>
515
516         querySelector("#\u0000") should match an element with ID U+FFFD
517         https://bugs.webkit.org/show_bug.cgi?id=210119
518
519         Reviewed by Darin Adler.
520
521         * wtf/text/StringImpl.cpp:
522         (WTF::StringImpl::replace):
523         Slightly optimize the 16-bit code path of StringImpl::replace(). Since we know
524         there is no character match from indexes 0 to i, we can simply use memcpy for
525         this range.
526
527 2020-04-08  Ross Kirsling  <ross.kirsling@sony.com>
528
529         Remove ENABLE_INTL define
530         https://bugs.webkit.org/show_bug.cgi?id=210164
531
532         Reviewed by Darin Adler.
533
534         AppleWin (and, following suit, FTW) was the only upstream platform turning ENABLE_INTL off;
535         now that their headers have been upgraded to ICU 62, this define can be removed entirely.
536
537         Going forward, we thus assume JSC has an Intl object and can simply runtime-guard any new features added to it.
538
539         * wtf/PlatformEnable.h:
540         * wtf/PlatformEnableCocoa.h:
541
542 2020-04-08  Adrian Perez de Castro  <aperez@igalia.com>
543
544         [GTK4] Make PAL::systemBeep() work
545         https://bugs.webkit.org/show_bug.cgi?id=210158
546
547         Reviewed by Carlos Garcia Campos.
548
549         * wtf/Platform.h: Define a value for GDK_VERSION_MIN_REQUIRED suitable for GTK4.
550
551 2020-04-08  Tim Horton  <timothy_horton@apple.com>
552
553         Rearrange and simplify some JSC feature flags
554         https://bugs.webkit.org/show_bug.cgi?id=210152
555
556         Reviewed by Saam Barati.
557
558         * wtf/PlatformEnableCocoa.h:
559         * wtf/PlatformHave.h:
560         * wtf/PlatformUse.h:
561
562 2020-04-08  Philippe Normand  <pnormand@igalia.com>
563
564         [GTK][WPE] Release logs are unconditionally filling the journal
565         https://bugs.webkit.org/show_bug.cgi?id=209421
566
567         Reviewed by Carlos Alberto Lopez Perez.
568
569         * wtf/Assertions.h: Don't send logs to systemd for disabled log channels.
570         * wtf/Logger.h:
571         (WTF::Logger::willLog const): Ditto.
572
573 2020-04-07  Chris Dumez  <cdumez@apple.com>
574
575         Merge DependencyAssertion into ProcessAssertion
576         https://bugs.webkit.org/show_bug.cgi?id=210076
577
578         Reviewed by Alex Christensen.
579
580         * wtf/PlatformHave.h:
581
582 2020-04-07  Saam Barati  <sbarati@apple.com>
583
584         RAMification should have a way of gathering vmmaps for each test at the end of each run
585         https://bugs.webkit.org/show_bug.cgi?id=210060
586
587         Reviewed by Yusuke Suzuki.
588
589         * wtf/FastMalloc.cpp:
590         (WTF::fastDisableScavenger):
591         * wtf/FastMalloc.h:
592
593 2020-04-06  Ross Kirsling  <ross.kirsling@sony.com>
594
595         Update minimum ICU version to 60.2
596         https://bugs.webkit.org/show_bug.cgi?id=209694
597
598         Reviewed by Darin Adler.
599
600         This patch has two immediate motivations:
601           1. To properly introduce a minimum ICU version for WebKit as a whole
602              (responding to a pain point identified in bug 209579)
603           2. To support the development of ECMA-402 Intl API features, which JSC is quite behind on
604              (and which often boil down to exposing ICU functionality to JavaScript)
605
606         * icu/LICENSE:
607         * icu/README:
608         * icu/unicode/:
609         Update ICU headers to major version 62, the version included in macOS Mojave.
610
611         * wtf/text/AtomString.h:
612         * wtf/text/WTFString.h:
613         Remove obsoleted compile-time version checks.
614
615         * wtf/text/cocoa/StringCocoa.mm:
616         (WTF::String::String):
617         * wtf/text/cocoa/StringViewCocoa.mm:
618         (WTF::StringView::createNSString const):
619         (WTF::StringView::createNSStringWithoutCopying const):
620         Manually convert between UChar and UniChar/unichar where needed.
621
622 2020-04-06  Saam Barati  <sbarati@apple.com>
623
624         Implement 1GB of executable memory on arm64
625         https://bugs.webkit.org/show_bug.cgi?id=208490
626         <rdar://problem/60797127>
627
628         Reviewed by Keith Miller.
629
630         * wtf/MetaAllocator.cpp:
631         (WTF::MetaAllocatorTracker::notify):
632         (WTF::MetaAllocatorTracker::release):
633         (WTF::MetaAllocator::release):
634         (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
635         (WTF::MetaAllocatorHandle::~MetaAllocatorHandle):
636         (WTF::MetaAllocatorHandle::shrink):
637         (WTF::MetaAllocator::MetaAllocator):
638         (WTF::MetaAllocator::allocate):
639         (WTF::MetaAllocator::currentStatistics):
640         * wtf/MetaAllocator.h:
641         (WTF::MetaAllocatorTracker::find):
642         (WTF::MetaAllocator::allocate):
643         (WTF::MetaAllocator::currentStatistics):
644         (WTF::MetaAllocator::getLock): Deleted.
645         * wtf/MetaAllocatorHandle.h:
646         (WTF::MetaAllocatorHandle::allocator):
647         (WTF::MetaAllocatorHandle::isManaged): Deleted.
648         (WTF::MetaAllocatorHandle::ownerUID): Deleted.
649         * wtf/PlatformEnable.h:
650         * wtf/RedBlackTree.h:
651         * wtf/StdLibExtras.h:
652         (WTF::constructFixedSizeArrayWithArgumentsImpl):
653         (WTF::constructFixedSizeArrayWithArguments):
654
655 2020-04-04  Darin Adler  <darin@apple.com>
656
657         Stop using live ranges in DocumentMarkerController
658         https://bugs.webkit.org/show_bug.cgi?id=209985
659
660         Reviewed by Antti Koivisto.
661
662         * wtf/RetainPtr.h: Define "id" here when compiling non-ObjC so it's easier to use
663         RetainPtr<id> in any header file. Lets us stop doing this many other places.
664         Harmless when not needed.
665
666 2020-04-04  Fujii Hironori  <Hironori.Fujii@sony.com>
667
668         [Clang 10] Fix -Wimplicit-int-float-conversion compilation warnings in WTF
669         https://bugs.webkit.org/show_bug.cgi?id=209955
670
671         Reviewed by Darin Adler.
672
673         Clang 10 reports a compilation warning for int to float
674         conversions losing the precision. The warning is often reported
675         for code converting a floating point value to an integer value.
676         For example:
677
678         > Optional<int> positive_float_to_int(float f) {
679         >     if (f > INT_MAX)
680         >         return nullopt;
681         >     return static_cast<int>(f);
682         > }
683
684         INT_MAX is implicitly converted float, but float can't keep the
685         precision of such large value. And, C++ spec doesn't specify
686         whether it would be rounded up or down. Above code should be
687         rewritten to:
688
689         > Optional<int> positive_float_to_int(float f) {
690         >     if (f >= pow(2, 31))
691         >         return nullopt;
692         >     return static_cast<int>(f);
693         > }
694
695         Instead of using pow, this change added a template variable
696         maxPlusOne<T>.
697
698         * wtf/MathExtras.h:
699         (powerOfTwo): Added.
700         (doubleToInteger): Added.
701         (maxPlusOne): Added.
702         * wtf/MediaTime.cpp:
703         (WTF::MediaTime::createWithFloat):
704         (WTF::MediaTime::createWithDouble):
705
706 2020-04-03  David Kilzer  <ddkilzer@apple.com>
707
708         [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited)
709         <https://webkit.org/b/209963>
710         <rdar://problem/61257504>
711
712         Reviewed by Alexey Proskuryakov.
713
714         * Configurations/Base.xcconfig:
715         - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and
716           ASAN_OTHER_LDFLAGS.
717
718 2020-04-02  Commit Queue  <commit-queue@webkit.org>
719
720         Unreviewed, reverting r259390.
721         https://bugs.webkit.org/show_bug.cgi?id=209944
722
723         It broke WinCairo builds (Requested by fujihiro on #webkit).
724
725         Reverted changeset:
726
727         "Enable offlineasm debug annotations for GCC"
728         https://bugs.webkit.org/show_bug.cgi?id=207119
729         https://trac.webkit.org/changeset/259390
730
731 2020-04-02  Chris Dumez  <cdumez@apple.com>
732
733         [iOS] Replace UIKit background task with a RunningBoard FinishTaskInterruptable assertion
734         https://bugs.webkit.org/show_bug.cgi?id=209825
735         <rdar://problem/61118503>
736
737         Reviewed by Geoffrey Garen.
738
739         Add build-time flag for WebKit-specific assertion in RunningBoard.
740
741         * wtf/PlatformHave.h:
742
743 2020-04-02  Keith Rollin  <krollin@apple.com>
744
745         Address static analysis warning in DataLog.cpp: Value stored to 'pathCharactersAvailable' is never read
746         https://bugs.webkit.org/show_bug.cgi?id=202153
747         <rdar://problem/55671845>
748
749         Reviewed by David Kilzer.
750
751         Bug 168914 introduced some code that will initialize a variable to
752         zero, but then never use that variable afterwards. Address this by
753         removing the assignment.
754
755         * wtf/DataLog.cpp:
756         (WTF::setDataFile):
757
758 2020-03-31  Michael Catanzaro  <mcatanzaro@gnome.org>
759
760         Update check for aarch64
761         https://bugs.webkit.org/show_bug.cgi?id=209322
762
763         Reviewed by Mark Lam.
764
765         CPU(ARM64) is used on Linux, so checking to avoid Apple platforms doesn't make much sense.
766         The comment implying that this is an Apple architecture also no longer makes sense.
767
768         * wtf/PlatformCPU.h:
769
770 2020-03-31  Sihui Liu  <sihui_liu@apple.com>
771
772         IndexedDB: destroy WebIDBServer when session is removed in network process
773         https://bugs.webkit.org/show_bug.cgi?id=209606
774         <rdar://problem/59310081>
775
776         Reviewed by Geoffrey Garen.
777
778         Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before 
779         thread finishes.
780
781         * wtf/CrossThreadTaskHandler.cpp:
782         (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
783         (WTF::CrossThreadTaskHandler::setCompletionCallback):
784         (WTF::CrossThreadTaskHandler::kill):
785         * wtf/CrossThreadTaskHandler.h:
786
787 2020-03-30  David Kilzer  <ddkilzer@apple.com>
788
789         Fix "Dead nested assignment" static analyzer warning in monthFromDayInYear()
790         <https://webkit.org/b/209718>
791
792         Reviewed by Alex Christensen.
793
794         * wtf/DateMath.h:
795         (WTF::monthFromDayInYear): Change the last check so it doesn't
796         assign a value to `step`, thus avoiding the warning.
797
798 2020-03-28  Simon Fraser  <simon.fraser@apple.com>
799
800         Add a ScrollLatching log channel and improve some logging functionality
801         https://bugs.webkit.org/show_bug.cgi?id=209706
802
803         Reviewed by Darin Adler, David Kilzer.
804
805         * wtf/text/TextStream.h:
806         (WTF::ValueOrNull::ValueOrNull):
807         (WTF::operator<<):
808
809 2020-03-27  Simon Fraser  <simon.fraser@apple.com>
810
811         Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
812         https://bugs.webkit.org/show_bug.cgi?id=209693
813
814         Reviewed by Zalan Bujtas.
815
816         Define ENABLE_WHEEL_EVENT_LATCHING for macOS.
817
818         * wtf/PlatformEnable.h:
819
820 2020-03-27  Michael Catanzaro  <mcatanzaro@gnome.org>
821
822         REGRESSION(r258857): Broke aarch64 JSCOnly CI
823         https://bugs.webkit.org/show_bug.cgi?id=209670
824
825         Reviewed by Carlos Alberto Lopez Perez.
826
827         Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.
828
829         This change is definitely incorrect, because it will break our internal aarch64 CI that uses
830         64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
831         Further investigation is required, because 64 KB should have been a safe value for all
832         platforms, but first step is to commit this and see what happens.
833
834         * wtf/PageBlock.h:
835
836 2020-03-26  Michael Catanzaro  <mcatanzaro@gnome.org>
837
838         Fix various compiler warnings
839         https://bugs.webkit.org/show_bug.cgi?id=209438
840
841         Reviewed by Darin Adler.
842
843         Suppress -Wclass-memaccess warning. ConcurrentBuffer is documented to support types that are
844         bit-copyable but not copy-constructable. This is strange, but who am I to question it?
845
846         * wtf/ConcurrentBuffer.h:
847
848 2020-03-25  Christopher Reid  <chris.reid@sony.com>
849
850         [PlayStation] Specify a 16 KB minimum page size
851         https://bugs.webkit.org/show_bug.cgi?id=209566
852
853         Reviewed by Ross Kirsling.
854
855         * wtf/PageBlock.h:
856
857 2020-03-25  Sihui Liu  <sihui_liu@apple.com>
858
859         Remove unused suspend functions in CrossThreadTaskHandler
860         https://bugs.webkit.org/show_bug.cgi?id=209553
861
862         Reviewed by Geoffrey Garen.
863
864         * wtf/CrossThreadTaskHandler.cpp:
865         (WTF::CrossThreadTaskHandler::taskRunLoop):
866         (WTF::CrossThreadTaskHandler::suspendAndWait): Deleted.
867         (WTF::CrossThreadTaskHandler::resume): Deleted.
868         * wtf/CrossThreadTaskHandler.h:
869
870 2020-03-24  Per Arne Vollan  <pvollan@apple.com>
871
872         [Cocoa] Fix launch time regression with CF prefs direct mode enabled
873         https://bugs.webkit.org/show_bug.cgi?id=209244
874
875         Reviewed by Darin Adler.
876
877         Re-enable CF prefs direct mode.
878
879         * wtf/PlatformEnable.h:
880         * wtf/PlatformEnableCocoa.h:
881
882 2020-03-24  Per Arne Vollan  <pvollan@apple.com>
883
884         [Cocoa] Deny access to database mapping service
885         https://bugs.webkit.org/show_bug.cgi?id=209339
886         <rdar://problem/56966010>
887
888         Reviewed by Brent Fulgham.
889
890         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
891         of denying the database mapping service in this patch.
892
893         * wtf/PlatformUse.h:
894
895 2020-03-23  Commit Queue  <commit-queue@webkit.org>
896
897         Unreviewed, reverting r258891.
898         https://bugs.webkit.org/show_bug.cgi?id=209459
899
900         Introduced layout test failures (Requested by perarne on
901         #webkit).
902
903         Reverted changeset:
904
905         "[Cocoa] Deny access to database mapping service"
906         https://bugs.webkit.org/show_bug.cgi?id=209339
907         https://trac.webkit.org/changeset/258891
908
909 2020-03-23  Per Arne Vollan  <pvollan@apple.com>
910
911         [Cocoa] Deny access to database mapping service
912         https://bugs.webkit.org/show_bug.cgi?id=209339
913         <rdar://problem/56966010>
914
915         Reviewed by Brent Fulgham.
916
917         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
918         of denying the database mapping service in this patch.
919
920         * wtf/PlatformUse.h:
921
922 2020-03-23  John Wilander  <wilander@apple.com>
923
924         Add the capability to change all of a website's cookies to SameSite=Strict
925         https://bugs.webkit.org/show_bug.cgi?id=209369
926         <rdar://problem/60710690>
927
928         Reviewed by Alex Christensen and David Kilzer.
929
930         * wtf/PlatformHave.h:
931             Adds HAVE_CFNETWORK_SAMESITE_COOKIE_API for macOS Catalina and up,
932             iOS 13 and up, Catalyst, watchOS, and Apple TV.
933
934 2020-03-23  youenn fablet  <youenn@apple.com>
935
936         Rename blankURL to aboutBlankURL
937         https://bugs.webkit.org/show_bug.cgi?id=209344
938
939         Reviewed by Darin Adler.
940
941         Rename blankURL to aboutBlankURL and allow using it without WTF:: prefix.
942
943         * wtf/URL.cpp:
944         (WTF::aboutBlankURL):
945         (WTF::blankURL): Deleted.
946         * wtf/URL.h:
947
948 2020-03-23  Rob Buis  <rbuis@igalia.com>
949
950         XMLHttpRequest: getAllResponseHeaders() sorting
951         https://bugs.webkit.org/show_bug.cgi?id=200565
952
953         Reviewed by Darin Adler.
954
955         Add a new manipulator that can efficiently convert
956         Strings to lower or upper ASCII.
957
958         * wtf/text/StringConcatenate.h:
959         (WTF::lowercase):
960         (WTF::uppercase):
961         * wtf/text/StringView.cpp:
962         (WTF::getCharactersWithASCIICaseInternal):
963         (WTF::StringView::getCharactersWithASCIICase const):
964         * wtf/text/StringView.h:
965
966 2020-03-23  Antoine Quint  <graouts@apple.com>
967
968         DocumentTimeline / CSSTransition objects are leaking on CNN.com
969         https://bugs.webkit.org/show_bug.cgi?id=208069
970         <rdar://problem/59680143>
971
972         Reviewed by Darin Adler.
973
974         Integrating post-commit review feedback from Darin. 
975
976         * wtf/ListHashSet.h:
977         (WTF::=):
978
979 2020-03-23  Michael Catanzaro  <mcatanzaro@gnome.org>
980
981         REGRESSION(r249808): [GTK] Crash in JSC Config::permanentlyFreeze() on architecture ppc64el
982         https://bugs.webkit.org/show_bug.cgi?id=209236
983
984         Reviewed by Mark Lam.
985
986         Add new CeilingOnPageSize constants, for use in JSC, in order to centralize our compile-time
987         page size guessing into one place. Improve the implementation of pageSize() to
988         RELEASE_ASSERT() when CeilingOnPageSize is wrong, so we can detect and fix it if so. (It
989         will be even easier to detect if we change RELEASE_ASSERT_WITH_MESSAGE() to actually print
990         its message in release builds.) Change pageSize() to use sysconf(_SC_PAGESIZE), which is
991         specified by POSIX, instead of getpagesize(), which is nonstandard.
992
993         * wtf/PageBlock.cpp:
994         (WTF::systemPageSize):
995         (WTF::pageSize):
996         * wtf/PageBlock.h:
997
998 2020-03-23  Jacob Uphoff  <jacob_uphoff@apple.com>
999
1000         Unreviewed, reverting r258803.
1001
1002         This revision caused many layout tests and 10 API tests to
1003         start failing/crashing
1004
1005         Reverted changeset:
1006
1007         "[Cocoa] Deny access to database mapping service"
1008         https://bugs.webkit.org/show_bug.cgi?id=209339
1009         https://trac.webkit.org/changeset/258803
1010
1011 2020-03-23  youenn fablet  <youenn@apple.com>
1012
1013         StringView::startsWith and String::startsWith do not treat null strings the same
1014         https://bugs.webkit.org/show_bug.cgi?id=209273
1015
1016         Reviewed by Darin Adler.
1017
1018         Align StringImpl with StringView and make startsWith return true if prefix is null.
1019
1020         * wtf/text/StringImpl.cpp:
1021         (WTF::StringImpl::startsWith const):
1022
1023 2020-03-22  Antoine Quint  <graouts@apple.com>
1024
1025         DocumentTimeline / CSSTransition objects are leaking on CNN.com
1026         https://bugs.webkit.org/show_bug.cgi?id=208069
1027         <rdar://problem/59680143>
1028
1029         Reviewed by Simon Fraser, Geoffrey Garen and Darin Adler.
1030
1031         If a CSSAnimation is set on an element using the `animation-name` CSS property, and later removed, it will leak due to the ListHashSet<RefPtr<CSSAnimation>>
1032         (aka CSSAnimationCollection) member on ElementAnimationRareData being replaced to the new list, but the old list not being cleared from its members.
1033
1034         We fix the ListHashSet assignment operator to use swap ensuring previously held items are cleared.
1035
1036         * wtf/ListHashSet.h:
1037         (WTF::=):
1038
1039 2020-03-20  Per Arne Vollan  <pvollan@apple.com>
1040
1041         [Cocoa] Deny access to database mapping service
1042         https://bugs.webkit.org/show_bug.cgi?id=209339
1043         <rdar://problem/56966010>
1044
1045         Reviewed by Brent Fulgham.
1046
1047         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
1048         of denying the database mapping service in this patch.
1049
1050         * wtf/PlatformUse.h:
1051
1052 2020-03-20  Oliver Hunt  <oliver@nerget,com>
1053
1054         Add correct annotations to block isa pointer
1055         https://bugs.webkit.org/show_bug.cgi?id=209355
1056         <rdar://problem/60431606>
1057
1058         Reviewed by Keith Miller.
1059
1060         Trivial definition update. 
1061
1062         * wtf/BlockPtr.h:
1063         (WTF::BlockPtr<R):
1064
1065 2020-03-20  Tim Horton  <timothy_horton@apple.com>
1066
1067         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
1068         https://bugs.webkit.org/show_bug.cgi?id=209307
1069
1070         Reviewed by Andy Estes.
1071
1072         * wtf/PlatformEnableCocoa.h:
1073         * wtf/PlatformHave.h:
1074
1075 2020-03-20  youenn fablet  <youenn@apple.com>
1076
1077         Add routines to check about:blank and about:srcdoc URLs
1078         https://bugs.webkit.org/show_bug.cgi?id=209174
1079
1080         Reviewed by Alex Christensen.
1081
1082         * wtf/URL.cpp:
1083         (WTF::aboutSrcDocURL):
1084         (WTF::URL::isAboutBlank const):
1085         (WTF::URL::isAboutSrcDoc const):
1086         * wtf/URL.h:
1087
1088 2020-03-20  Jacob Uphoff  <jacob_uphoff@apple.com>
1089
1090         Unreviewed, reverting r258748.
1091
1092         This commit broke the Catalina build
1093
1094         Reverted changeset:
1095
1096         "Upstream a variety of Cocoa-platform HAVE and ENABLE macros"
1097         https://bugs.webkit.org/show_bug.cgi?id=209307
1098         https://trac.webkit.org/changeset/258748
1099
1100 2020-03-19  Tim Horton  <timothy_horton@apple.com>
1101
1102         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
1103         https://bugs.webkit.org/show_bug.cgi?id=209307
1104
1105         Reviewed by Andy Estes.
1106
1107         * wtf/PlatformEnableCocoa.h:
1108         * wtf/PlatformHave.h:
1109
1110 2020-03-19  Tim Horton  <timothy_horton@apple.com>
1111
1112         Upstream the definition of HAVE_READ_ONLY_SYSTEM_VOLUME
1113         https://bugs.webkit.org/show_bug.cgi?id=209305
1114
1115         Reviewed by Andy Estes.
1116
1117         * wtf/PlatformHave.h:
1118
1119 2020-03-19  Tim Horton  <timothy_horton@apple.com>
1120
1121         Implement support for cursor interactions on iPad
1122         https://bugs.webkit.org/show_bug.cgi?id=209268
1123
1124         Reviewed by Darin Adler.
1125
1126         * wtf/PlatformEnableCocoa.h:
1127         Don't disable the contextmenu event on iOS anymore.
1128
1129         * wtf/PlatformHave.h:
1130         Rename HAVE_HOVER_GESTURE_RECOGNIZER to HAVE_UIKIT_WITH_MOUSE_SUPPORT.
1131         Add HAVE_UI_CURSOR_INTERACTION.
1132         Enable HAVE_UI_PARALLAX_TRANSITION_GESTURE_RECOGNIZER on iOS.
1133
1134 2020-03-19  Charlie Turner  <cturner@igalia.com>
1135
1136         Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.
1137         https://bugs.webkit.org/show_bug.cgi?id=209146
1138
1139         Reviewed by Darin Adler.
1140
1141         * wtf/LoggerHelper.h: When the RELEASE_LOG is disabled, avoid warning
1142         spam about unused channel names. Call sites often create locals for
1143         the channel name outside of RELEASE_LOG ifdef's, which cause many
1144         unused variable warnings.
1145
1146 2020-03-19  Philippe Normand  <pnormand@igalia.com>
1147
1148         [GTK][WPE] Unreviewed, build fixes after r258547 when disabling release logging support
1149
1150         * wtf/Logger.h:
1151         (WTF::Logger::logAlwaysVerbose const):
1152
1153 2020-03-19  youenn fablet  <youenn@apple.com>
1154
1155         Make URL::path() return a StringView
1156         https://bugs.webkit.org/show_bug.cgi?id=209173
1157
1158         Reviewed by Alex Christensen.
1159
1160         * wtf/URL.cpp:
1161         (WTF::URL::path const):
1162         * wtf/URL.h:
1163         * wtf/text/StringView.h:
1164         (WTF::startsWithLettersIgnoringASCIICase):
1165         Add an overload for StringView.
1166
1167 2020-03-18  Peng Liu  <peng.liu6@apple.com>
1168
1169         The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
1170         https://bugs.webkit.org/show_bug.cgi?id=204979
1171
1172         Reviewed by Jer Noble.
1173
1174         A follow-up patch to fix build failures.
1175
1176         * wtf/PlatformHave.h:
1177
1178 2020-03-18  Myles C. Maxfield  <mmaxfield@apple.com>
1179
1180         REGRESSION(r254389): Cordova throws an exception because it expects a hyphen inside navigator.locale
1181         https://bugs.webkit.org/show_bug.cgi?id=208969
1182         <rdar://problem/59845517>
1183
1184         Reviewed by Darin Adler.
1185
1186         We want to thwart fingerprinting by minimizing the list of locales, but we also don't want to break existing apps.
1187         We can achieve both by a linked-on-or-after check.
1188
1189         * wtf/cocoa/LanguageCocoa.mm:
1190         (WTF::canMinimizeLanguages):
1191
1192 2020-03-17  Alex Christensen  <achristensen@webkit.org>
1193
1194         REGRESSION(r254856) Add exception for window.openDatabase to not masquerade as undefined in currently shipping Jesus Calling Devotional app
1195         https://bugs.webkit.org/show_bug.cgi?id=209160
1196         <rdar://problem/60297073>
1197
1198         Reviewed by Geoff Garen.
1199
1200         * wtf/spi/darwin/dyldSPI.h:
1201
1202 2020-03-17  Per Arne Vollan  <pvollan@apple.com>
1203
1204         [Cocoa] Disable CF prefs direct mode
1205         https://bugs.webkit.org/show_bug.cgi?id=209166
1206         <rdar://problem/60517387>
1207
1208         Reviewed by Brent Fulgham.
1209
1210         Revert <https://trac.webkit.org/changeset/258064> by disabling the CF prefs direct mode feature,
1211         since it caused performance regressions.
1212
1213         * wtf/PlatformEnable.h:
1214
1215 2020-03-17  Philippe Normand  <pnormand@igalia.com>
1216
1217         RELEASE_LOG should not be Cocoa specific
1218         https://bugs.webkit.org/show_bug.cgi?id=195182
1219
1220         Reviewed by Konstantin Tokarev.
1221
1222         Add sd-journal logging support and wrap the os_log calls with the USE(OS_LOG) guard.
1223
1224         * wtf/Assertions.cpp:
1225         * wtf/Assertions.h:
1226         * wtf/Logger.h:
1227         (WTF::Logger::log):
1228         * wtf/MemoryPressureHandler.cpp:
1229         (WTF::toString):
1230         * wtf/PlatformGTK.cmake:
1231         * wtf/PlatformWPE.cmake:
1232         * wtf/RefCountedLeakCounter.cpp:
1233
1234 2020-03-16  Keith Miller  <keith_miller@apple.com>
1235
1236         JavaScript identifier grammar supports unescaped astral symbols, but JSC doesn’t
1237         https://bugs.webkit.org/show_bug.cgi?id=208998
1238
1239         Reviewed by Michael Saboff.
1240
1241         * wtf/text/WTFString.cpp:
1242         (WTF::String::fromCodePoint):
1243         * wtf/text/WTFString.h:
1244
1245 2020-03-15  Yusuke Suzuki  <ysuzuki@apple.com>
1246
1247         Should not use variable-length-array (VLA)
1248         https://bugs.webkit.org/show_bug.cgi?id=209043
1249
1250         Reviewed by Mark Lam.
1251
1252         * Configurations/Base.xcconfig:
1253         * wtf/UUID.cpp:
1254         (WTF::bootSessionUUIDString):
1255
1256 2020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
1257
1258         [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
1259         https://bugs.webkit.org/show_bug.cgi?id=209030
1260
1261         Reviewed by Simon Fraser.
1262
1263         * WTF.xcodeproj/project.pbxproj:
1264         * wtf/PlatformMac.cmake:
1265         * wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
1266         * wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.
1267         (WTF::applicationSDKVersionOverride):
1268         (WTF::setApplicationSDKVersion):
1269         (WTF::applicationSDKVersion):
1270
1271 2020-03-11  Jer Noble  <jer.noble@apple.com>
1272
1273         Adopt AVSampleBufferVideoOutput
1274         https://bugs.webkit.org/show_bug.cgi?id=208951
1275
1276         Reviewed by Eric Carlson.
1277
1278         * wtf/PlatformHave.h:
1279
1280 2020-03-11  Jer Noble  <jer.noble@apple.com>
1281
1282         [EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
1283         https://bugs.webkit.org/show_bug.cgi?id=208923
1284
1285         Reviewed by Eric Carlson.
1286
1287         * wtf/LoggerHelper.h:
1288         (WTF::LoggerHelper::childLogIdentifier): Made static.
1289
1290 2020-03-11  Per Arne Vollan  <pvollan@apple.com>
1291
1292         [macOS] Crash under WebKit::WebProcessPool::platformInitialize()
1293         https://bugs.webkit.org/show_bug.cgi?id=208945
1294
1295         Reviewed by Brent Fulgham.
1296
1297         Add macro to optionally soft link library.
1298
1299         * wtf/cocoa/SoftLinking.h:
1300
1301 2020-03-11  Alex Christensen  <achristensen@webkit.org>
1302
1303         Enable safe browsing warnings in Mac Catalyst WebKit
1304         https://bugs.webkit.org/show_bug.cgi?id=208944
1305         <rdar://problem/58854302>
1306
1307         Reviewed by Tim Horton.
1308
1309         * wtf/PlatformHave.h:
1310
1311 2020-03-09  Megan Gardner  <megan_gardner@apple.com>
1312
1313         Build Fix
1314         https://bugs.webkit.org/show_bug.cgi?id=208838
1315
1316         Reviewed by Tim Horton.
1317
1318         * wtf/PlatformHave.h:
1319
1320 2020-03-09  Don Olmstead  <don.olmstead@sony.com>
1321
1322         Remove obsolete feature flags
1323         https://bugs.webkit.org/show_bug.cgi?id=208830
1324
1325         Reviewed by Alex Christensen.
1326
1327         Remove ENABLE_CUSTOM_SCHEME_HANDLER as it is unused in source.
1328
1329         * wtf/PlatformEnable.h:
1330
1331 2020-03-08  Brady Eidson  <beidson@apple.com>
1332
1333         Remember completed subranges during incremental PDF loading.
1334         https://bugs.webkit.org/show_bug.cgi?id=208785
1335
1336         Reviewed by Tim Horton.
1337
1338         * wtf/Range.h: Don't include the typical 'using WTF::Range' as that makes it almost impossible
1339           to use in the stack at WebCore or higher (Because of WebCore::Range)
1340
1341 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
1342
1343         Unreviewed build fix.
1344
1345         * wtf/PlatformUse.h:
1346
1347 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
1348
1349         [iOS] Mapping to UTI from tag and tag class should be performed in the UI process
1350         https://bugs.webkit.org/show_bug.cgi?id=208783
1351
1352         Reviewed by Brent Fulgham.
1353
1354         * wtf/PlatformUse.h:
1355
1356 2020-03-08  Wenson Hsieh  <wenson_hsieh@apple.com>
1357
1358         Lazily generate CGPaths for some simple types of paths, such as arcs and lines
1359         https://bugs.webkit.org/show_bug.cgi?id=208464
1360         <rdar://problem/59963226>
1361
1362         Reviewed by Daniel Bates, Darin Adler and Tim Horton.
1363
1364         Add a feature flag for INLINE_PATH_DATA. This feature flag exists to ensure that we can avoid having
1365         m_inlineData on Path in ports that don't implement the necessary facilities for inline path data yet, since it
1366         would just end up being wasted memory.
1367
1368         * wtf/PlatformEnable.h:
1369
1370 2020-03-07  Daniel Bates  <dabates@apple.com>
1371
1372         [iOS] Implement support for dictation alternatives
1373         https://bugs.webkit.org/show_bug.cgi?id=208720
1374         <rdar://problem/58540114>
1375
1376         Reviewed by Wenson Hsieh.
1377
1378         Part 5
1379
1380         Enable USE_DICTATION_ALTERNATIVES on iOS.
1381
1382         * wtf/PlatformUse.h:
1383
1384 2020-03-05  Sam Weinig  <weinig@apple.com>
1385
1386         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
1387         https://bugs.webkit.org/show_bug.cgi?id=207436
1388         <rdar://problem/59296762>
1389
1390         Reviewed by Darin Adler.
1391
1392         * wtf/PlatformEnable.h:
1393         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
1394
1395         * wtf/PlatformEnableCocoa.h:
1396         Added ENABLE_FAST_JIT_PERMISSIONS and ENABLE_INTL (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
1397         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
1398
1399 2020-03-06  Per Arne Vollan  <pvollan@apple.com>
1400
1401         [Cocoa] Re-enable CFPrefs direct mode
1402         https://bugs.webkit.org/show_bug.cgi?id=208690
1403
1404         Reviewed by Brent Fulgham.
1405
1406         * wtf/PlatformEnable.h:
1407
1408 2020-03-06  Peng Liu  <peng.liu6@apple.com>
1409
1410         Use the feature flags mechanism to give default feature preference values
1411         https://bugs.webkit.org/show_bug.cgi?id=208607
1412
1413         Reviewed by Youenn Fablet.
1414
1415         ENABLE_GPU_PROCESS_FOR_WEBRTC is removed because we will use the feature flags
1416         mechanism to give the default preference regarding the WebRTC in GPU process feature.
1417         This patch also adds macro HAVE_SYSTEM_FEATURE_FLAGS.
1418
1419         * wtf/PlatformEnable.h:
1420         * wtf/PlatformEnableCocoa.h:
1421         * wtf/PlatformHave.h:
1422
1423 2020-03-05  Darin Adler  <darin@apple.com>
1424
1425         Improve some media code
1426         https://bugs.webkit.org/show_bug.cgi?id=208322
1427
1428         Reviewed by Anders Carlsson.
1429
1430         * wtf/WeakPtr.h:
1431         (WTF::WeakPtr::operator! const): Added.
1432
1433 2020-03-05  Jer Noble  <jer.noble@apple.com>
1434
1435         [GPUP] Implement RemoteAudioSession
1436         https://bugs.webkit.org/show_bug.cgi?id=208583
1437
1438         Reviewed by Alex Christensen.
1439
1440         Add UniqueRef to the list of forward-declared template types.
1441
1442         * wtf/Forward.h:
1443
1444 2020-03-04  Mark Lam  <mark.lam@apple.com>
1445
1446         Handle an out of memory error while constructing the BytecodeGenerator.
1447         https://bugs.webkit.org/show_bug.cgi?id=208622
1448         <rdar://problem/59341136>
1449
1450         Reviewed by Saam Barati.
1451
1452         * wtf/CagedUniquePtr.h:
1453         (WTF::CagedUniquePtr::tryCreate):
1454
1455 2020-03-04  Brady Eidson  <beidson@apple.com>
1456
1457         Lay initial groundwork for new PDF loading model
1458         https://bugs.webkit.org/show_bug.cgi?id=208599
1459
1460         Reviewed by Alex Christensen.
1461
1462         * wtf/PlatformHave.h:
1463
1464 2020-03-04  Wenson Hsieh  <wenson_hsieh@apple.com>
1465
1466         Add system trace points around display list replay
1467         https://bugs.webkit.org/show_bug.cgi?id=208616
1468
1469         Reviewed by Simon Fraser.
1470
1471         Add DisplayListReplayStart and DisplayListReplayEnd.
1472
1473         * wtf/SystemTracing.h:
1474
1475 2020-03-04  Per Arne Vollan  <pvollan@apple.com>
1476
1477         [Cocoa] Add enable flag to disable direct mode for preferences
1478         https://bugs.webkit.org/show_bug.cgi?id=208588
1479
1480         Reviewed by Brent Fulgham.
1481
1482         * wtf/PlatformEnable.h:
1483
1484 2020-03-03  Megan Gardner  <megan_gardner@apple.com>
1485
1486         Build Fix
1487         https://bugs.webkit.org/show_bug.cgi?id=208530
1488
1489         Reviewed by Wenson Hsieh.
1490
1491         * wtf/PlatformHave.h:
1492
1493 2020-03-03  Jiten Mehta  <jmehta@apple.com>
1494
1495         Adopt HTTP Alternative Services Storage
1496         https://bugs.webkit.org/show_bug.cgi?id=208387
1497
1498         Reviewed by Alex Christensen.
1499
1500         * wtf/PlatformHave.h:
1501
1502 2020-03-03  youenn fablet  <youenn@apple.com>
1503
1504         Rename USE(GPU_PROCESS) to ENABLE(GPU_PROCESS_FOR_WEBRTC)
1505         https://bugs.webkit.org/show_bug.cgi?id=208505
1506
1507         Reviewed by Eric Carlson.
1508
1509         Rename macro since the name is misleading.
1510         Disable GPU_PROCESS_FOR_WEBRTC for iOS except simulator for now.
1511
1512         * wtf/PlatformEnable.h:
1513         * wtf/PlatformEnableCocoa.h:
1514         * wtf/PlatformUse.h:
1515
1516 2020-03-02  Ben Nham  <nham@apple.com>
1517
1518         Add performance probes for HTML parsing
1519         https://bugs.webkit.org/show_bug.cgi?id=208271
1520
1521         Reviewed by Daniel Bates.
1522
1523         This adds probes that show which lines of HTML are have been parsed.
1524
1525         * wtf/SystemTracing.h:
1526
1527 2020-03-02  Ben Nham  <nham@apple.com>
1528
1529         [WTF] Add signpost API
1530         https://bugs.webkit.org/show_bug.cgi?id=208395
1531
1532         Reviewed by Alex Christensen.
1533
1534         We want to start using os_signpost instead of kdebug_trace when emitting performance events,
1535         because it is usually cheaper (doesn't require a system call unless the log buffer is full)
1536         and allows for richer tracepoints (allows for logging strings as well as integers).
1537
1538         To facilitate this, this moves the os_signpost wrappers in NetworkDataTaskCocoa to
1539         WTF. Since signposts can contain sensitive strings (like URLs), currently we only enable
1540         them on Apple-internal devices when an environment variable is set.
1541
1542         * WTF.xcodeproj/project.pbxproj:
1543         * wtf/PlatformMac.cmake:
1544         * wtf/SystemTracing.h:
1545         * wtf/cocoa/SystemTracingCocoa.cpp: Added.
1546         (WTFSignpostsEnabled):
1547         (WTFSignpostLogHandle):
1548         * wtf/spi/darwin/OSVariantSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/OSVariantSPI.h.
1549
1550 2020-03-02  Alan Coon  <alancoon@apple.com>
1551
1552         Add new Mac target numbers
1553         https://bugs.webkit.org/show_bug.cgi?id=208398
1554
1555         Reviewed by Alexey Proskuryakov.
1556
1557         * Configurations/Base.xcconfig:
1558         * Configurations/DebugRelease.xcconfig:
1559
1560 2020-03-02  Megan Gardner  <megan_gardner@apple.com>
1561
1562         Add date/time style to macCatalyst
1563         https://bugs.webkit.org/show_bug.cgi?id=208456
1564
1565         Reviewed by Wenson Hsieh.
1566
1567         * wtf/PlatformHave.h:
1568
1569 2020-03-02  Paulo Matos  <pmatos@igalia.com>
1570
1571         Fix JSC 32bit alignment increase gcc warning
1572         https://bugs.webkit.org/show_bug.cgi?id=208445
1573
1574         Reviewed by Yusuke Suzuki.
1575
1576         Use reinterpret_cast_ptr<>() instead of reinterpret_cast<>() to
1577         avoid GCC warning about increase in alignment requirement for cast
1578         target type.
1579
1580         * wtf/HashTable.h:
1581         (WTF::HashTable::tableSize const):
1582         (WTF::HashTable::setTableSize const):
1583         (WTF::HashTable::tableSizeMask const):
1584         (WTF::HashTable::setTableSizeMask):
1585         (WTF::HashTable::keyCount const):
1586         (WTF::HashTable::setKeyCount const):
1587         (WTF::HashTable::deletedCount const):
1588         (WTF::HashTable::setDeletedCount const):
1589         (WTF::KeyTraits>::allocateTable):
1590         (WTF::KeyTraits>::deallocateTable):
1591
1592 2020-03-02  youenn fablet  <youenn@apple.com>
1593
1594         Enable capture in GPUProcess by default for recent platforms only
1595         https://bugs.webkit.org/show_bug.cgi?id=208437
1596
1597         Reviewed by Eric Carlson.
1598
1599         * wtf/PlatformUse.h:
1600         Introduce USE(GPU_PROCESS)
1601
1602 2020-02-29  Yusuke Suzuki  <ysuzuki@apple.com>
1603
1604         Remove std::lock_guard
1605         https://bugs.webkit.org/show_bug.cgi?id=206451
1606
1607         Reviewed by Anders Carlsson.
1608
1609         Remove use of std::lock_guard. This is deprecated in C++17.
1610
1611         1. For particularly low-level usage (like, bmalloc, std::mutex), use std::scoped_lock.
1612         2. For the other purpose, use holdLock.
1613
1614         * benchmarks/ConditionSpeedTest.cpp:
1615         * wtf/CryptographicallyRandomNumber.cpp:
1616         * wtf/HashTable.cpp:
1617         (WTF::HashTableStats::recordCollisionAtCount):
1618         (WTF::HashTableStats::dumpStats):
1619         * wtf/HashTable.h:
1620         (WTF::KeyTraits>::invalidateIterators):
1621         (WTF::addIterator):
1622         (WTF::removeIterator):
1623         * wtf/Language.cpp:
1624         (WTF::userPreferredLanguages):
1625         * wtf/MainThread.cpp:
1626         (WTF::dispatchFunctionsFromMainThread):
1627         (WTF::callOnMainThread):
1628         (WTF::callOnMainAndWait):
1629         * wtf/StackStats.cpp:
1630         (WTF::StackStats::CheckPoint::CheckPoint):
1631         (WTF::StackStats::CheckPoint::~CheckPoint):
1632         (WTF::StackStats::probe):
1633         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
1634         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
1635         * wtf/WordLock.cpp:
1636         (WTF::WordLock::unlockSlow):
1637         * wtf/cf/LanguageCF.cpp:
1638         (WTF::languagePreferencesDidChange):
1639         (WTF::platformUserPreferredLanguages):
1640         * wtf/text/StringView.cpp:
1641         (WTF::StringView::invalidate):
1642         (WTF::StringView::adoptUnderlyingString):
1643         (WTF::StringView::setUnderlyingString):
1644         * wtf/unicode/icu/CollatorICU.cpp:
1645         (WTF::Collator::Collator):
1646         (WTF::Collator::~Collator):
1647         * wtf/win/LanguageWin.cpp:
1648         (WTF::platformLanguage):
1649
1650 2020-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
1651
1652         [JSC] BuiltinNames' HashMap should be small
1653         https://bugs.webkit.org/show_bug.cgi?id=208404
1654
1655         Reviewed by Mark Lam.
1656
1657         * wtf/text/AtomStringImpl.cpp:
1658         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer): Deleted.
1659         * wtf/text/StringImpl.h:
1660         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):
1661
1662 2020-02-27  Basuke Suzuki  <basuke.suzuki@sony.com>
1663
1664         [WinCairo] Fix RemoteInspector reconnect issue
1665         https://bugs.webkit.org/show_bug.cgi?id=208256
1666
1667         Reviewed by Devin Rousso.
1668
1669         Added wakeupCallback to RunLoop. In case of RunLook::iterate, we need to wake up worker thread
1670         when RunLoop is waking up.
1671
1672         * wtf/RunLoop.h:
1673         * wtf/generic/RunLoopGeneric.cpp:
1674         (WTF::RunLoop::setWakeUpCallback):
1675         (WTF::RunLoop::wakeUp):
1676         * wtf/win/RunLoopWin.cpp:
1677         (WTF::RunLoop::setWakeUpCallback):
1678         (WTF::RunLoop::wakeUp):
1679
1680 2020-02-27  Simon Fraser  <simon.fraser@apple.com>
1681
1682         Add ENABLE(SCROLLING_THREAD) and use it to turn off some code we don't need for iOS
1683         https://bugs.webkit.org/show_bug.cgi?id=208282
1684
1685         Reviewed by Tim Horton.
1686         
1687         Define ENABLE_SCROLLING_THREAD PLATFORM(MAC) and USE(NICOSIA).
1688
1689         * wtf/PlatformEnable.h:
1690         * wtf/PlatformEnableCocoa.h:
1691
1692 2020-02-26  Don Olmstead  <don.olmstead@sony.com>
1693
1694         Allow setting of stack sizes for threads
1695         https://bugs.webkit.org/show_bug.cgi?id=208223
1696
1697         Reviewed by Yusuke Suzuki.
1698
1699         Introduce ThreadType which is used internally to specify a stack size for a particular
1700         type of thread. Platforms can make their own decisions on what the stack size should be
1701         based on their own observations. Additionally a default stack size can be specified
1702         by defining DEFAULT_THREAD_STACK_SIZE_IN_KB if the default stack for a platform is
1703         insufficient in all cases, or when investigating the stack size for tuning.
1704
1705         Both the pthread and Windows thread implementations are modified to set the stack size
1706         if provided.
1707
1708         * wtf/Threading.cpp:
1709         (WTF::stackSize):
1710         (WTF::Thread::create):
1711         * wtf/Threading.h:
1712         * wtf/posix/ThreadingPOSIX.cpp:
1713         (WTF::Thread::establishHandle):
1714         * wtf/win/ThreadingWin.cpp:
1715         (WTF::Thread::establishHandle):
1716
1717 2020-02-26  Christopher Reid  <chris.reid@sony.com>
1718
1719         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
1720         https://bugs.webkit.org/show_bug.cgi?id=197684
1721         <rdar://problem/59467397>
1722
1723         Reviewed by Yusuke Suzuki.
1724
1725         * wtf/FileSystem.cpp:
1726         * wtf/FileSystem.h:
1727         Added FileAccessPermission flag when opening files.
1728         Remove default argument for the listDirectory filter since the defaut
1729         String() filter doesn't match all files on Mac and Windows.
1730
1731         Added FileOpenMode::ReadWrite to be used with ReadWrite MappedFileData.
1732         Added failIfFileExists flag to openFile.
1733
1734         * wtf/glib/FileSystemGlib.cpp:
1735         * wtf/posix/FileSystemPOSIX.cpp:
1736         Added (S_IRUSR | S_IWUSR) file open modes.
1737
1738         * wtf/win/FileSystemWin.cpp:
1739         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
1740         
1741         * wtf/win/PathWalker.cpp:
1742
1743 2020-02-25  Devin Rousso  <drousso@apple.com>
1744
1745         Web Inspector: safari app extension isolated worlds and injected files use the extension's identifier instead of its name
1746         https://bugs.webkit.org/show_bug.cgi?id=206911
1747         <rdar://problem/58026635>
1748
1749         Reviewed by Brian Burg.
1750
1751         * wtf/HashSet.h:
1752         (WTF::HashSet::reserveInitialCapacity): Added.
1753
1754 2020-02-25  Justin Michaud  <justin_michaud@apple.com>
1755
1756         Inline Cache delete by id/val
1757         https://bugs.webkit.org/show_bug.cgi?id=207522
1758
1759         Reviewed by Keith Miller and Filip Pizlo.
1760
1761         * wtf/Spectrum.h:
1762         (WTF::Spectrum::add):
1763         (WTF::Spectrum::get const):
1764         (WTF::Spectrum::buildList const):
1765         (WTF::Spectrum::clear):
1766         (WTF::Spectrum::removeIf):
1767         (WTF::Spectrum::begin): Deleted.
1768         (WTF::Spectrum::end): Deleted.
1769
1770 2020-02-25  Philippe Normand  <pnormand@igalia.com>
1771
1772         [WPE] Enable BACKTRACE_SYMBOLS
1773         https://bugs.webkit.org/show_bug.cgi?id=208187
1774
1775         Reviewed by Žan Doberšek.
1776
1777         * wtf/PlatformHave.h: Enable backtrace_symbols, to be combined
1778         with dladdr() the stacktrace dumps will be improved.
1779
1780 2020-02-25  Saam Barati  <sbarati@apple.com>
1781
1782         Update stale comment about PackedAlignedPtr
1783         https://bugs.webkit.org/show_bug.cgi?id=208176
1784
1785         Reviewed by Yusuke Suzuki.
1786
1787         The comment was stale since cells aren't guaranteed anymore to be
1788         aligned on 16 byte boundaries because of the GCs precise allocations.
1789
1790         * wtf/Packed.h:
1791
1792 2020-02-25  Carlos Garcia Campos  <cgarcia@igalia.com>
1793
1794         [GTK] Stop using gtk foreign drawing API to style form controls
1795         https://bugs.webkit.org/show_bug.cgi?id=208129
1796
1797         Reviewed by Adrian Perez de Castro.
1798
1799         Enable USE_NEW_THEME for the GTK port.
1800
1801         * wtf/PlatformUse.h:
1802
1803 2020-02-25  Philippe Normand  <pnormand@igalia.com>
1804
1805         [Linux] StackTrace symbols are not demangled
1806         https://bugs.webkit.org/show_bug.cgi?id=207933
1807
1808         Reviewed by Yusuke Suzuki.
1809
1810         Demangle symbols provided by backtrace_symbols.
1811
1812         * wtf/StackTrace.cpp:
1813         (WTF::StackTrace::dump const):
1814
1815 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
1816
1817         [WTF] Add tests for CompactRefPtrTuple
1818         https://bugs.webkit.org/show_bug.cgi?id=208172
1819
1820         Reviewed by Darin Adler.
1821
1822         Include Noncopyable.h.
1823
1824         * wtf/CompactRefPtrTuple.h:
1825
1826 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
1827
1828         [WTF] Attach WARN_UNUSED_RETURN to makeScopeExit and fix existing wrong usage
1829         https://bugs.webkit.org/show_bug.cgi?id=208162
1830
1831         Reviewed by Robin Morisset.
1832
1833         We should hold ScopeExit to call destructor when we exit from the scope actually.
1834         Putting WARN_UNUSED_RETURN to fix existing misuse.
1835
1836         * wtf/Scope.h:
1837
1838 2020-02-23  Yusuke Suzuki  <ysuzuki@apple.com>
1839
1840         [JSC] Shrink Structure
1841         https://bugs.webkit.org/show_bug.cgi?id=207827
1842
1843         Reviewed by Saam Barati.
1844
1845         Make CompactPointerTuple usable for storing 16 bits data.
1846
1847         * WTF.xcodeproj/project.pbxproj:
1848         * wtf/CMakeLists.txt:
1849         * wtf/CompactPointerTuple.h:
1850         * wtf/CompactRefPtrTuple.h: Added.
1851         * wtf/text/StringImpl.h:
1852         * wtf/text/SymbolImpl.h:
1853         (WTF::SymbolImpl::hashForSymbol const):
1854         (WTF::SymbolImpl::SymbolImpl):
1855
1856 2020-02-21  Antti Koivisto  <antti@apple.com>
1857
1858         REGRESSION(r257072): MotionMark | Mac | -10%
1859         https://bugs.webkit.org/show_bug.cgi?id=208054
1860         <rdar://problem/59664582>
1861
1862         Reviewed by Geoffrey Garen.
1863
1864         With rAF and slow scripts, suspended functions may pile up in RunLoop because every cycle does a rendering update.
1865
1866         * wtf/RunLoop.cpp:
1867         (WTF::RunLoop::performWork):
1868         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
1869
1870         Don't suspend if there are already pending suspended functions.
1871
1872         * wtf/RunLoop.h:
1873
1874 2020-02-20  Jiewen Tan  <jiewen_tan@apple.com>
1875
1876         [WebAuthn] Replace DeviceIdentity.framework
1877         https://bugs.webkit.org/show_bug.cgi?id=207985
1878         <rdar://problem/59369223>
1879
1880         Reviewed by Brent Fulgham.
1881
1882         * wtf/PlatformHave.h:
1883
1884 2020-02-20  Eric Liang  <ericliang@apple.com>
1885
1886         AX: Adopt _AXSCopyPathForAccessibilityBundle for WebKit
1887         https://bugs.webkit.org/show_bug.cgi?id=207828
1888
1889         Use the _AXSCopyPathForAccessibilityBundle new API. Updated the required SDK version.
1890
1891         Reviewed by Darin Adler.
1892
1893         * wtf/PlatformHave.h:
1894
1895 2020-02-20  Antti Koivisto  <antti@apple.com>
1896
1897         Unreviewed comment fix.
1898
1899         * wtf/RunLoop.cpp:
1900         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
1901
1902         Words by Simon.
1903
1904 2020-02-20  Antti Koivisto  <antti@apple.com>
1905
1906         [macOS] Disable RunLoop function dispatch when there is a pending rendering update
1907         https://bugs.webkit.org/show_bug.cgi?id=207931
1908
1909         Reviewed by Geoffrey Garen.
1910
1911         * wtf/RunLoop.cpp:
1912         (WTF::RunLoop::performWork):
1913
1914         Simplify the code by factoring it into a single loop.
1915         Bail out if the runloop is initially suspended or if it becomes suspended by function execution.
1916         Clear the suspended state so it last a single cycle only.
1917
1918         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
1919
1920         Set the suspended state and wake up the runloop to guarantee the state is cleared.
1921
1922         * wtf/RunLoop.h:
1923
1924 2020-02-18  Keith Miller  <keith_miller@apple.com>
1925
1926         Add an os_log PrintStream
1927         https://bugs.webkit.org/show_bug.cgi?id=207898
1928
1929         Reviewed by Mark Lam.
1930
1931         When debugging on iOS writing to a file can be hard (thanks
1932         Sandboxing!)  so logging our dataLogs to os_log would make things
1933         easier. This patch adds a new subclass of PrintStream,
1934         OSLogPrintStream, that converts our file writes to
1935         os_log. Unfortunately, os_log doesn't buffer writes so
1936         OSLogPrintStream needs to do its own buffering. e.g. if you call
1937         `dataLogLn("some text with a ", number, " and a ", string);`
1938         os_log will log that as 5 separate logs.
1939
1940         * WTF.xcodeproj/project.pbxproj:
1941         * wtf/CMakeLists.txt:
1942         * wtf/DataLog.cpp:
1943         (WTF::setDataFile):
1944         * wtf/DataLog.h:
1945         * wtf/OSLogPrintStream.cpp: Added.
1946         (WTF::OSLogPrintStream::OSLogPrintStream):
1947         (WTF::OSLogPrintStream::~OSLogPrintStream):
1948         (WTF::OSLogPrintStream::open):
1949         (WTF::OSLogPrintStream::vprintf):
1950         * wtf/OSLogPrintStream.h: Copied from Source/WTF/wtf/DataLog.h.
1951         * wtf/PrintStream.cpp:
1952         (WTF::printExpectedCStringHelper):
1953         (WTF::printInternal):
1954         * wtf/text/CString.cpp:
1955         (WTF::CString::grow):
1956         * wtf/text/CString.h:
1957
1958 2020-02-18  Simon Fraser  <simon.fraser@apple.com>
1959
1960         Move from "layer flush" terminology to "rendering update"
1961         https://bugs.webkit.org/show_bug.cgi?id=207870
1962
1963         Reviewed by Tim Horton.
1964
1965         * wtf/SystemTracing.h:
1966
1967 2020-02-17  Chris Dumez  <cdumez@apple.com>
1968
1969         [WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
1970         https://bugs.webkit.org/show_bug.cgi?id=207593
1971         <rdar://problem/56027027>
1972
1973         Reviewed by Antti Koivisto.
1974
1975         Add build time flags for new feature.
1976
1977         * wtf/PlatformEnable.h:
1978         * wtf/PlatformHave.h:
1979
1980 2020-02-17  Tim Horton  <timothy_horton@apple.com>
1981
1982         Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
1983         https://bugs.webkit.org/show_bug.cgi?id=207876
1984
1985         Reviewed by Wenson Hsieh.
1986
1987         * wtf/PlatformHave.h:
1988         For symmetry's sake, introduce a HAVE for this gesture.
1989
1990 2020-02-17  Mark Lam  <mark.lam@apple.com>
1991
1992         getVTablePointer() should return a const void*.
1993         https://bugs.webkit.org/show_bug.cgi?id=207871
1994         <rdar://problem/59525721>
1995
1996         Reviewed by Yusuke Suzuki.
1997
1998         * wtf/PointerPreparations.h:
1999         (WTF::getVTablePointer):
2000
2001 2020-02-17  Dean Jackson  <dino@apple.com>
2002
2003         [WebGL] Enable ANGLE by default for Cocoa platforms
2004         https://bugs.webkit.org/show_bug.cgi?id=205483
2005         rdar://56925821
2006
2007         Reviewed by Simon Fraser.
2008
2009         * wtf/Platform.h:
2010
2011 2020-02-17  Peng Liu  <peng.liu6@apple.com>
2012
2013         Fix check-webkit-style errors related to AVFoundationSPI.h
2014         https://bugs.webkit.org/show_bug.cgi?id=207834
2015
2016         Reviewed by Eric Carlson.
2017
2018         Add HAVE_VIDEO_PERFORMANCE_METRICS and USE_AV_SAMPLE_BUFFER_DISPLAY_LAYER to fix check-webkit-style errors.
2019
2020         * wtf/PlatformHave.h:
2021         * wtf/PlatformUse.h:
2022
2023 2020-02-17  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
2024
2025         a lot gcc warnings because of %{public}s format specifier
2026         https://bugs.webkit.org/show_bug.cgi?id=207478
2027
2028         Reviewed by Darin Adler.
2029
2030         Add PUBLIC_LOG_STRING macro which is defined depending on if
2031         os_log()[1] is used or rather old printf().
2032
2033         OS Logging processes format specifiers for privacy matters, for
2034         example dynamic strings, which demands %{public}s. But these
2035         specifiers are not valid for printf().
2036
2037         Calls to logging with this specifier, if they are not Mac/Darwing
2038         exclusive, use this new macro to avoid gcc warnings.
2039
2040         1. https://developer.apple.com/documentation/os/logging?language=objc
2041
2042         * wtf/Assertions.h:
2043         * wtf/MemoryPressureHandler.cpp:
2044         (WTF::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
2045
2046 2020-02-17  Antti Koivisto  <antti@apple.com>
2047
2048         [macOS] Add trace points for layer flush runloop observer
2049         https://bugs.webkit.org/show_bug.cgi?id=207837
2050
2051         Reviewed by Sam Weinig.
2052
2053         * wtf/SystemTracing.h:
2054
2055 2020-02-17  Don Olmstead  <don.olmstead@sony.com>
2056
2057         [CMake] Use builtin targets
2058         https://bugs.webkit.org/show_bug.cgi?id=205166
2059
2060         Reviewed by Darin Adler.
2061
2062         * wtf/PlatformGTK.cmake:
2063         * wtf/PlatformJSCOnly.cmake:
2064         * wtf/PlatformPlayStation.cmake:
2065         * wtf/PlatformWPE.cmake:
2066
2067 2020-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>
2068
2069         Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
2070         https://bugs.webkit.org/show_bug.cgi?id=207746
2071
2072         Reviewed by Don Olmstead.
2073
2074         I removed WTF_EXPORT from function declarations in r256420 (Bug 207453).
2075         WTF_EXPORT is still used mostly in *ExportMacros.h. However, there is no
2076         difference between WTF_EXPORT and WTF_EXPORT_DECLARATION.
2077
2078         Removed WTF_EXPORT and WTF_IMPORT by replacing them with
2079         WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
2080
2081         Removed unused WTF_HIDDEN.
2082
2083         Defined WTF_EXPORT_DECLARATION, WTF_IMPORT_DECLARATION and WTF_HIDDEN_DECLARATION empty
2084         in case of !USE(EXPORT_MACROS) to simplify *ExportMacros.h.
2085
2086         * wtf/ExportMacros.h:
2087
2088 2020-02-14  Commit Queue  <commit-queue@webkit.org>
2089
2090         Unreviewed, rolling out r256633.
2091         https://bugs.webkit.org/show_bug.cgi?id=207807
2092
2093         4% memory regression in new Membuster, possibly some leaking
2094         in WebKit Malloc? (Requested by yusukesuzuki on #webkit).
2095
2096         Reverted changeset:
2097
2098         "[Win] Implement NetworkCache::Data by using
2099         FileSystem::MappedFileData"
2100         https://bugs.webkit.org/show_bug.cgi?id=197684
2101         https://trac.webkit.org/changeset/256633
2102
2103 2020-02-14  Christopher Reid  <chris.reid@sony.com>
2104
2105         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
2106         https://bugs.webkit.org/show_bug.cgi?id=197684
2107
2108         Reviewed by Fujii Hironori.
2109
2110         * wtf/FileSystem.cpp:
2111         * wtf/FileSystem.h:
2112         Added FileAccessPermission flag when opening files.
2113         Remove default argument for the listDirectory filter since the defaut
2114         String() filter doesn't match all files on Mac and Windows.
2115
2116         * wtf/glib/FileSystemGlib.cpp:
2117         * wtf/posix/FileSystemPOSIX.cpp:
2118         Added (S_IRUSR | S_IWUSR) file open modes.
2119
2120         * wtf/win/FileSystemWin.cpp:
2121         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
2122         
2123         * wtf/win/PathWalker.cpp:
2124
2125 2020-02-14  Alex Christensen  <achristensen@webkit.org>
2126
2127         Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
2128         https://bugs.webkit.org/show_bug.cgi?id=207360
2129         <rdar://problem/57825317>
2130
2131         Reviewed by Ryosuke Niwa.
2132
2133         * wtf/URLHelpers.cpp:
2134         (WTF::URLHelpers::mapHostName):
2135
2136 2020-02-12  Said Abou-Hallawa  <sabouhallawa@apple.com>
2137
2138         WebP image format is not supported
2139         https://bugs.webkit.org/show_bug.cgi?id=192672
2140
2141         Reviewed by Youenn Fablet.
2142
2143         Introduce HAVE(WEBP) for macOS and iOS.
2144
2145         * wtf/PlatformHave.h:
2146
2147 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
2148
2149         [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
2150         https://bugs.webkit.org/show_bug.cgi?id=207673
2151
2152         Reviewed by Mark Lam.
2153
2154         * wtf/MallocPtr.h:
2155
2156 2020-02-12  Ryan Haddad  <ryanhaddad@apple.com>
2157
2158         Unreviewed, rolling out r256010.
2159
2160         Introduced ASan crashes
2161
2162         Reverted changeset:
2163
2164         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
2165         https://bugs.webkit.org/show_bug.cgi?id=206582
2166         https://trac.webkit.org/changeset/r256010
2167
2168 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
2169
2170         Shrink CachedResource
2171         https://bugs.webkit.org/show_bug.cgi?id=207618
2172
2173         Reviewed by Mark Lam.
2174
2175         * wtf/Markable.h:
2176         (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
2177         * wtf/ObjectIdentifier.h:
2178         (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
2179         (WTF::ObjectIdentifier::MarkableTraits::emptyValue):
2180         (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
2181
2182 2020-02-12  Simon Fraser  <simon.fraser@apple.com>
2183
2184         Remove CSS_DEVICE_ADAPTATION
2185         https://bugs.webkit.org/show_bug.cgi?id=203479
2186
2187         Reviewed by Tim Horton.
2188
2189         CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
2190         so remove the code.
2191
2192         * wtf/PlatformEnable.h:
2193
2194 2020-02-11  Fujii Hironori  <Hironori.Fujii@sony.com>
2195
2196         Fix declarations marked by wrong export macros (WEBCORE_EXPORT and WTF_EXPORT)
2197         https://bugs.webkit.org/show_bug.cgi?id=207453
2198
2199         Reviewed by Ross Kirsling.
2200
2201         Export macros are prone to be misused because thier definitions
2202         are identical for POSIX ports. They can be used interchangeably on
2203         such ports.
2204
2205         WTF should use WTF_EXPORT_PRIVATE instead of WTF_EXPORT.
2206
2207         * wtf/HexNumber.h:
2208         * wtf/Language.h:
2209         * wtf/Logger.h:
2210         * wtf/ProcessPrivilege.h:
2211         * wtf/cocoa/CrashReporter.h:
2212         * wtf/cocoa/Entitlements.h:
2213         * wtf/text/LineEnding.h:
2214         * wtf/text/TextBreakIterator.h:
2215         * wtf/text/icu/UTextProviderLatin1.h:
2216         Replaced WTF_EXPORT with WTF_EXPORT_PRIVATE.
2217
2218 2020-02-11  Eric Carlson  <eric.carlson@apple.com>
2219
2220         Support in-band VTT captions when loading media in the GPU Process
2221         https://bugs.webkit.org/show_bug.cgi?id=207467
2222         <rdar://problem/59312749>
2223
2224         Reviewed by Jer Noble.
2225
2226         * wtf/LoggerHelper.h:
2227         (WTF::LoggerHelper::childLogIdentifier const):
2228
2229 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
2230
2231         Unreviewed, speculative build fix on watchOS simulator
2232         https://bugs.webkit.org/show_bug.cgi?id=207183
2233
2234         * wtf/HashTable.h:
2235         (WTF::HashTableCapacityForSize::capacityForSize):
2236
2237 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
2238
2239         Unreviewed, fix build failure on watchOS simulator
2240         https://bugs.webkit.org/show_bug.cgi?id=207183
2241
2242         * wtf/HashTable.h:
2243         (WTF::HashTableCapacityForSize::capacityForSize):
2244
2245 2020-02-10  Daniel Bates  <dabates@apple.com>
2246
2247         Disallow setting base URL to a data or JavaScript URL
2248         https://bugs.webkit.org/show_bug.cgi?id=207136
2249
2250         Reviewed by Brent Fulgham.
2251
2252         Add some more macro definitions.
2253
2254         * wtf/spi/darwin/dyldSPI.h:
2255
2256 2020-02-10  Truitt Savell  <tsavell@apple.com>
2257
2258         Unreviewed, rolling out r256091.
2259
2260         Broke internal builds
2261
2262         Reverted changeset:
2263
2264         "Move trivial definitions from FeatureDefines.xcconfig to
2265         PlatformEnableCocoa.h"
2266         https://bugs.webkit.org/show_bug.cgi?id=207155
2267         https://trac.webkit.org/changeset/256091
2268
2269 2020-02-10  Truitt Savell  <tsavell@apple.com>
2270
2271         Unreviewed, rolling out r256103.
2272
2273         This patch is blocking the rollout of r256091
2274
2275         Reverted changeset:
2276
2277         "Move JavaScriptCore related feature defines from
2278         FeatureDefines.xcconfig to PlatformEnableCocoa.h"
2279         https://bugs.webkit.org/show_bug.cgi?id=207436
2280         https://trac.webkit.org/changeset/256103
2281
2282 2020-02-09  Keith Rollin  <krollin@apple.com>
2283
2284         Re-enable LTO for ARM builds
2285         https://bugs.webkit.org/show_bug.cgi?id=207402
2286         <rdar://problem/49190767>
2287
2288         Reviewed by Sam Weinig.
2289
2290         Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
2291         Enabling it for ARM was left out due to a compiler issue. That issue
2292         has been fixed, and so now we can re-enable LTO for ARM.
2293
2294         * Configurations/Base.xcconfig:
2295
2296 2020-02-08  Sam Weinig  <weinig@apple.com>
2297
2298         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2299         https://bugs.webkit.org/show_bug.cgi?id=207436
2300
2301         Reviewed by Tim Horton.
2302
2303         * wtf/PlatformEnable.h:
2304         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
2305
2306         * wtf/PlatformEnableCocoa.h:
2307         Added ENABLE_FAST_JIT_PERMISSIONS (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
2308         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
2309
2310 2020-02-08  Sam Weinig  <weinig@apple.com>
2311
2312         Migrate definition of USE_PLATFORM_REGISTERS_WITH_PROFILE to PlatformUse.h
2313         https://bugs.webkit.org/show_bug.cgi?id=207428
2314
2315         Reviewed by Tim Horton.
2316
2317         * wtf/PlatformUse.h:
2318         Move definition of USE_PLATFORM_REGISTERS_WITH_PROFILE from AdditionalFeatureDefines.h, where 
2319         it did not belong.
2320
2321 2020-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
2322
2323         [WTF] Try using 75% load factor for HashTable
2324         https://bugs.webkit.org/show_bug.cgi?id=207183
2325
2326         Reviewed by Mark Lam.
2327
2328         We know that hash-table is one of the most memory consuming part in WebKit.
2329         By analyzing many production hash-table implementations[1], I found that many
2330         of them are using 75% load-factor while our one is 50%.
2331
2332         This patch changes the load-factor from 50% to 75%. But we pick 75% only for
2333         small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
2334         The collected data is telling that longer probe-length affects on performance if table
2335         size gets larger.
2336
2337         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
2338
2339         * wtf/HashTable.h:
2340         (WTF::HashTableCapacityForSize::shouldExpand):
2341         (WTF::HashTableCapacityForSize::capacityForSize):
2342         (WTF::HashTable::shouldExpand const):
2343         (WTF::KeyTraits>::computeBestTableSize):
2344
2345 2020-02-08  Sam Weinig  <weinig@apple.com>
2346
2347         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2348         https://bugs.webkit.org/show_bug.cgi?id=207155
2349
2350         Reviewed by Tim Horton.
2351
2352         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
2353         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
2354         also has a default value in PlatformEnable.h
2355         
2356         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
2357         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
2358         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
2359
2360         * wtf/PlatformEnable.h:
2361         * wtf/PlatformEnableCocoa.h:
2362
2363 2020-02-07  Alex Christensen  <achristensen@webkit.org>
2364
2365         Harden HashTable IPC decoders
2366         https://bugs.webkit.org/show_bug.cgi?id=207415
2367
2368         Reviewed by Chris Dumez.
2369
2370         * wtf/HashCountedSet.h:
2371
2372 2020-02-07  Ryan Haddad  <ryanhaddad@apple.com>
2373
2374         Unreviewed, rolling out r256051.
2375
2376         Broke internal builds.
2377
2378         Reverted changeset:
2379
2380         "Move trivial definitions from FeatureDefines.xcconfig to
2381         PlatformEnableCocoa.h"
2382         https://bugs.webkit.org/show_bug.cgi?id=207155
2383         https://trac.webkit.org/changeset/256051
2384
2385 2020-02-07  Stephan Szabo  <stephan.szabo@sony.com>
2386
2387         [Win] Two FileSystem API tests fail
2388         https://bugs.webkit.org/show_bug.cgi?id=207388
2389
2390         Reviewed by Don Olmstead.
2391
2392         * wtf/win/FileSystemWin.cpp:
2393         Make getFinalPathName return dos path rather than nt volume path.
2394         Change createSymbolicLink return to match CreateSymbolicLinkW
2395         Have directoryName strip trailing slashes.
2396
2397 2020-02-03  Sam Weinig  <weinig@apple.com>
2398
2399         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2400         https://bugs.webkit.org/show_bug.cgi?id=207155
2401
2402         Reviewed by Tim Horton.
2403
2404         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
2405         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
2406         also has a default value in PlatformEnable.h
2407         
2408         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
2409         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
2410         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
2411
2412         * wtf/PlatformEnable.h:
2413         * wtf/PlatformEnableCocoa.h:
2414
2415 2020-02-07  youenn fablet  <youenn@apple.com>
2416
2417         Mandate UUID version 4 for mDNS ICE candidates
2418         https://bugs.webkit.org/show_bug.cgi?id=207329
2419         <rdar://problem/59221606>
2420
2421         Address post-commit comments from Darin by using isASCIIHexDigit.
2422
2423         Unreviewed.
2424
2425         * wtf/UUID.cpp:
2426         (WTF::isVersion4UUID):
2427         (WTF::isHexadecimalCharacter): Deleted.
2428
2429 2020-02-07  youenn fablet  <youenn@apple.com>
2430
2431         Mandate UUID version 4 for mDNS ICE candidates
2432         https://bugs.webkit.org/show_bug.cgi?id=207329
2433
2434         Reviewed by Alex Christensen.
2435
2436         Add a routine to validate version 4 UUID.
2437
2438         * wtf/UUID.cpp:
2439         (WTF::isHexadecimalCharacter):
2440         (WTF::isVersion4UUID):
2441         * wtf/UUID.h:
2442
2443 2020-02-07  Yusuke Suzuki  <ysuzuki@apple.com>
2444
2445         Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
2446         https://bugs.webkit.org/show_bug.cgi?id=207183
2447
2448         * wtf/HashTable.h:
2449         (WTF::HashTable::shouldExpand const):
2450         (WTF::KeyTraits>::computeBestTableSize):
2451         (WTF::HashTable::shouldExpand): Deleted.
2452         (WTF::HashTableCapacityForSize::capacityForSize): Deleted.
2453
2454 2020-02-07  youenn fablet  <youenn@apple.com>
2455
2456         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
2457         https://bugs.webkit.org/show_bug.cgi?id=206582
2458
2459         Reviewed by Eric Carlson.
2460
2461         * wtf/PlatformHave.h:
2462
2463 2020-02-06  Mark Lam  <mark.lam@apple.com>
2464
2465         Add a comment in StringView::setUnderlyingString(const StringView&) for clarification.
2466         https://bugs.webkit.org/show_bug.cgi?id=207368
2467         <rdar://problem/59211075>
2468
2469         Reviewed by Keith Miller.
2470
2471         Every time I read this code, I have to re-deduce why this code is thread safe.
2472         So, I'm just going to add a comment to document it.
2473
2474         * wtf/text/StringView.cpp:
2475         (WTF::StringView::setUnderlyingString):
2476
2477 2020-02-06  Myles C. Maxfield  <mmaxfield@apple.com>
2478
2479         REGRESSION(r254534): 1-3% regression on PLT
2480         https://bugs.webkit.org/show_bug.cgi?id=207244
2481         <rdar://problem/58821709>
2482
2483         Reviewed by Simon Fraser.
2484
2485         CTFontTransformGlyphsWithLanguage() is only acceptable on certain OSes.
2486
2487         * wtf/PlatformHave.h:
2488
2489 2020-02-06  Commit Queue  <commit-queue@webkit.org>
2490
2491         Unreviewed, rolling out r255910, r255970, and r255972.
2492         https://bugs.webkit.org/show_bug.cgi?id=207345
2493
2494         Broke internal builds (Requested by ryanhaddad on #webkit).
2495
2496         Reverted changesets:
2497
2498         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
2499         https://bugs.webkit.org/show_bug.cgi?id=206582
2500         https://trac.webkit.org/changeset/255910
2501
2502         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
2503         https://bugs.webkit.org/show_bug.cgi?id=206582
2504         https://trac.webkit.org/changeset/255970
2505
2506         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
2507         https://bugs.webkit.org/show_bug.cgi?id=206582
2508         https://trac.webkit.org/changeset/255972
2509
2510 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
2511
2512         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
2513         https://bugs.webkit.org/show_bug.cgi?id=206582
2514
2515         Unreviewed internal build fix attempt.
2516
2517         * wtf/PlatformHave.h: Fix copy / paste error.
2518
2519 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
2520
2521         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
2522         https://bugs.webkit.org/show_bug.cgi?id=206582
2523
2524         Unreviewed internal build fix attempt.
2525
2526         * wtf/PlatformHave.h:
2527
2528 2020-02-06  youenn fablet  <youenn@apple.com>
2529
2530         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
2531         https://bugs.webkit.org/show_bug.cgi?id=206582
2532
2533         Reviewed by Eric Carlson.
2534
2535         * wtf/PlatformHave.h:
2536
2537 2020-02-05  Don Olmstead  <don.olmstead@sony.com>
2538
2539         [PlayStation] Build a shared JavaScriptCore
2540         https://bugs.webkit.org/show_bug.cgi?id=198446
2541
2542         Reviewed by Fujii Hironori.
2543
2544         Add bmalloc definition when compiling WTF. Remove LanguageUnix.cpp since
2545         LanguagePlayStation.cpp is present which results in duplicate symbol definitions.
2546
2547         * wtf/PlatformPlayStation.cmake:
2548
2549 2020-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
2550
2551         [WTF] Try using 75% load factor for HashTable
2552         https://bugs.webkit.org/show_bug.cgi?id=207183
2553
2554         Reviewed by Mark Lam.
2555
2556         We know that hash-table is one of the most memory consuming part in WebKit.
2557         By analyzing many production hash-table implementations[1], I found that many
2558         of them are using 75% load-factor while our one is 50%.
2559
2560         A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
2561         JetStream2, while it offers 2~% improvement in Membuster. This means that we are
2562         wasting too much memory for no-performance-improvement.
2563
2564         This patch changes the load-factor from 50% to 75%.
2565
2566         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
2567
2568         * wtf/HashTable.h:
2569         (WTF::HashTable::shouldExpand):
2570         (WTF::HashTable::shouldExpand const):
2571         (WTF::HashTableCapacityForSize::capacityForSize):
2572         (WTF::KeyTraits>::computeBestTableSize):
2573
2574 2020-02-05  Per Arne Vollan  <pvollan@apple.com>
2575
2576         [iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
2577         https://bugs.webkit.org/show_bug.cgi?id=207279
2578         <rdar://problem/59030957>
2579
2580         Reviewed by Brent Fulgham.
2581
2582         Add flag which avoids generating sandbox reports.
2583
2584         * wtf/spi/darwin/SandboxSPI.h:
2585
2586 2020-02-05  Alex Christensen  <achristensen@webkit.org>
2587
2588         Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
2589         https://bugs.webkit.org/show_bug.cgi?id=207207
2590
2591         Reviewed by Chris Dumez.
2592
2593         * wtf/persistence/PersistentDecoder.cpp:
2594         (WTF::Persistence::Decoder::decode):
2595         * wtf/persistence/PersistentDecoder.h:
2596         * wtf/persistence/PersistentEncoder.cpp:
2597         (WTF::Persistence::Encoder::encode):
2598         * wtf/persistence/PersistentEncoder.h:
2599
2600 2020-02-05  Commit Queue  <commit-queue@webkit.org>
2601
2602         Unreviewed, rolling out r255818.
2603         https://bugs.webkit.org/show_bug.cgi?id=207270
2604
2605         It is breaking some Mac builds (Requested by youenn on
2606         #webkit).
2607
2608         Reverted changeset:
2609
2610         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
2611         https://bugs.webkit.org/show_bug.cgi?id=206582
2612         https://trac.webkit.org/changeset/255818
2613
2614 2020-02-05  youenn fablet  <youenn@apple.com>
2615
2616         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
2617         https://bugs.webkit.org/show_bug.cgi?id=206582
2618
2619         Reviewed by Eric Carlson.
2620
2621         * wtf/PlatformHave.h:
2622
2623 2020-02-04  Adrian Perez de Castro  <aperez@igalia.com>
2624
2625         Non-unified build fixes early February 2020 edition
2626         https://bugs.webkit.org/show_bug.cgi?id=207227
2627
2628         Reviewed by Don Olmstead.
2629
2630         * wtf/SingleRootGraph.h: Add missing inclusion of wtf/StringPrintStream.h
2631
2632 2020-02-04  Yusuke Suzuki  <ysuzuki@apple.com>
2633
2634         [JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock)
2635         https://bugs.webkit.org/show_bug.cgi?id=207087
2636
2637         Reviewed by Tadeu Zagallo.
2638
2639         Add more useful methods for RefCountedArray.
2640
2641         * wtf/RefCountedArray.h:
2642         (WTF::RefCountedArray::operator=):
2643         (WTF::RefCountedArray::isEmpty const):
2644         (WTF::RefCountedArray::front):
2645         (WTF::RefCountedArray::front const):
2646         (WTF::RefCountedArray::last):
2647         (WTF::RefCountedArray::last const):
2648
2649 2020-02-03  Alex Christensen  <achristensen@webkit.org>
2650
2651         Reduce size of HashMap and HashSet
2652         https://bugs.webkit.org/show_bug.cgi?id=207138
2653
2654         Reviewed by Yusuke Suzuki.
2655
2656         This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
2657         I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
2658         so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
2659         dynamically allocated memory.  This makes another branch in size() for non-empty tables
2660         and an additional read and write when rehashing in exchange for fewer writes in the constructor
2661         and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.
2662
2663         * wtf/HashTable.h:
2664         (WTF::HashTable::~HashTable):
2665         (WTF::HashTable::end):
2666         (WTF::HashTable::end const):
2667         (WTF::HashTable::random):
2668         (WTF::HashTable::size const):
2669         (WTF::HashTable::capacity const):
2670         (WTF::HashTable::isEmpty const):
2671         (WTF::HashTable::reserveInitialCapacity):
2672         (WTF::HashTable::shouldExpand const):
2673         (WTF::HashTable::mustRehashInPlace const):
2674         (WTF::HashTable::shouldShrink const):
2675         (WTF::HashTable::shrink):
2676         (WTF::HashTable::makeIterator):
2677         (WTF::HashTable::makeConstIterator const):
2678         (WTF::HashTable::makeKnownGoodIterator):
2679         (WTF::HashTable::makeKnownGoodConstIterator const):
2680         (WTF::HashTable::tableSize const):
2681         (WTF::HashTable::setTableSize const):
2682         (WTF::HashTable::tableSizeMask const):
2683         (WTF::HashTable::setTableSizeMask):
2684         (WTF::HashTable::keyCount const):
2685         (WTF::HashTable::setKeyCount const):
2686         (WTF::HashTable::deletedCount const):
2687         (WTF::HashTable::setDeletedCount const):
2688         (WTF::KeyTraits>::HashTable):
2689         (WTF::KeyTraits>::inlineLookup):
2690         (WTF::KeyTraits>::lookupForWriting):
2691         (WTF::KeyTraits>::fullLookupForWriting):
2692         (WTF::KeyTraits>::addUniqueForInitialization):
2693         (WTF::KeyTraits>::add):
2694         (WTF::KeyTraits>::addPassingHashCode):
2695         (WTF::KeyTraits>::remove):
2696         (WTF::KeyTraits>::removeIf):
2697         (WTF::KeyTraits>::allocateTable):
2698         (WTF::KeyTraits>::deallocateTable):
2699         (WTF::KeyTraits>::expand):
2700         (WTF::KeyTraits>::shrinkToBestSize):
2701         (WTF::KeyTraits>::deleteReleasedWeakBuckets):
2702         (WTF::KeyTraits>::rehash):
2703         (WTF::KeyTraits>::clear):
2704         (WTF::KeyTraits>::swap):
2705         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
2706
2707 2020-02-03  Sam Weinig  <weinig@apple.com>
2708
2709         Start splitting platform specific overrides of default enable behavior into their own files
2710         https://bugs.webkit.org/show_bug.cgi?id=207105
2711
2712         Reviewed by Dean Jackson.
2713
2714         Splits out platform specific overrides of default enable behavior into separate files, 
2715         starting with one for all of the Cocoa related ports, one for Apple's Windows port, and
2716         one for the WinCario port.
2717         
2718         The rule is now that all ENABLE_* macros should have a default defined in PlatformEnable.h,
2719         but platforms are allowed to override it via their PlatformEnable*.h file. For now, I manually
2720         ensured that all the defines in PlatformEnableCocoa.h, PlatformEnableWinApple.h and PlatformEnableWinCairo.h
2721         also had defaults in PlatformEnable.h, but going forward this needs be validated either through
2722         some sort of macro-based validation, through the style checker or something else.
2723
2724         * WTF.xcodeproj/project.pbxproj:
2725         * wtf/CMakeLists.txt:
2726         * wtf/PlatformEnable.h:
2727         * wtf/PlatformEnableCocoa.h: Copied from Source/WTF/wtf/PlatformEnable.h.
2728         * wtf/PlatformEnableWinApple.h: Copied from Source/WTF/wtf/PlatformEnable.h.
2729         * wtf/PlatformEnableWinCairo.h: Copied from Source/WTF/wtf/PlatformEnable.h.
2730
2731 2020-01-31  Don Olmstead  <don.olmstead@sony.com>
2732
2733         [CMake] Add _PRIVATE_LIBRARIES to framework
2734         https://bugs.webkit.org/show_bug.cgi?id=207004
2735
2736         Reviewed by Konstantin Tokarev.
2737
2738         Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
2739         afterwards will have that visibility set erroneously.
2740
2741         * wtf/PlatformFTW.cmake:
2742
2743 2020-01-30  Conrad Shultz  <conrad_shultz@apple.com>
2744
2745         `FALLTHROUGH` macro isn't properly defined when building Objective-C files using Clang
2746         https://bugs.webkit.org/show_bug.cgi?id=206637
2747
2748         Reviewed by Darin Adler.
2749
2750         Allow the `FALLTHROUGH` macro to be defined properly when building with either GCC
2751         or Clang.
2752
2753         * wtf/Compiler.h:
2754
2755 2020-01-30  Yusuke Suzuki  <ysuzuki@apple.com>
2756
2757         [WTF] Remove PackedIntVector
2758         https://bugs.webkit.org/show_bug.cgi?id=207018
2759
2760         Reviewed by Mark Lam.
2761
2762         Simply removing PackedIntVector since (1) nobody uses it, (2) it is somewhat broken (like, size()), and (3) its implementation is not so efficient.
2763         If we want to have this feature, we can recreate it.
2764
2765         * WTF.xcodeproj/project.pbxproj:
2766         * wtf/CMakeLists.txt:
2767         * wtf/PackedIntVector.h: Removed.
2768
2769 2020-01-30  Jonathan Bedard  <jbedard@apple.com>
2770
2771         PAL: Remove old iOS version macros
2772         https://bugs.webkit.org/show_bug.cgi?id=206905
2773
2774         Reviewed by Darin Adler.
2775
2776         * wtf/PlatformHave.h: Add HAVE(NSPROGRESS_PUBLISHING_SPI).
2777
2778 2020-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2779
2780         [GTK] Should use light theme unless website declares support for dark themes in color-schemes property
2781         https://bugs.webkit.org/show_bug.cgi?id=197947
2782
2783         Reviewed by Michael Catanzaro.
2784
2785         Do not define HAVE_OS_DARK_MODE_SUPPORT for the GTK port.
2786
2787         * wtf/PlatformHave.h:
2788
2789 2020-01-28  Jonathan Bedard  <jbedard@apple.com>
2790
2791         WebCore: Guard uneven corners in rounded rectangles
2792         https://bugs.webkit.org/show_bug.cgi?id=206838
2793
2794         Reviewed by Darin Adler.
2795
2796         * wtf/PlatformHave.h: Add HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT).
2797
2798 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
2799
2800         WebCore: Remove iOS 11 macros from RenderThemeIOS.mm
2801         https://bugs.webkit.org/show_bug.cgi?id=206787
2802
2803         Reviewed by Darin Adler.
2804
2805         * wtf/PlatformHave.h: Add HAVE(SYSTEM_FONT_STYLE_TITLE_0) and HAVE(SYSTEM_FONT_STYLE_TITLE_4).
2806
2807 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
2808
2809         Fix OpenSource iphoneos arm64e build
2810         https://bugs.webkit.org/show_bug.cgi?id=206703
2811
2812         Reviewed by Yusuke Suzuki.
2813
2814         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
2815
2816 2020-01-27  Ryan Haddad  <ryanhaddad@apple.com>
2817
2818         Unreviewed, rolling out r255159.
2819
2820         Broke the watchOS build.
2821
2822         Reverted changeset:
2823
2824         "Fix OpenSource iphoneos arm64e build"
2825         https://bugs.webkit.org/show_bug.cgi?id=206703
2826         https://trac.webkit.org/changeset/255159
2827
2828 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
2829
2830         Fix OpenSource iphoneos arm64e build
2831         https://bugs.webkit.org/show_bug.cgi?id=206703
2832
2833         Reviewed by Yusuke Suzuki.
2834
2835         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
2836
2837 2020-01-27  Mark Lam  <mark.lam@apple.com>
2838
2839         Make getVTablePointer() an inline function to be compliant with WebKit style guidelines.
2840         https://bugs.webkit.org/show_bug.cgi?id=206816
2841
2842         Reviewed by Darin Adler.
2843
2844         Convert getVTablePointer() from a macro into an inline template function.  This
2845         makes the naming compliant with WebKit style guidelines.
2846
2847         * wtf/PointerPreparations.h:
2848         (WTF::getVTablePointer):
2849
2850 2020-01-25  Brady Eidson  <beidson@apple.com>
2851
2852         Make ContentWorlds be identified by an ObjectIdentifier instead of a uint64_t
2853         https://bugs.webkit.org/show_bug.cgi?id=206784
2854
2855         Reviewed by Alex Christensen.
2856
2857         * wtf/ObjectIdentifier.h:
2858         (WTF::ObjectIdentifier::generate):
2859         (WTF::ObjectIdentifier::generateThreadSafe):
2860         (WTF::ObjectIdentifier::enableGenerationProtection): To allow restricting generating an identifier to the UIProcess.
2861
2862 2020-01-25  Mark Lam  <mark.lam@apple.com>
2863
2864         Introduce a getVTablePointer() utility function.
2865         https://bugs.webkit.org/show_bug.cgi?id=206804
2866         <rdar://problem/58872290>
2867
2868         Reviewed by Yusuke Suzuki and Oliver Hunt.
2869
2870         With getVTablePointer(), we can abstract away how we get a vtable function pointer
2871         without assuming the way it is signed for ARM64E.  With this, we can remove the
2872         WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION macro which assumes how a vtable function
2873         pointer is signed.
2874
2875         * wtf/PointerPreparations.h:
2876
2877 2020-01-25  Mark Lam  <mark.lam@apple.com>
2878
2879         Add some tests for dynamically allocated StaticStringImpls.
2880         https://bugs.webkit.org/show_bug.cgi?id=206802
2881
2882         Reviewed by Darin Adler.
2883
2884         Removed some unnecessary explicit specialization of the charactersAreAllASCII()
2885         template function.
2886
2887         * wtf/text/StringImpl.cpp:
2888         (WTF::StringImpl::createFromLiteral):
2889         (WTF::StringImpl::createStaticStringImpl):
2890
2891 2020-01-24  Mark Lam  <mark.lam@apple.com>
2892
2893         Move singleton Intl string locales out of JSGlobalObject.
2894         https://bugs.webkit.org/show_bug.cgi?id=206791
2895         <rdar://problem/58889037>
2896
2897         Reviewed by Yusuke Suzuki.
2898
2899         Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
2900         when I introduced it.  StaticStringImpls require that its hash code be set ahead
2901         of time, and cannot be mutated at runtime.  See the comment in the definition of
2902         StaticStringImpl in StringImpl.h.
2903
2904         * wtf/text/StringImpl.cpp:
2905         (WTF::StringImpl::createStaticStringImpl):
2906
2907 2020-01-24  Mark Lam  <mark.lam@apple.com>
2908
2909         IntlObject's cached strings should be immortal and safe for concurrent access.
2910         https://bugs.webkit.org/show_bug.cgi?id=206779
2911         <rdar://problem/58831763>
2912
2913         Reviewed by Yusuke Suzuki.
2914
2915         Add a factory for creating a dynamically allocated StaticStringImpl.
2916
2917         Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
2918         The only difference is that s_refCountFlagIsStaticString is set on the refCount
2919         for StaticStringImpl.  Since the client will use the StaticStringImpl as a
2920         StringImpl, we implement the factory by using StringImpl::createInternal() for
2921         simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
2922
2923         * wtf/text/StringImpl.cpp:
2924         (WTF::StringImpl::createStaticStringImpl):
2925         * wtf/text/StringImpl.h:
2926
2927 2020-01-24  Keith Rollin  <krollin@apple.com>
2928
2929         Fix internal Apple builds after r254411
2930         https://bugs.webkit.org/show_bug.cgi?id=206723
2931         <rdar://problem/58844735>
2932
2933         Reviewed by Maciej Stachowiak.
2934
2935         The default Xcode build configuration has changed between macOS 10.13
2936         and macOS 10.15, such that references to some frameworks when bulding
2937         for the latter don't work when building for the former. Fix this by
2938         explicitly adding support for the desired build location rather than
2939         assuming such support will be provided for us.
2940
2941         * Configurations/WTF.xcconfig:
2942
2943 2020-01-24  Jonathan Bedard  <jbedard@apple.com>
2944
2945         WTF: Remove old iOS version macros
2946         https://bugs.webkit.org/show_bug.cgi?id=206634
2947         <rdar://problem/58818561>
2948
2949         Reviewed by Darin Adler.
2950
2951         * wtf/PlatformEnable.h: Remove iOS 12 version macro.
2952         * wtf/PlatformHave.h: Ditto.
2953         * wtf/PlatformUse.h: Ditto.
2954
2955 2020-01-22  Darin Adler  <darin@apple.com>
2956
2957         Remove some unneeded definitions from Platform.h family headers
2958         https://bugs.webkit.org/show_bug.cgi?id=206642
2959
2960         Reviewed by Eric Carlson.
2961
2962         * wtf/PlatformEnable.h:
2963         Removed ENABLE_RESPECT_EXIF_ORIENTATION because it was unused.
2964
2965         * wtf/PlatformHave.h:
2966         Removed HAVE_PASSKIT_API_TYPE because it is now unused.
2967         Removed HAVE_MERGESORT because it was unused.
2968         Removed HAVE_AVFOUNDATION_VIDEO_OUTPUT because it is now unused.
2969         Removed HAVE_AVFOUNDATION_MEDIA_SELECTION_GROUP because it is now unused.
2970         Removed HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE because it was unused.
2971
2972         * wtf/PlatformUse.h:
2973         Removed USE_ARENA_ALLOC_ALIGNMENT_INTEGER because it was unused.
2974         Removed USE_NETWORK_CFDATA_ARRAY_CALLBACK because it is now unused.
2975
2976 2020-01-22  Eric Carlson  <eric.carlson@apple.com>
2977
2978         uniqueLogIdentifier() should generate a unique identifiers
2979         https://bugs.webkit.org/show_bug.cgi?id=206612
2980
2981         Reviewed by Brent Fulgham.
2982
2983         * wtf/LoggerHelper.h:
2984         (WTF::LoggerHelper::uniqueLogIdentifier):
2985
2986 2020-01-22  Sam Weinig  <weinig@apple.com>
2987
2988         Remove unused enable macro ENABLE_JIT_CONSTANT_BLINDING
2989         https://bugs.webkit.org/show_bug.cgi?id=206415
2990
2991         Reviewed by Anders Carlsson.
2992
2993         * wtf/PlatformEnable.h:
2994         ENABLE_JIT_CONSTANT_BLINDING is not used anywhere in WebKit so can be removed.
2995
2996 2020-01-22  Yusuke Suzuki  <ysuzuki@apple.com>
2997
2998         [JSC] DateMath should accept more ISO-8601 timezone designators even if they are not included in ECMA262 to produce expected results in the wild code
2999         https://bugs.webkit.org/show_bug.cgi?id=160287
3000
3001         Reviewed by Ross Kirsling.
3002
3003         While ECMA262[1] always requires ":" in a timezone designator between hours and minutes (like, "hh:mm"),
3004         ISO-8601 can accept additional forms, "+hh" and "+hhmm". This patch relaxes our Date parsing to accept this
3005         type of timezone designators so that we can accept wider forms of date time formats. This addition does not
3006         break the existing parsing rules since '+-' prefix can clarify that following sequences are timezones.
3007
3008         [1]: https://tc39.es/ecma262/#sec-date-time-string-format
3009         [2]: https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
3010
3011         * wtf/DateMath.cpp:
3012         (WTF::parseES5TimePortion):
3013         (WTF::parseES5DateFromNullTerminatedCharacters):
3014
3015 2020-01-21  Ross Kirsling  <ross.kirsling@sony.com>
3016
3017         [JSC] Date parse logic should be less redundant
3018         https://bugs.webkit.org/show_bug.cgi?id=206560
3019
3020         Reviewed by Darin Adler.
3021
3022         * wtf/DateMath.cpp:
3023         (WTF::parseDateFromNullTerminatedCharacters):
3024         * wtf/DateMath.h:
3025         Align function signature with parseES5DateFromNullTerminatedCharacters.
3026         Namely, drop the integer out param and flip the boolean one.
3027
3028 2020-01-21  Yusuke Suzuki  <ysuzuki@apple.com>
3029
3030         [WTF] AtomStringTable should be small
3031         https://bugs.webkit.org/show_bug.cgi?id=206400
3032
3033         Reviewed by Sam Weinig.
3034
3035         AtomStringTable is the largest hashtable typically. It takes more
3036         than 256KB per WebProcess (sometimes, it took 1MB or more).
3037         This patch leverages PackedPtr to compact it from 8 bytes per entry
3038         to 6 bytes per entry.
3039
3040         While this is still large, we should investigate how to compact C++
3041         pointers in 4 bytes[1] to shrink memory footprint, since WebKit
3042         memory is used by Vector and HashTable fulfilled with pointers.
3043
3044         [1]: https://bugs.webkit.org/show_bug.cgi?id=206469
3045
3046         * wtf/DumbPtrTraits.h:
3047         (WTF::DumbPtrTraits::hashTableDeletedValue):
3048         (WTF::DumbPtrTraits::isHashTableDeletedValue):
3049         * wtf/Forward.h:
3050         * wtf/HashTraits.h:
3051         * wtf/Packed.h:
3052         (WTF::Packed<T::Packed):
3053         (WTF::Packed<T::isHashTableDeletedValue const):
3054         (WTF::GetPtrHelper<PackedPtr<T>>::getPtr):
3055         (WTF::PackedPtrTraits::hashTableDeletedValue):
3056         (WTF::PackedPtrTraits::isHashTableDeletedValue):
3057         (WTF::alignof): Deleted.
3058         * wtf/Ref.h:
3059         (WTF::Ref::Ref):
3060         (WTF::Ref::isHashTableDeletedValue const):
3061         (WTF::Ref::hashTableDeletedValue): Deleted.
3062         * wtf/RefPtr.h:
3063         (WTF::RefPtr::RefPtr):
3064         (WTF::RefPtr::isHashTableDeletedValue const):
3065         (WTF::RefPtr::hashTableDeletedValue): Deleted.
3066         * wtf/text/AtomStringImpl.cpp:
3067         (WTF::addToStringTable):
3068         (WTF::CStringTranslator::equal):
3069         (WTF::CStringTranslator::translate):
3070         (WTF::UCharBufferTranslator::equal):
3071         (WTF::UCharBufferTranslator::translate):
3072         (WTF::HashAndUTF8CharactersTranslator::equal):
3073         (WTF::HashAndUTF8CharactersTranslator::translate):
3074         (WTF::SubstringTranslator::translate):
3075         (WTF::SubstringTranslator8::equal):
3076         (WTF::SubstringTranslator16::equal):
3077         (WTF::LCharBufferTranslator::equal):
3078         (WTF::LCharBufferTranslator::translate):
3079         (WTF::BufferFromStaticDataTranslator::equal):
3080         (WTF::BufferFromStaticDataTranslator::translate):
3081         (WTF::AtomStringImpl::addSlowCase):
3082         (WTF::AtomStringImpl::remove):
3083         (WTF::AtomStringImpl::lookUpSlowCase):
3084         (WTF::AtomStringImpl::lookUp):
3085         * wtf/text/AtomStringTable.cpp:
3086         (WTF::AtomStringTable::~AtomStringTable):
3087         * wtf/text/AtomStringTable.h:
3088         (WTF::AtomStringTable::table):
3089         (): Deleted.
3090         * wtf/text/StringHash.h:
3091         (WTF::StringHash::hash):
3092         (WTF::StringHash::equal):
3093         (WTF::ASCIICaseInsensitiveHash::hash):
3094         (WTF::ASCIICaseInsensitiveHash::equal):
3095         * wtf/text/StringImpl.h:
3096
3097 2020-01-17  Sam Weinig  <weinig@apple.com>
3098
3099         Platform.h is out of control Part 8: Macros are used inconsistently
3100         https://bugs.webkit.org/show_bug.cgi?id=206425
3101
3102         Reviewed by Darin Adler.
3103
3104         Start addressing FIXMEs added to Platform.h (and helper files) during previous
3105         cleanup work.
3106         
3107         - Renames WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_CONSTANT_EFFECTIVE_ADDRESS_WIDTH,
3108           making it available via new macro OS_CONSTANT(...), and syncs bmalloc redefinition.
3109         - Renames:
3110              USE_LLINT_EMBEDDED_OPCODE_ID to ENABLE_LLINT_EMBEDDED_OPCODE_ID
3111              USE_UDIS86 to ENABLE_UDIS86 
3112              USE_ARM64_DISASSEMBLER to ENABLE_ARM64_DISASSEMBLER
3113           Enable is more appropriate here as these enable functionality within webkit.
3114         - Removes undefs that are no longer needed due to only defining the macro once now.
3115         - Removes dead defined(__LP64__) check after PLATFORM(MAC) macOS is always 64-bit these
3116           days.
3117
3118         * wtf/Packed.h:
3119         (WTF::alignof):
3120         * wtf/Platform.h:
3121         * wtf/PlatformEnable.h:
3122         * wtf/PlatformOS.h:
3123         * wtf/WTFAssertions.cpp:
3124         * wtf/text/StringCommon.h:
3125
3126 2020-01-20  David Kilzer  <ddkilzer@apple.com>
3127
3128         Fix missing header guards and clean up empty files in bmalloc, WTF, JavaScriptCore
3129         <https://webkit.org/b/206481>
3130
3131         Reviewed by Darin Adler.
3132
3133         * wtf/cocoa/Entitlements.h:
3134         * wtf/win/PathWalker.h:
3135         - Add #pragma once.
3136
3137 2020-01-19  Claudio Saavedra  <csaavedra@igalia.com>
3138
3139         [GTK] Remove usage of deprecated GTimeVal
3140         https://bugs.webkit.org/show_bug.cgi?id=206358
3141
3142         Reviewed by Žan Doberšek.
3143
3144         Use g_get_real_time() directly instead of deprecated and unsafe API.
3145
3146         * wtf/CurrentTime.cpp:
3147         (WTF::currentTime):
3148
3149 2020-01-16  Keith Miller  <keith_miller@apple.com>
3150
3151         Reland bytecode checkpoints since bugs have been fixed
3152         https://bugs.webkit.org/show_bug.cgi?id=206361
3153
3154         Unreviewed, reland.
3155
3156         The watch bugs have been fixed by https://trac.webkit.org/changeset/254674
3157
3158         * WTF.xcodeproj/project.pbxproj:
3159         * wtf/Bitmap.h:
3160         (WTF::WordType>::invert):
3161         (WTF::WordType>::operator):
3162         (WTF::WordType>::operator const const):
3163         * wtf/CMakeLists.txt:
3164         * wtf/EnumClassOperatorOverloads.h: Added.
3165         * wtf/FastBitVector.h:
3166         (WTF::FastBitReference::operator bool const):
3167         (WTF::FastBitReference::operator|=):
3168         (WTF::FastBitReference::operator&=):
3169         (WTF::FastBitVector::fill):
3170         (WTF::FastBitVector::grow):
3171         * wtf/UnalignedAccess.h:
3172         (WTF::unalignedLoad):
3173         (WTF::unalignedStore):
3174
3175 2020-01-16  Tim Horton  <timothy_horton@apple.com>
3176
3177         Fix the build after r254701
3178         <rdar://problem/58667355>
3179
3180         * wtf/Platform.h:
3181         * wtf/PlatformEnable.h:
3182         AdditionalFeatureDefines has to come first.
3183
3184 2020-01-16  Sam Weinig  <weinig@apple.com>
3185
3186         Platform.h is out of control Part 7: Split calling convention macro definitions out of Platform.h and into a new PlatformCallingConventions.h
3187         https://bugs.webkit.org/show_bug.cgi?id=206377
3188
3189         Reviewed by Anders Carlsson.
3190
3191         As a another step towards cleaning up Platform.h, split out all the calling convention
3192         macros into their own file.
3193
3194         * WTF.xcodeproj/project.pbxproj:
3195         * wtf/CMakeLists.txt:
3196         Add new header.
3197
3198         * wtf/Platform.h:
3199         * wtf/PlatformCPU.h:
3200         * wtf/PlatformEnable.h:
3201         * wtf/PlatformHave.h:
3202         * wtf/PlatformLegacy.h:
3203         * wtf/PlatformOS.h:
3204         * wtf/PlatformUse.h:
3205         Unify indirect inclusion guard.
3206
3207         * wtf/PlatformCallingConventions.h: Copied from Source/WTF/wtf/Platform.h.
3208
3209 2020-01-16  Robin Morisset  <rmorisset@apple.com>
3210
3211         Use dataLogIf more regularly
3212         https://bugs.webkit.org/show_bug.cgi?id=206332
3213
3214         Reviewed by Keith Miller.
3215
3216         * wtf/DataLog.h:
3217         (WTF::dataLog): Marked NEVER_INLINE, since it should never be perf-sensitive
3218
3219
3220 2020-01-16  Sam Weinig  <weinig@apple.com>
3221
3222         Platform.h is out of control Part 6: Split USE_* macro definitions out of Platform.h and into a new PlatformUse.h
3223         https://bugs.webkit.org/show_bug.cgi?id=206354
3224
3225         Reviewed by Dan Bernstein.
3226
3227         As a another step towards cleaning up Platform.h, split out all the legacy platform
3228         macros into their own file.
3229
3230         * WTF.xcodeproj/project.pbxproj:
3231         * wtf/CMakeLists.txt:
3232         Add new file.
3233
3234         * wtf/Platform.h: In addition to removing all the USE_* macros, consolidate
3235         all the sub-includes at the top.
3236
3237         * wtf/PlatformEnable.h: Moved ASSERT_ENABLED here from Platform.h, 
3238         as it makes more sense here. Eventually should be renamed ro ENABLE_ASSERT 
3239         for consistency.
3240
3241         * wtf/PlatformUse.h: Copied from Source/WTF/wtf/Platform.h.
3242
3243 2020-01-16  Per Arne Vollan  <pvollan@apple.com>
3244
3245         [Win] Fix AppleWin build
3246         https://bugs.webkit.org/show_bug.cgi?id=206299
3247
3248         Reviewed by Brent Fulgham.
3249
3250         Build internal builds with VS2019.
3251
3252         * WTF.vcxproj/WTF.proj:
3253
3254 2020-01-15  Sam Weinig  <weinig@apple.com>
3255
3256         Platform.h is out of control Part 5: Split HAVE_* macro definitions out of Platform.h and into a new PlatformHave.h
3257         https://bugs.webkit.org/show_bug.cgi?id=206307
3258
3259         Reviewed by Anders Carlsson.
3260
3261         * WTF.xcodeproj/project.pbxproj:
3262         * wtf/CMakeLists.txt:
3263         * wtf/Platform.h:
3264         * wtf/PlatformHave.h: Copied from Source/WTF/wtf/Platform.h.
3265
3266 2020-01-15  Keith Miller  <keith_miller@apple.com>
3267
3268         Revert bytecode checkpoints since it breaks watch
3269         https://bugs.webkit.org/show_bug.cgi?id=206301
3270
3271         Unreviewed, revert.
3272
3273 2020-01-14  Sam Weinig  <weinig@apple.com>
3274
3275         Platform.h is out of control Part 4: Split PLATFORM_* macro definitions out of Platform.h and into a new PlatformLegacy.h
3276         https://bugs.webkit.org/show_bug.cgi?id=206272
3277
3278         Reviewed by Anders Carlsson.
3279
3280         As a another step towards cleaning up Platform.h, split out all the legacy platform
3281         macros into their own file.
3282
3283         * WTF.xcodeproj/project.pbxproj:
3284         * wtf/CMakeLists.txt:
3285         * wtf/Platform.h:
3286         * wtf/PlatformLegacy.h: Copied from Source/WTF/wtf/Platform.h.
3287
3288 2020-01-14  Sam Weinig  <weinig@apple.com>
3289
3290         Plaform.h helper files should have a consistent naming scheme
3291         https://bugs.webkit.org/show_bug.cgi?id=206240
3292
3293         Reviewed by Dean Jackson.
3294
3295         Rename Plaform.h helper files to use the prefix "Platform" consistently.
3296
3297         * WTF.xcodeproj/project.pbxproj:
3298         * wtf/CMakeLists.txt:
3299         * wtf/CPU.h: Removed.
3300         * wtf/FeatureDefines.h: Removed.
3301         * wtf/OS.h: Removed.
3302         * wtf/Platform.h:
3303         * wtf/PlatformCPU.h: Copied from Source/WTF/wtf/CPU.h.
3304         * wtf/PlatformEnable.h: Copied from Source/WTF/wtf/FeatureDefines.h.
3305         * wtf/PlatformOS.h: Copied from Source/WTF/wtf/OS.h.
3306
3307 2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>
3308
3309         [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
3310         https://bugs.webkit.org/show_bug.cgi?id=77568
3311         <rdar://problem/14649193>
3312
3313         Reviewed by Simon Fraser.
3314
3315         * wtf/Platform.h:
3316
3317 2020-01-13  Darin Adler  <darin@apple.com>
3318
3319         Use even more "shortest form" formatting, and less "fixed precision" and "fixed width"
3320         https://bugs.webkit.org/show_bug.cgi?id=198918
3321
3322         Reviewed by Sam Weinig.
3323
3324         * wtf/Logger.h:
3325         (WTF::LogArgument::toString): Log floating point numbers as shortest form instead of fixed precision.
3326
3327         * wtf/MediaTime.cpp:
3328         (WTF::MediaTime::toString const): Convert time to string as shortest form instead of fixed precision.
3329         Also use multiple-argument append for great simplicity and clarity.
3330
3331 2020-01-14  Alicia Boya García  <aboya@igalia.com>
3332
3333         [WTF] Make MediaTime constructor constexpr
3334         https://bugs.webkit.org/show_bug.cgi?id=206036
3335
3336         Reviewed by Adrian Perez de Castro.
3337
3338         https://bugs.webkit.org/show_bug.cgi?id=205723 allowed to declare
3339         MediaTime variables as static inside functions without needing a
3340         global destructor.
3341
3342         It did not eliminate the call to the MediaTime constructor on runtime
3343         though. This wasn't a problem for static variables inside functions,
3344         as the compiler adds a guard variable to call the constructor the
3345         first time the function is called.
3346
3347         On the other hand, for variables defined outside of the scope of the
3348         function, for them to be initialized the MediaTime constructor would
3349         have to be called at runtime from a global constructor, something
3350         we're trying to avoid and which generates an error in clang.
3351
3352         But again, MediaTime is a simple class with only integral values, we
3353         shouldn't need a runtime function call to initialize it!
3354
3355         This patch makes the MediaTime constructor constexpr so that we don't
3356         need runtime initialization for static MediaTime variables. This
3357         allows us to declare them outside functions and enables the compiler
3358         to generate code without guard variables when static MediaTime
3359         variables are declared inside functions.
3360
3361         A test has been added accessing a global const static MediaTime. The
3362         build should not produce any error stating the need for a global
3363         constructor.
3364
3365         * wtf/MediaTime.cpp:
3366         * wtf/MediaTime.h:
3367         (WTF::MediaTime::MediaTime):
3368
3369 2020-01-14  David Kilzer  <ddkilzer@apple.com>
3370
3371         Enable -Wconditional-uninitialized in bmalloc, WTF, JavaScriptCore
3372         <https://webkit.org/b/206190>
3373         <rdar://problem/58540387>
3374
3375         Reviewed by Mark Lam.
3376
3377         * Configurations/Base.xcconfig:
3378         (WARNING_CFLAGS): Add -Wconditional-uninitialized.
3379
3380 2020-01-13  Sam Weinig  <weinig@apple.com>
3381
3382         Platform.h is out of control Part 3: Move all ENABLE_* macros definitions in FeatureDefines.h
3383         https://bugs.webkit.org/show_bug.cgi?id=206139
3384
3385         Reviewed by Anders Carlsson.
3386
3387         - Moves all remaining ENABLE_* defines out of Platform.h and into FeatureDefines.h
3388         - Moves most, USE_UDIS86 and USE_ARM64_DISASSEMBLER are tangled up in the JIT definitions
3389           still, HAVE_* and USE_* defines out of FeatureDefines.h and into Platform.h
3390         - Where straigthforward, convert macro definitions into a canonical 3 line entry of the 
3391           form:
3392           
3393               #if !defined(MACRO_NAME) && (<CONDITIONS HERE>)
3394               #define MACRO_NAME 1
3395               #endif
3396
3397           There is rarely (if ever) a resone to undefine or define one of these platform related
3398           macros to 0 as the usage macros (e.g. HAVE(...), ENABLE(...), etc.) handle undefined as 0.
3399         - Added a guard so that FeatureDefines.h can't be included directly, and must be included via
3400           Platform.h. This is necessary as it depends heavily on macros defined in Platform.h
3401         - Added numerous FIXMEs detailing follow up cleaning.
3402
3403         * wtf/FeatureDefines.h:
3404         * wtf/Platform.h:
3405
3406 2020-01-12  Sam Weinig  <weinig@apple.com>
3407
3408         Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h
3409         https://bugs.webkit.org/show_bug.cgi?id=206138
3410
3411         Reviewed by Anders Carlsson.
3412
3413         As a another step towards cleaning up Platform.h, split out OS related
3414         macros into their own file.
3415
3416         * WTF.xcodeproj/project.pbxproj:
3417         * wtf/CMakeLists.txt:
3418         * wtf/OS.h: Copied from Source/WTF/wtf/Platform.h.
3419         * wtf/Platform.h:
3420
3421 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
3422
3423         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
3424         https://bugs.webkit.org/show_bug.cgi?id=200043
3425
3426         Unreviewed.
3427
3428         Fix build.
3429
3430         * wtf/cocoa/LanguageCocoa.mm:
3431         (WTF::canMinimizeLanguages):
3432
3433 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
3434
3435         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
3436         https://bugs.webkit.org/show_bug.cgi?id=200043
3437
3438         Unreviewed.
3439
3440         Addressing additional review comments.
3441
3442         * wtf/cocoa/LanguageCocoa.mm:
3443         (WTF::canMinimizeLanguages):
3444
3445 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
3446
3447         Fix internal Apple builds after r254389
3448         https://bugs.webkit.org/show_bug.cgi?id=206135
3449
3450         Rubber stamped by Zalan Bujtas.
3451
3452         * wtf/spi/cocoa/NSLocaleSPI.h:
3453
3454 2020-01-11  Sam Weinig  <weinig@apple.com>
3455
3456         Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h
3457         https://bugs.webkit.org/show_bug.cgi?id=206124
3458
3459         Reviewed by Anders Carlsson.
3460
3461         As a step towards cleaning up Platform.h, split out CPU related
3462         macros into their own file.
3463
3464         * WTF.xcodeproj/project.pbxproj:
3465         * wtf/CMakeLists.txt:
3466         * wtf/CPU.h: Copied from Source/WTF/wtf/Platform.h.
3467         * wtf/Platform.h:
3468
3469 2020-01-10  Dean Jackson  <dino@apple.com>
3470
3471         [WebGL] Clarify USE_OPENGL_ES_3
3472         https://bugs.webkit.org/show_bug.cgi?id=206081
3473         <rdar://problem/58486798>
3474
3475         Reviewed by Simon Fraser.
3476
3477         Make it clear that USE_ANGLE | USE_OPENGL | USE_OPENGL_ES are exclusive,
3478         and that the availability of OpenGL ES 3 is a separate query.
3479
3480         * wtf/Platform.h:
3481
3482 2020-01-11  Yusuke Suzuki  <ysuzuki@apple.com>
3483
3484         Unreviewed, fix RunLoopGeneric's RunLoop::cycle
3485
3486         * wtf/generic/RunLoopGeneric.cpp:
3487         (WTF::RunLoop::cycle):
3488
3489 2020-01-10  Myles C. Maxfield  <mmaxfield@apple.com>
3490
3491         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
3492         https://bugs.webkit.org/show_bug.cgi?id=200043
3493         <rdar://problem/44119496>
3494
3495         Reviewed by Dean Jackson.
3496
3497         We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
3498         it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
3499         This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
3500         language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
3501         turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
3502         in this way.
3503
3504         Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
3505         canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
3506         more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
3507         minimize the entropy revealed.
3508
3509         * WTF.xcodeproj/project.pbxproj:
3510         * wtf/Language.h:
3511         * wtf/Platform.h:
3512         * wtf/PlatformMac.cmake:
3513         * wtf/cf/LanguageCF.cpp:
3514         (WTF::httpStyleLanguageCode):
3515         (WTF::platformUserPreferredLanguages):
3516         * wtf/cocoa/LanguageCocoa.mm: Added.
3517         (WTF::minimizedLanguagesFromLanguages):
3518         * wtf/spi/cocoa/NSLocaleSPI.h: Added.
3519
3520 2020-01-10  Simon Fraser  <simon.fraser@apple.com>
3521
3522         Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
3523         https://bugs.webkit.org/show_bug.cgi?id=206091
3524
3525         Reviewed by Tim Horton.
3526
3527         Define ENABLE_META_VIEWPORT for iOS.
3528
3529         * wtf/FeatureDefines.h:
3530
3531 2020-01-09  Tim Horton  <timothy_horton@apple.com>
3532
3533         Adopt TARGET_OS_MACCATALYST in more places
3534         https://bugs.webkit.org/show_bug.cgi?id=206040
3535         <rdar://problem/57127108>
3536
3537         Reviewed by Simon Fraser.
3538
3539         * wtf/Platform.h:
3540
3541 2020-01-09  Simon Fraser  <simon.fraser@apple.com>
3542
3543         Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places
3544         https://bugs.webkit.org/show_bug.cgi?id=205982
3545
3546         Reviewed by Jon Lee.
3547         
3548         Add a #define ENABLE_UI_SIDE_COMPOSITING for Cocoa platforms. Minor comment cleanup, and
3549         move the duplicate ENABLE_ASYNC_SCROLLING from iOS and macOS sections into the Cocoa section.
3550
3551         * wtf/FeatureDefines.h:
3552
3553 2020-01-08  Yusuke Suzuki  <ysuzuki@apple.com>
3554
3555         Reduce binary size by purging C++ type information in Objective-C fields and parameters
3556         https://bugs.webkit.org/show_bug.cgi?id=205905
3557
3558         Reviewed by Saam Barati.
3559
3560         Objective-C has reflection mechanisms. This means that fields, methods, and their types
3561         need to hold its string representations in binary even if we are using release build.
3562         While typical Objective-C class does not have large size of type names, C++ struct / class
3563         has very large one, and putting them in Objective-C method names, parameter types, or fields
3564         makes binary size very large.
3565
3566         Interesting thing is that type information is gathered when parameter is a C++ pointer, reference,
3567         or value. And it gathers one-level deep information from this pointer etc. This means that, if
3568         we use RefPtr<T>, collected type information is the one of RefPtr, not one of T. So it becomes significantly
3569         smaller.
3570
3571         This patch introduces NakedRef<T>. This is similar to Ref while it does not have any ownership. So it
3572         is just a wrapper around T&. We already have NakedPtr<T>. And use NakedRef<T> / NakedPtr<T> instead
3573         of T& and T* if,
3574
3575             1. T is C++ class.
3576             2. T* / T& is in Objective-C fields or parameter types (including a return type).
3577
3578         Then, these type information is one of NakedRef<T> / NakedPtr<T> instead of T, and we can reduce binary size.
3579
3580         This patch saves 600~KB in binary size.
3581
3582         Note the following things.
3583
3584         1. If we use `__attribute__((objc_direct))`, `__attribute__((objc_direct_members))`, possibly, we can completely remove these
3585            metadata without using NakedRef / NakedPtr[1]. However, this is not available for our supporting platforms now (including
3586            pre-Catalina OSes). This NakedRef / NakedPtr technique can reduce binary without waiting for it.
3587         2. Reverting NakedRef / NakedPtr to usual reference / pointer is fairly easy since it is well typed. Once `__attribute__((objc_direct))`
3588            becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is harmless.
3589
3590         [1]: https://github.com/llvm/llvm-project/commit/d4e1ba3fa9dfec2613bdcc7db0b58dea490c56b1
3591
3592         * WTF.xcodeproj/project.pbxproj:
3593         * wtf/CMakeLists.txt:
3594         * wtf/NakedRef.h: Added.
3595         (WTF::NakedRef::NakedRef):
3596         (WTF::NakedRef::operator-> const):
3597         (WTF::NakedRef::get const):
3598         (WTF::NakedRef::operator T& const):
3599         (WTF::NakedRef::operator! const):
3600         (WTF::=):
3601         (WTF::NakedRef<T>::swap):
3602         (WTF::swap):
3603
3604 2020-01-08  Alicia Boya García  <aboya@igalia.com>
3605
3606         [WTF] Allow MediaTime static constants
3607         https://bugs.webkit.org/show_bug.cgi?id=205723
3608
3609         Reviewed by Darin Adler.
3610
3611         Despite all its convenience methods, at its core MediaTime is a rather
3612         trivial class with only integral members. Despite this, since it had a
3613         destructor declared, this made the class non-trivially destructible
3614         even if the implementation was empty, and therefore clang did not
3615         allow to use it for static variables unless done in form of a pointer.
3616
3617         By removing the destructor this restriction is lifted and we don't
3618         need heap allocations for static MediaTime objects.
3619
3620         Previous usages of heap allocation for static MediaTime objects have
3621         been rewritten to take advantage of this. Test coverage is provided by
3622         successful compilation without [-Werror,-Wexit-time-destructors]
3623         errors and existing tests.
3624
3625         * wtf/MediaTime.cpp:
3626         (WTF::MediaTime::zeroTime):
3627         (WTF::MediaTime::invalidTime):
3628         (WTF::MediaTime::positiveInfiniteTime):
3629         (WTF::MediaTime::negativeInfiniteTime):
3630         (WTF::MediaTime::indefiniteTime):
3631         (WTF::MediaTime::~MediaTime): Deleted.
3632         * wtf/MediaTime.h:
3633
3634 2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
3635
3636         Implement css3-images image-orientation
3637         https://bugs.webkit.org/show_bug.cgi?id=89052
3638
3639         Reviewed by Simon Fraser.
3640
3641         Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
3642
3643         * wtf/FeatureDefines.h:
3644
3645 2020-01-07  Simon Fraser  <simon.fraser@apple.com>
3646
3647         Add some more Animations logging
3648         https://bugs.webkit.org/show_bug.cgi?id=205890
3649
3650         Reviewed by Dean Jackson.
3651
3652         Make Seconds TextStream-loggable, and make Markable<> loggable.
3653
3654         * wtf/Seconds.cpp:
3655         (WTF::operator<<):
3656         * wtf/Seconds.h:
3657         * wtf/text/TextStream.h:
3658         (WTF::operator<<):
3659
3660 2020-01-07  Carlos Garcia Campos  <cgarcia@igalia.com>
3661
3662         [GTK][WPE] Add API to set purpose and hints of active editable element to input methods
3663         https://bugs.webkit.org/show_bug.cgi?id=205605
3664
3665         Reviewed by Žan Doberšek.
3666
3667         Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
3668
3669         * wtf/FeatureDefines.h:
3670
3671 2020-01-06  Don Olmstead  <don.olmstead@sony.com>
3672
3673         Rename GraphicsContext3D to GraphicsContextGL
3674         https://bugs.webkit.org/show_bug.cgi?id=205778
3675         <rdar://problem/58327597>
3676
3677         Reviewed by Ross Kirsling.
3678
3679         Define USE_OPENGL_3 for Mac and USE_OPENGL_ES_3 for iOS. Use CMake config for
3680         Windows and WebGL.
3681
3682         * wtf/Platform.h:
3683
3684 2020-01-06  Mark Lam  <mark.lam@apple.com>
3685
3686         Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
3687         https://bugs.webkit.org/show_bug.cgi?id=205776
3688
3689         Reviewed by Saam Barati.
3690
3691         This patch did the following changes:
3692
3693         1. Replaced ASSERT_DISABLED with ASSERT_ENABLED.  This change does away
3694            with the need for the double negative !ASSERT_DISABLED test that is commonly
3695            used all over the code, thereby improving code readability.
3696
3697            In Assertions.h, there is also BACKTRACE_DISABLED, ASSERT_MSG_DISABLED,
3698            ASSERT_ARG_DISABLED, FATAL_DISABLED, ERROR_DISABLED, LOG_DISABLED, and
3699            RELEASE_LOG_DISABLED.  We should replace those with ..._ENABLED equivalents
3700            as well.  We'll do that in another patch.  For now, they are left as is to
3701            minimize the size of this patch.
3702            See https://bugs.webkit.org/show_bug.cgi?id=205780.
3703
3704         2. Fixed some code was guarded with "#ifndef NDEBUG" that should actually be
3705            guarded by "#if ASSERT_ENABLED" instead.
3706
3707         3. In cases where the change is minimal, we move some code around so that we can
3708            test for "#if ASSERT_ENABLED" instead of "#if !ASSERT_ENABLED".
3709
3710         * wtf/Assertions.h:
3711         * wtf/AutomaticThread.cpp:
3712         (WTF::AutomaticThread::start):
3713         * wtf/BitVector.h:
3714         * wtf/BlockObjCExceptions.mm:
3715         (ReportBlockedObjCException):
3716         * wtf/BloomFilter.h:
3717         * wtf/CallbackAggregator.h:
3718         (WTF::CallbackAggregator::CallbackAggregator):
3719         * wtf/CheckedArithmetic.h:
3720         (WTF::observesOverflow<AssertNoOverflow>):
3721         * wtf/CheckedBoolean.h:
3722         (CheckedBoolean::CheckedBoolean):
3723         (CheckedBoolean::operator bool):
3724         * wtf/CompletionHandler.h:
3725         (WTF::CompletionHandler<Out):
3726         * wtf/DateMath.cpp:
3727         (WTF::initializeDates):
3728         * wtf/Gigacage.cpp:
3729         (Gigacage::tryAllocateZeroedVirtualPages):
3730         * wtf/HashTable.h:
3731         (WTF::KeyTraits>::checkKey):
3732         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
3733         * wtf/LoggerHelper.h:
3734         * wtf/NaturalLoops.h:
3735         (WTF::NaturalLoops::headerOf const):
3736         * wtf/NeverDestroyed.h:
3737         (WTF::LazyNeverDestroyed::construct):
3738         * wtf/OptionSet.h:
3739         (WTF::OptionSet::OptionSet):
3740         * wtf/Platform.h:
3741         * wtf/PtrTag.h:
3742         * wtf/RefCounted.h:
3743         (WTF::RefCountedBase::disableThreadingChecks):
3744         (WTF::RefCountedBase::enableThreadingChecksGlobally):
3745         (WTF::RefCountedBase::RefCountedBase):
3746         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
3747         * wtf/SingleRootGraph.h:
3748         (WTF::SingleRootGraph::assertIsConsistent const):
3749         * wtf/SizeLimits.cpp:
3750         * wtf/StackBounds.h:
3751         (WTF::StackBounds::checkConsistency const):
3752         * wtf/URLParser.cpp:
3753         (WTF::URLParser::URLParser):
3754         (WTF::URLParser::domainToASCII):
3755         * wtf/ValueCheck.h:
3756         * wtf/Vector.h:
3757         (WTF::Malloc>::checkConsistency):
3758         * wtf/WeakHashSet.h:
3759         * wtf/WeakPtr.h:
3760         (WTF::WeakPtrImpl::WeakPtrImpl):
3761         (WTF::WeakPtrFactory::WeakPtrFactory):
3762         * wtf/text/AtomStringImpl.cpp:
3763         * wtf/text/AtomStringImpl.h:
3764         * wtf/text/StringBuilder.cpp:
3765         (WTF::StringBuilder::reifyString const):
3766         * wtf/text/StringBuilder.h:
3767         * wtf/text/StringCommon.h:
3768         (WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):
3769         * wtf/text/StringHasher.h:
3770         (WTF::StringHasher::addCharacters):
3771         * wtf/text/StringImpl.h:
3772         * wtf/text/SymbolImpl.h:
3773         * wtf/text/UniquedStringImpl.h:
3774
3775 2020-01-05  Dean Jackson  <dino@apple.com>
3776
3777         Rename GraphicsContext3D to GraphicsContextGL
3778         https://bugs.webkit.org/show_bug.cgi?id=205778
3779         <rdar://problem/58327597>
3780
3781         Reviewed by Sam Weinig.
3782
3783         Rename all the GraphicsContext3D things to GraphicsContextGL
3784         (includes Extensions3D and GRAPHICS_CONTEXT_3D).
3785
3786         GraphicsContext3DBase now becomes GraphicsContextGL.
3787         GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents
3788         the OpenGL implementation of the API).
3789
3790         * wtf/FeatureDefines.h:
3791         * wtf/Platform.h:
3792
3793 2020-01-05  Sam Weinig  <weinig@apple.com>
3794
3795         Further simplify StringBuilder usage by standardizing hex formating to a single hex() function
3796         https://bugs.webkit.org/show_bug.cgi?id=205759
3797
3798         Reviewed by Dean Jackson.
3799
3800         Removes appendByteAsHex, appendUnsignedAsHex and appendUnsignedAsHexFixedSize with the
3801         following mappings:
3802
3803             appendByteAsHex(value, builder, case) 
3804               -> builder.append(hex(static_cast<unsigned char>(value), 2, case))
3805             appendUnsignedAsHex(value, builder, case) 
3806               -> builder.append(hex(value, case))
3807             appendUnsignedAsHexFixedSize(value, builder, size, case)
3808               -> builder.append(hex(value, size, case))
3809         
3810         Adds new API test for HexNumber.cpp
3811
3812         * wtf/HexNumber.h:
3813         (WTF::appendByteAsHex): Deleted.
3814         (WTF::appendUnsignedAsHex): Deleted.
3815         (WTF::appendUnsignedAsHexFixedSize): Deleted.
3816         Remove now unused helper functions.
3817         
3818         * wtf/FileSystem.cpp:
3819         (WTF::FileSystemImpl::encodeForFileName):
3820         Replace appendByteAsHex with direct use of hex(x, 2). The static_cast is needed
3821         since there was an implicit down cast when appendByteAsHex was used.
3822  
3823         * wtf/Logger.cpp:
3824         (WTF::Logger::LogSiteIdentifier::toString const):
3825         (WTF::>::toString):
3826         * wtf/UUID.cpp:
3827         (WTF::createCanonicalUUIDString):
3828         Replace appendUnsignedAsHex/appendUnsignedAsHexFixedSize with hex(). Use makeString() 
3829         rather StringBuilder to simplify things further.
3830
3831         * wtf/text/WTFString.cpp:
3832         (asciiDebug):
3833         Replace appendUnsignedAsHexFixedSize with append(hex()).
3834
3835 2020-01-05  Ross Kirsling  <ross.kirsling@sony.com>
3836
3837         JavaScript: Invalid date parse for ISO 8601 strings when no timezone given
3838         https://bugs.webkit.org/show_bug.cgi?id=89071
3839
3840         Reviewed by Darin Adler.
3841
3842         * wtf/DateMath.cpp:
3843         (WTF::parseES5TimePortion):
3844         (WTF::parseES5DateFromNullTerminatedCharacters):
3845         * wtf/DateMath.h:
3846         Add an out param to tell JSC whether we still need to do a local time adjustment.
3847
3848 2020-01-03  Dean Jackson  <dino@apple.com>
3849
3850         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
3851         https://bugs.webkit.org/show_bug.cgi?id=205483
3852         <rdar://problem/58097701>
3853
3854         Reverting this from trunk (was r253926) due to the number of
3855         flakey tests and failures.
3856
3857         * wtf/Platform.h:
3858
3859 2020-01-03  Simon Fraser  <simon.fraser@apple.com>
3860
3861         Add some shared schemes to the WebKit.xcworkspace
3862         https://bugs.webkit.org/show_bug.cgi?id=205698
3863
3864         Reviewed by Tim Horton.
3865
3866         Make WebKit.xcworkspace show the following schemes by default:
3867             All Source
3868             All Tools
3869             WTF
3870             JavaScriptCore
3871             WebCore
3872             WebKit
3873             WebKitLegacy
3874             DumpRenderTree
3875             WebKitTestRunner
3876             TestWebKitAPI
3877             MiniBrowser
3878             MobileMiniBrowser.
3879             
3880         Also remove the MobileMiniBrowserUITests scheme.
3881
3882         * WTF.xcodeproj/xcshareddata/xcschemes/WTF.xcscheme: Copied from Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowserUITests.xcscheme.
3883
3884 2020-01-02  Yusuke Suzuki  <ysuzuki@apple.com> and Simon Fraser  <simon.fraser@apple.com>
3885
3886         Experiment: create lots of different malloc zones for easier accounting of memory use
3887         https://bugs.webkit.org/show_bug.cgi?id=186422
3888
3889         Reviewed by Saam Barati.
3890
3891         This patch introduces ENABLE(MALLOC_HEAP_BREAKDOWN). If this is enabled, we allocate malloc_zone per malloc kind.
3892         This offers the way to investigate the usage of memory per kind by using vmmap, like the following.
3893
3894             VIRTUAL   RESIDENT      DIRTY    SWAPPED ALLOCATION      BYTES DIRTY+SWAP          REGION
3895             MALLOC ZONE                                                      SIZE       SIZE       SIZE       SIZE      COUNT  ALLOCATED  FRAG SIZE  % FRAG   COUNT
3896             ===========                                                   =======  =========  =========  =========  =========  =========  =========  ======  ======
3897             StringImpl_0x116efd000                                         188.0M      69.3M      30.9M         0K     139456      18.0M      12.9M     42%      34
3898             DefaultMallocZone_0x10f487000                                  176.0M      53.9M      14.1M         0K     115956      9955K      4497K     32%      22
3899             Vector_0x116eff000                                             162.0M      56.3M      55.3M         0K     140715      17.3M      37.9M     69%      36
3900             MetadataTable_0x11843b000                                      152.0M      17.5M      17.5M         0K      14200      2353K      15.2M     87%      26
3901             WebKit Using System Malloc_0x114cbe000                         150.0M      31.6M      21.8M         0K      87422      16.7M      5278K     24%      23
3902             InstructionStream_0x118469000                                  150.0M      5764K      5764K         0K      14470      4688K      1076K     19%      24
3903             AssemblerData_0x117ee6000                                      150.0M      1928K      1928K         0K          1         16      1928K    100%      24
3904
3905         To achieve this goal without making very large change, we put a template type in various containers.
3906         For example, Vector will take Malloc parameter (the default one is FastMalloc allocator). If ENABLE(MALLOC_HEAP_BREAKDOWN) is enabled, we change this to
3907         specific VectorMalloc allocator, and vmmap can show memory usage of this allocator. This patch also supports malloc_zone per IsoHeap. So we can see memory
3908         allocation per IsoHeap in vmmap.
3909
3910         To use this feature, we need to flip two compile time flags, ENABLE(MALLOC_HEAP_BREAKDOWN) in WTF and BENABLE_MALLOC_HEAP_BREAKDOWN in bmalloc.
3911         And use `vmmap $PID` to dump malloc zones. To allocate objects of a class with a specific malloc-zone, use WTF_MAKE_FAST_ALLOCATED_WITH_HEAP_IDENTIFIER(HeapIdentifier) for the class,
3912         and define allocator by DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a header and DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a cpp file.
3913
3914         This patch also introduce callstack collector for malloc. Vector, HashMap etc. are used to allocate various things, but the above malloc_zone feature only tells thing like "Vector
3915         takes XXX MB memory". But what we want to know in this case is what Vector is consuming memory. We collect StackShot for each malloc call, and combine these information to tell
3916         which callsite is consuming much memory, which tell us that what Vector is consuming memory.
3917
3918         * WTF.xcodeproj/project.pbxproj:
3919         * wtf/Bag.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
3920         * wtf/Bag.h:
3921         (WTF::Private::BagNode::BagNode): Deleted.
3922         * wtf/BitVector.cpp:
3923         (WTF::BitVector::OutOfLineBits::create):
3924         (WTF::BitVector::OutOfLineBits::destroy):
3925         * wtf/CMakeLists.txt:
3926         * wtf/ConcurrentBuffer.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
3927         * wtf/ConcurrentBuffer.h:
3928         * wtf/DebugHeap.cpp: Copied from Source/JavaScriptCore/runtime/CachePayload.cpp.
3929         (WTF::DebugHeap::DebugHeap):
3930         (WTF::DebugHeap::malloc):
3931         (WTF::DebugHeap::calloc):
3932         (WTF::DebugHeap::memalign):
3933         (WTF::DebugHeap::realloc):
3934         (WTF::DebugHeap::free):
3935         * wtf/DebugHeap.h: Added.
3936         * wtf/FastBitVector.cpp:
3937         (WTF::FastBitVectorWordOwner::setEqualsSlow):
3938         (WTF::FastBitVectorWordOwner::resizeSlow):
3939         * wtf/FastBitVector.h:
3940         (WTF::FastBitVectorWordOwner::~FastBitVectorWordOwner):
3941         * wtf/FastMalloc.cpp:
3942         (WTF::fastMallocDumpMallocStats):
3943         (WTF::AvoidRecordingScope::AvoidRecordingScope):
3944         (WTF::AvoidRecordingScope::~AvoidRecordingScope):
3945         (WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
3946         (WTF::MallocCallTracker::singleton):
3947         (WTF::MallocCallTracker::MallocCallTracker):
3948         (WTF::MallocCallTracker::recordMalloc):
3949         (WTF::MallocCallTracker::recordRealloc):
3950         (WTF::MallocCallTracker::recordFree):
3951         (WTF::MallocCallTracker::dumpStats):
3952         (WTF::fastMalloc):
3953         (WTF::fastRealloc):
3954         (WTF::fastFree):
3955         (WTF::fastAlignedMalloc):
3956         (WTF::tryFastAlignedMalloc):
3957         (WTF::fastAlignedFree):
3958         * wtf/FastMalloc.h:
3959         (WTF::FastMalloc::zeroedMalloc):
3960         (WTF::FastMalloc::tryZeroedMalloc):
3961         * wtf/Forward.h:
3962         * wtf/HashTable.cpp:
3963         * wtf/HashTable.h:
3964         (WTF::KeyTraits>::allocateTable):
3965         (WTF::KeyTraits>::deallocateTable):
3966         (WTF::KeyTraits>::rehash):
3967         * wtf/MallocPtr.h:
3968         (WTF::MallocPtr::MallocPtr):
3969         (WTF::MallocPtr::malloc):
3970         (WTF::MallocPtr::zeroedMalloc):
3971         (WTF::MallocPtr::tryMalloc):
3972         (WTF::MallocPtr::tryZeroedMalloc):
3973         (WTF::adoptMallocPtr):
3974         * wtf/MetaAllocator.cpp:
3975         (WTF::MetaAllocator::allocFreeSpaceNode):
3976         (WTF::MetaAllocator::freeFreeSpaceNode):
3977         * wtf/MetaAllocatorHandle.h:
3978         * wtf/Platform.h:
3979         * wtf/RefCountedArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3980         * wtf/RefCountedArray.h:
3981         (WTF::RefCountedArray::RefCountedArray):
3982         (WTF::RefCountedArray::~RefCountedArray):
3983         (WTF::RefCountedArray::assign):
3984         * wtf/SegmentedVector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3985         * wtf/SegmentedVector.h:
3986         * wtf/SmallPtrSet.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3987         * wtf/SmallPtrSet.h:
3988         (WTF::SmallPtrSet::~SmallPtrSet):
3989         (WTF::SmallPtrSet::grow):
3990         * wtf/UniqueArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3991         * wtf/UniqueArray.h:
3992         (WTF::UniqueArrayFree::operator() const):
3993         (WTF::UniqueArrayFree<T::operator() const):
3994         * wtf/Vector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3995         * wtf/Vector.h:
3996         (WTF::VectorBufferBase::allocateBuffer):
3997         (WTF::VectorBufferBase::tryAllocateBuffer):
3998         (WTF::VectorBufferBase::reallocateBuffer):
3999         (WTF::VectorBufferBase::deallocateBuffer):
4000         (WTF::VectorBufferBase::releaseBuffer):
4001         (WTF::VectorBuffer::releaseBuffer):
4002         (WTF::Vector::swap):
4003         (WTF::Malloc>::Vector):
4004         (WTF::=):
4005         (WTF::Malloc>::contains const):
4006         (WTF::Malloc>::findMatching const):
4007         (WTF::Malloc>::find const):
4008         (WTF::Malloc>::reverseFind const):
4009         (WTF::Malloc>::appendIfNotContains):
4010         (WTF::Malloc>::fill):
4011         (WTF::Malloc>::appendRange):
4012         (WTF::Malloc>::expandCapacity):
4013         (WTF::Malloc>::tryExpandCapacity):
4014         (WTF::Malloc>::resize):
4015         (WTF::Malloc>::resizeToFit):
4016         (WTF::Malloc>::shrink):
4017         (WTF::Malloc>::grow):
4018         (WTF::Malloc>::asanSetInitialBufferSizeTo):
4019         (WTF::Malloc>::asanSetBufferSizeToFullCapacity):
4020         (WTF::Malloc>::asanBufferSizeWillChangeTo):
4021         (WTF::Malloc>::reserveCapacity):
4022         (WTF::Malloc>::tryReserveCapacity):
4023         (WTF::Malloc>::reserveInitialCapacity):
4024         (WTF::Malloc>::shrinkCapacity):
4025         (WTF::Malloc>::append):
4026         (WTF::Malloc>::tryAppend):
4027         (WTF::Malloc>::constructAndAppend):
4028         (WTF::Malloc>::tryConstructAndAppend):
4029         (WTF::Malloc>::appendSlowCase):
4030         (WTF::Malloc>::constructAndAppendSlowCase):
4031         (WTF::Malloc>::tryConstructAndAppendSlowCase):
4032         (WTF::Malloc>::uncheckedAppend):
4033         (WTF::Malloc>::uncheckedConstructAndAppend):
4034         (WTF::Malloc>::appendVector):
4035         (WTF::Malloc>::insert):
4036         (WTF::Malloc>::insertVector):
4037         (WTF::Malloc>::remove):
4038         (WTF::Malloc>::removeFirst):
4039         (WTF::Malloc>::removeFirstMatching):
4040         (WTF::Malloc>::removeAll):
4041         (WTF::Malloc>::removeAllMatching):
4042         (WTF::Malloc>::reverse):
4043         (WTF::Malloc>::map const):
4044         (WTF::Malloc>::releaseBuffer):
4045         (WTF::Malloc>::checkConsistency):
4046         (WTF::swap):
4047         (WTF::operator==):
4048         (WTF::operator!=):
4049         (WTF::Malloc>::isolatedCopy const):
4050         (WTF::removeRepeatedElements):
4051         (WTF::minCapacity>::Vector): Deleted.
4052         (WTF::minCapacity>::contains const): Deleted.
4053         (WTF::minCapacity>::findMatching const): Deleted.
4054         (WTF::minCapacity>::find const): Deleted.
4055         (WTF::minCapacity>::reverseFind const): Deleted.
4056         (WTF::minCapacity>::appendIfNotContains): Deleted.
4057         (WTF::minCapacity>::fill): Deleted.
4058         (WTF::minCapacity>::appendRange): Deleted.
4059         (WTF::minCapacity>::expandCapacity): Deleted.
4060         (WTF::minCapacity>::tryExpandCapacity): Deleted.
4061         (WTF::minCapacity>::resize): Deleted.
4062         (WTF::minCapacity>::resizeToFit): Deleted.
4063         (WTF::minCapacity>::shrink): Deleted.
4064         (WTF::minCapacity>::grow): Deleted.
4065         (WTF::minCapacity>::asanSetInitialBufferSizeTo): Deleted.
4066         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity): Deleted.
4067         (WTF::minCapacity>::asanBufferSizeWillChangeTo): Deleted.
4068         (WTF::minCapacity>::reserveCapacity): Deleted.
4069         (WTF::minCapacity>::tryReserveCapacity): Deleted.
4070         (WTF::minCapacity>::reserveInitialCapacity): Deleted.
4071         (WTF::minCapacity>::shrinkCapacity): Deleted.
4072         (WTF::minCapacity>::append): Deleted.
4073         (WTF::minCapacity>::tryAppend): Deleted.
4074         (WTF::minCapacity>::constructAndAppend): Deleted.
4075         (WTF::minCapacity>::tryConstructAndAppend): Deleted.
4076         (WTF::minCapacity>::appendSlowCase): Deleted.
4077         (WTF::minCapacity>::constructAndAppendSlowCase): Deleted.
4078         (WTF::minCapacity>::tryConstructAndAppendSlowCase): Deleted.
4079         (WTF::minCapacity>::uncheckedAppend): Deleted.
4080         (WTF::minCapacity>::uncheckedConstructAndAppend): Deleted.
4081         (WTF::minCapacity>::appendVector): Deleted.
4082         (WTF::minCapacity>::insert): Deleted.
4083         (WTF::minCapacity>::insertVector): Deleted.
4084         (WTF::minCapacity>::remove): Deleted.
4085         (WTF::minCapacity>::removeFirst): Deleted.
4086         (WTF::minCapacity>::removeFirstMatching): Deleted.
4087         (WTF::minCapacity>::removeAll): Deleted.
4088         (WTF::minCapacity>::removeAllMatching): Deleted.
4089         (WTF::minCapacity>::reverse): Deleted.
4090         (WTF::minCapacity>::map const): Deleted.
4091         (WTF::minCapacity>::releaseBuffer): Deleted.
4092         (WTF::minCapacity>::checkConsistency): Deleted.
4093         (WTF::minCapacity>::isolatedCopy const): Deleted.
4094         * wtf/text/CString.cpp:
4095         (WTF::CStringBuffer::createUninitialized):
4096         * wtf/text/CString.h:
4097         * wtf/text/StringBuffer.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
4098         * wtf/text/StringBuffer.h:
4099         (WTF::StringBuffer::StringBuffer):
4100         (WTF::StringBuffer::~StringBuffer):
4101         (WTF::StringBuffer::resize):
4102         (WTF::StringBuffer::release):
4103         * wtf/text/StringImpl.cpp:
4104         (WTF::StringImpl::~StringImpl):
4105         (WTF::StringImpl::destroy):
4106         (WTF::StringImpl::createUninitializedInternalNonEmpty):
4107         (WTF::StringImpl::reallocateInternal):
4108         * wtf/text/StringImpl.h:
4109         (WTF::StringImpl::StringImpl):
4110         (WTF::StringImpl::createSubstringSharingImpl):
4111         (WTF::StringImpl::tryCreateUninitialized):
4112         (WTF::StringImpl::adopt):
4113         * wtf/text/cf/StringImplCF.cpp:
4114         (WTF::StringWrapperCFAllocator::allocate):
4115         (WTF::StringWrapperCFAllocator::reallocate):
4116         (WTF::StringWrapperCFAllocator::deallocate):
4117
4118 2020-01-02  Dean Jackson  <dino@apple.com>
4119
4120         REGRESSION(r253926): Crash at libANGLE-shared.dylib: gl::LogMessage::~LogMessage
4121         https://bugs.webkit.org/show_bug.cgi?id=205690
4122         rdar://58279401
4123
4124         Reviewed by Eric Carlson.
4125
4126         Only enable ANGLE for iOS hardware while we investigate this fatal error.
4127
4128         * wtf/Platform.h:
4129
4130 2020-01-02  Sam Weinig  <weinig@apple.com>
4131
4132         Simplify StringBuilder API/align with makeString by removing appendFixed* functions and using FormatNumber struct instead
4133         https://bugs.webkit.org/show_bug.cgi?id=205671
4134
4135         Reviewed by Alex Christensen.
4136
4137         In an ongoing attempt to simplify the StringBuilder interface and unify it's functionality with makeString,
4138         this change removes appendFixedPrecisionNumber() and appendFixedWidthNumber(), replacing their uses
4139         with direct calls to append(), using a FormattedNumber object to direct it to the appropriate StringTypeAdapter.
4140
4141         * wtf/text/StringBuilder.h:
4142         * wtf/text/StringBuilder.cpp:
4143         (WTF::StringBuilder::appendFixedPrecisionNumber): Deleted.
4144         (WTF::StringBuilder::appendFixedWidthNumber): Deleted.
4145         Remove StringBuilder::appendFixedPrecisionNumber() and StringBuilder::appendFixedWidthNumber(). The same functionality
4146         is available and more flexible by passing FormattedNumbers to the variadic append() function.
4147         
4148         * wtf/text/TextStream.cpp:
4149         (WTF::TextStream::operator<<):
4150         * wtf/MediaTime.cpp:
4151         (WTF::MediaTime::toString const):
4152         Replace all uses of builder.appendFixedPrecisionNumber(...) with builder.append(FormattedNumber::fixedPrecision(...))
4153         and builder.appendFixedWidthNumber(...) with with builder.append(FormattedNumber::fixedWidth(...))
4154
4155 2019-12-20  Darin Adler  <darin@apple.com>
4156
4157         Tidy a bit of StringBuilder usage
4158         https://bugs.webkit.org/show_bug.cgi?id=205509
4159
4160         Reviewed by Sam Weinig.
4161
4162         * wtf/FileSystem.cpp:
4163         (WTF::FileSystemImpl::decodeFromFilename): Fix misleading variable name "hexDigit"
4164         for result of decoding "%+XXXX"; what's decoded is a character, not a hex digit.
4165
4166         * wtf/HexNumber.h: Remove unused appendUnsignedAsHexFixedSize function for
4167         destinations other than StringBuilder. Don't need it at this time, could add
4168         it later if we ever decide we do.
4169
4170         * wtf/text/StringBuilder.h:
4171         (WTF::StringBuilder::appendSubstring): Improved logic in appendSubstring so it
4172         will handle even absurd values for offset and length correctly, and added a
4173         default length of "infinity" just like in String::substring.
4174
4175         * wtf/text/StringImpl.cpp:
4176         (WTF::StringImpl::convertToLowercaseWithoutLocale): Use isASCII.
4177         (WTF::StringImpl::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit): Ditto.
4178
4179         * wtf/text/WTFString.cpp:
4180         (asciiDebug): Use StringBuilder to build the string; this was the one place that
4181         used appendUnsignedAsHexFixedSize on something else, and there is no need.
4182
4183 2019-12-30  youenn fablet  <youenn@apple.com>
4184
4185         Ignore URL host for schemes that are not using host information
4186         https://bugs.webkit.org/show_bug.cgi?id=205157
4187         <rdar://problem/57825963>
4188
4189         Reviewed by Darin Adler.
4190
4191         * wtf/URL.cpp:
4192         (WTF::URL::removeHostAndPort):
4193         * wtf/URL.h:
4194
4195 2019-12-25  Dean Jackson  <dino@apple.com>
4196
4197         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
4198         https://bugs.webkit.org/show_bug.cgi?id=205483
4199         rdar://56925821
4200
4201         Reviewed by Simon Fraser.
4202
4203         Turn USE_ANGLE on for Cocoa, with the exception of the simulator.
4204
4205         * wtf/Platform.h:
4206
4207 2019-12-24  Eric Carlson  <eric.carlson@apple.com>
4208
4209         [Media in GPU process] Enable media player proxy logging
4210         https://bugs.webkit.org/show_bug.cgi?id=205557
4211         <rdar://problem/58160932>
4212
4213         Reviewed by Youenn Fablet.
4214
4215         * wtf/Logger.h:
4216         (WTF::Logger::willLog const): Minor optimization: don't check m_enabled unnecessarily.
4217
4218 2019-12-23  Keith Miller  <keith_miller@apple.com>
4219
4220         DFG/FTL should be able to exit to the middle of a bytecode
4221         https://bugs.webkit.org/show_bug.cgi?id=205232
4222
4223         Reviewed by Saam Barati.
4224
4225         * WTF.xcodeproj/project.pbxproj:
4226         * wtf/Bitmap.h:
4227         (WTF::WordType>::invert):
4228         (WTF::WordType>::operator):
4229         (WTF::WordType>::operator const const):
4230         * wtf/CMakeLists.txt:
4231         * wtf/EnumClassOperatorOverloads.h: Added.
4232         * wtf/FastBitVector.h:
4233         (WTF::FastBitReference::operator bool const):
4234         (WTF::FastBitReference::operator|=):
4235         (WTF::FastBitReference::operator&=):
4236         (WTF::FastBitVector::fill):
4237         (WTF::FastBitVector::grow):
4238         * wtf/UnalignedAccess.h:
4239         (WTF::unalignedLoad):
4240         (WTF::unalignedStore):
4241
4242 2019-12-21  Antti Koivisto  <antti@apple.com>
4243
4244         Move Vector HashTraits to HashTraits.h to fix GCC build
4245         https://bugs.webkit.org/show_bug.cgi?id=205540
4246
4247         Reviewed by Zalan Bujtas.
4248
4249         GCC is stricter than LLVM with partial specializations
4250
4251         Error: partial specialization of struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >
4252         after instantiation of struct WTF::HashTraits<WTF::Vector<WTF::String> >
4253
4254         * wtf/HashTraits.h:
4255         * wtf/VectorHash.h:
4256
4257 2019-12-20  Truitt Savell  <tsavell@apple.com>
4258
4259         Unreviewed, rolling out r253820.
4260
4261         Broke Mac testing
4262
4263         Reverted changeset:
4264
4265         "Invalidate only affected elements after media query
4266         evaluation changes"
4267         https://bugs.webkit.org/show_bug.cgi?id=205392
4268         https://trac.webkit.org/changeset/253820
4269
4270 2019-12-20  Antti Koivisto  <antti@apple.com>
4271
4272         Invalidate only affected elements after media query evaluation changes
4273         https://bugs.webkit.org/show_bug.cgi?id=205392
4274
4275         Reviewed by Zalan Bujtas.
4276
4277         Fix GCC build error
4278
4279         Error: partial specialization of ‘struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >’
4280                after instantiation of ‘struct WTF::HashTraits<WTF::Vector<WTF::String> >’
4281
4282         * wtf/HashTraits.h:
4283         * wtf/VectorHash.h:
4284
4285         Move to HashTraits to HashTraits.h so it gets specialized before any instantiation.
4286
4287 2019-12-19  Antti Koivisto  <antti@apple.com>
4288
4289         Allow Vectors as hash keys
4290         https://bugs.webkit.org/show_bug.cgi?id=205449
4291
4292         Reviewed by Geoff Garen.
4293
4294         Add traits to allow Vectors of hashable types to act as hash keys.
4295
4296         * WTF.xcodeproj/project.pbxproj:
4297         * wtf/Vector.h:
4298         (WTF::Vector::Vector):
4299         (WTF::Vector::~Vector):
4300         (WTF::Vector::isHashTableDeletedValue const):
4301
4302         Use m_size = numeric_limits::max() as the deleted value.
4303
4304         * wtf/VectorHash.h: Added.
4305         (WTF::VectorHash::hash):
4306         (WTF::VectorHash::equal):
4307
4308         Add traits. Empty Vector is the empty value.
4309
4310 2019-12-19  Jer Noble  <jer.noble@apple.com>
4311
4312         Safely iterate observers in languageDidChange()
4313         https://bugs.webkit.org/show_bug.cgi?id=205452
4314         <rdar://problem/57937765>
4315
4316         Reviewed by Eric Carlson.
4317
4318         Use the "copyToVector() then verify each item is still in the original
4319         map" pattern to safely iterate over the observerMap().
4320
4321         * wtf/Language.cpp:
4322         (WTF::languageDidChange):
4323
4324 2019-12-18  Yusuke Suzuki  <ysuzuki@apple.com>
4325
4326         Unreviewed, build fix after r253730
4327         https://bugs.webkit.org/show_bug.cgi?id=204398
4328
4329         Thread::destructTLS is always required in POSIX environments
4330
4331         * wtf/Threading.h:
4332
4333 2019-12-18  Fujii Hironori  <Hironori.Fujii@sony.com>
4334
4335         [Win] Use thread_local to hold Ref<WTF::Thread> in the thread rather than using FLS
4336         https://bugs.webkit.org/show_bug.cgi?id=204398
4337
4338         Reviewed by Yusuke Suzuki.
4339
4340         Use thread_local which is faster than FLS.
4341
4342         * wtf/Threading.cpp:
4343         (WTF::initializeThreading):
4344         * wtf/Threading.h:
4345         (WTF::Thread::current):
4346         * wtf/ThreadingPrimitives.h: Deleted threadSpecificKeyCreate and
4347         related functions which aren't used now in Windows port. Deleted
4348         THREAD_SPECIFIC_CALL macro which isn't used now.
4349         * wtf/win/ThreadingWin.cpp: Added a thread_local variable s_threadHolder.
4350         (WTF::Thread::ThreadHolder::~ThreadHolder): Added.
4351         (WTF::Thread::currentMayBeNull):
4352         (WTF::Thread::initializeTLS): Store a reference of Thread into s_threadHolder.
4353         (WTF::Thread::initializeTLSKey): Deleted.
4354         (WTF::Thread::destructTLS): Deleted.
4355
4356 2019-12-18  Ben Nham  <nham@apple.com>
4357
4358         Add network loading signposts
4359         https://bugs.webkit.org/show_bug.cgi?id=204822
4360         <rdar://problem/57608824>
4361
4362         Reviewed by Alex Christensen.
4363
4364         This adds os_signposts related to network loads to aid in debugging networking performance
4365         issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
4366         internal builds when an environment variable is set.
4367
4368         * wtf/Platform.h:
4369         Add HAVE_OS_SIGNPOST.
4370
4371 2019-12-17  Myles C. Maxfield  <mmaxfield@apple.com>
4372
4373         [iOS] Update to use CTFontCreateForCharactersWithLanguageAndOption()
4374         https://bugs.webkit.org/show_bug.cgi?id=205310
4375
4376         Reviewed by Simon Fraser.
4377
4378         All our bots are on the appropriate OS version.
4379
4380         * wtf/Platform.h:
4381
4382 2019-12-17  Yusuke Suzuki  <ysuzuki@apple.com>
4383
4384         [JSC] 8Bit JSRopeString can contain 16Bit string in its rope
4385         https://bugs.webkit.org/show_bug.cgi?id=205323
4386
4387         Reviewed by Mark Lam.
4388
4389         * wtf/text/StringImpl.h:
4390         (WTF::StringImpl::copyCharacters):
4391
4392 2019-12-17  Tim Horton  <timothy_horton@apple.com>
4393
4394         macCatalyst: Cursor should update on mouse movement and style change
4395         https://bugs.webkit.org/show_bug.cgi?id=205317
4396         <rdar://problem/46793696>
4397
4398         Reviewed by Anders Carlsson.
4399
4400         * wtf/FeatureDefines.h:
4401         Make ENABLE_CURSOR_SUPPORT true on iOS, for macCatalyst. This results
4402         in it being true everywhere, so remove it.
4403
4404         Add a new ENABLE_CUSTOM_CURSOR_SUPPORT, indicating whether we support
4405         custom bitmap cursors. It covers the subset of ENABLE_CURSOR_SUPPORT
4406         code that we still don't support in macCatalyst.
4407
4408         * wtf/Platform.h:
4409         Add HAVE_HISERVICES (true on macOS but not macCatalyst) and
4410         HAVE_NSCURSOR (true on macOS and macCatalyst but not e.g. iOS).
4411
4412 2019-12-16  Yusuke Suzuki  <ysuzuki@apple.com>
4413
4414         [JSC] Remove ArrayBufferNeuteringWatchpointSet
4415         https://bugs.webkit.org/show_bug.cgi?id=205194
4416
4417         Reviewed by Saam Barati.
4418
4419         This patch adds PackedRef and PackedRefPtr. They are Ref and RefPtr, but its internal pointer is packed.
4420         So we can represent them in 6 bytes with 1 byte alignment.
4421
4422         * WTF.xcodeproj/project.pbxproj:
4423         * wtf/CMakeLists.txt:
4424         * wtf/Packed.h:
4425         (WTF::alignof):
4426         * wtf/PackedRef.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
4427         * wtf/PackedRefPtr.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
4428         * wtf/RefPtr.h:
4429         (WTF::RefPtr::operator UnspecifiedBoolType const):
4430         (WTF::RefPtr::unspecifiedBoolTypeInstance const):
4431
4432 2019-12-13  Saam Barati  <sbarati@apple.com>
4433
4434         Add a Heap::finalize function that takes WTF::Function<void()>
4435         https://bugs.webkit.org/show_bug.cgi?id=205211
4436
4437         Reviewed by Geoffrey Garen.
4438
4439         * wtf/Function.h:
4440         (WTF::Function<Out):
4441
4442 2019-12-13  Per Arne Vollan  <pvollan@apple.com>
4443
4444         [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
4445         https://bugs.webkit.org/show_bug.cgi?id=205134
4446         <rdar://problem/56984257>
4447
4448         Reviewed by Brent Fulgham.
4449
4450         Add enum value for the XPC service name filter type.
4451
4452         * wtf/spi/darwin/SandboxSPI.h:
4453
4454 2019-12-09  Fujii Hironori  <Hironori.Fujii@sony.com>
4455
4456         [MSVC] writeNumberToBufferUnsigned is unsafe for bool type
4457         https://bugs.webkit.org/show_bug.cgi?id=204873
4458
4459         Reviewed by Darin Adler.
4460
4461         MSVC reports warning for using / operator for bool type.
4462         > warning C4804: '/': unsafe use of type 'bool' in operation
4463
4464         And, 'bool' isn't expected to be serialized as '0' or '1'. 'bool' isn't supported.
4465
4466         * wtf/text/IntegerToStringConversion.h: Added a static_assert to ensure UnsignedIntegerType isn't bool.
4467
4468 2019-07-13  Darin Adler  <darin@apple.com>
4469
4470         Streamline PODIntervalTree code and remove ValueToString
4471         https://bugs.webkit.org/show_bug.cgi?id=199782
4472
4473         Reviewed by Anders Carlsson.
4474
4475         * WTF.xcodeproj/project.pbxproj: Remove ValueToString.h.
4476         * wtf/CMakeLists.txt: Ditto.
4477
4478         * wtf/MediaTime.cpp:
4479         (WTF::operator<<): Implement debug-only TextStream serialization
4480         based on toJSONString.
4481         * wtf/MediaTime.h: Ditto.
4482
4483         * wtf/text/ValueToString.h: Removed.
4484
4485 2019-12-06  Zan Dobersek  <zdobersek@igalia.com>
4486
4487         [GTK][WPE] Use bmalloc's memory footprint API for JSC heap growth management
4488         https://bugs.webkit.org/show_bug.cgi?id=204576
4489
4490         Reviewed by Saam Barati.
4491
4492         Add the new USE_BMALLOC_MEMORY_FOOTPRINT_API, enabled for the iOS-family
4493         ports and the Linux ports, as long as system malloc enforcement is
4494         disabled and bmalloc is subsequently built and used. The flag is used in
4495         JavaScriptCore to enable usage of bmalloc's memory footprint API for
4496         JSC heap growth control.
4497
4498         * wtf/Platform.h:
4499
4500 2019-12-05  Chris Dumez  <cdumez@apple.com>
4501
4502         [IPC] Fail ObjectIdentifier decoding if the decoded integer is not a valid ID
4503         https://bugs.webkit.org/show_bug.cgi?id=204921
4504         <rdar://problem/57677747>
4505
4506         Reviewed by Ryosuke Niwa.
4507
4508         * wtf/ObjectIdentifier.h:
4509         (WTF::ObjectIdentifier::decode):
4510
4511 2019-12-03  Sunny He  <sunny_he@apple.com>
4512
4513         Enable security assertions on all ASAN builds
4514         https://bugs.webkit.org/show_bug.cgi?id=204802
4515
4516         Reviewed by Ryosuke Niwa.
4517
4518         * wtf/FeatureDefines.h:
4519
4520 2019-12-03  Christopher Reid  <chris.reid@sony.com>
4521
4522         Regular expression hangs in Safari only
4523         https://bugs.webkit.org/show_bug.cgi?id=202882
4524         <rdar://problem/56236654>
4525
4526         Reviewed by Yusuke Suzuki.
4527
4528         BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
4529         if multiple large pools are deallocated and a new capacity does not
4530         fit in the deallocated pools. BumpPointerPool should try using
4531         more pools if the next one isn't large enough.
4532
4533         * wtf/BumpPointerAllocator.h:
4534         (WTF::BumpPointerPool::ensureCapacityCrossPool):
4535
4536 2019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>
4537
4538         Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
4539         https://bugs.webkit.org/show_bug.cgi?id=204666
4540
4541         Reviewed by Ross Kirsling and Don Olmstead.
4542
4543         * wtf/FeatureDefines.h:
4544
4545 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
4546
4547         [Win] Update KeyboardEvent as per the latest specification
4548         https://bugs.webkit.org/show_bug.cgi?id=202183
4549
4550         Reviewed by Ross Kirsling.
4551
4552         * wtf/FeatureDefines.h:
4553
4554 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
4555
4556         Add DefaultHash<OptionSet<T>> and HashTrait<OptionSet<T>> specializations
4557         https://bugs.webkit.org/show_bug.cgi?id=204562
4558
4559         Reviewed by Daniel Bates.
4560
4561         * WTF.xcodeproj/project.pbxproj: Added OptionSetHash.h
4562         * wtf/CMakeLists.txt: Ditto.
4563         * wtf/OptionSet.h: Made StorageType public, and use C++14 types.
4564         * wtf/OptionSetHash.h: Added.
4565         (WTF::DefaultHash<OptionSet<T>>::Hash::hash):
4566         (WTF::DefaultHash<OptionSet<T>>::Hash::equal):
4567         (WTF::HashTraits<OptionSet<T>>::emptyValue):
4568         (WTF::HashTraits<OptionSet<T>>::constructDeletedValue):
4569         (WTF::HashTraits<OptionSet<T>>::isDeletedValue):
4570
4571 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
4572
4573         REGRESSION(r252770): [GTK][WPE] Remote inspector no longer works if debugger is in a different kind of system
4574         https://bugs.webkit.org/show_bug.cgi?id=204572
4575
4576         Reviewed by Žan Doberšek.
4577
4578         This patch adds the following changes:
4579
4580          - Use uint32_t instead of size_t to store the body size in the message header, because size_t has a different
4581            size in 32 and 64 bit platforms.
4582          - Use htonl/ntohl to write/read the body size in the header.
4583          - Add a flags byte to the header to include the message byte order. The sender always uses the host byter order
4584            and the receiver does the byte swapping if needed.
4585
4586         * wtf/glib/SocketConnection.cpp:
4587         (WTF::messageIsByteSwapped):
4588         (WTF::SocketConnection::readMessage):
4589         (WTF::SocketConnection::sendMessage):
4590
4591 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
4592
4593         REGRESSION(r252770): [GTK][WPE] Remote inspector broken in debug builds after r252770
4594         https://bugs.webkit.org/show_bug.cgi?id=204569
4595
4596         Reviewed by Žan Doberšek.
4597
4598         We need to call relaxAdoptionRequirement() in SocketConnection constructor because we are taking a reference for
4599         the read monitor lambda.
4600
4601         * wtf/glib/SocketConnection.cpp:
4602         (WTF::SocketConnection::SocketConnection):
4603
4604 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
4605
4606         Ran sort-Xcode-project-file.
4607
4608         Unreviewed.
4609
4610         * WTF.xcodeproj/project.pbxproj:
4611
4612 2019-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
4613
4614         Unreviewed. Try to fix the GTK WebDriver tests in the bots after r252770
4615
4616         They are failing in the bots because g_variant_new_from_data() is failing due to the given data not being
4617         properly aligned for the type being loaded. This is not a problem since GLib 2.60 that checks the alignment and
4618         reallocates the buffer in aligned memory only if needed. For previous versions we need to ensure the memory we
4619         pass to g_variant_new_from_data() is aligned.
4620
4621         * wtf/glib/SocketConnection.cpp:
4622         (WTF::SocketConnection::readMessage):
4623
4624 2019-11-22  Brent Fulgham  <bfulgham@apple.com>
4625
4626         Unreviewed FTW build fix after r252687.
4627
4628         * wtf/PlatformFTW.cmake:
4629
4630 2019-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>
4631
4632         [GTK][WPE] RemoteInspector: use sockets instead of DBus
4633         https://bugs.webkit.org/show_bug.cgi?id=204503
4634
4635         Reviewed by Žan Doberšek.
4636
4637         Add SocketConnection class.
4638
4639         * wtf/PlatformGTK.cmake:
4640         * wtf/PlatformWPE.cmake:
4641         * wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp.
4642         (WTF::GSocketMonitor::start):
4643         * wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h.
4644         (WTF::GSocketMonitor::isActive const):
4645         * wtf/glib/GTypedefs.h:
4646         * wtf/glib/GUniquePtr.h:
4647         * wtf/glib/SocketConnection.cpp: Added.
4648         (WTF::SocketConnection::SocketConnection):
4649         (WTF::SocketConnection::~SocketConnection):
4650         (WTF::SocketConnection::read):
4651         (WTF::SocketConnection::readMessage):
4652         (WTF::SocketConnection::sendMessage):
4653         (WTF::SocketConnection::write):
4654         (WTF::SocketConnection::waitForSocketWritability):
4655         (WTF::SocketConnection::close):
4656         (WTF::SocketConnection::didClose):
4657         * wtf/glib/SocketConnection.h: Added.
4658         (WTF::SocketConnection::create):
4659         (WTF::SocketConnection::isClosed const):
4660
4661 2019-11-21  Yusuke Suzuki  <ysuzuki@apple.com>
4662
4663         Unreviewed, rolling in again, regression is not caused by it
4664         https://bugs.webkit.org/show_bug.cgi?id=202471
4665
4666         * wtf/text/StringCommon.h:
4667         (WTF::findCommon):
4668
4669 2019-11-21  Commit Queue  <commit-queue@webkit.org>
4670
4671         Unreviewed, rolling out r252683 and r252721.
4672         https://bugs.webkit.org/show_bug.cgi?id=204475
4673
4674         13% regression in JetStream2/prepack-wtb (Requested by
4675         yusukesuzuki on #webkit).
4676
4677         Reverted changesets:
4678
4679         "Implement String.prototype.replaceAll"
4680         https://bugs.webkit.org/show_bug.cgi?id=202471
4681         https://trac.webkit.org/changeset/252683
4682
4683         "Unreviewed, address Darin's feedback on r252683."
4684         https://trac.webkit.org/changeset/252721
4685
4686 2019-11-21  Tuomas Karkkainen  <tuomas.webkit@apple.com>
4687
4688         add ASSERT_NOT_REACHED_WITH_MESSAGE and RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE
4689         https://bugs.webkit.org/show_bug.cgi?id=204445
4690
4691         Reviewed by Antti Koivisto.
4692
4693         Add assertions that combine ASSERT_NOT_REACHED and ASSERT_WITH_MESSAGE.
4694
4695         * wtf/Assertions.h:
4696
4697 2019-11-20  Ross Kirsling  <ross.kirsling@sony.com>
4698
4699         Unreviewed, address Darin's feedback on r252683.
4700
4701         * wtf/text/StringCommon.h:
4702         (WTF::findCommon):
4703
4704 2019-11-20  ChangSeok Oh  <changseok@webkit.org>
4705
4706         [GTK] Add ANGLE backend to GTK port
4707         https://bugs.webkit.org/show_bug.cgi?id=199060
4708
4709         Reviewed by Žan Doberšek.
4710
4711         The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
4712         and ANGLE has an egl context for WebGL. We want to make both live together
4713         so an exception is made where TEXTURE_MAPPER is enabled.
4714
4715         * wtf/Platform.h:
4716
4717 2019-11-20  Fujii Hironori  <Hironori.Fujii@sony.com>
4718
4719         [Win] Implement WTF::ThreadSpecific in WTF::Thread
4720         https://bugs.webkit.org/show_bug.cgi?id=204341
4721
4722         Reviewed by Brent Fulgham and Yusuke Suzuki.
4723
4724         Thread::destructTLS had a tricky code to defer destroying
4725         WTF::Thread in TLS in order to ensure WTF::Thread is destructed
4726         after other ThreadSpecific are destructed, which is a part of
4727         cause of nasty hanging issue in the process termination (Bug 204192).
4728
4729         This change implements WTF::ThreadSpecific in WTF::Thread by
4730         adding a new class Thread::SpecificStorage to manage TLS. Simplify
4731         Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp
4732
4733         * wtf/PlatformWin.cmake:
4734         * wtf/ThreadSpecific.h:
4735         (WTF::canBeGCThread>::ThreadSpecific):
4736         (WTF::canBeGCThread>::get):
4737         (WTF::canBeGCThread>::setInTLS):
4738         (WTF::canBeGCThread>::destroy):
4739         (WTF::canBeGCThread>::~ThreadSpecific): Deleted.
4740         * wtf/Threading.h:
4741         (WTF::Thread::specificStorage):
4742         (WTF::Thread::current):
4743         * wtf/win/ThreadSpecificWin.cpp: Removed.
4744         * wtf/win/ThreadingWin.cpp:
4745         (WTF::Thread::initializeTLSKey):
4746         (WTF::Thread::initializeTLS):
4747         (WTF::Thread::destructTLS):
4748         (WTF::Thread::SpecificStorage::allocateKey):
4749         (WTF::Thread::SpecificStorage::get):
4750         (WTF::Thread::SpecificStorage::set):
4751         (WTF::Thread::SpecificStorage::destroySlots):
4752         (): Deleted.
4753         (WTF::Thread::currentDying): Deleted.
4754         (WTF::Thread::get): Deleted.
4755
4756 2019-11-19  Ross Kirsling  <ross.kirsling@sony.com>
4757
4758         Implement String.prototype.replaceAll
4759         https://bugs.webkit.org/show_bug.cgi?id=202471
4760
4761         Reviewed by Yusuke Suzuki.
4762
4763         * wtf/text/StringCommon.h:
4764         (WTF::findCommon):
4765         Fix logic: "start > length" early out should come before "empty search string" early out.
4766
4767 2019-11-19  Yusuke Suzuki  <ysuzuki@apple.com>
4768
4769         [IndexedDB] IndexedDB's threading assertion should respect Web thread
4770         https://bugs.webkit.org/show_bug.cgi?id=204346
4771
4772         Reviewed by Daniel Bates.
4773
4774         * wtf/MainThread.cpp:
4775         (WTF::canCurrentThreadAccessThreadLocalData):
4776         (WTF::canAccessThreadLocalDataForThread): Deleted.
4777         * wtf/MainThread.h:
4778         * wtf/cocoa/MainThreadCocoa.mm:
4779         (WTF::canCurrentThreadAccessThreadLocalData):
4780         (WTF::canAccessThreadLocalDataForThread): Deleted.
4781
4782 2019-11-18  Fujii Hironori  <Hironori.Fujii@sony.com>
4783
4784         Remove self-defined C++14 features in StdLibExtras.h
4785         https://bugs.webkit.org/show_bug.cgi?id=204220
4786
4787         Reviewed by Ross Kirsling.
4788
4789         Remove std::conjunction, std::in_place_t and std::make_unique definitions.
4790         Remove unsued std::clz.
4791
4792         * wtf/StdLibExtras.h:
4793         (std::make_unique): Deleted.
4794         (std::exchange): Deleted.
4795         (std::clz): Deleted.
4796
4797 2019-11-18  Alex Christensen  <achristensen@webkit.org>
4798
4799         Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available
4800         https://bugs.webkit.org/show_bug.cgi?id=204159
4801         <rdar://problem/45894288>
4802
4803         Reviewed by Darin Adler.
4804
4805         * wtf/Platform.h:
4806
4807 2019-11-15  Yusuke Suzuki  <ysuzuki@apple.com>
4808
4809         [JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
4810         https://bugs.webkit.org/show_bug.cgi?id=204269
4811
4812         Reviewed by Saam Barati.
4813
4814         * wtf/MathExtras.h:
4815         (WTF::computeIndexingMask): Deleted.
4816         (WTF::preciseIndexMaskShiftForSize): Deleted.
4817         (WTF::preciseIndexMaskShift): Deleted.
4818         (WTF::opaque): Deleted.
4819         (WTF::preciseIndexMaskPtr): Deleted.
4820
4821 2019-11-14  Yusuke Suzuki  <ysuzuki@apple.com>
4822
4823         [JSC] BlockDirectory's bits should be compact
4824         https://bugs.webkit.org/show_bug.cgi?id=204149
4825
4826         Reviewed by Robin Morisset.
4827
4828         * wtf/FastBitVector.h:
4829         (WTF::fastBitVectorArrayLength):
4830         (WTF::FastBitVectorImpl::unsafeWords):
4831         (WTF::FastBitVectorImpl::unsafeWords const):
4832         (WTF::FastBitReference::FastBitReference):
4833         (WTF::FastBitReference::operator bool const):
4834         (WTF::FastBitReference::operator=):
4835         (WTF::FastBitVector::at):
4836         (WTF::FastBitVector::operator[]):
4837         (WTF::FastBitVector::BitReference::BitReference): Deleted.
4838         (WTF::FastBitVector::BitReference::operator bool const): Deleted.
4839         (WTF::FastBitVector::BitReference::operator=): Deleted.
4840
4841 2019-11-11  Ross Kirsling  <ross.kirsling@sony.com>
4842
4843         UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
4844         https://bugs.webkit.org/show_bug.cgi?id=204032
4845
4846         Reviewed by Yusuke Suzuki.
4847
4848         We have code assuming that the world's time zones haven't changed in the past decade,
4849         but Samoa changed from UTC-11 to UTC+13 at the beginning of 2012.
4850
4851         (Note: "Samoa" here means the Independent State of Samoa (Pacific/Apia) and not American Samoa (Pacific/Samoa).
4852                See https://en.wikipedia.org/wiki/Time_in_Samoa for more information.)
4853
4854         * wtf/DateMath.cpp:
4855         (WTF::calculateUTCOffset):
4856         Update "canned date" from 2009 to 2019.
4857
4858 2019-11-07  Mark Lam  <mark.lam@apple.com>
4859
4860         Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
4861         https://bugs.webkit.org/show_bug.cgi?id=203936
4862         <rdar://problem/56624724>
4863
4864         Reviewed by Saam Barati.
4865
4866         1. Add a StackCheck utility class so that we don't have to keep reinventing this
4867            every time we need to add stack checking somewhere.
4868         2. Rename some arguments and constants in StackBounds to be more descriptive of
4869            what they actually are.
4870
4871         * WTF.xcodeproj/project.pbxproj:
4872         * wtf/CMakeLists.txt:
4873         * wtf/StackBounds.h:
4874         (WTF::StackBounds::recursionLimit const):
4875         * wtf/StackCheck.h: Added.
4876         (WTF::StackCheck::StackCheck):
4877         (WTF::StackCheck::isSafeToRecurse):
4878
4879 2019-11-06  Mark Lam  <mark.lam@apple.com>
4880
4881         Remove remnants of support code for an upwards growing stack.
4882         https://bugs.webkit.org/show_bug.cgi?id=203942
4883
4884         Reviewed by Yusuke Suzuki.
4885
4886         We haven't supported an upwards growing stack in years, and a lot of code has
4887         since been written specifically with only a downwards growing stack in mind (e.g.
4888         the LLInt, the JITs).  Also, all our currently supported platforms use a downward
4889         growing stack.
4890
4891         We should remove the remnants of support code for an upwards growing stack.  The
4892         presence of that code is deceptive in that it conveys support for an upwards
4893         growing stack where this hasn't been the case in years.
4894
4895         * wtf/StackBounds.cpp:
4896         (WTF::StackBounds::newThreadStackBounds):
4897         (WTF::StackBounds::currentThreadStackBoundsInternal):
4898         (WTF::StackBounds::stackDirection): Deleted.
4899         (WTF::testStackDirection2): Deleted.
4900         (WTF::testStackDirection): Deleted.
4901         * wtf/StackBounds.h:
4902         (WTF::StackBounds::size const):
4903         (WTF::StackBounds::contains const):
4904         (WTF::StackBounds::recursionLimit const):
4905         (WTF::StackBounds::StackBounds):
4906         (WTF::StackBounds::isGrowingDownwards const):
4907         (WTF::StackBounds::checkConsistency const):
4908         (WTF::StackBounds::isGrowingDownward const): Deleted.
4909         * wtf/StackStats.cpp:
4910         (WTF::StackStats::CheckPoint::CheckPoint):
4911         (WTF::StackStats::CheckPoint::~CheckPoint):
4912         (WTF::StackStats::probe):
4913         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
4914
4915 2019-11-05  Mark Lam  <mark.lam@apple.com>
4916
4917         WTF::RunLoop should not depend on isMainThread() idiom.
4918         https://bugs.webkit.org/show_bug.cgi?id=203873
4919         <rdar://problem/56524251>
4920
4921         Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.
4922
4923         The isMainThread() idiom is only meaningful for WebCore.  It is less meaningful
4924         for JSC since a VM instance can be entered from multiple threads, as long as only
4925         one thread enters it at any time.  Hence, the concept of a main thread doesn't
4926         make sense at the JSC level.
4927
4928         Since r251036, we started using a WTF::String to represent the RunLoop mode.
4929         This caused problems for JSC clients when USE(CF) since it necessitated the use of
4930         StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
4931         the WTF::String.
4932
4933         To fix this problem, we should restore the original behavior of using CFStringRefs
4934         as the RunLoop mode token.
4935
4936         * wtf/RunLoop.h:
4937         (WTF::RunLoop::cycle): Deleted.
4938         * wtf/cf/RunLoopCF.cpp:
4939         (WTF::RunLoop::cycle):
4940         * wtf/generic/RunLoopGeneric.cpp:
4941         (WTF::RunLoop::cycle):
4942         * wtf/glib/RunLoopGLib.cpp:
4943         (WTF::RunLoop::cycle):
4944         * wtf/win/RunLoopWin.cpp:
4945         (WTF::RunLoop::cycle):
4946
4947 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
4948
4949         Add definitions of ANSI colors for colorful log output
4950         https://bugs.webkit.org/show_bug.cgi?id=203805
4951
4952         Reviewed by Saam Barati.
4953
4954         * WTF.xcodeproj/project.pbxproj:
4955         * wtf/AnsiColors.h: Added.
4956         * wtf/CMakeLists.txt:
4957
4958 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
4959
4960         move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore
4961         https://bugs.webkit.org/show_bug.cgi?id=203803
4962
4963         Reviewed by Saam Barati.
4964
4965         * WTF.xcodeproj/project.pbxproj:
4966         * wtf/PlatformMac.cmake:
4967         * wtf/cocoa/CrashReporter.cpp: Added.
4968         (WTF::setCrashLogMessage):
4969         * wtf/cocoa/CrashReporter.h: Added.
4970         * wtf/spi/cocoa/CrashReporterClientSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/CrashReporterClientSPI.h.
4971
4972 2019-11-02  Devin Rousso  <drousso@apple.com>
4973
4974         Web Inspector: Add diagnostic logging for frontend feature usage
4975         https://bugs.webkit.org/show_bug.cgi?id=203579
4976         <rdar://problem/56717410>
4977
4978         Reviewed by Brian Burg.
4979
4980         Original patch by Matt Baker <mattbaker@apple.com>.
4981
4982         * wtf/FeatureDefines.h:
4983         Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.
4984
4985 2019-11-01  Devin Rousso  <drousso@apple.com>
4986
4987         Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
4988         https://bugs.webkit.org/show_bug.cgi?id=203651
4989         <rdar://problem/56128726>
4990
4991         Reviewed by Brian Burg.
4992
4993         * wtf/Markable.h:
4994         (WTF::operator==):
4995         (WTF::operator!=):
4996         Add extra utility operators.
4997
4998 2019-10-31  Tim Horton  <timothy_horton@apple.com>
4999
5000         Turn on IOSurface support in the iOS Simulator
5001         https://bugs.webkit.org/show_bug.cgi?id=203026
5002         <rdar://problem/56320993>
5003
5004         Reviewed by Simon Fraser.
5005
5006         * wtf/Platform.h:
5007         Turn on HAVE(IOSURFACE) and USE(IOSURFACE_CANVAS_BACKING_STORE) in the simulator.
5008         Add HAVE(IOSURFACE_COREIMAGE_SUPPORT).
5009
5010 2019-10-31  Jer Noble  <jer.noble@apple.com>
5011
5012         [EME] Batch multiple key requests into one request and response
5013         https://bugs.webkit.org/show_bug.cgi?id=203580
5014         <rdar://problem/54853345>
5015
5016         Reviewed by Eric Carlson.
5017
5018         Support appending an r-value reference Vector to another.
5019
5020         * wtf/Vector.h:
5021         (WTF::minCapacity>::appendVector):
5022
5023 2019-10-31  Alex Christensen  <achristensen@webkit.org>
5024
5025         Remove unneeded HAVE_TIMINGDATAOPTIONS
5026         https://bugs.webkit.org/show_bug.cgi?id=202990
5027
5028         Reviewed by Brady Eidson.
5029
5030         * wtf/Platform.h:
5031
5032 2019-10-31  Yusuke Suzuki  <ysuzuki@apple.com>
5033
5034         [JSC] DateMath should have TimeClipped version
5035         https://bugs.webkit.org/show_bug.cgi?id=203550
5036
5037         Reviewed by Saam Barati.
5038
5039         We found that our Date constructor is slow because GregorianDateTime calculation takes so long.
5040         We are doing many `fmod`, floating division, `floor` etc. These operations, in particular `fmod`, takes
5041         very long time. As a result, 30% of JetStream2/date-format-xparb is taken by `fmod` function.
5042
5043         But since we are performance timeClip operation, double value in DateInstance is always Int52. We should
5044         have integer version of GregorianDateTime calculation which avoids many unnecessary fmod etc.
5045
5046         While integer division is truncate-to-zero, many Date calculation requires `floor(value / xxx)`. For now,
5047         we use integer fast path only when the value is Int52 and positive.
5048
5049         We see 10~ % improvement in JetStream2/date-format-xparb-SP (from 201 to 239).
5050
5051         * wtf/DateMath.cpp:
5052         (WTF::isLeapYear): Deleted.
5053         (WTF::daysInYear): Deleted.
5054         (WTF::daysFrom1970ToYear): Deleted.
5055         (WTF::msToDays): Deleted.
5056         (WTF::msToYear): Deleted.
5057         (WTF::dayInYear): Deleted.
5058         (WTF::msToMinutes): Deleted.
5059         (WTF::msToHours): Deleted.
5060         (WTF::monthFromDayInYear): Deleted.
5061         (WTF::checkMonth): Deleted.
5062         (WTF::dayInMonthFromDayInYear): Deleted.
5063         (WTF::dateToDaysFrom1970): Deleted.
5064         (WTF::timeClip): Deleted.
5065         * wtf/DateMath.h:
5066         (WTF::TimeClippedPositiveMilliseconds::TimeClippedPositiveMilliseconds):
5067         (WTF::TimeClippedPositiveMilliseconds::value const):
5068         (WTF::TimeClippedPositiveMilliseconds::asDouble const):
5069         (WTF::timeClip):
5070         (WTF::daysFrom1970ToYear):
5071         (WTF::daysFrom1970ToYearTimeClippedPositive):
5072         (WTF::isLeapYear):
5073         (WTF::daysInYear):
5074         (WTF::msToDays):
5075         (WTF::dayInYear):
5076         (WTF::dateToDaysFrom1970):
5077         (WTF::msToYear):
5078         (WTF::msToMinutes):
5079         (WTF::msToHours):
5080         (WTF::msToSeconds):
5081         (WTF::msToWeekDay):
5082         (WTF::monthFromDayInYear):
5083         (WTF::dayInMonthFromDayInYear):
5084         * wtf/GregorianDateTime.cpp:
5085         (WTF::GregorianDateTime::GregorianDateTime):
5086         * wtf/GregorianDateTime.h:
5087
5088 2019-10-30  Alex Christensen  <achristensen@webkit.org>
5089
5090         Prevent Mac CMake build from bit rotting
5091         https://bugs.webkit.org/show_bug.cgi?id=203647
5092
5093         Reviewed by Tim Horton.
5094
5095         * wtf/PlatformMac.cmake:
5096
5097 2019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>
5098
5099         [JSC] Date functions should have intrinsic
5100         https://bugs.webkit.org/show_bug.cgi?id=202187
5101
5102         Reviewed by Keith Miller.
5103
5104         * wtf/DateMath.h:
5105         * wtf/GregorianDateTime.cpp:
5106         (WTF::GregorianDateTime::setToCurrentLocalTime):
5107         * wtf/GregorianDateTime.h:
5108
5109 2019-10-30  Per Arne Vollan  <pvollan@apple.com>
5110
5111         It should be possible to create a mach sandbox extension for the WebContent process before the audit token is known
5112         https://bugs.webkit.org/show_bug.cgi?id=203618
5113
5114         Reviewed by Brent Fulgham.
5115
5116         Added SPI to create mach extension without PID or audit token.
5117
5118         * wtf/spi/darwin/SandboxSPI.h:
5119
5120 2019-10-30  Daniel Bates  <dabates@apple.com>
5121
5122         Add pretty printer for CompactPointerTuple
5123         https://bugs.webkit.org/show_bug.cgi?id=203495
5124
5125         Reviewed by Jer Noble.
5126
5127         #include <wtf/FastMalloc.h> for the definition of WTF_MAKE_FAST_ALLOCATED.
5128
5129         * wtf/CompactPointerTuple.h:
5130
5131 2019-10-29  Yusuke Suzuki  <ysuzuki@apple.com>
5132
5133         [JSC] Add fast path for String#localeCompare
5134         https://bugs.webkit.org/show_bug.cgi?id=202676
5135
5136         Reviewed by Mark Lam.
5137
5138         * wtf/text/StringView.h:
5139         (WTF::StringView::isAllASCII const):
5140
5141 2019-10-26  Chris Lord  <clord@igalia.com>
5142
5143         Put OffscreenCanvas behind a build flag
5144         https://bugs.webkit.org/show_bug.cgi?id=203146
5145
5146         Reviewed by Ryosuke Niwa.
5147
5148         * wtf/FeatureDefines.h:
5149
5150 2019-10-25  Andy Estes  <aestes@apple.com>
5151
5152         [Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
5153         https://bugs.webkit.org/show_bug.cgi?id=203396
5154
5155         Reviewed by Alex Christensen.
5156
5157         * wtf/FeatureDefines.h: Defined ENABLE_PREVIEW_CONVERTER.
5158
5159 2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>
5160
5161         [JSC] Figure out missing prepareCallOperation
5162         https://bugs.webkit.org/show_bug.cgi?id=203285
5163
5164         Reviewed by Mark Lam.
5165
5166         Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.
5167
5168         * wtf/Platform.h:
5169
5170 2019-10-23  Tim Horton  <timothy_horton@apple.com>
5171
5172         macCatalyst: Should dispatch contextmenu event on right click
5173         https://bugs.webkit.org/show_bug.cgi?id=203316
5174         <rdar://problem/54617376>
5175
5176         Reviewed by Wenson Hsieh.
5177
5178         * wtf/FeatureDefines.h:
5179
5180 2019-10-23  Truitt Savell  <tsavell@apple.com>
5181
5182         Unreviewed, rolling out r251261.
5183
5184         This broke multiple tests
5185
5186         Reverted changeset:
5187
5188         "Using version 1 CFRunloopSource for faster task dispatch"
5189         https://bugs.webkit.org/show_bug.cgi?id=202874
5190         https://trac.webkit.org/changeset/251261
5191
5192 2019-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
5193
5194         [iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan
5195         https://bugs.webkit.org/show_bug.cgi?id=203345
5196
5197         Reviewed by Simon Fraser.
5198
5199         * wtf/Platform.h:
5200
5201 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
5202
5203         Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
5204         https://bugs.webkit.org/show_bug.cgi?id=203274
5205
5206         Reviewed by Saam Barati.
5207
5208         * wtf/Platform.h:
5209
5210 2019-10-22  Antti Koivisto  <antti@apple.com>
5211
5212         operator==(Vector, Vector) should work with different inline capacities
5213         https://bugs.webkit.org/show_bug.cgi?id=203245
5214
5215         Reviewed by Alex Christensen.
5216
5217         Also allow different overflow behavior and minimum capacity.
5218
5219         * wtf/Vector.h:
5220         (WTF::operator==):
5221         (WTF::operator!=):
5222
5223 2019-10-22  Rob Buis  <rbuis@igalia.com>
5224
5225         https://bugs.webkit.org/show_bug.cgi?id=169667
5226         URL: protocol setter needs to be more restrictive around file
5227
5228         Reviewed by Alex Christensen.
5229
5230         Restrict setting protocol to "file" as indictaed in the spec [1].
5231
5232         Test: imported/w3c/web-platform-tests/url/url-setters.html
5233
5234         [1] https://url.spec.whatwg.org/#scheme-state steps 2.1.3 and 2.1.4.
5235
5236         * wtf/URL.cpp:
5237         (WTF::URL::setProtocol):
5238
5239 2019-10-21  Tim Horton  <timothy_horton@apple.com>
5240
5241         macCatalyst: Swipe navigation gestures do not work
5242         https://bugs.webkit.org/show_bug.cgi?id=203205
5243         <rdar://problem/54617473>
5244
5245         Reviewed by Wenson Hsieh.
5246
5247         * wtf/Platform.h:
5248         Add a new HAVE.
5249
5250 2019-10-20  Mark Lam  <mark.lam@apple.com>
5251
5252         Remove all uses of untagCodePtr in debugging code.
5253         https://bugs.webkit.org/show_bug.cgi?id=203188
5254         <rdar://problem/56453043> 
5255
5256         Reviewed by Yusuke Suzuki.
5257
5258         We want the ability to always assert on failure to authenticate in untagCodePtr
5259         (though we don't currently do that yet).
5260
5261         * wtf/PtrTag.cpp:
5262         (WTF::tagForPtr):
5263         * wtf/PtrTag.h:
5264         (WTF::retagCodePtrImpl):
5265         (WTF::tagCFunctionPtrImpl):
5266         (WTF::untagCFunctionPtrImpl):
5267         (WTF::assertIsCFunctionPtr):
5268         (WTF::isTaggedWith):
5269
5270 2019-10-19  Simon Fraser  <simon.fraser@apple.com>
5271
5272         Add support to TextStream for dumping HashMap<> and HashSet<>
5273         https://bugs.webkit.org/show_bug.cgi?id=202969
5274
5275         Reviewed by Dean Jackson.
5276         
5277         Make it possible to output HashMap<> and HashSet<> to TextStream,
5278         so long as key and value types are streamable. Also implement operator<<(char)
5279         so that chars show as ASCII, rather than numbers.
5280
5281         * wtf/text/TextStream.cpp:
5282         (WTF::TextStream::operator<<):
5283         * wtf/text/TextStream.h:
5284         (WTF::operator<<):
5285
5286 2019-10-18  Yusuke Suzuki  <ysuzuki@apple.com>
5287
5288         [JSC] Make ConcurrentJSLock Lock even if ENABLE_CONCURRENT_JS=OFF
5289         https://bugs.webkit.org/show_bug.cgi?id=202892
5290
5291         Reviewed by Mark Lam.
5292
5293         BaselineJIT also has concurrent compiler. ENABLE(CONCURRENT_JS) should not rely on ENABLE(DFG_JIT).
5294         It should rely on ENABLE(JIT) instead.
5295
5296         * wtf/Platform.h:
5297
5298 2019-10-17  Mark Lam  <mark.lam@apple.com>
5299
5300         Use constexpr in more places and remove some unnecessary external linkage.
5301         https://bugs.webkit.org/show_bug.cgi?id=203115
5302
5303         Reviewed by Yusuke Suzuki.
5304
5305         Also removed unused lockSpinLimit in Threading.h.
5306
5307         * wtf/MD5.h:
5308         * wtf/SHA1.h:
5309         * wtf/StackBounds.h:
5310         * wtf/Threading.h:
5311
5312 2019-10-17  Sihui Liu  <sihui_liu@apple.com>
5313
5314         Using version 1 CFRunloopSource for faster task dispatch
5315         https://bugs.webkit.org/show_bug.cgi?id=202874
5316
5317         Reviewed by Geoffrey Garen.
5318
5319         We used CFRunLoopWakeUp to wake up runloop to process source, which seems to be slow according to profiling. To 
5320         avoid calling CFRunLoopWakeUp, we should use version 1 CFRunloopSource instead of version 0. This patch brings
5321         about 15% speedup for test PerformanceTests/IndexedDB/basic/objectstore-get.html.
5322
5323         * wtf/RunLoop.cpp:
5324         (WTF::RunLoop::initializeWebRunLoop):
5325         (WTF::RunLoop::web):
5326         * wtf/RunLoop.h:
5327         * wtf/cf/RunLoopCF.cpp:
5328         (WTF::RunLoop::performWork):
5329         (WTF::RunLoop::RunLoop):
5330         (WTF::RunLoop::~RunLoop):
5331         (WTF::RunLoop::wakeUp):
5332         * wtf/cocoa/MainThreadCocoa.mm:
5333         (WTF::initializeMainThreadPlatform):
5334         (WTF::scheduleDispatchFunctionsOnMainThread):
5335         (WTF::initializeWebThread):
5336         (-[JSWTFMainThreadCaller call]): Deleted.
5337
5338 2019-10-16  Wenson Hsieh  <wenson_hsieh@apple.com>
5339
5340         Unreviewed, fix the internal macOS 10.13 and 10.14 builds after r251171
5341
5342         * wtf/Platform.h: Add a HAVE() macro for AXClientType, which is only available on macOS 10.15+ SDKs.
5343
5344 2019-10-15  Chris Dumez  <cdumez@apple.com>
5345
5346         [macOS] Simplify main thread initialization
5347         https://bugs.webkit.org/show_bug.cgi?id=203001
5348
5349         Reviewed by Geoff Garen.
5350
5351         Simplify main thread initialization on macOS by always using pthread main as main thread.
5352         The complexity is now isolated to the USE(WEB_THREAD) code path.
5353
5354         This patch also adds a debug assertion in WTF::initializeWebThreadPlatform() to make sure
5355         it gets called on the actual main thread. In release, it will log a fault message indicating
5356         it was called on the wrong thread.
5357
5358         * wtf/MainThread.cpp:
5359         * wtf/MainThread.h:
5360         * wtf/RefCounted.h:
5361         (WTF::RefCountedBase::RefCountedBase):
5362         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
5363         * wtf/cocoa/MainThreadCocoa.mm:
5364         (WTF::initializeMainThreadPlatform):
5365         (WTF::scheduleDispatchFunctionsOnMainThread):
5366         (WTF::initializeWebThreadPlatform):
5367         (WTF::canAccessThreadLocalDataForThread):
5368         (WTF::isMainThread):
5369         * wtf/generic/MainThreadGeneric.cpp:
5370         * wtf/text/cf/StringImplCF.cpp:
5371         (WTF::StringImpl::createCFString):
5372         * wtf/win/MainThreadWin.cpp:
5373
5374 2019-10-14  Tim Horton  <timothy_horton@apple.com>
5375
5376         Unify sources for bindings more densely
5377         https://bugs.webkit.org/show_bug.cgi?id=202918
5378
5379         Reviewed by Simon Fraser.
5380
5381         * Scripts/generate-unified-source-bundles.rb:
5382         Add an option to separate and more densely unify sources that match
5383         a given glob pattern.
5384
5385 2019-10-14  Keith Rollin  <krollin@apple.com>
5386
5387         Remove some support for < iOS 13
5388         https://bugs.webkit.org/show_bug.cgi?id=202820
5389         <rdar://problem/56164838>
5390
5391         Reviewed by Anders Carlsson.
5392
5393         Remove some support for iOS versions less than 13.0.
5394
5395         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
5396         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
5397         values >= 130000. This means that expressions like
5398         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
5399         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
5400
5401         This removal is part of a series of patches effecting the removal of
5402         dead code for old versions of iOS. This particular pass involves
5403         changes in which Devin Rousso was involved. These changes are isolated
5404         from other similar changes in order to facilitate the reviewing
5405         process.
5406
5407         * wtf/Platform.h:
5408
5409 2019-10-14  Alex Christensen  <achristensen@webkit.org>
5410
5411         REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing
5412         https://bugs.webkit.org/show_bug.cgi?id=201902
5413
5414         Reviewed by Ryosuke Niwa.
5415
5416         * wtf/Vector.h:
5417         The code introduced in r108153 to workaround a warning when building Chrome was causing us to use uninitialized memory
5418         when we create a Vector with the size_t/{signed,unsigned}char constructor with a constexpr size_t.
5419         This was the cause of bug 201902 and bug 201620 which only manifested themselves in release builds with some compilers.
5420
5421 2019-10-14  Per Arne Vollan  <pvollan@apple.com>
5422
5423         [macOS] Sandbox extensions should be created with audit tokens, not PIDs
5424         https://bugs.webkit.org/show_bug.cgi?id=201828
5425
5426         Reviewed by Brent Fulgham.
5427
5428         Remove HAVE macro for issuing sandbox extension by PID, and fix version checks for the HAVE
5429         macros related to issuing sandbox extensions by audit token. Remove SPI for creating
5430         extensions by PID, and add SPI for creating mach extension by audit token. Also remove an
5431         unneeded flag.
5432         
5433         * wtf/Platform.h:
5434         * wtf/spi/darwin/SandboxSPI.h:
5435
5436 2019-10-08  Ryosuke Niwa  <rniwa@webkit.org>
5437
5438         Make WebInspector's remote debug EventLoop code into RunLoop
5439         https://bugs.webkit.org/show_bug.cgi?id=202716
5440
5441         Reviewed by Joseph Pecoraro.
5442
5443         This patch merges WebInspector's EventLoop code into RunLoop as a static function.
5444
5445         * wtf/RunLoop.h:
5446         (WTF::RunLoop::cycle):
5447         * wtf/cf/RunLoopCF.cpp:
5448         (WTF::RunLoop::cycle): Added.
5449         * wtf/generic/RunLoopGeneric.cpp:
5450         (WTF::RunLoop::cycle): Added.
5451         * wtf/glib/RunLoopGLib.cpp:
5452         (WTF::RunLoop::cycle): Added.
5453         * wtf/win/RunLoopWin.cpp:
5454         (WTF::RunLoop::cycle): Added.
5455
5456 2019-10-10  Ryosuke Niwa  <rniwa@webkit.org>
5457
5458         Make it safe to store a ThreadSafeRefCounted object in Ref & RefPtr safe inside its destructor
5459         https://bugs.webkit.org/show_bug.cgi?id=201576
5460
5461         Reviewed by Geoffrey Garen and Mark Lam.
5462
5463         This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
5464         so that storing an instance of this object in Ref or RefPtr would not trigger a recursive delete.
5465
5466         Note: this patch does not try to fix a race condition by which another thread tries to ref()
5467         this object after the "last" call to deref had happened since such a code would ref() this object
5468         long after it had been removed (UAF), nor some code calling deref() before calling ref() inside
5469         a destructor since there is no way to defend against unpaired calls to ref() & deref() like that.
5470
5471         Also added m_deletionHasBegun like RefCounted.
5472
5473         * wtf/ThreadSafeRefCounted.h:
5474         (WTF::ThreadSafeRefCountedBase::ref const):
5475         (WTF::ThreadSafeRefCountedBase::hasOneRef const):
5476         (WTF::ThreadSafeRefCountedBase::derefBase const):
5477
5478 2019-10-11  Alex Christensen  <achristensen@webkit.org>
5479
5480         Only use CFNetwork SPI for metrics where needed
5481         https://bugs.webkit.org/show_bug.cgi?id=202825
5482
5483         Reviewed by Joseph Pecoraro.
5484
5485         * wtf/Platform.h:
5486
5487 2019-10-11  Keith Rollin  <krollin@apple.com>
5488
5489         Remove some support for < iOS 13
5490         https://bugs.webkit.org/show_bug.cgi?id=202819
5491         <rdar://problem/56164233>
5492
5493         Reviewed by Anders Carlsson.
5494
5495         Remove some support for iOS versions less than 13.0.
5496
5497         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
5498         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
5499         values >= 130000. This means that expressions like
5500         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
5501         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
5502
5503         This removal is part of a series of patches effecting the removal of
5504         dead code for old versions of iOS. This particular pass involves
5505         changes in which Jiewen Tan was involved. These changes are isolated
5506         from other similar changes in order to facilitate the reviewing
5507         process.
5508
5509         * wtf/Platform.h:
5510
5511 2019-10-11  Jonathan Bedard  <jbedard@apple.com>
5512
5513         Unreviewed, rolling out r250945.
5514
5515         Broke 18 Debug API tests
5516
5517         Reverted changeset:
5518
5519         "Add support for CompactPointerTuple<..., OptionSet<...>>"
5520         https://bugs.webkit.org/show_bug.cgi?id=201316
5521         https://trac.webkit.org/changeset/250945
5522
5523 2019-10-11  Xabier Rodriguez Calvar  <calvaris@igalia.com>
5524
5525         MediaTime pretty printer can print if time is invalid
5526         https://bugs.webkit.org/show_bug.cgi?id=202735
5527
5528         Reviewed by Eric Carlson.
5529
5530         * wtf/MediaTime.cpp:
5531         (WTF::MediaTime::toString const): Append ", invalid" if isInvalid().
5532         (WTF::MediaTime::toJSONObject const): Set boolean invalid to true
5533         when invalid.
5534
5535 2019-10-09  Keith Rollin  <krollin@apple.com>
5536
5537         Remove some support for < iOS 13
5538         https://bugs.webkit.org/show_bug.cgi?id=202371
5539         <rdar://problem/55853960>
5540
5541         Reviewed by Youenn Fablet.
5542
5543         Remove some support for iOS versions less than 13.0.
5544
5545         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
5546         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
5547         values >= 130000. This means that expressions like
5548         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
5549         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
5550
5551         This removal is part of a series of patches effecting the removal of
5552         dead code for old versions of iOS. This particular pass involves
5553         changes in which Dean Jackson was involved. These changes are isolated
5554         from other similar changes in order to facilitate the reviewing
5555         process.
5556
5557         * wtf/FeatureDefines.h:
5558         * wtf/Platform.h:
5559
5560 2019-10-09  Daniel Bates  <dabates@apple.com>
5561
5562         Add support for CompactPointerTuple<..., OptionSet<...>>
5563         https://bugs.webkit.org/show_bug.cgi?id=201316
5564
5565         Reviewed by Yusuke Suzuki.
5566
5567         Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
5568         you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
5569         supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
5570         to see the set flags in such a CompactPointerTuple.
5571
5572         * wtf/CompactPointerTuple.h:
5573
5574 2019-10-09  Russell Epstein  <repstein@apple.com>
5575
5576         Unreviewed, rolling out r250930.
5577
5578         Broke watchOS Builds
5579
5580         Reverted changeset:
5581
5582         "Add support for CompactPointerTuple<..., OptionSet<...>>"
5583         https://bugs.webkit.org/show_bug.cgi?id=201316
5584         https://trac.webkit.org/changeset/250930
5585
5586 2019-10-09  Daniel Bates  <dabates@apple.com>
5587
5588         Add support for CompactPointerTuple<..., OptionSet<...>>
5589         https://bugs.webkit.org/show_bug.cgi?id=201316
5590
5591         Reviewed by Yusuke Suzuki.
5592
5593         Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
5594         you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
5595         supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
5596         to see the set flags in such a CompactPointerTuple.
5597
5598         * wtf/CompactPointerTuple.h:
5599