WebCore: Guard uneven corners in rounded rectangles
[WebKit-https.git] / Source / WTF / ChangeLog
1 2020-01-28  Jonathan Bedard  <jbedard@apple.com>
2
3         WebCore: Guard uneven corners in rounded rectangles
4         https://bugs.webkit.org/show_bug.cgi?id=206838
5
6         Reviewed by Darin Adler.
7
8         * wtf/PlatformHave.h: Add HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT).
9
10 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
11
12         WebCore: Remove iOS 11 macros from RenderThemeIOS.mm
13         https://bugs.webkit.org/show_bug.cgi?id=206787
14
15         Reviewed by Darin Adler.
16
17         * wtf/PlatformHave.h: Add HAVE(SYSTEM_FONT_STYLE_TITLE_0) and HAVE(SYSTEM_FONT_STYLE_TITLE_4).
18
19 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
20
21         Fix OpenSource iphoneos arm64e build
22         https://bugs.webkit.org/show_bug.cgi?id=206703
23
24         Reviewed by Yusuke Suzuki.
25
26         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
27
28 2020-01-27  Ryan Haddad  <ryanhaddad@apple.com>
29
30         Unreviewed, rolling out r255159.
31
32         Broke the watchOS build.
33
34         Reverted changeset:
35
36         "Fix OpenSource iphoneos arm64e build"
37         https://bugs.webkit.org/show_bug.cgi?id=206703
38         https://trac.webkit.org/changeset/255159
39
40 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
41
42         Fix OpenSource iphoneos arm64e build
43         https://bugs.webkit.org/show_bug.cgi?id=206703
44
45         Reviewed by Yusuke Suzuki.
46
47         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
48
49 2020-01-27  Mark Lam  <mark.lam@apple.com>
50
51         Make getVTablePointer() an inline function to be compliant with WebKit style guidelines.
52         https://bugs.webkit.org/show_bug.cgi?id=206816
53
54         Reviewed by Darin Adler.
55
56         Convert getVTablePointer() from a macro into an inline template function.  This
57         makes the naming compliant with WebKit style guidelines.
58
59         * wtf/PointerPreparations.h:
60         (WTF::getVTablePointer):
61
62 2020-01-25  Brady Eidson  <beidson@apple.com>
63
64         Make ContentWorlds be identified by an ObjectIdentifier instead of a uint64_t
65         https://bugs.webkit.org/show_bug.cgi?id=206784
66
67         Reviewed by Alex Christensen.
68
69         * wtf/ObjectIdentifier.h:
70         (WTF::ObjectIdentifier::generate):
71         (WTF::ObjectIdentifier::generateThreadSafe):
72         (WTF::ObjectIdentifier::enableGenerationProtection): To allow restricting generating an identifier to the UIProcess.
73
74 2020-01-25  Mark Lam  <mark.lam@apple.com>
75
76         Introduce a getVTablePointer() utility function.
77         https://bugs.webkit.org/show_bug.cgi?id=206804
78         <rdar://problem/58872290>
79
80         Reviewed by Yusuke Suzuki and Oliver Hunt.
81
82         With getVTablePointer(), we can abstract away how we get a vtable function pointer
83         without assuming the way it is signed for ARM64E.  With this, we can remove the
84         WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION macro which assumes how a vtable function
85         pointer is signed.
86
87         * wtf/PointerPreparations.h:
88
89 2020-01-25  Mark Lam  <mark.lam@apple.com>
90
91         Add some tests for dynamically allocated StaticStringImpls.
92         https://bugs.webkit.org/show_bug.cgi?id=206802
93
94         Reviewed by Darin Adler.
95
96         Removed some unnecessary explicit specialization of the charactersAreAllASCII()
97         template function.
98
99         * wtf/text/StringImpl.cpp:
100         (WTF::StringImpl::createFromLiteral):
101         (WTF::StringImpl::createStaticStringImpl):
102
103 2020-01-24  Mark Lam  <mark.lam@apple.com>
104
105         Move singleton Intl string locales out of JSGlobalObject.
106         https://bugs.webkit.org/show_bug.cgi?id=206791
107         <rdar://problem/58889037>
108
109         Reviewed by Yusuke Suzuki.
110
111         Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
112         when I introduced it.  StaticStringImpls require that its hash code be set ahead
113         of time, and cannot be mutated at runtime.  See the comment in the definition of
114         StaticStringImpl in StringImpl.h.
115
116         * wtf/text/StringImpl.cpp:
117         (WTF::StringImpl::createStaticStringImpl):
118
119 2020-01-24  Mark Lam  <mark.lam@apple.com>
120
121         IntlObject's cached strings should be immortal and safe for concurrent access.
122         https://bugs.webkit.org/show_bug.cgi?id=206779
123         <rdar://problem/58831763>
124
125         Reviewed by Yusuke Suzuki.
126
127         Add a factory for creating a dynamically allocated StaticStringImpl.
128
129         Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
130         The only difference is that s_refCountFlagIsStaticString is set on the refCount
131         for StaticStringImpl.  Since the client will use the StaticStringImpl as a
132         StringImpl, we implement the factory by using StringImpl::createInternal() for
133         simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
134
135         * wtf/text/StringImpl.cpp:
136         (WTF::StringImpl::createStaticStringImpl):
137         * wtf/text/StringImpl.h:
138
139 2020-01-24  Keith Rollin  <krollin@apple.com>
140
141         Fix internal Apple builds after r254411
142         https://bugs.webkit.org/show_bug.cgi?id=206723
143         <rdar://problem/58844735>
144
145         Reviewed by Maciej Stachowiak.
146
147         The default Xcode build configuration has changed between macOS 10.13
148         and macOS 10.15, such that references to some frameworks when bulding
149         for the latter don't work when building for the former. Fix this by
150         explicitly adding support for the desired build location rather than
151         assuming such support will be provided for us.
152
153         * Configurations/WTF.xcconfig:
154
155 2020-01-24  Jonathan Bedard  <jbedard@apple.com>
156
157         WTF: Remove old iOS version macros
158         https://bugs.webkit.org/show_bug.cgi?id=206634
159         <rdar://problem/58818561>
160
161         Reviewed by Darin Adler.
162
163         * wtf/PlatformEnable.h: Remove iOS 12 version macro.
164         * wtf/PlatformHave.h: Ditto.
165         * wtf/PlatformUse.h: Ditto.
166
167 2020-01-22  Darin Adler  <darin@apple.com>
168
169         Remove some unneeded definitions from Platform.h family headers
170         https://bugs.webkit.org/show_bug.cgi?id=206642
171
172         Reviewed by Eric Carlson.
173
174         * wtf/PlatformEnable.h:
175         Removed ENABLE_RESPECT_EXIF_ORIENTATION because it was unused.
176
177         * wtf/PlatformHave.h:
178         Removed HAVE_PASSKIT_API_TYPE because it is now unused.
179         Removed HAVE_MERGESORT because it was unused.
180         Removed HAVE_AVFOUNDATION_VIDEO_OUTPUT because it is now unused.
181         Removed HAVE_AVFOUNDATION_MEDIA_SELECTION_GROUP because it is now unused.
182         Removed HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE because it was unused.
183
184         * wtf/PlatformUse.h:
185         Removed USE_ARENA_ALLOC_ALIGNMENT_INTEGER because it was unused.
186         Removed USE_NETWORK_CFDATA_ARRAY_CALLBACK because it is now unused.
187
188 2020-01-22  Eric Carlson  <eric.carlson@apple.com>
189
190         uniqueLogIdentifier() should generate a unique identifiers
191         https://bugs.webkit.org/show_bug.cgi?id=206612
192
193         Reviewed by Brent Fulgham.
194
195         * wtf/LoggerHelper.h:
196         (WTF::LoggerHelper::uniqueLogIdentifier):
197
198 2020-01-22  Sam Weinig  <weinig@apple.com>
199
200         Remove unused enable macro ENABLE_JIT_CONSTANT_BLINDING
201         https://bugs.webkit.org/show_bug.cgi?id=206415
202
203         Reviewed by Anders Carlsson.
204
205         * wtf/PlatformEnable.h:
206         ENABLE_JIT_CONSTANT_BLINDING is not used anywhere in WebKit so can be removed.
207
208 2020-01-22  Yusuke Suzuki  <ysuzuki@apple.com>
209
210         [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
211         https://bugs.webkit.org/show_bug.cgi?id=160287
212
213         Reviewed by Ross Kirsling.
214
215         While ECMA262[1] always requires ":" in a timezone designator between hours and minutes (like, "hh:mm"),
216         ISO-8601 can accept additional forms, "+hh" and "+hhmm". This patch relaxes our Date parsing to accept this
217         type of timezone designators so that we can accept wider forms of date time formats. This addition does not
218         break the existing parsing rules since '+-' prefix can clarify that following sequences are timezones.
219
220         [1]: https://tc39.es/ecma262/#sec-date-time-string-format
221         [2]: https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
222
223         * wtf/DateMath.cpp:
224         (WTF::parseES5TimePortion):
225         (WTF::parseES5DateFromNullTerminatedCharacters):
226
227 2020-01-21  Ross Kirsling  <ross.kirsling@sony.com>
228
229         [JSC] Date parse logic should be less redundant
230         https://bugs.webkit.org/show_bug.cgi?id=206560
231
232         Reviewed by Darin Adler.
233
234         * wtf/DateMath.cpp:
235         (WTF::parseDateFromNullTerminatedCharacters):
236         * wtf/DateMath.h:
237         Align function signature with parseES5DateFromNullTerminatedCharacters.
238         Namely, drop the integer out param and flip the boolean one.
239
240 2020-01-21  Yusuke Suzuki  <ysuzuki@apple.com>
241
242         [WTF] AtomStringTable should be small
243         https://bugs.webkit.org/show_bug.cgi?id=206400
244
245         Reviewed by Sam Weinig.
246
247         AtomStringTable is the largest hashtable typically. It takes more
248         than 256KB per WebProcess (sometimes, it took 1MB or more).
249         This patch leverages PackedPtr to compact it from 8 bytes per entry
250         to 6 bytes per entry.
251
252         While this is still large, we should investigate how to compact C++
253         pointers in 4 bytes[1] to shrink memory footprint, since WebKit
254         memory is used by Vector and HashTable fulfilled with pointers.
255
256         [1]: https://bugs.webkit.org/show_bug.cgi?id=206469
257
258         * wtf/DumbPtrTraits.h:
259         (WTF::DumbPtrTraits::hashTableDeletedValue):
260         (WTF::DumbPtrTraits::isHashTableDeletedValue):
261         * wtf/Forward.h:
262         * wtf/HashTraits.h:
263         * wtf/Packed.h:
264         (WTF::Packed<T::Packed):
265         (WTF::Packed<T::isHashTableDeletedValue const):
266         (WTF::GetPtrHelper<PackedPtr<T>>::getPtr):
267         (WTF::PackedPtrTraits::hashTableDeletedValue):
268         (WTF::PackedPtrTraits::isHashTableDeletedValue):
269         (WTF::alignof): Deleted.
270         * wtf/Ref.h:
271         (WTF::Ref::Ref):
272         (WTF::Ref::isHashTableDeletedValue const):
273         (WTF::Ref::hashTableDeletedValue): Deleted.
274         * wtf/RefPtr.h:
275         (WTF::RefPtr::RefPtr):
276         (WTF::RefPtr::isHashTableDeletedValue const):
277         (WTF::RefPtr::hashTableDeletedValue): Deleted.
278         * wtf/text/AtomStringImpl.cpp:
279         (WTF::addToStringTable):
280         (WTF::CStringTranslator::equal):
281         (WTF::CStringTranslator::translate):
282         (WTF::UCharBufferTranslator::equal):
283         (WTF::UCharBufferTranslator::translate):
284         (WTF::HashAndUTF8CharactersTranslator::equal):
285         (WTF::HashAndUTF8CharactersTranslator::translate):
286         (WTF::SubstringTranslator::translate):
287         (WTF::SubstringTranslator8::equal):
288         (WTF::SubstringTranslator16::equal):
289         (WTF::LCharBufferTranslator::equal):
290         (WTF::LCharBufferTranslator::translate):
291         (WTF::BufferFromStaticDataTranslator::equal):
292         (WTF::BufferFromStaticDataTranslator::translate):
293         (WTF::AtomStringImpl::addSlowCase):
294         (WTF::AtomStringImpl::remove):
295         (WTF::AtomStringImpl::lookUpSlowCase):
296         (WTF::AtomStringImpl::lookUp):
297         * wtf/text/AtomStringTable.cpp:
298         (WTF::AtomStringTable::~AtomStringTable):
299         * wtf/text/AtomStringTable.h:
300         (WTF::AtomStringTable::table):
301         (): Deleted.
302         * wtf/text/StringHash.h:
303         (WTF::StringHash::hash):
304         (WTF::StringHash::equal):
305         (WTF::ASCIICaseInsensitiveHash::hash):
306         (WTF::ASCIICaseInsensitiveHash::equal):
307         * wtf/text/StringImpl.h:
308
309 2020-01-17  Sam Weinig  <weinig@apple.com>
310
311         Platform.h is out of control Part 8: Macros are used inconsistently
312         https://bugs.webkit.org/show_bug.cgi?id=206425
313
314         Reviewed by Darin Adler.
315
316         Start addressing FIXMEs added to Platform.h (and helper files) during previous
317         cleanup work.
318         
319         - Renames WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_CONSTANT_EFFECTIVE_ADDRESS_WIDTH,
320           making it available via new macro OS_CONSTANT(...), and syncs bmalloc redefinition.
321         - Renames:
322              USE_LLINT_EMBEDDED_OPCODE_ID to ENABLE_LLINT_EMBEDDED_OPCODE_ID
323              USE_UDIS86 to ENABLE_UDIS86 
324              USE_ARM64_DISASSEMBLER to ENABLE_ARM64_DISASSEMBLER
325           Enable is more appropriate here as these enable functionality within webkit.
326         - Removes undefs that are no longer needed due to only defining the macro once now.
327         - Removes dead defined(__LP64__) check after PLATFORM(MAC) macOS is always 64-bit these
328           days.
329
330         * wtf/Packed.h:
331         (WTF::alignof):
332         * wtf/Platform.h:
333         * wtf/PlatformEnable.h:
334         * wtf/PlatformOS.h:
335         * wtf/WTFAssertions.cpp:
336         * wtf/text/StringCommon.h:
337
338 2020-01-20  David Kilzer  <ddkilzer@apple.com>
339
340         Fix missing header guards and clean up empty files in bmalloc, WTF, JavaScriptCore
341         <https://webkit.org/b/206481>
342
343         Reviewed by Darin Adler.
344
345         * wtf/cocoa/Entitlements.h:
346         * wtf/win/PathWalker.h:
347         - Add #pragma once.
348
349 2020-01-19  Claudio Saavedra  <csaavedra@igalia.com>
350
351         [GTK] Remove usage of deprecated GTimeVal
352         https://bugs.webkit.org/show_bug.cgi?id=206358
353
354         Reviewed by Žan Doberšek.
355
356         Use g_get_real_time() directly instead of deprecated and unsafe API.
357
358         * wtf/CurrentTime.cpp:
359         (WTF::currentTime):
360
361 2020-01-16  Keith Miller  <keith_miller@apple.com>
362
363         Reland bytecode checkpoints since bugs have been fixed
364         https://bugs.webkit.org/show_bug.cgi?id=206361
365
366         Unreviewed, reland.
367
368         The watch bugs have been fixed by https://trac.webkit.org/changeset/254674
369
370         * WTF.xcodeproj/project.pbxproj:
371         * wtf/Bitmap.h:
372         (WTF::WordType>::invert):
373         (WTF::WordType>::operator):
374         (WTF::WordType>::operator const const):
375         * wtf/CMakeLists.txt:
376         * wtf/EnumClassOperatorOverloads.h: Added.
377         * wtf/FastBitVector.h:
378         (WTF::FastBitReference::operator bool const):
379         (WTF::FastBitReference::operator|=):
380         (WTF::FastBitReference::operator&=):
381         (WTF::FastBitVector::fill):
382         (WTF::FastBitVector::grow):
383         * wtf/UnalignedAccess.h:
384         (WTF::unalignedLoad):
385         (WTF::unalignedStore):
386
387 2020-01-16  Tim Horton  <timothy_horton@apple.com>
388
389         Fix the build after r254701
390         <rdar://problem/58667355>
391
392         * wtf/Platform.h:
393         * wtf/PlatformEnable.h:
394         AdditionalFeatureDefines has to come first.
395
396 2020-01-16  Sam Weinig  <weinig@apple.com>
397
398         Platform.h is out of control Part 7: Split calling convention macro definitions out of Platform.h and into a new PlatformCallingConventions.h
399         https://bugs.webkit.org/show_bug.cgi?id=206377
400
401         Reviewed by Anders Carlsson.
402
403         As a another step towards cleaning up Platform.h, split out all the calling convention
404         macros into their own file.
405
406         * WTF.xcodeproj/project.pbxproj:
407         * wtf/CMakeLists.txt:
408         Add new header.
409
410         * wtf/Platform.h:
411         * wtf/PlatformCPU.h:
412         * wtf/PlatformEnable.h:
413         * wtf/PlatformHave.h:
414         * wtf/PlatformLegacy.h:
415         * wtf/PlatformOS.h:
416         * wtf/PlatformUse.h:
417         Unify indirect inclusion guard.
418
419         * wtf/PlatformCallingConventions.h: Copied from Source/WTF/wtf/Platform.h.
420
421 2020-01-16  Robin Morisset  <rmorisset@apple.com>
422
423         Use dataLogIf more regularly
424         https://bugs.webkit.org/show_bug.cgi?id=206332
425
426         Reviewed by Keith Miller.
427
428         * wtf/DataLog.h:
429         (WTF::dataLog): Marked NEVER_INLINE, since it should never be perf-sensitive
430
431
432 2020-01-16  Sam Weinig  <weinig@apple.com>
433
434         Platform.h is out of control Part 6: Split USE_* macro definitions out of Platform.h and into a new PlatformUse.h
435         https://bugs.webkit.org/show_bug.cgi?id=206354
436
437         Reviewed by Dan Bernstein.
438
439         As a another step towards cleaning up Platform.h, split out all the legacy platform
440         macros into their own file.
441
442         * WTF.xcodeproj/project.pbxproj:
443         * wtf/CMakeLists.txt:
444         Add new file.
445
446         * wtf/Platform.h: In addition to removing all the USE_* macros, consolidate
447         all the sub-includes at the top.
448
449         * wtf/PlatformEnable.h: Moved ASSERT_ENABLED here from Platform.h, 
450         as it makes more sense here. Eventually should be renamed ro ENABLE_ASSERT 
451         for consistency.
452
453         * wtf/PlatformUse.h: Copied from Source/WTF/wtf/Platform.h.
454
455 2020-01-16  Per Arne Vollan  <pvollan@apple.com>
456
457         [Win] Fix AppleWin build
458         https://bugs.webkit.org/show_bug.cgi?id=206299
459
460         Reviewed by Brent Fulgham.
461
462         Build internal builds with VS2019.
463
464         * WTF.vcxproj/WTF.proj:
465
466 2020-01-15  Sam Weinig  <weinig@apple.com>
467
468         Platform.h is out of control Part 5: Split HAVE_* macro definitions out of Platform.h and into a new PlatformHave.h
469         https://bugs.webkit.org/show_bug.cgi?id=206307
470
471         Reviewed by Anders Carlsson.
472
473         * WTF.xcodeproj/project.pbxproj:
474         * wtf/CMakeLists.txt:
475         * wtf/Platform.h:
476         * wtf/PlatformHave.h: Copied from Source/WTF/wtf/Platform.h.
477
478 2020-01-15  Keith Miller  <keith_miller@apple.com>
479
480         Revert bytecode checkpoints since it breaks watch
481         https://bugs.webkit.org/show_bug.cgi?id=206301
482
483         Unreviewed, revert.
484
485 2020-01-14  Sam Weinig  <weinig@apple.com>
486
487         Platform.h is out of control Part 4: Split PLATFORM_* macro definitions out of Platform.h and into a new PlatformLegacy.h
488         https://bugs.webkit.org/show_bug.cgi?id=206272
489
490         Reviewed by Anders Carlsson.
491
492         As a another step towards cleaning up Platform.h, split out all the legacy platform
493         macros into their own file.
494
495         * WTF.xcodeproj/project.pbxproj:
496         * wtf/CMakeLists.txt:
497         * wtf/Platform.h:
498         * wtf/PlatformLegacy.h: Copied from Source/WTF/wtf/Platform.h.
499
500 2020-01-14  Sam Weinig  <weinig@apple.com>
501
502         Plaform.h helper files should have a consistent naming scheme
503         https://bugs.webkit.org/show_bug.cgi?id=206240
504
505         Reviewed by Dean Jackson.
506
507         Rename Plaform.h helper files to use the prefix "Platform" consistently.
508
509         * WTF.xcodeproj/project.pbxproj:
510         * wtf/CMakeLists.txt:
511         * wtf/CPU.h: Removed.
512         * wtf/FeatureDefines.h: Removed.
513         * wtf/OS.h: Removed.
514         * wtf/Platform.h:
515         * wtf/PlatformCPU.h: Copied from Source/WTF/wtf/CPU.h.
516         * wtf/PlatformEnable.h: Copied from Source/WTF/wtf/FeatureDefines.h.
517         * wtf/PlatformOS.h: Copied from Source/WTF/wtf/OS.h.
518
519 2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>
520
521         [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
522         https://bugs.webkit.org/show_bug.cgi?id=77568
523         <rdar://problem/14649193>
524
525         Reviewed by Simon Fraser.
526
527         * wtf/Platform.h:
528
529 2020-01-13  Darin Adler  <darin@apple.com>
530
531         Use even more "shortest form" formatting, and less "fixed precision" and "fixed width"
532         https://bugs.webkit.org/show_bug.cgi?id=198918
533
534         Reviewed by Sam Weinig.
535
536         * wtf/Logger.h:
537         (WTF::LogArgument::toString): Log floating point numbers as shortest form instead of fixed precision.
538
539         * wtf/MediaTime.cpp:
540         (WTF::MediaTime::toString const): Convert time to string as shortest form instead of fixed precision.
541         Also use multiple-argument append for great simplicity and clarity.
542
543 2020-01-14  Alicia Boya García  <aboya@igalia.com>
544
545         [WTF] Make MediaTime constructor constexpr
546         https://bugs.webkit.org/show_bug.cgi?id=206036
547
548         Reviewed by Adrian Perez de Castro.
549
550         https://bugs.webkit.org/show_bug.cgi?id=205723 allowed to declare
551         MediaTime variables as static inside functions without needing a
552         global destructor.
553
554         It did not eliminate the call to the MediaTime constructor on runtime
555         though. This wasn't a problem for static variables inside functions,
556         as the compiler adds a guard variable to call the constructor the
557         first time the function is called.
558
559         On the other hand, for variables defined outside of the scope of the
560         function, for them to be initialized the MediaTime constructor would
561         have to be called at runtime from a global constructor, something
562         we're trying to avoid and which generates an error in clang.
563
564         But again, MediaTime is a simple class with only integral values, we
565         shouldn't need a runtime function call to initialize it!
566
567         This patch makes the MediaTime constructor constexpr so that we don't
568         need runtime initialization for static MediaTime variables. This
569         allows us to declare them outside functions and enables the compiler
570         to generate code without guard variables when static MediaTime
571         variables are declared inside functions.
572
573         A test has been added accessing a global const static MediaTime. The
574         build should not produce any error stating the need for a global
575         constructor.
576
577         * wtf/MediaTime.cpp:
578         * wtf/MediaTime.h:
579         (WTF::MediaTime::MediaTime):
580
581 2020-01-14  David Kilzer  <ddkilzer@apple.com>
582
583         Enable -Wconditional-uninitialized in bmalloc, WTF, JavaScriptCore
584         <https://webkit.org/b/206190>
585         <rdar://problem/58540387>
586
587         Reviewed by Mark Lam.
588
589         * Configurations/Base.xcconfig:
590         (WARNING_CFLAGS): Add -Wconditional-uninitialized.
591
592 2020-01-13  Sam Weinig  <weinig@apple.com>
593
594         Platform.h is out of control Part 3: Move all ENABLE_* macros definitions in FeatureDefines.h
595         https://bugs.webkit.org/show_bug.cgi?id=206139
596
597         Reviewed by Anders Carlsson.
598
599         - Moves all remaining ENABLE_* defines out of Platform.h and into FeatureDefines.h
600         - Moves most, USE_UDIS86 and USE_ARM64_DISASSEMBLER are tangled up in the JIT definitions
601           still, HAVE_* and USE_* defines out of FeatureDefines.h and into Platform.h
602         - Where straigthforward, convert macro definitions into a canonical 3 line entry of the 
603           form:
604           
605               #if !defined(MACRO_NAME) && (<CONDITIONS HERE>)
606               #define MACRO_NAME 1
607               #endif
608
609           There is rarely (if ever) a resone to undefine or define one of these platform related
610           macros to 0 as the usage macros (e.g. HAVE(...), ENABLE(...), etc.) handle undefined as 0.
611         - Added a guard so that FeatureDefines.h can't be included directly, and must be included via
612           Platform.h. This is necessary as it depends heavily on macros defined in Platform.h
613         - Added numerous FIXMEs detailing follow up cleaning.
614
615         * wtf/FeatureDefines.h:
616         * wtf/Platform.h:
617
618 2020-01-12  Sam Weinig  <weinig@apple.com>
619
620         Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h
621         https://bugs.webkit.org/show_bug.cgi?id=206138
622
623         Reviewed by Anders Carlsson.
624
625         As a another step towards cleaning up Platform.h, split out OS related
626         macros into their own file.
627
628         * WTF.xcodeproj/project.pbxproj:
629         * wtf/CMakeLists.txt:
630         * wtf/OS.h: Copied from Source/WTF/wtf/Platform.h.
631         * wtf/Platform.h:
632
633 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
634
635         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
636         https://bugs.webkit.org/show_bug.cgi?id=200043
637
638         Unreviewed.
639
640         Fix build.
641
642         * wtf/cocoa/LanguageCocoa.mm:
643         (WTF::canMinimizeLanguages):
644
645 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
646
647         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
648         https://bugs.webkit.org/show_bug.cgi?id=200043
649
650         Unreviewed.
651
652         Addressing additional review comments.
653
654         * wtf/cocoa/LanguageCocoa.mm:
655         (WTF::canMinimizeLanguages):
656
657 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
658
659         Fix internal Apple builds after r254389
660         https://bugs.webkit.org/show_bug.cgi?id=206135
661
662         Rubber stamped by Zalan Bujtas.
663
664         * wtf/spi/cocoa/NSLocaleSPI.h:
665
666 2020-01-11  Sam Weinig  <weinig@apple.com>
667
668         Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h
669         https://bugs.webkit.org/show_bug.cgi?id=206124
670
671         Reviewed by Anders Carlsson.
672
673         As a step towards cleaning up Platform.h, split out CPU related
674         macros into their own file.
675
676         * WTF.xcodeproj/project.pbxproj:
677         * wtf/CMakeLists.txt:
678         * wtf/CPU.h: Copied from Source/WTF/wtf/Platform.h.
679         * wtf/Platform.h:
680
681 2020-01-10  Dean Jackson  <dino@apple.com>
682
683         [WebGL] Clarify USE_OPENGL_ES_3
684         https://bugs.webkit.org/show_bug.cgi?id=206081
685         <rdar://problem/58486798>
686
687         Reviewed by Simon Fraser.
688
689         Make it clear that USE_ANGLE | USE_OPENGL | USE_OPENGL_ES are exclusive,
690         and that the availability of OpenGL ES 3 is a separate query.
691
692         * wtf/Platform.h:
693
694 2020-01-11  Yusuke Suzuki  <ysuzuki@apple.com>
695
696         Unreviewed, fix RunLoopGeneric's RunLoop::cycle
697
698         * wtf/generic/RunLoopGeneric.cpp:
699         (WTF::RunLoop::cycle):
700
701 2020-01-10  Myles C. Maxfield  <mmaxfield@apple.com>
702
703         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
704         https://bugs.webkit.org/show_bug.cgi?id=200043
705         <rdar://problem/44119496>
706
707         Reviewed by Dean Jackson.
708
709         We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
710         it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
711         This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
712         language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
713         turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
714         in this way.
715
716         Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
717         canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
718         more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
719         minimize the entropy revealed.
720
721         * WTF.xcodeproj/project.pbxproj:
722         * wtf/Language.h:
723         * wtf/Platform.h:
724         * wtf/PlatformMac.cmake:
725         * wtf/cf/LanguageCF.cpp:
726         (WTF::httpStyleLanguageCode):
727         (WTF::platformUserPreferredLanguages):
728         * wtf/cocoa/LanguageCocoa.mm: Added.
729         (WTF::minimizedLanguagesFromLanguages):
730         * wtf/spi/cocoa/NSLocaleSPI.h: Added.
731
732 2020-01-10  Simon Fraser  <simon.fraser@apple.com>
733
734         Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
735         https://bugs.webkit.org/show_bug.cgi?id=206091
736
737         Reviewed by Tim Horton.
738
739         Define ENABLE_META_VIEWPORT for iOS.
740
741         * wtf/FeatureDefines.h:
742
743 2020-01-09  Tim Horton  <timothy_horton@apple.com>
744
745         Adopt TARGET_OS_MACCATALYST in more places
746         https://bugs.webkit.org/show_bug.cgi?id=206040
747         <rdar://problem/57127108>
748
749         Reviewed by Simon Fraser.
750
751         * wtf/Platform.h:
752
753 2020-01-09  Simon Fraser  <simon.fraser@apple.com>
754
755         Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places
756         https://bugs.webkit.org/show_bug.cgi?id=205982
757
758         Reviewed by Jon Lee.
759         
760         Add a #define ENABLE_UI_SIDE_COMPOSITING for Cocoa platforms. Minor comment cleanup, and
761         move the duplicate ENABLE_ASYNC_SCROLLING from iOS and macOS sections into the Cocoa section.
762
763         * wtf/FeatureDefines.h:
764
765 2020-01-08  Yusuke Suzuki  <ysuzuki@apple.com>
766
767         Reduce binary size by purging C++ type information in Objective-C fields and parameters
768         https://bugs.webkit.org/show_bug.cgi?id=205905
769
770         Reviewed by Saam Barati.
771
772         Objective-C has reflection mechanisms. This means that fields, methods, and their types
773         need to hold its string representations in binary even if we are using release build.
774         While typical Objective-C class does not have large size of type names, C++ struct / class
775         has very large one, and putting them in Objective-C method names, parameter types, or fields
776         makes binary size very large.
777
778         Interesting thing is that type information is gathered when parameter is a C++ pointer, reference,
779         or value. And it gathers one-level deep information from this pointer etc. This means that, if
780         we use RefPtr<T>, collected type information is the one of RefPtr, not one of T. So it becomes significantly
781         smaller.
782
783         This patch introduces NakedRef<T>. This is similar to Ref while it does not have any ownership. So it
784         is just a wrapper around T&. We already have NakedPtr<T>. And use NakedRef<T> / NakedPtr<T> instead
785         of T& and T* if,
786
787             1. T is C++ class.
788             2. T* / T& is in Objective-C fields or parameter types (including a return type).
789
790         Then, these type information is one of NakedRef<T> / NakedPtr<T> instead of T, and we can reduce binary size.
791
792         This patch saves 600~KB in binary size.
793
794         Note the following things.
795
796         1. If we use `__attribute__((objc_direct))`, `__attribute__((objc_direct_members))`, possibly, we can completely remove these
797            metadata without using NakedRef / NakedPtr[1]. However, this is not available for our supporting platforms now (including
798            pre-Catalina OSes). This NakedRef / NakedPtr technique can reduce binary without waiting for it.
799         2. Reverting NakedRef / NakedPtr to usual reference / pointer is fairly easy since it is well typed. Once `__attribute__((objc_direct))`
800            becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is harmless.
801
802         [1]: https://github.com/llvm/llvm-project/commit/d4e1ba3fa9dfec2613bdcc7db0b58dea490c56b1
803
804         * WTF.xcodeproj/project.pbxproj:
805         * wtf/CMakeLists.txt:
806         * wtf/NakedRef.h: Added.
807         (WTF::NakedRef::NakedRef):
808         (WTF::NakedRef::operator-> const):
809         (WTF::NakedRef::get const):
810         (WTF::NakedRef::operator T& const):
811         (WTF::NakedRef::operator! const):
812         (WTF::=):
813         (WTF::NakedRef<T>::swap):
814         (WTF::swap):
815
816 2020-01-08  Alicia Boya García  <aboya@igalia.com>
817
818         [WTF] Allow MediaTime static constants
819         https://bugs.webkit.org/show_bug.cgi?id=205723
820
821         Reviewed by Darin Adler.
822
823         Despite all its convenience methods, at its core MediaTime is a rather
824         trivial class with only integral members. Despite this, since it had a
825         destructor declared, this made the class non-trivially destructible
826         even if the implementation was empty, and therefore clang did not
827         allow to use it for static variables unless done in form of a pointer.
828
829         By removing the destructor this restriction is lifted and we don't
830         need heap allocations for static MediaTime objects.
831
832         Previous usages of heap allocation for static MediaTime objects have
833         been rewritten to take advantage of this. Test coverage is provided by
834         successful compilation without [-Werror,-Wexit-time-destructors]
835         errors and existing tests.
836
837         * wtf/MediaTime.cpp:
838         (WTF::MediaTime::zeroTime):
839         (WTF::MediaTime::invalidTime):
840         (WTF::MediaTime::positiveInfiniteTime):
841         (WTF::MediaTime::negativeInfiniteTime):
842         (WTF::MediaTime::indefiniteTime):
843         (WTF::MediaTime::~MediaTime): Deleted.
844         * wtf/MediaTime.h:
845
846 2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
847
848         Implement css3-images image-orientation
849         https://bugs.webkit.org/show_bug.cgi?id=89052
850
851         Reviewed by Simon Fraser.
852
853         Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
854
855         * wtf/FeatureDefines.h:
856
857 2020-01-07  Simon Fraser  <simon.fraser@apple.com>
858
859         Add some more Animations logging
860         https://bugs.webkit.org/show_bug.cgi?id=205890
861
862         Reviewed by Dean Jackson.
863
864         Make Seconds TextStream-loggable, and make Markable<> loggable.
865
866         * wtf/Seconds.cpp:
867         (WTF::operator<<):
868         * wtf/Seconds.h:
869         * wtf/text/TextStream.h:
870         (WTF::operator<<):
871
872 2020-01-07  Carlos Garcia Campos  <cgarcia@igalia.com>
873
874         [GTK][WPE] Add API to set purpose and hints of active editable element to input methods
875         https://bugs.webkit.org/show_bug.cgi?id=205605
876
877         Reviewed by Žan Doberšek.
878
879         Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
880
881         * wtf/FeatureDefines.h:
882
883 2020-01-06  Don Olmstead  <don.olmstead@sony.com>
884
885         Rename GraphicsContext3D to GraphicsContextGL
886         https://bugs.webkit.org/show_bug.cgi?id=205778
887         <rdar://problem/58327597>
888
889         Reviewed by Ross Kirsling.
890
891         Define USE_OPENGL_3 for Mac and USE_OPENGL_ES_3 for iOS. Use CMake config for
892         Windows and WebGL.
893
894         * wtf/Platform.h:
895
896 2020-01-06  Mark Lam  <mark.lam@apple.com>
897
898         Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
899         https://bugs.webkit.org/show_bug.cgi?id=205776
900
901         Reviewed by Saam Barati.
902
903         This patch did the following changes:
904
905         1. Replaced ASSERT_DISABLED with ASSERT_ENABLED.  This change does away
906            with the need for the double negative !ASSERT_DISABLED test that is commonly
907            used all over the code, thereby improving code readability.
908
909            In Assertions.h, there is also BACKTRACE_DISABLED, ASSERT_MSG_DISABLED,
910            ASSERT_ARG_DISABLED, FATAL_DISABLED, ERROR_DISABLED, LOG_DISABLED, and
911            RELEASE_LOG_DISABLED.  We should replace those with ..._ENABLED equivalents
912            as well.  We'll do that in another patch.  For now, they are left as is to
913            minimize the size of this patch.
914            See https://bugs.webkit.org/show_bug.cgi?id=205780.
915
916         2. Fixed some code was guarded with "#ifndef NDEBUG" that should actually be
917            guarded by "#if ASSERT_ENABLED" instead.
918
919         3. In cases where the change is minimal, we move some code around so that we can
920            test for "#if ASSERT_ENABLED" instead of "#if !ASSERT_ENABLED".
921
922         * wtf/Assertions.h:
923         * wtf/AutomaticThread.cpp:
924         (WTF::AutomaticThread::start):
925         * wtf/BitVector.h:
926         * wtf/BlockObjCExceptions.mm:
927         (ReportBlockedObjCException):
928         * wtf/BloomFilter.h:
929         * wtf/CallbackAggregator.h:
930         (WTF::CallbackAggregator::CallbackAggregator):
931         * wtf/CheckedArithmetic.h:
932         (WTF::observesOverflow<AssertNoOverflow>):
933         * wtf/CheckedBoolean.h:
934         (CheckedBoolean::CheckedBoolean):
935         (CheckedBoolean::operator bool):
936         * wtf/CompletionHandler.h:
937         (WTF::CompletionHandler<Out):
938         * wtf/DateMath.cpp:
939         (WTF::initializeDates):
940         * wtf/Gigacage.cpp:
941         (Gigacage::tryAllocateZeroedVirtualPages):
942         * wtf/HashTable.h:
943         (WTF::KeyTraits>::checkKey):
944         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
945         * wtf/LoggerHelper.h:
946         * wtf/NaturalLoops.h:
947         (WTF::NaturalLoops::headerOf const):
948         * wtf/NeverDestroyed.h:
949         (WTF::LazyNeverDestroyed::construct):
950         * wtf/OptionSet.h:
951         (WTF::OptionSet::OptionSet):
952         * wtf/Platform.h:
953         * wtf/PtrTag.h:
954         * wtf/RefCounted.h:
955         (WTF::RefCountedBase::disableThreadingChecks):
956         (WTF::RefCountedBase::enableThreadingChecksGlobally):
957         (WTF::RefCountedBase::RefCountedBase):
958         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
959         * wtf/SingleRootGraph.h:
960         (WTF::SingleRootGraph::assertIsConsistent const):
961         * wtf/SizeLimits.cpp:
962         * wtf/StackBounds.h:
963         (WTF::StackBounds::checkConsistency const):
964         * wtf/URLParser.cpp:
965         (WTF::URLParser::URLParser):
966         (WTF::URLParser::domainToASCII):
967         * wtf/ValueCheck.h:
968         * wtf/Vector.h:
969         (WTF::Malloc>::checkConsistency):
970         * wtf/WeakHashSet.h:
971         * wtf/WeakPtr.h:
972         (WTF::WeakPtrImpl::WeakPtrImpl):
973         (WTF::WeakPtrFactory::WeakPtrFactory):
974         * wtf/text/AtomStringImpl.cpp:
975         * wtf/text/AtomStringImpl.h:
976         * wtf/text/StringBuilder.cpp:
977         (WTF::StringBuilder::reifyString const):
978         * wtf/text/StringBuilder.h:
979         * wtf/text/StringCommon.h:
980         (WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):
981         * wtf/text/StringHasher.h:
982         (WTF::StringHasher::addCharacters):
983         * wtf/text/StringImpl.h:
984         * wtf/text/SymbolImpl.h:
985         * wtf/text/UniquedStringImpl.h:
986
987 2020-01-05  Dean Jackson  <dino@apple.com>
988
989         Rename GraphicsContext3D to GraphicsContextGL
990         https://bugs.webkit.org/show_bug.cgi?id=205778
991         <rdar://problem/58327597>
992
993         Reviewed by Sam Weinig.
994
995         Rename all the GraphicsContext3D things to GraphicsContextGL
996         (includes Extensions3D and GRAPHICS_CONTEXT_3D).
997
998         GraphicsContext3DBase now becomes GraphicsContextGL.
999         GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents
1000         the OpenGL implementation of the API).
1001
1002         * wtf/FeatureDefines.h:
1003         * wtf/Platform.h:
1004
1005 2020-01-05  Sam Weinig  <weinig@apple.com>
1006
1007         Further simplify StringBuilder usage by standardizing hex formating to a single hex() function
1008         https://bugs.webkit.org/show_bug.cgi?id=205759
1009
1010         Reviewed by Dean Jackson.
1011
1012         Removes appendByteAsHex, appendUnsignedAsHex and appendUnsignedAsHexFixedSize with the
1013         following mappings:
1014
1015             appendByteAsHex(value, builder, case) 
1016               -> builder.append(hex(static_cast<unsigned char>(value), 2, case))
1017             appendUnsignedAsHex(value, builder, case) 
1018               -> builder.append(hex(value, case))
1019             appendUnsignedAsHexFixedSize(value, builder, size, case)
1020               -> builder.append(hex(value, size, case))
1021         
1022         Adds new API test for HexNumber.cpp
1023
1024         * wtf/HexNumber.h:
1025         (WTF::appendByteAsHex): Deleted.
1026         (WTF::appendUnsignedAsHex): Deleted.
1027         (WTF::appendUnsignedAsHexFixedSize): Deleted.
1028         Remove now unused helper functions.
1029         
1030         * wtf/FileSystem.cpp:
1031         (WTF::FileSystemImpl::encodeForFileName):
1032         Replace appendByteAsHex with direct use of hex(x, 2). The static_cast is needed
1033         since there was an implicit down cast when appendByteAsHex was used.
1034  
1035         * wtf/Logger.cpp:
1036         (WTF::Logger::LogSiteIdentifier::toString const):
1037         (WTF::>::toString):
1038         * wtf/UUID.cpp:
1039         (WTF::createCanonicalUUIDString):
1040         Replace appendUnsignedAsHex/appendUnsignedAsHexFixedSize with hex(). Use makeString() 
1041         rather StringBuilder to simplify things further.
1042
1043         * wtf/text/WTFString.cpp:
1044         (asciiDebug):
1045         Replace appendUnsignedAsHexFixedSize with append(hex()).
1046
1047 2020-01-05  Ross Kirsling  <ross.kirsling@sony.com>
1048
1049         JavaScript: Invalid date parse for ISO 8601 strings when no timezone given
1050         https://bugs.webkit.org/show_bug.cgi?id=89071
1051
1052         Reviewed by Darin Adler.
1053
1054         * wtf/DateMath.cpp:
1055         (WTF::parseES5TimePortion):
1056         (WTF::parseES5DateFromNullTerminatedCharacters):
1057         * wtf/DateMath.h:
1058         Add an out param to tell JSC whether we still need to do a local time adjustment.
1059
1060 2020-01-03  Dean Jackson  <dino@apple.com>
1061
1062         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
1063         https://bugs.webkit.org/show_bug.cgi?id=205483
1064         <rdar://problem/58097701>
1065
1066         Reverting this from trunk (was r253926) due to the number of
1067         flakey tests and failures.
1068
1069         * wtf/Platform.h:
1070
1071 2020-01-03  Simon Fraser  <simon.fraser@apple.com>
1072
1073         Add some shared schemes to the WebKit.xcworkspace
1074         https://bugs.webkit.org/show_bug.cgi?id=205698
1075
1076         Reviewed by Tim Horton.
1077
1078         Make WebKit.xcworkspace show the following schemes by default:
1079             All Source
1080             All Tools
1081             WTF
1082             JavaScriptCore
1083             WebCore
1084             WebKit
1085             WebKitLegacy
1086             DumpRenderTree
1087             WebKitTestRunner
1088             TestWebKitAPI
1089             MiniBrowser
1090             MobileMiniBrowser.
1091             
1092         Also remove the MobileMiniBrowserUITests scheme.
1093
1094         * WTF.xcodeproj/xcshareddata/xcschemes/WTF.xcscheme: Copied from Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowserUITests.xcscheme.
1095
1096 2020-01-02  Yusuke Suzuki  <ysuzuki@apple.com> and Simon Fraser  <simon.fraser@apple.com>
1097
1098         Experiment: create lots of different malloc zones for easier accounting of memory use
1099         https://bugs.webkit.org/show_bug.cgi?id=186422
1100
1101         Reviewed by Saam Barati.
1102
1103         This patch introduces ENABLE(MALLOC_HEAP_BREAKDOWN). If this is enabled, we allocate malloc_zone per malloc kind.
1104         This offers the way to investigate the usage of memory per kind by using vmmap, like the following.
1105
1106             VIRTUAL   RESIDENT      DIRTY    SWAPPED ALLOCATION      BYTES DIRTY+SWAP          REGION
1107             MALLOC ZONE                                                      SIZE       SIZE       SIZE       SIZE      COUNT  ALLOCATED  FRAG SIZE  % FRAG   COUNT
1108             ===========                                                   =======  =========  =========  =========  =========  =========  =========  ======  ======
1109             StringImpl_0x116efd000                                         188.0M      69.3M      30.9M         0K     139456      18.0M      12.9M     42%      34
1110             DefaultMallocZone_0x10f487000                                  176.0M      53.9M      14.1M         0K     115956      9955K      4497K     32%      22
1111             Vector_0x116eff000                                             162.0M      56.3M      55.3M         0K     140715      17.3M      37.9M     69%      36
1112             MetadataTable_0x11843b000                                      152.0M      17.5M      17.5M         0K      14200      2353K      15.2M     87%      26
1113             WebKit Using System Malloc_0x114cbe000                         150.0M      31.6M      21.8M         0K      87422      16.7M      5278K     24%      23
1114             InstructionStream_0x118469000                                  150.0M      5764K      5764K         0K      14470      4688K      1076K     19%      24
1115             AssemblerData_0x117ee6000                                      150.0M      1928K      1928K         0K          1         16      1928K    100%      24
1116
1117         To achieve this goal without making very large change, we put a template type in various containers.
1118         For example, Vector will take Malloc parameter (the default one is FastMalloc allocator). If ENABLE(MALLOC_HEAP_BREAKDOWN) is enabled, we change this to
1119         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
1120         allocation per IsoHeap in vmmap.
1121
1122         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.
1123         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,
1124         and define allocator by DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a header and DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a cpp file.
1125
1126         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
1127         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
1128         which callsite is consuming much memory, which tell us that what Vector is consuming memory.
1129
1130         * WTF.xcodeproj/project.pbxproj:
1131         * wtf/Bag.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
1132         * wtf/Bag.h:
1133         (WTF::Private::BagNode::BagNode): Deleted.
1134         * wtf/BitVector.cpp:
1135         (WTF::BitVector::OutOfLineBits::create):
1136         (WTF::BitVector::OutOfLineBits::destroy):
1137         * wtf/CMakeLists.txt:
1138         * wtf/ConcurrentBuffer.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
1139         * wtf/ConcurrentBuffer.h:
1140         * wtf/DebugHeap.cpp: Copied from Source/JavaScriptCore/runtime/CachePayload.cpp.
1141         (WTF::DebugHeap::DebugHeap):
1142         (WTF::DebugHeap::malloc):
1143         (WTF::DebugHeap::calloc):
1144         (WTF::DebugHeap::memalign):
1145         (WTF::DebugHeap::realloc):
1146         (WTF::DebugHeap::free):
1147         * wtf/DebugHeap.h: Added.
1148         * wtf/FastBitVector.cpp:
1149         (WTF::FastBitVectorWordOwner::setEqualsSlow):
1150         (WTF::FastBitVectorWordOwner::resizeSlow):
1151         * wtf/FastBitVector.h:
1152         (WTF::FastBitVectorWordOwner::~FastBitVectorWordOwner):
1153         * wtf/FastMalloc.cpp:
1154         (WTF::fastMallocDumpMallocStats):
1155         (WTF::AvoidRecordingScope::AvoidRecordingScope):
1156         (WTF::AvoidRecordingScope::~AvoidRecordingScope):
1157         (WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
1158         (WTF::MallocCallTracker::singleton):
1159         (WTF::MallocCallTracker::MallocCallTracker):
1160         (WTF::MallocCallTracker::recordMalloc):
1161         (WTF::MallocCallTracker::recordRealloc):
1162         (WTF::MallocCallTracker::recordFree):
1163         (WTF::MallocCallTracker::dumpStats):
1164         (WTF::fastMalloc):
1165         (WTF::fastRealloc):
1166         (WTF::fastFree):
1167         (WTF::fastAlignedMalloc):
1168         (WTF::tryFastAlignedMalloc):
1169         (WTF::fastAlignedFree):
1170         * wtf/FastMalloc.h:
1171         (WTF::FastMalloc::zeroedMalloc):
1172         (WTF::FastMalloc::tryZeroedMalloc):
1173         * wtf/Forward.h:
1174         * wtf/HashTable.cpp:
1175         * wtf/HashTable.h:
1176         (WTF::KeyTraits>::allocateTable):
1177         (WTF::KeyTraits>::deallocateTable):
1178         (WTF::KeyTraits>::rehash):
1179         * wtf/MallocPtr.h:
1180         (WTF::MallocPtr::MallocPtr):
1181         (WTF::MallocPtr::malloc):
1182         (WTF::MallocPtr::zeroedMalloc):
1183         (WTF::MallocPtr::tryMalloc):
1184         (WTF::MallocPtr::tryZeroedMalloc):
1185         (WTF::adoptMallocPtr):
1186         * wtf/MetaAllocator.cpp:
1187         (WTF::MetaAllocator::allocFreeSpaceNode):
1188         (WTF::MetaAllocator::freeFreeSpaceNode):
1189         * wtf/MetaAllocatorHandle.h:
1190         * wtf/Platform.h:
1191         * wtf/RefCountedArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1192         * wtf/RefCountedArray.h:
1193         (WTF::RefCountedArray::RefCountedArray):
1194         (WTF::RefCountedArray::~RefCountedArray):
1195         (WTF::RefCountedArray::assign):
1196         * wtf/SegmentedVector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1197         * wtf/SegmentedVector.h:
1198         * wtf/SmallPtrSet.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1199         * wtf/SmallPtrSet.h:
1200         (WTF::SmallPtrSet::~SmallPtrSet):
1201         (WTF::SmallPtrSet::grow):
1202         * wtf/UniqueArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1203         * wtf/UniqueArray.h:
1204         (WTF::UniqueArrayFree::operator() const):
1205         (WTF::UniqueArrayFree<T::operator() const):
1206         * wtf/Vector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1207         * wtf/Vector.h:
1208         (WTF::VectorBufferBase::allocateBuffer):
1209         (WTF::VectorBufferBase::tryAllocateBuffer):
1210         (WTF::VectorBufferBase::reallocateBuffer):
1211         (WTF::VectorBufferBase::deallocateBuffer):
1212         (WTF::VectorBufferBase::releaseBuffer):
1213         (WTF::VectorBuffer::releaseBuffer):
1214         (WTF::Vector::swap):
1215         (WTF::Malloc>::Vector):
1216         (WTF::=):
1217         (WTF::Malloc>::contains const):
1218         (WTF::Malloc>::findMatching const):
1219         (WTF::Malloc>::find const):
1220         (WTF::Malloc>::reverseFind const):
1221         (WTF::Malloc>::appendIfNotContains):
1222         (WTF::Malloc>::fill):
1223         (WTF::Malloc>::appendRange):
1224         (WTF::Malloc>::expandCapacity):
1225         (WTF::Malloc>::tryExpandCapacity):
1226         (WTF::Malloc>::resize):
1227         (WTF::Malloc>::resizeToFit):
1228         (WTF::Malloc>::shrink):
1229         (WTF::Malloc>::grow):
1230         (WTF::Malloc>::asanSetInitialBufferSizeTo):
1231         (WTF::Malloc>::asanSetBufferSizeToFullCapacity):
1232         (WTF::Malloc>::asanBufferSizeWillChangeTo):
1233         (WTF::Malloc>::reserveCapacity):
1234         (WTF::Malloc>::tryReserveCapacity):
1235         (WTF::Malloc>::reserveInitialCapacity):
1236         (WTF::Malloc>::shrinkCapacity):
1237         (WTF::Malloc>::append):
1238         (WTF::Malloc>::tryAppend):
1239         (WTF::Malloc>::constructAndAppend):
1240         (WTF::Malloc>::tryConstructAndAppend):
1241         (WTF::Malloc>::appendSlowCase):
1242         (WTF::Malloc>::constructAndAppendSlowCase):
1243         (WTF::Malloc>::tryConstructAndAppendSlowCase):
1244         (WTF::Malloc>::uncheckedAppend):
1245         (WTF::Malloc>::uncheckedConstructAndAppend):
1246         (WTF::Malloc>::appendVector):
1247         (WTF::Malloc>::insert):
1248         (WTF::Malloc>::insertVector):
1249         (WTF::Malloc>::remove):
1250         (WTF::Malloc>::removeFirst):
1251         (WTF::Malloc>::removeFirstMatching):
1252         (WTF::Malloc>::removeAll):
1253         (WTF::Malloc>::removeAllMatching):
1254         (WTF::Malloc>::reverse):
1255         (WTF::Malloc>::map const):
1256         (WTF::Malloc>::releaseBuffer):
1257         (WTF::Malloc>::checkConsistency):
1258         (WTF::swap):
1259         (WTF::operator==):
1260         (WTF::operator!=):
1261         (WTF::Malloc>::isolatedCopy const):
1262         (WTF::removeRepeatedElements):
1263         (WTF::minCapacity>::Vector): Deleted.
1264         (WTF::minCapacity>::contains const): Deleted.
1265         (WTF::minCapacity>::findMatching const): Deleted.
1266         (WTF::minCapacity>::find const): Deleted.
1267         (WTF::minCapacity>::reverseFind const): Deleted.
1268         (WTF::minCapacity>::appendIfNotContains): Deleted.
1269         (WTF::minCapacity>::fill): Deleted.
1270         (WTF::minCapacity>::appendRange): Deleted.
1271         (WTF::minCapacity>::expandCapacity): Deleted.
1272         (WTF::minCapacity>::tryExpandCapacity): Deleted.
1273         (WTF::minCapacity>::resize): Deleted.
1274         (WTF::minCapacity>::resizeToFit): Deleted.
1275         (WTF::minCapacity>::shrink): Deleted.
1276         (WTF::minCapacity>::grow): Deleted.
1277         (WTF::minCapacity>::asanSetInitialBufferSizeTo): Deleted.
1278         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity): Deleted.
1279         (WTF::minCapacity>::asanBufferSizeWillChangeTo): Deleted.
1280         (WTF::minCapacity>::reserveCapacity): Deleted.
1281         (WTF::minCapacity>::tryReserveCapacity): Deleted.
1282         (WTF::minCapacity>::reserveInitialCapacity): Deleted.
1283         (WTF::minCapacity>::shrinkCapacity): Deleted.
1284         (WTF::minCapacity>::append): Deleted.
1285         (WTF::minCapacity>::tryAppend): Deleted.
1286         (WTF::minCapacity>::constructAndAppend): Deleted.
1287         (WTF::minCapacity>::tryConstructAndAppend): Deleted.
1288         (WTF::minCapacity>::appendSlowCase): Deleted.
1289         (WTF::minCapacity>::constructAndAppendSlowCase): Deleted.
1290         (WTF::minCapacity>::tryConstructAndAppendSlowCase): Deleted.
1291         (WTF::minCapacity>::uncheckedAppend): Deleted.
1292         (WTF::minCapacity>::uncheckedConstructAndAppend): Deleted.
1293         (WTF::minCapacity>::appendVector): Deleted.
1294         (WTF::minCapacity>::insert): Deleted.
1295         (WTF::minCapacity>::insertVector): Deleted.
1296         (WTF::minCapacity>::remove): Deleted.
1297         (WTF::minCapacity>::removeFirst): Deleted.
1298         (WTF::minCapacity>::removeFirstMatching): Deleted.
1299         (WTF::minCapacity>::removeAll): Deleted.
1300         (WTF::minCapacity>::removeAllMatching): Deleted.
1301         (WTF::minCapacity>::reverse): Deleted.
1302         (WTF::minCapacity>::map const): Deleted.
1303         (WTF::minCapacity>::releaseBuffer): Deleted.
1304         (WTF::minCapacity>::checkConsistency): Deleted.
1305         (WTF::minCapacity>::isolatedCopy const): Deleted.
1306         * wtf/text/CString.cpp:
1307         (WTF::CStringBuffer::createUninitialized):
1308         * wtf/text/CString.h:
1309         * wtf/text/StringBuffer.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
1310         * wtf/text/StringBuffer.h:
1311         (WTF::StringBuffer::StringBuffer):
1312         (WTF::StringBuffer::~StringBuffer):
1313         (WTF::StringBuffer::resize):
1314         (WTF::StringBuffer::release):
1315         * wtf/text/StringImpl.cpp:
1316         (WTF::StringImpl::~StringImpl):
1317         (WTF::StringImpl::destroy):
1318         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1319         (WTF::StringImpl::reallocateInternal):
1320         * wtf/text/StringImpl.h:
1321         (WTF::StringImpl::StringImpl):
1322         (WTF::StringImpl::createSubstringSharingImpl):
1323         (WTF::StringImpl::tryCreateUninitialized):
1324         (WTF::StringImpl::adopt):
1325         * wtf/text/cf/StringImplCF.cpp:
1326         (WTF::StringWrapperCFAllocator::allocate):
1327         (WTF::StringWrapperCFAllocator::reallocate):
1328         (WTF::StringWrapperCFAllocator::deallocate):
1329
1330 2020-01-02  Dean Jackson  <dino@apple.com>
1331
1332         REGRESSION(r253926): Crash at libANGLE-shared.dylib: gl::LogMessage::~LogMessage
1333         https://bugs.webkit.org/show_bug.cgi?id=205690
1334         rdar://58279401
1335
1336         Reviewed by Eric Carlson.
1337
1338         Only enable ANGLE for iOS hardware while we investigate this fatal error.
1339
1340         * wtf/Platform.h:
1341
1342 2020-01-02  Sam Weinig  <weinig@apple.com>
1343
1344         Simplify StringBuilder API/align with makeString by removing appendFixed* functions and using FormatNumber struct instead
1345         https://bugs.webkit.org/show_bug.cgi?id=205671
1346
1347         Reviewed by Alex Christensen.
1348
1349         In an ongoing attempt to simplify the StringBuilder interface and unify it's functionality with makeString,
1350         this change removes appendFixedPrecisionNumber() and appendFixedWidthNumber(), replacing their uses
1351         with direct calls to append(), using a FormattedNumber object to direct it to the appropriate StringTypeAdapter.
1352
1353         * wtf/text/StringBuilder.h:
1354         * wtf/text/StringBuilder.cpp:
1355         (WTF::StringBuilder::appendFixedPrecisionNumber): Deleted.
1356         (WTF::StringBuilder::appendFixedWidthNumber): Deleted.
1357         Remove StringBuilder::appendFixedPrecisionNumber() and StringBuilder::appendFixedWidthNumber(). The same functionality
1358         is available and more flexible by passing FormattedNumbers to the variadic append() function.
1359         
1360         * wtf/text/TextStream.cpp:
1361         (WTF::TextStream::operator<<):
1362         * wtf/MediaTime.cpp:
1363         (WTF::MediaTime::toString const):
1364         Replace all uses of builder.appendFixedPrecisionNumber(...) with builder.append(FormattedNumber::fixedPrecision(...))
1365         and builder.appendFixedWidthNumber(...) with with builder.append(FormattedNumber::fixedWidth(...))
1366
1367 2019-12-20  Darin Adler  <darin@apple.com>
1368
1369         Tidy a bit of StringBuilder usage
1370         https://bugs.webkit.org/show_bug.cgi?id=205509
1371
1372         Reviewed by Sam Weinig.
1373
1374         * wtf/FileSystem.cpp:
1375         (WTF::FileSystemImpl::decodeFromFilename): Fix misleading variable name "hexDigit"
1376         for result of decoding "%+XXXX"; what's decoded is a character, not a hex digit.
1377
1378         * wtf/HexNumber.h: Remove unused appendUnsignedAsHexFixedSize function for
1379         destinations other than StringBuilder. Don't need it at this time, could add
1380         it later if we ever decide we do.
1381
1382         * wtf/text/StringBuilder.h:
1383         (WTF::StringBuilder::appendSubstring): Improved logic in appendSubstring so it
1384         will handle even absurd values for offset and length correctly, and added a
1385         default length of "infinity" just like in String::substring.
1386
1387         * wtf/text/StringImpl.cpp:
1388         (WTF::StringImpl::convertToLowercaseWithoutLocale): Use isASCII.
1389         (WTF::StringImpl::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit): Ditto.
1390
1391         * wtf/text/WTFString.cpp:
1392         (asciiDebug): Use StringBuilder to build the string; this was the one place that
1393         used appendUnsignedAsHexFixedSize on something else, and there is no need.
1394
1395 2019-12-30  youenn fablet  <youenn@apple.com>
1396
1397         Ignore URL host for schemes that are not using host information
1398         https://bugs.webkit.org/show_bug.cgi?id=205157
1399         <rdar://problem/57825963>
1400
1401         Reviewed by Darin Adler.
1402
1403         * wtf/URL.cpp:
1404         (WTF::URL::removeHostAndPort):
1405         * wtf/URL.h:
1406
1407 2019-12-25  Dean Jackson  <dino@apple.com>
1408
1409         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
1410         https://bugs.webkit.org/show_bug.cgi?id=205483
1411         rdar://56925821
1412
1413         Reviewed by Simon Fraser.
1414
1415         Turn USE_ANGLE on for Cocoa, with the exception of the simulator.
1416
1417         * wtf/Platform.h:
1418
1419 2019-12-24  Eric Carlson  <eric.carlson@apple.com>
1420
1421         [Media in GPU process] Enable media player proxy logging
1422         https://bugs.webkit.org/show_bug.cgi?id=205557
1423         <rdar://problem/58160932>
1424
1425         Reviewed by Youenn Fablet.
1426
1427         * wtf/Logger.h:
1428         (WTF::Logger::willLog const): Minor optimization: don't check m_enabled unnecessarily.
1429
1430 2019-12-23  Keith Miller  <keith_miller@apple.com>
1431
1432         DFG/FTL should be able to exit to the middle of a bytecode
1433         https://bugs.webkit.org/show_bug.cgi?id=205232
1434
1435         Reviewed by Saam Barati.
1436
1437         * WTF.xcodeproj/project.pbxproj:
1438         * wtf/Bitmap.h:
1439         (WTF::WordType>::invert):
1440         (WTF::WordType>::operator):
1441         (WTF::WordType>::operator const const):
1442         * wtf/CMakeLists.txt:
1443         * wtf/EnumClassOperatorOverloads.h: Added.
1444         * wtf/FastBitVector.h:
1445         (WTF::FastBitReference::operator bool const):
1446         (WTF::FastBitReference::operator|=):
1447         (WTF::FastBitReference::operator&=):
1448         (WTF::FastBitVector::fill):
1449         (WTF::FastBitVector::grow):
1450         * wtf/UnalignedAccess.h:
1451         (WTF::unalignedLoad):
1452         (WTF::unalignedStore):
1453
1454 2019-12-21  Antti Koivisto  <antti@apple.com>
1455
1456         Move Vector HashTraits to HashTraits.h to fix GCC build
1457         https://bugs.webkit.org/show_bug.cgi?id=205540
1458
1459         Reviewed by Zalan Bujtas.
1460
1461         GCC is stricter than LLVM with partial specializations
1462
1463         Error: partial specialization of struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >
1464         after instantiation of struct WTF::HashTraits<WTF::Vector<WTF::String> >
1465
1466         * wtf/HashTraits.h:
1467         * wtf/VectorHash.h:
1468
1469 2019-12-20  Truitt Savell  <tsavell@apple.com>
1470
1471         Unreviewed, rolling out r253820.
1472
1473         Broke Mac testing
1474
1475         Reverted changeset:
1476
1477         "Invalidate only affected elements after media query
1478         evaluation changes"
1479         https://bugs.webkit.org/show_bug.cgi?id=205392
1480         https://trac.webkit.org/changeset/253820
1481
1482 2019-12-20  Antti Koivisto  <antti@apple.com>
1483
1484         Invalidate only affected elements after media query evaluation changes
1485         https://bugs.webkit.org/show_bug.cgi?id=205392
1486
1487         Reviewed by Zalan Bujtas.
1488
1489         Fix GCC build error
1490
1491         Error: partial specialization of ‘struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >’
1492                after instantiation of ‘struct WTF::HashTraits<WTF::Vector<WTF::String> >’
1493
1494         * wtf/HashTraits.h:
1495         * wtf/VectorHash.h:
1496
1497         Move to HashTraits to HashTraits.h so it gets specialized before any instantiation.
1498
1499 2019-12-19  Antti Koivisto  <antti@apple.com>
1500
1501         Allow Vectors as hash keys
1502         https://bugs.webkit.org/show_bug.cgi?id=205449
1503
1504         Reviewed by Geoff Garen.
1505
1506         Add traits to allow Vectors of hashable types to act as hash keys.
1507
1508         * WTF.xcodeproj/project.pbxproj:
1509         * wtf/Vector.h:
1510         (WTF::Vector::Vector):
1511         (WTF::Vector::~Vector):
1512         (WTF::Vector::isHashTableDeletedValue const):
1513
1514         Use m_size = numeric_limits::max() as the deleted value.
1515
1516         * wtf/VectorHash.h: Added.
1517         (WTF::VectorHash::hash):
1518         (WTF::VectorHash::equal):
1519
1520         Add traits. Empty Vector is the empty value.
1521
1522 2019-12-19  Jer Noble  <jer.noble@apple.com>
1523
1524         Safely iterate observers in languageDidChange()
1525         https://bugs.webkit.org/show_bug.cgi?id=205452
1526         <rdar://problem/57937765>
1527
1528         Reviewed by Eric Carlson.
1529
1530         Use the "copyToVector() then verify each item is still in the original
1531         map" pattern to safely iterate over the observerMap().
1532
1533         * wtf/Language.cpp:
1534         (WTF::languageDidChange):
1535
1536 2019-12-18  Yusuke Suzuki  <ysuzuki@apple.com>
1537
1538         Unreviewed, build fix after r253730
1539         https://bugs.webkit.org/show_bug.cgi?id=204398
1540
1541         Thread::destructTLS is always required in POSIX environments
1542
1543         * wtf/Threading.h:
1544
1545 2019-12-18  Fujii Hironori  <Hironori.Fujii@sony.com>
1546
1547         [Win] Use thread_local to hold Ref<WTF::Thread> in the thread rather than using FLS
1548         https://bugs.webkit.org/show_bug.cgi?id=204398
1549
1550         Reviewed by Yusuke Suzuki.
1551
1552         Use thread_local which is faster than FLS.
1553
1554         * wtf/Threading.cpp:
1555         (WTF::initializeThreading):
1556         * wtf/Threading.h:
1557         (WTF::Thread::current):
1558         * wtf/ThreadingPrimitives.h: Deleted threadSpecificKeyCreate and
1559         related functions which aren't used now in Windows port. Deleted
1560         THREAD_SPECIFIC_CALL macro which isn't used now.
1561         * wtf/win/ThreadingWin.cpp: Added a thread_local variable s_threadHolder.
1562         (WTF::Thread::ThreadHolder::~ThreadHolder): Added.
1563         (WTF::Thread::currentMayBeNull):
1564         (WTF::Thread::initializeTLS): Store a reference of Thread into s_threadHolder.
1565         (WTF::Thread::initializeTLSKey): Deleted.
1566         (WTF::Thread::destructTLS): Deleted.
1567
1568 2019-12-18  Ben Nham  <nham@apple.com>
1569
1570         Add network loading signposts
1571         https://bugs.webkit.org/show_bug.cgi?id=204822
1572         <rdar://problem/57608824>
1573
1574         Reviewed by Alex Christensen.
1575
1576         This adds os_signposts related to network loads to aid in debugging networking performance
1577         issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
1578         internal builds when an environment variable is set.
1579
1580         * wtf/Platform.h:
1581         Add HAVE_OS_SIGNPOST.
1582
1583 2019-12-17  Myles C. Maxfield  <mmaxfield@apple.com>
1584
1585         [iOS] Update to use CTFontCreateForCharactersWithLanguageAndOption()
1586         https://bugs.webkit.org/show_bug.cgi?id=205310
1587
1588         Reviewed by Simon Fraser.
1589
1590         All our bots are on the appropriate OS version.
1591
1592         * wtf/Platform.h:
1593
1594 2019-12-17  Yusuke Suzuki  <ysuzuki@apple.com>
1595
1596         [JSC] 8Bit JSRopeString can contain 16Bit string in its rope
1597         https://bugs.webkit.org/show_bug.cgi?id=205323
1598
1599         Reviewed by Mark Lam.
1600
1601         * wtf/text/StringImpl.h:
1602         (WTF::StringImpl::copyCharacters):
1603
1604 2019-12-17  Tim Horton  <timothy_horton@apple.com>
1605
1606         macCatalyst: Cursor should update on mouse movement and style change
1607         https://bugs.webkit.org/show_bug.cgi?id=205317
1608         <rdar://problem/46793696>
1609
1610         Reviewed by Anders Carlsson.
1611
1612         * wtf/FeatureDefines.h:
1613         Make ENABLE_CURSOR_SUPPORT true on iOS, for macCatalyst. This results
1614         in it being true everywhere, so remove it.
1615
1616         Add a new ENABLE_CUSTOM_CURSOR_SUPPORT, indicating whether we support
1617         custom bitmap cursors. It covers the subset of ENABLE_CURSOR_SUPPORT
1618         code that we still don't support in macCatalyst.
1619
1620         * wtf/Platform.h:
1621         Add HAVE_HISERVICES (true on macOS but not macCatalyst) and
1622         HAVE_NSCURSOR (true on macOS and macCatalyst but not e.g. iOS).
1623
1624 2019-12-16  Yusuke Suzuki  <ysuzuki@apple.com>
1625
1626         [JSC] Remove ArrayBufferNeuteringWatchpointSet
1627         https://bugs.webkit.org/show_bug.cgi?id=205194
1628
1629         Reviewed by Saam Barati.
1630
1631         This patch adds PackedRef and PackedRefPtr. They are Ref and RefPtr, but its internal pointer is packed.
1632         So we can represent them in 6 bytes with 1 byte alignment.
1633
1634         * WTF.xcodeproj/project.pbxproj:
1635         * wtf/CMakeLists.txt:
1636         * wtf/Packed.h:
1637         (WTF::alignof):
1638         * wtf/PackedRef.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
1639         * wtf/PackedRefPtr.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
1640         * wtf/RefPtr.h:
1641         (WTF::RefPtr::operator UnspecifiedBoolType const):
1642         (WTF::RefPtr::unspecifiedBoolTypeInstance const):
1643
1644 2019-12-13  Saam Barati  <sbarati@apple.com>
1645
1646         Add a Heap::finalize function that takes WTF::Function<void()>
1647         https://bugs.webkit.org/show_bug.cgi?id=205211
1648
1649         Reviewed by Geoffrey Garen.
1650
1651         * wtf/Function.h:
1652         (WTF::Function<Out):
1653
1654 2019-12-13  Per Arne Vollan  <pvollan@apple.com>
1655
1656         [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
1657         https://bugs.webkit.org/show_bug.cgi?id=205134
1658         <rdar://problem/56984257>
1659
1660         Reviewed by Brent Fulgham.
1661
1662         Add enum value for the XPC service name filter type.
1663
1664         * wtf/spi/darwin/SandboxSPI.h:
1665
1666 2019-12-09  Fujii Hironori  <Hironori.Fujii@sony.com>
1667
1668         [MSVC] writeNumberToBufferUnsigned is unsafe for bool type
1669         https://bugs.webkit.org/show_bug.cgi?id=204873
1670
1671         Reviewed by Darin Adler.
1672
1673         MSVC reports warning for using / operator for bool type.
1674         > warning C4804: '/': unsafe use of type 'bool' in operation
1675
1676         And, 'bool' isn't expected to be serialized as '0' or '1'. 'bool' isn't supported.
1677
1678         * wtf/text/IntegerToStringConversion.h: Added a static_assert to ensure UnsignedIntegerType isn't bool.
1679
1680 2019-07-13  Darin Adler  <darin@apple.com>
1681
1682         Streamline PODIntervalTree code and remove ValueToString
1683         https://bugs.webkit.org/show_bug.cgi?id=199782
1684
1685         Reviewed by Anders Carlsson.
1686
1687         * WTF.xcodeproj/project.pbxproj: Remove ValueToString.h.
1688         * wtf/CMakeLists.txt: Ditto.
1689
1690         * wtf/MediaTime.cpp:
1691         (WTF::operator<<): Implement debug-only TextStream serialization
1692         based on toJSONString.
1693         * wtf/MediaTime.h: Ditto.
1694
1695         * wtf/text/ValueToString.h: Removed.
1696
1697 2019-12-06  Zan Dobersek  <zdobersek@igalia.com>
1698
1699         [GTK][WPE] Use bmalloc's memory footprint API for JSC heap growth management
1700         https://bugs.webkit.org/show_bug.cgi?id=204576
1701
1702         Reviewed by Saam Barati.
1703
1704         Add the new USE_BMALLOC_MEMORY_FOOTPRINT_API, enabled for the iOS-family
1705         ports and the Linux ports, as long as system malloc enforcement is
1706         disabled and bmalloc is subsequently built and used. The flag is used in
1707         JavaScriptCore to enable usage of bmalloc's memory footprint API for
1708         JSC heap growth control.
1709
1710         * wtf/Platform.h:
1711
1712 2019-12-05  Chris Dumez  <cdumez@apple.com>
1713
1714         [IPC] Fail ObjectIdentifier decoding if the decoded integer is not a valid ID
1715         https://bugs.webkit.org/show_bug.cgi?id=204921
1716         <rdar://problem/57677747>
1717
1718         Reviewed by Ryosuke Niwa.
1719
1720         * wtf/ObjectIdentifier.h:
1721         (WTF::ObjectIdentifier::decode):
1722
1723 2019-12-03  Sunny He  <sunny_he@apple.com>
1724
1725         Enable security assertions on all ASAN builds
1726         https://bugs.webkit.org/show_bug.cgi?id=204802
1727
1728         Reviewed by Ryosuke Niwa.
1729
1730         * wtf/FeatureDefines.h:
1731
1732 2019-12-03  Christopher Reid  <chris.reid@sony.com>
1733
1734         Regular expression hangs in Safari only
1735         https://bugs.webkit.org/show_bug.cgi?id=202882
1736         <rdar://problem/56236654>
1737
1738         Reviewed by Yusuke Suzuki.
1739
1740         BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
1741         if multiple large pools are deallocated and a new capacity does not
1742         fit in the deallocated pools. BumpPointerPool should try using
1743         more pools if the next one isn't large enough.
1744
1745         * wtf/BumpPointerAllocator.h:
1746         (WTF::BumpPointerPool::ensureCapacityCrossPool):
1747
1748 2019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>
1749
1750         Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
1751         https://bugs.webkit.org/show_bug.cgi?id=204666
1752
1753         Reviewed by Ross Kirsling and Don Olmstead.
1754
1755         * wtf/FeatureDefines.h:
1756
1757 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
1758
1759         [Win] Update KeyboardEvent as per the latest specification
1760         https://bugs.webkit.org/show_bug.cgi?id=202183
1761
1762         Reviewed by Ross Kirsling.
1763
1764         * wtf/FeatureDefines.h:
1765
1766 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
1767
1768         Add DefaultHash<OptionSet<T>> and HashTrait<OptionSet<T>> specializations
1769         https://bugs.webkit.org/show_bug.cgi?id=204562
1770
1771         Reviewed by Daniel Bates.
1772
1773         * WTF.xcodeproj/project.pbxproj: Added OptionSetHash.h
1774         * wtf/CMakeLists.txt: Ditto.
1775         * wtf/OptionSet.h: Made StorageType public, and use C++14 types.
1776         * wtf/OptionSetHash.h: Added.
1777         (WTF::DefaultHash<OptionSet<T>>::Hash::hash):
1778         (WTF::DefaultHash<OptionSet<T>>::Hash::equal):
1779         (WTF::HashTraits<OptionSet<T>>::emptyValue):
1780         (WTF::HashTraits<OptionSet<T>>::constructDeletedValue):
1781         (WTF::HashTraits<OptionSet<T>>::isDeletedValue):
1782
1783 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
1784
1785         REGRESSION(r252770): [GTK][WPE] Remote inspector no longer works if debugger is in a different kind of system
1786         https://bugs.webkit.org/show_bug.cgi?id=204572
1787
1788         Reviewed by Žan Doberšek.
1789
1790         This patch adds the following changes:
1791
1792          - Use uint32_t instead of size_t to store the body size in the message header, because size_t has a different
1793            size in 32 and 64 bit platforms.
1794          - Use htonl/ntohl to write/read the body size in the header.
1795          - Add a flags byte to the header to include the message byte order. The sender always uses the host byter order
1796            and the receiver does the byte swapping if needed.
1797
1798         * wtf/glib/SocketConnection.cpp:
1799         (WTF::messageIsByteSwapped):
1800         (WTF::SocketConnection::readMessage):
1801         (WTF::SocketConnection::sendMessage):
1802
1803 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
1804
1805         REGRESSION(r252770): [GTK][WPE] Remote inspector broken in debug builds after r252770
1806         https://bugs.webkit.org/show_bug.cgi?id=204569
1807
1808         Reviewed by Žan Doberšek.
1809
1810         We need to call relaxAdoptionRequirement() in SocketConnection constructor because we are taking a reference for
1811         the read monitor lambda.
1812
1813         * wtf/glib/SocketConnection.cpp:
1814         (WTF::SocketConnection::SocketConnection):
1815
1816 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
1817
1818         Ran sort-Xcode-project-file.
1819
1820         Unreviewed.
1821
1822         * WTF.xcodeproj/project.pbxproj:
1823
1824 2019-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
1825
1826         Unreviewed. Try to fix the GTK WebDriver tests in the bots after r252770
1827
1828         They are failing in the bots because g_variant_new_from_data() is failing due to the given data not being
1829         properly aligned for the type being loaded. This is not a problem since GLib 2.60 that checks the alignment and
1830         reallocates the buffer in aligned memory only if needed. For previous versions we need to ensure the memory we
1831         pass to g_variant_new_from_data() is aligned.
1832
1833         * wtf/glib/SocketConnection.cpp:
1834         (WTF::SocketConnection::readMessage):
1835
1836 2019-11-22  Brent Fulgham  <bfulgham@apple.com>
1837
1838         Unreviewed FTW build fix after r252687.
1839
1840         * wtf/PlatformFTW.cmake:
1841
1842 2019-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1843
1844         [GTK][WPE] RemoteInspector: use sockets instead of DBus
1845         https://bugs.webkit.org/show_bug.cgi?id=204503
1846
1847         Reviewed by Žan Doberšek.
1848
1849         Add SocketConnection class.
1850
1851         * wtf/PlatformGTK.cmake:
1852         * wtf/PlatformWPE.cmake:
1853         * wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp.
1854         (WTF::GSocketMonitor::start):
1855         * wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h.
1856         (WTF::GSocketMonitor::isActive const):
1857         * wtf/glib/GTypedefs.h:
1858         * wtf/glib/GUniquePtr.h:
1859         * wtf/glib/SocketConnection.cpp: Added.
1860         (WTF::SocketConnection::SocketConnection):
1861         (WTF::SocketConnection::~SocketConnection):
1862         (WTF::SocketConnection::read):
1863         (WTF::SocketConnection::readMessage):
1864         (WTF::SocketConnection::sendMessage):
1865         (WTF::SocketConnection::write):
1866         (WTF::SocketConnection::waitForSocketWritability):
1867         (WTF::SocketConnection::close):
1868         (WTF::SocketConnection::didClose):
1869         * wtf/glib/SocketConnection.h: Added.
1870         (WTF::SocketConnection::create):
1871         (WTF::SocketConnection::isClosed const):
1872
1873 2019-11-21  Yusuke Suzuki  <ysuzuki@apple.com>
1874
1875         Unreviewed, rolling in again, regression is not caused by it
1876         https://bugs.webkit.org/show_bug.cgi?id=202471
1877
1878         * wtf/text/StringCommon.h:
1879         (WTF::findCommon):
1880
1881 2019-11-21  Commit Queue  <commit-queue@webkit.org>
1882
1883         Unreviewed, rolling out r252683 and r252721.
1884         https://bugs.webkit.org/show_bug.cgi?id=204475
1885
1886         13% regression in JetStream2/prepack-wtb (Requested by
1887         yusukesuzuki on #webkit).
1888
1889         Reverted changesets:
1890
1891         "Implement String.prototype.replaceAll"
1892         https://bugs.webkit.org/show_bug.cgi?id=202471
1893         https://trac.webkit.org/changeset/252683
1894
1895         "Unreviewed, address Darin's feedback on r252683."
1896         https://trac.webkit.org/changeset/252721
1897
1898 2019-11-21  Tuomas Karkkainen  <tuomas.webkit@apple.com>
1899
1900         add ASSERT_NOT_REACHED_WITH_MESSAGE and RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE
1901         https://bugs.webkit.org/show_bug.cgi?id=204445
1902
1903         Reviewed by Antti Koivisto.
1904
1905         Add assertions that combine ASSERT_NOT_REACHED and ASSERT_WITH_MESSAGE.
1906
1907         * wtf/Assertions.h:
1908
1909 2019-11-20  Ross Kirsling  <ross.kirsling@sony.com>
1910
1911         Unreviewed, address Darin's feedback on r252683.
1912
1913         * wtf/text/StringCommon.h:
1914         (WTF::findCommon):
1915
1916 2019-11-20  ChangSeok Oh  <changseok@webkit.org>
1917
1918         [GTK] Add ANGLE backend to GTK port
1919         https://bugs.webkit.org/show_bug.cgi?id=199060
1920
1921         Reviewed by Žan Doberšek.
1922
1923         The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
1924         and ANGLE has an egl context for WebGL. We want to make both live together
1925         so an exception is made where TEXTURE_MAPPER is enabled.
1926
1927         * wtf/Platform.h:
1928
1929 2019-11-20  Fujii Hironori  <Hironori.Fujii@sony.com>
1930
1931         [Win] Implement WTF::ThreadSpecific in WTF::Thread
1932         https://bugs.webkit.org/show_bug.cgi?id=204341
1933
1934         Reviewed by Brent Fulgham and Yusuke Suzuki.
1935
1936         Thread::destructTLS had a tricky code to defer destroying
1937         WTF::Thread in TLS in order to ensure WTF::Thread is destructed
1938         after other ThreadSpecific are destructed, which is a part of
1939         cause of nasty hanging issue in the process termination (Bug 204192).
1940
1941         This change implements WTF::ThreadSpecific in WTF::Thread by
1942         adding a new class Thread::SpecificStorage to manage TLS. Simplify
1943         Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp
1944
1945         * wtf/PlatformWin.cmake:
1946         * wtf/ThreadSpecific.h:
1947         (WTF::canBeGCThread>::ThreadSpecific):
1948         (WTF::canBeGCThread>::get):
1949         (WTF::canBeGCThread>::setInTLS):
1950         (WTF::canBeGCThread>::destroy):
1951         (WTF::canBeGCThread>::~ThreadSpecific): Deleted.
1952         * wtf/Threading.h:
1953         (WTF::Thread::specificStorage):
1954         (WTF::Thread::current):
1955         * wtf/win/ThreadSpecificWin.cpp: Removed.
1956         * wtf/win/ThreadingWin.cpp:
1957         (WTF::Thread::initializeTLSKey):
1958         (WTF::Thread::initializeTLS):
1959         (WTF::Thread::destructTLS):
1960         (WTF::Thread::SpecificStorage::allocateKey):
1961         (WTF::Thread::SpecificStorage::get):
1962         (WTF::Thread::SpecificStorage::set):
1963         (WTF::Thread::SpecificStorage::destroySlots):
1964         (): Deleted.
1965         (WTF::Thread::currentDying): Deleted.
1966         (WTF::Thread::get): Deleted.
1967
1968 2019-11-19  Ross Kirsling  <ross.kirsling@sony.com>
1969
1970         Implement String.prototype.replaceAll
1971         https://bugs.webkit.org/show_bug.cgi?id=202471
1972
1973         Reviewed by Yusuke Suzuki.
1974
1975         * wtf/text/StringCommon.h:
1976         (WTF::findCommon):
1977         Fix logic: "start > length" early out should come before "empty search string" early out.
1978
1979 2019-11-19  Yusuke Suzuki  <ysuzuki@apple.com>
1980
1981         [IndexedDB] IndexedDB's threading assertion should respect Web thread
1982         https://bugs.webkit.org/show_bug.cgi?id=204346
1983
1984         Reviewed by Daniel Bates.
1985
1986         * wtf/MainThread.cpp:
1987         (WTF::canCurrentThreadAccessThreadLocalData):
1988         (WTF::canAccessThreadLocalDataForThread): Deleted.
1989         * wtf/MainThread.h:
1990         * wtf/cocoa/MainThreadCocoa.mm:
1991         (WTF::canCurrentThreadAccessThreadLocalData):
1992         (WTF::canAccessThreadLocalDataForThread): Deleted.
1993
1994 2019-11-18  Fujii Hironori  <Hironori.Fujii@sony.com>
1995
1996         Remove self-defined C++14 features in StdLibExtras.h
1997         https://bugs.webkit.org/show_bug.cgi?id=204220
1998
1999         Reviewed by Ross Kirsling.
2000
2001         Remove std::conjunction, std::in_place_t and std::make_unique definitions.
2002         Remove unsued std::clz.
2003
2004         * wtf/StdLibExtras.h:
2005         (std::make_unique): Deleted.
2006         (std::exchange): Deleted.
2007         (std::clz): Deleted.
2008
2009 2019-11-18  Alex Christensen  <achristensen@webkit.org>
2010
2011         Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available
2012         https://bugs.webkit.org/show_bug.cgi?id=204159
2013         <rdar://problem/45894288>
2014
2015         Reviewed by Darin Adler.
2016
2017         * wtf/Platform.h:
2018
2019 2019-11-15  Yusuke Suzuki  <ysuzuki@apple.com>
2020
2021         [JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
2022         https://bugs.webkit.org/show_bug.cgi?id=204269
2023
2024         Reviewed by Saam Barati.
2025
2026         * wtf/MathExtras.h:
2027         (WTF::computeIndexingMask): Deleted.
2028         (WTF::preciseIndexMaskShiftForSize): Deleted.
2029         (WTF::preciseIndexMaskShift): Deleted.
2030         (WTF::opaque): Deleted.
2031         (WTF::preciseIndexMaskPtr): Deleted.
2032
2033 2019-11-14  Yusuke Suzuki  <ysuzuki@apple.com>
2034
2035         [JSC] BlockDirectory's bits should be compact
2036         https://bugs.webkit.org/show_bug.cgi?id=204149
2037
2038         Reviewed by Robin Morisset.
2039
2040         * wtf/FastBitVector.h:
2041         (WTF::fastBitVectorArrayLength):
2042         (WTF::FastBitVectorImpl::unsafeWords):
2043         (WTF::FastBitVectorImpl::unsafeWords const):
2044         (WTF::FastBitReference::FastBitReference):
2045         (WTF::FastBitReference::operator bool const):
2046         (WTF::FastBitReference::operator=):
2047         (WTF::FastBitVector::at):
2048         (WTF::FastBitVector::operator[]):
2049         (WTF::FastBitVector::BitReference::BitReference): Deleted.
2050         (WTF::FastBitVector::BitReference::operator bool const): Deleted.
2051         (WTF::FastBitVector::BitReference::operator=): Deleted.
2052
2053 2019-11-11  Ross Kirsling  <ross.kirsling@sony.com>
2054
2055         UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
2056         https://bugs.webkit.org/show_bug.cgi?id=204032
2057
2058         Reviewed by Yusuke Suzuki.
2059
2060         We have code assuming that the world's time zones haven't changed in the past decade,
2061         but Samoa changed from UTC-11 to UTC+13 at the beginning of 2012.
2062
2063         (Note: "Samoa" here means the Independent State of Samoa (Pacific/Apia) and not American Samoa (Pacific/Samoa).
2064                See https://en.wikipedia.org/wiki/Time_in_Samoa for more information.)
2065
2066         * wtf/DateMath.cpp:
2067         (WTF::calculateUTCOffset):
2068         Update "canned date" from 2009 to 2019.
2069
2070 2019-11-07  Mark Lam  <mark.lam@apple.com>
2071
2072         Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
2073         https://bugs.webkit.org/show_bug.cgi?id=203936
2074         <rdar://problem/56624724>
2075
2076         Reviewed by Saam Barati.
2077
2078         1. Add a StackCheck utility class so that we don't have to keep reinventing this
2079            every time we need to add stack checking somewhere.
2080         2. Rename some arguments and constants in StackBounds to be more descriptive of
2081            what they actually are.
2082
2083         * WTF.xcodeproj/project.pbxproj:
2084         * wtf/CMakeLists.txt:
2085         * wtf/StackBounds.h:
2086         (WTF::StackBounds::recursionLimit const):
2087         * wtf/StackCheck.h: Added.
2088         (WTF::StackCheck::StackCheck):
2089         (WTF::StackCheck::isSafeToRecurse):
2090
2091 2019-11-06  Mark Lam  <mark.lam@apple.com>
2092
2093         Remove remnants of support code for an upwards growing stack.
2094         https://bugs.webkit.org/show_bug.cgi?id=203942
2095
2096         Reviewed by Yusuke Suzuki.
2097
2098         We haven't supported an upwards growing stack in years, and a lot of code has
2099         since been written specifically with only a downwards growing stack in mind (e.g.
2100         the LLInt, the JITs).  Also, all our currently supported platforms use a downward
2101         growing stack.
2102
2103         We should remove the remnants of support code for an upwards growing stack.  The
2104         presence of that code is deceptive in that it conveys support for an upwards
2105         growing stack where this hasn't been the case in years.
2106
2107         * wtf/StackBounds.cpp:
2108         (WTF::StackBounds::newThreadStackBounds):
2109         (WTF::StackBounds::currentThreadStackBoundsInternal):
2110         (WTF::StackBounds::stackDirection): Deleted.
2111         (WTF::testStackDirection2): Deleted.
2112         (WTF::testStackDirection): Deleted.
2113         * wtf/StackBounds.h:
2114         (WTF::StackBounds::size const):
2115         (WTF::StackBounds::contains const):
2116         (WTF::StackBounds::recursionLimit const):
2117         (WTF::StackBounds::StackBounds):
2118         (WTF::StackBounds::isGrowingDownwards const):
2119         (WTF::StackBounds::checkConsistency const):
2120         (WTF::StackBounds::isGrowingDownward const): Deleted.
2121         * wtf/StackStats.cpp:
2122         (WTF::StackStats::CheckPoint::CheckPoint):
2123         (WTF::StackStats::CheckPoint::~CheckPoint):
2124         (WTF::StackStats::probe):
2125         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2126
2127 2019-11-05  Mark Lam  <mark.lam@apple.com>
2128
2129         WTF::RunLoop should not depend on isMainThread() idiom.
2130         https://bugs.webkit.org/show_bug.cgi?id=203873
2131         <rdar://problem/56524251>
2132
2133         Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.
2134
2135         The isMainThread() idiom is only meaningful for WebCore.  It is less meaningful
2136         for JSC since a VM instance can be entered from multiple threads, as long as only
2137         one thread enters it at any time.  Hence, the concept of a main thread doesn't
2138         make sense at the JSC level.
2139
2140         Since r251036, we started using a WTF::String to represent the RunLoop mode.
2141         This caused problems for JSC clients when USE(CF) since it necessitated the use of
2142         StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
2143         the WTF::String.
2144
2145         To fix this problem, we should restore the original behavior of using CFStringRefs
2146         as the RunLoop mode token.
2147
2148         * wtf/RunLoop.h:
2149         (WTF::RunLoop::cycle): Deleted.
2150         * wtf/cf/RunLoopCF.cpp:
2151         (WTF::RunLoop::cycle):
2152         * wtf/generic/RunLoopGeneric.cpp:
2153         (WTF::RunLoop::cycle):
2154         * wtf/glib/RunLoopGLib.cpp:
2155         (WTF::RunLoop::cycle):
2156         * wtf/win/RunLoopWin.cpp:
2157         (WTF::RunLoop::cycle):
2158
2159 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
2160
2161         Add definitions of ANSI colors for colorful log output
2162         https://bugs.webkit.org/show_bug.cgi?id=203805
2163
2164         Reviewed by Saam Barati.
2165
2166         * WTF.xcodeproj/project.pbxproj:
2167         * wtf/AnsiColors.h: Added.
2168         * wtf/CMakeLists.txt:
2169
2170 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
2171
2172         move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore
2173         https://bugs.webkit.org/show_bug.cgi?id=203803
2174
2175         Reviewed by Saam Barati.
2176
2177         * WTF.xcodeproj/project.pbxproj:
2178         * wtf/PlatformMac.cmake:
2179         * wtf/cocoa/CrashReporter.cpp: Added.
2180         (WTF::setCrashLogMessage):
2181         * wtf/cocoa/CrashReporter.h: Added.
2182         * wtf/spi/cocoa/CrashReporterClientSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/CrashReporterClientSPI.h.
2183
2184 2019-11-02  Devin Rousso  <drousso@apple.com>
2185
2186         Web Inspector: Add diagnostic logging for frontend feature usage
2187         https://bugs.webkit.org/show_bug.cgi?id=203579
2188         <rdar://problem/56717410>
2189
2190         Reviewed by Brian Burg.
2191
2192         Original patch by Matt Baker <mattbaker@apple.com>.
2193
2194         * wtf/FeatureDefines.h:
2195         Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.
2196
2197 2019-11-01  Devin Rousso  <drousso@apple.com>
2198
2199         Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
2200         https://bugs.webkit.org/show_bug.cgi?id=203651
2201         <rdar://problem/56128726>
2202
2203         Reviewed by Brian Burg.
2204
2205         * wtf/Markable.h:
2206         (WTF::operator==):
2207         (WTF::operator!=):
2208         Add extra utility operators.
2209
2210 2019-10-31  Tim Horton  <timothy_horton@apple.com>
2211
2212         Turn on IOSurface support in the iOS Simulator
2213         https://bugs.webkit.org/show_bug.cgi?id=203026
2214         <rdar://problem/56320993>
2215
2216         Reviewed by Simon Fraser.
2217
2218         * wtf/Platform.h:
2219         Turn on HAVE(IOSURFACE) and USE(IOSURFACE_CANVAS_BACKING_STORE) in the simulator.
2220         Add HAVE(IOSURFACE_COREIMAGE_SUPPORT).
2221
2222 2019-10-31  Jer Noble  <jer.noble@apple.com>
2223
2224         [EME] Batch multiple key requests into one request and response
2225         https://bugs.webkit.org/show_bug.cgi?id=203580
2226         <rdar://problem/54853345>
2227
2228         Reviewed by Eric Carlson.
2229
2230         Support appending an r-value reference Vector to another.
2231
2232         * wtf/Vector.h:
2233         (WTF::minCapacity>::appendVector):
2234
2235 2019-10-31  Alex Christensen  <achristensen@webkit.org>
2236
2237         Remove unneeded HAVE_TIMINGDATAOPTIONS
2238         https://bugs.webkit.org/show_bug.cgi?id=202990
2239
2240         Reviewed by Brady Eidson.
2241
2242         * wtf/Platform.h:
2243
2244 2019-10-31  Yusuke Suzuki  <ysuzuki@apple.com>
2245
2246         [JSC] DateMath should have TimeClipped version
2247         https://bugs.webkit.org/show_bug.cgi?id=203550
2248
2249         Reviewed by Saam Barati.
2250
2251         We found that our Date constructor is slow because GregorianDateTime calculation takes so long.
2252         We are doing many `fmod`, floating division, `floor` etc. These operations, in particular `fmod`, takes
2253         very long time. As a result, 30% of JetStream2/date-format-xparb is taken by `fmod` function.
2254
2255         But since we are performance timeClip operation, double value in DateInstance is always Int52. We should
2256         have integer version of GregorianDateTime calculation which avoids many unnecessary fmod etc.
2257
2258         While integer division is truncate-to-zero, many Date calculation requires `floor(value / xxx)`. For now,
2259         we use integer fast path only when the value is Int52 and positive.
2260
2261         We see 10~ % improvement in JetStream2/date-format-xparb-SP (from 201 to 239).
2262
2263         * wtf/DateMath.cpp:
2264         (WTF::isLeapYear): Deleted.
2265         (WTF::daysInYear): Deleted.
2266         (WTF::daysFrom1970ToYear): Deleted.
2267         (WTF::msToDays): Deleted.
2268         (WTF::msToYear): Deleted.
2269         (WTF::dayInYear): Deleted.
2270         (WTF::msToMinutes): Deleted.
2271         (WTF::msToHours): Deleted.
2272         (WTF::monthFromDayInYear): Deleted.
2273         (WTF::checkMonth): Deleted.
2274         (WTF::dayInMonthFromDayInYear): Deleted.
2275         (WTF::dateToDaysFrom1970): Deleted.
2276         (WTF::timeClip): Deleted.
2277         * wtf/DateMath.h:
2278         (WTF::TimeClippedPositiveMilliseconds::TimeClippedPositiveMilliseconds):
2279         (WTF::TimeClippedPositiveMilliseconds::value const):
2280         (WTF::TimeClippedPositiveMilliseconds::asDouble const):
2281         (WTF::timeClip):
2282         (WTF::daysFrom1970ToYear):
2283         (WTF::daysFrom1970ToYearTimeClippedPositive):
2284         (WTF::isLeapYear):
2285         (WTF::daysInYear):
2286         (WTF::msToDays):
2287         (WTF::dayInYear):
2288         (WTF::dateToDaysFrom1970):
2289         (WTF::msToYear):
2290         (WTF::msToMinutes):
2291         (WTF::msToHours):
2292         (WTF::msToSeconds):
2293         (WTF::msToWeekDay):
2294         (WTF::monthFromDayInYear):
2295         (WTF::dayInMonthFromDayInYear):
2296         * wtf/GregorianDateTime.cpp:
2297         (WTF::GregorianDateTime::GregorianDateTime):
2298         * wtf/GregorianDateTime.h:
2299
2300 2019-10-30  Alex Christensen  <achristensen@webkit.org>
2301
2302         Prevent Mac CMake build from bit rotting
2303         https://bugs.webkit.org/show_bug.cgi?id=203647
2304
2305         Reviewed by Tim Horton.
2306
2307         * wtf/PlatformMac.cmake:
2308
2309 2019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>
2310
2311         [JSC] Date functions should have intrinsic
2312         https://bugs.webkit.org/show_bug.cgi?id=202187
2313
2314         Reviewed by Keith Miller.
2315
2316         * wtf/DateMath.h:
2317         * wtf/GregorianDateTime.cpp:
2318         (WTF::GregorianDateTime::setToCurrentLocalTime):
2319         * wtf/GregorianDateTime.h:
2320
2321 2019-10-30  Per Arne Vollan  <pvollan@apple.com>
2322
2323         It should be possible to create a mach sandbox extension for the WebContent process before the audit token is known
2324         https://bugs.webkit.org/show_bug.cgi?id=203618
2325
2326         Reviewed by Brent Fulgham.
2327
2328         Added SPI to create mach extension without PID or audit token.
2329
2330         * wtf/spi/darwin/SandboxSPI.h:
2331
2332 2019-10-30  Daniel Bates  <dabates@apple.com>
2333
2334         Add pretty printer for CompactPointerTuple
2335         https://bugs.webkit.org/show_bug.cgi?id=203495
2336
2337         Reviewed by Jer Noble.
2338
2339         #include <wtf/FastMalloc.h> for the definition of WTF_MAKE_FAST_ALLOCATED.
2340
2341         * wtf/CompactPointerTuple.h:
2342
2343 2019-10-29  Yusuke Suzuki  <ysuzuki@apple.com>
2344
2345         [JSC] Add fast path for String#localeCompare
2346         https://bugs.webkit.org/show_bug.cgi?id=202676
2347
2348         Reviewed by Mark Lam.
2349
2350         * wtf/text/StringView.h:
2351         (WTF::StringView::isAllASCII const):
2352
2353 2019-10-26  Chris Lord  <clord@igalia.com>
2354
2355         Put OffscreenCanvas behind a build flag
2356         https://bugs.webkit.org/show_bug.cgi?id=203146
2357
2358         Reviewed by Ryosuke Niwa.
2359
2360         * wtf/FeatureDefines.h:
2361
2362 2019-10-25  Andy Estes  <aestes@apple.com>
2363
2364         [Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
2365         https://bugs.webkit.org/show_bug.cgi?id=203396
2366
2367         Reviewed by Alex Christensen.
2368
2369         * wtf/FeatureDefines.h: Defined ENABLE_PREVIEW_CONVERTER.
2370
2371 2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>
2372
2373         [JSC] Figure out missing prepareCallOperation
2374         https://bugs.webkit.org/show_bug.cgi?id=203285
2375
2376         Reviewed by Mark Lam.
2377
2378         Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.
2379
2380         * wtf/Platform.h:
2381
2382 2019-10-23  Tim Horton  <timothy_horton@apple.com>
2383
2384         macCatalyst: Should dispatch contextmenu event on right click
2385         https://bugs.webkit.org/show_bug.cgi?id=203316
2386         <rdar://problem/54617376>
2387
2388         Reviewed by Wenson Hsieh.
2389
2390         * wtf/FeatureDefines.h:
2391
2392 2019-10-23  Truitt Savell  <tsavell@apple.com>
2393
2394         Unreviewed, rolling out r251261.
2395
2396         This broke multiple tests
2397
2398         Reverted changeset:
2399
2400         "Using version 1 CFRunloopSource for faster task dispatch"
2401         https://bugs.webkit.org/show_bug.cgi?id=202874
2402         https://trac.webkit.org/changeset/251261
2403
2404 2019-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
2405
2406         [iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan
2407         https://bugs.webkit.org/show_bug.cgi?id=203345
2408
2409         Reviewed by Simon Fraser.
2410
2411         * wtf/Platform.h:
2412
2413 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
2414
2415         Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
2416         https://bugs.webkit.org/show_bug.cgi?id=203274
2417
2418         Reviewed by Saam Barati.
2419
2420         * wtf/Platform.h:
2421
2422 2019-10-22  Antti Koivisto  <antti@apple.com>
2423
2424         operator==(Vector, Vector) should work with different inline capacities
2425         https://bugs.webkit.org/show_bug.cgi?id=203245
2426
2427         Reviewed by Alex Christensen.
2428
2429         Also allow different overflow behavior and minimum capacity.
2430
2431         * wtf/Vector.h:
2432         (WTF::operator==):
2433         (WTF::operator!=):
2434
2435 2019-10-22  Rob Buis  <rbuis@igalia.com>
2436
2437         https://bugs.webkit.org/show_bug.cgi?id=169667
2438         URL: protocol setter needs to be more restrictive around file
2439
2440         Reviewed by Alex Christensen.
2441
2442         Restrict setting protocol to "file" as indictaed in the spec [1].
2443
2444         Test: imported/w3c/web-platform-tests/url/url-setters.html
2445
2446         [1] https://url.spec.whatwg.org/#scheme-state steps 2.1.3 and 2.1.4.
2447
2448         * wtf/URL.cpp:
2449         (WTF::URL::setProtocol):
2450
2451 2019-10-21  Tim Horton  <timothy_horton@apple.com>
2452
2453         macCatalyst: Swipe navigation gestures do not work
2454         https://bugs.webkit.org/show_bug.cgi?id=203205
2455         <rdar://problem/54617473>
2456
2457         Reviewed by Wenson Hsieh.
2458
2459         * wtf/Platform.h:
2460         Add a new HAVE.
2461
2462 2019-10-20  Mark Lam  <mark.lam@apple.com>
2463
2464         Remove all uses of untagCodePtr in debugging code.
2465         https://bugs.webkit.org/show_bug.cgi?id=203188
2466         <rdar://problem/56453043> 
2467
2468         Reviewed by Yusuke Suzuki.
2469
2470         We want the ability to always assert on failure to authenticate in untagCodePtr
2471         (though we don't currently do that yet).
2472
2473         * wtf/PtrTag.cpp:
2474         (WTF::tagForPtr):
2475         * wtf/PtrTag.h:
2476         (WTF::retagCodePtrImpl):
2477         (WTF::tagCFunctionPtrImpl):
2478         (WTF::untagCFunctionPtrImpl):
2479         (WTF::assertIsCFunctionPtr):
2480         (WTF::isTaggedWith):
2481
2482 2019-10-19  Simon Fraser  <simon.fraser@apple.com>
2483
2484         Add support to TextStream for dumping HashMap<> and HashSet<>
2485         https://bugs.webkit.org/show_bug.cgi?id=202969
2486
2487         Reviewed by Dean Jackson.
2488         
2489         Make it possible to output HashMap<> and HashSet<> to TextStream,
2490         so long as key and value types are streamable. Also implement operator<<(char)
2491         so that chars show as ASCII, rather than numbers.
2492
2493         * wtf/text/TextStream.cpp:
2494         (WTF::TextStream::operator<<):
2495         * wtf/text/TextStream.h:
2496         (WTF::operator<<):
2497
2498 2019-10-18  Yusuke Suzuki  <ysuzuki@apple.com>
2499
2500         [JSC] Make ConcurrentJSLock Lock even if ENABLE_CONCURRENT_JS=OFF
2501         https://bugs.webkit.org/show_bug.cgi?id=202892
2502
2503         Reviewed by Mark Lam.
2504
2505         BaselineJIT also has concurrent compiler. ENABLE(CONCURRENT_JS) should not rely on ENABLE(DFG_JIT).
2506         It should rely on ENABLE(JIT) instead.
2507
2508         * wtf/Platform.h:
2509
2510 2019-10-17  Mark Lam  <mark.lam@apple.com>
2511
2512         Use constexpr in more places and remove some unnecessary external linkage.
2513         https://bugs.webkit.org/show_bug.cgi?id=203115
2514
2515         Reviewed by Yusuke Suzuki.
2516
2517         Also removed unused lockSpinLimit in Threading.h.
2518
2519         * wtf/MD5.h:
2520         * wtf/SHA1.h:
2521         * wtf/StackBounds.h:
2522         * wtf/Threading.h:
2523
2524 2019-10-17  Sihui Liu  <sihui_liu@apple.com>
2525
2526         Using version 1 CFRunloopSource for faster task dispatch
2527         https://bugs.webkit.org/show_bug.cgi?id=202874
2528
2529         Reviewed by Geoffrey Garen.
2530
2531         We used CFRunLoopWakeUp to wake up runloop to process source, which seems to be slow according to profiling. To 
2532         avoid calling CFRunLoopWakeUp, we should use version 1 CFRunloopSource instead of version 0. This patch brings
2533         about 15% speedup for test PerformanceTests/IndexedDB/basic/objectstore-get.html.
2534
2535         * wtf/RunLoop.cpp:
2536         (WTF::RunLoop::initializeWebRunLoop):
2537         (WTF::RunLoop::web):
2538         * wtf/RunLoop.h:
2539         * wtf/cf/RunLoopCF.cpp:
2540         (WTF::RunLoop::performWork):
2541         (WTF::RunLoop::RunLoop):
2542         (WTF::RunLoop::~RunLoop):
2543         (WTF::RunLoop::wakeUp):
2544         * wtf/cocoa/MainThreadCocoa.mm:
2545         (WTF::initializeMainThreadPlatform):
2546         (WTF::scheduleDispatchFunctionsOnMainThread):
2547         (WTF::initializeWebThread):
2548         (-[JSWTFMainThreadCaller call]): Deleted.
2549
2550 2019-10-16  Wenson Hsieh  <wenson_hsieh@apple.com>
2551
2552         Unreviewed, fix the internal macOS 10.13 and 10.14 builds after r251171
2553
2554         * wtf/Platform.h: Add a HAVE() macro for AXClientType, which is only available on macOS 10.15+ SDKs.
2555
2556 2019-10-15  Chris Dumez  <cdumez@apple.com>
2557
2558         [macOS] Simplify main thread initialization
2559         https://bugs.webkit.org/show_bug.cgi?id=203001
2560
2561         Reviewed by Geoff Garen.
2562
2563         Simplify main thread initialization on macOS by always using pthread main as main thread.
2564         The complexity is now isolated to the USE(WEB_THREAD) code path.
2565
2566         This patch also adds a debug assertion in WTF::initializeWebThreadPlatform() to make sure
2567         it gets called on the actual main thread. In release, it will log a fault message indicating
2568         it was called on the wrong thread.
2569
2570         * wtf/MainThread.cpp:
2571         * wtf/MainThread.h:
2572         * wtf/RefCounted.h:
2573         (WTF::RefCountedBase::RefCountedBase):
2574         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
2575         * wtf/cocoa/MainThreadCocoa.mm:
2576         (WTF::initializeMainThreadPlatform):
2577         (WTF::scheduleDispatchFunctionsOnMainThread):
2578         (WTF::initializeWebThreadPlatform):
2579         (WTF::canAccessThreadLocalDataForThread):
2580         (WTF::isMainThread):
2581         * wtf/generic/MainThreadGeneric.cpp:
2582         * wtf/text/cf/StringImplCF.cpp:
2583         (WTF::StringImpl::createCFString):
2584         * wtf/win/MainThreadWin.cpp:
2585
2586 2019-10-14  Tim Horton  <timothy_horton@apple.com>
2587
2588         Unify sources for bindings more densely
2589         https://bugs.webkit.org/show_bug.cgi?id=202918
2590
2591         Reviewed by Simon Fraser.
2592
2593         * Scripts/generate-unified-source-bundles.rb:
2594         Add an option to separate and more densely unify sources that match
2595         a given glob pattern.
2596
2597 2019-10-14  Keith Rollin  <krollin@apple.com>
2598
2599         Remove some support for < iOS 13
2600         https://bugs.webkit.org/show_bug.cgi?id=202820
2601         <rdar://problem/56164838>
2602
2603         Reviewed by Anders Carlsson.
2604
2605         Remove some support for iOS versions less than 13.0.
2606
2607         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
2608         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
2609         values >= 130000. This means that expressions like
2610         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
2611         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
2612
2613         This removal is part of a series of patches effecting the removal of
2614         dead code for old versions of iOS. This particular pass involves
2615         changes in which Devin Rousso was involved. These changes are isolated
2616         from other similar changes in order to facilitate the reviewing
2617         process.
2618
2619         * wtf/Platform.h:
2620
2621 2019-10-14  Alex Christensen  <achristensen@webkit.org>
2622
2623         REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing
2624         https://bugs.webkit.org/show_bug.cgi?id=201902
2625
2626         Reviewed by Ryosuke Niwa.
2627
2628         * wtf/Vector.h:
2629         The code introduced in r108153 to workaround a warning when building Chrome was causing us to use uninitialized memory
2630         when we create a Vector with the size_t/{signed,unsigned}char constructor with a constexpr size_t.
2631         This was the cause of bug 201902 and bug 201620 which only manifested themselves in release builds with some compilers.
2632
2633 2019-10-14  Per Arne Vollan  <pvollan@apple.com>
2634
2635         [macOS] Sandbox extensions should be created with audit tokens, not PIDs
2636         https://bugs.webkit.org/show_bug.cgi?id=201828
2637
2638         Reviewed by Brent Fulgham.
2639
2640         Remove HAVE macro for issuing sandbox extension by PID, and fix version checks for the HAVE
2641         macros related to issuing sandbox extensions by audit token. Remove SPI for creating
2642         extensions by PID, and add SPI for creating mach extension by audit token. Also remove an
2643         unneeded flag.
2644         
2645         * wtf/Platform.h:
2646         * wtf/spi/darwin/SandboxSPI.h:
2647
2648 2019-10-08  Ryosuke Niwa  <rniwa@webkit.org>
2649
2650         Make WebInspector's remote debug EventLoop code into RunLoop
2651         https://bugs.webkit.org/show_bug.cgi?id=202716
2652
2653         Reviewed by Joseph Pecoraro.
2654
2655         This patch merges WebInspector's EventLoop code into RunLoop as a static function.
2656
2657         * wtf/RunLoop.h:
2658         (WTF::RunLoop::cycle):
2659         * wtf/cf/RunLoopCF.cpp:
2660         (WTF::RunLoop::cycle): Added.
2661         * wtf/generic/RunLoopGeneric.cpp:
2662         (WTF::RunLoop::cycle): Added.
2663         * wtf/glib/RunLoopGLib.cpp:
2664         (WTF::RunLoop::cycle): Added.
2665         * wtf/win/RunLoopWin.cpp:
2666         (WTF::RunLoop::cycle): Added.
2667
2668 2019-10-10  Ryosuke Niwa  <rniwa@webkit.org>
2669
2670         Make it safe to store a ThreadSafeRefCounted object in Ref & RefPtr safe inside its destructor
2671         https://bugs.webkit.org/show_bug.cgi?id=201576
2672
2673         Reviewed by Geoffrey Garen and Mark Lam.
2674
2675         This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
2676         so that storing an instance of this object in Ref or RefPtr would not trigger a recursive delete.
2677
2678         Note: this patch does not try to fix a race condition by which another thread tries to ref()
2679         this object after the "last" call to deref had happened since such a code would ref() this object
2680         long after it had been removed (UAF), nor some code calling deref() before calling ref() inside
2681         a destructor since there is no way to defend against unpaired calls to ref() & deref() like that.
2682
2683         Also added m_deletionHasBegun like RefCounted.
2684
2685         * wtf/ThreadSafeRefCounted.h:
2686         (WTF::ThreadSafeRefCountedBase::ref const):
2687         (WTF::ThreadSafeRefCountedBase::hasOneRef const):
2688         (WTF::ThreadSafeRefCountedBase::derefBase const):
2689
2690 2019-10-11  Alex Christensen  <achristensen@webkit.org>
2691
2692         Only use CFNetwork SPI for metrics where needed
2693         https://bugs.webkit.org/show_bug.cgi?id=202825
2694
2695         Reviewed by Joseph Pecoraro.
2696
2697         * wtf/Platform.h:
2698
2699 2019-10-11  Keith Rollin  <krollin@apple.com>
2700
2701         Remove some support for < iOS 13
2702         https://bugs.webkit.org/show_bug.cgi?id=202819
2703         <rdar://problem/56164233>
2704
2705         Reviewed by Anders Carlsson.
2706
2707         Remove some support for iOS versions less than 13.0.
2708
2709         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
2710         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
2711         values >= 130000. This means that expressions like
2712         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
2713         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
2714
2715         This removal is part of a series of patches effecting the removal of
2716         dead code for old versions of iOS. This particular pass involves
2717         changes in which Jiewen Tan was involved. These changes are isolated
2718         from other similar changes in order to facilitate the reviewing
2719         process.
2720
2721         * wtf/Platform.h:
2722
2723 2019-10-11  Jonathan Bedard  <jbedard@apple.com>
2724
2725         Unreviewed, rolling out r250945.
2726
2727         Broke 18 Debug API tests
2728
2729         Reverted changeset:
2730
2731         "Add support for CompactPointerTuple<..., OptionSet<...>>"
2732         https://bugs.webkit.org/show_bug.cgi?id=201316
2733         https://trac.webkit.org/changeset/250945
2734
2735 2019-10-11  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2736
2737         MediaTime pretty printer can print if time is invalid
2738         https://bugs.webkit.org/show_bug.cgi?id=202735
2739
2740         Reviewed by Eric Carlson.
2741
2742         * wtf/MediaTime.cpp:
2743         (WTF::MediaTime::toString const): Append ", invalid" if isInvalid().
2744         (WTF::MediaTime::toJSONObject const): Set boolean invalid to true
2745         when invalid.
2746
2747 2019-10-09  Keith Rollin  <krollin@apple.com>
2748
2749         Remove some support for < iOS 13
2750         https://bugs.webkit.org/show_bug.cgi?id=202371
2751         <rdar://problem/55853960>
2752
2753         Reviewed by Youenn Fablet.
2754
2755         Remove some support for iOS versions less than 13.0.
2756
2757         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
2758         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
2759         values >= 130000. This means that expressions like
2760         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
2761         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
2762
2763         This removal is part of a series of patches effecting the removal of
2764         dead code for old versions of iOS. This particular pass involves
2765         changes in which Dean Jackson was involved. These changes are isolated
2766         from other similar changes in order to facilitate the reviewing
2767         process.
2768
2769         * wtf/FeatureDefines.h:
2770         * wtf/Platform.h:
2771
2772 2019-10-09  Daniel Bates  <dabates@apple.com>
2773
2774         Add support for CompactPointerTuple<..., OptionSet<...>>
2775         https://bugs.webkit.org/show_bug.cgi?id=201316
2776
2777         Reviewed by Yusuke Suzuki.
2778
2779         Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
2780         you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
2781         supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
2782         to see the set flags in such a CompactPointerTuple.
2783
2784         * wtf/CompactPointerTuple.h:
2785
2786 2019-10-09  Russell Epstein  <repstein@apple.com>
2787
2788         Unreviewed, rolling out r250930.
2789
2790         Broke watchOS Builds
2791
2792         Reverted changeset:
2793
2794         "Add support for CompactPointerTuple<..., OptionSet<...>>"
2795         https://bugs.webkit.org/show_bug.cgi?id=201316
2796         https://trac.webkit.org/changeset/250930
2797
2798 2019-10-09  Daniel Bates  <dabates@apple.com>
2799
2800         Add support for CompactPointerTuple<..., OptionSet<...>>
2801         https://bugs.webkit.org/show_bug.cgi?id=201316
2802
2803         Reviewed by Yusuke Suzuki.
2804
2805         Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
2806         you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
2807         supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
2808         to see the set flags in such a CompactPointerTuple.
2809
2810         * wtf/CompactPointerTuple.h:
2811
2812 2019-10-08  Robin Morisset  <rmorisset@apple.com>
2813
2814         dataLogIf should be ALWAYS_INLINE
2815         https://bugs.webkit.org/show_bug.cgi?id=202703
2816
2817         Reviewed by Saam Barati.
2818
2819         We often have the following pattern:
2820         ```
2821         static constexpr bool verbose = false;
2822         ...
2823         dataLogLnIf(verbose, "Something is happening");
2824         ```
2825         To make sure that these are always properly eliminated I'd like to make dataLogIf/dataLogLnIf ALWAYS_INLINE.
2826         
2827         We may as well mark the branch as UNLIKELY too, for the cases where the condition comes from Options::verboseSomething() and is only known at runtime.
2828
2829         * wtf/DataLog.h:
2830         (WTF::dataLogIf):
2831         (WTF::dataLogLnIf):
2832
2833 2019-10-07  Alexey Proskuryakov  <ap@apple.com>
2834
2835         Build failure in WebHTMLView.mm with the public SDK (Xcode 11 and Mojave)
2836         https://bugs.webkit.org/show_bug.cgi?id=199705
2837
2838         Patch by Dan Bernstein and Kenneth Russell.
2839         Reviewed by Alexey Proskuryakov.
2840
2841         * wtf/Platform.h: Added HAVE_SUBVIEWS_IVAR_DECLARED_BY_SDK.
2842
2843 2019-10-04  Commit Queue  <commit-queue@webkit.org>
2844
2845         Unreviewed, rolling out r250762.
2846         https://bugs.webkit.org/show_bug.cgi?id=202609
2847
2848         Broke JSC tests by breaking refCount check in
2849         DropAllLocks::DropAllLocks (Requested by rniwa on #webkit).
2850
2851         Reverted changeset:
2852
2853         "Make a ThreadSafeRefCounted object safe to ref & deref inside
2854         its destructor"
2855         https://bugs.webkit.org/show_bug.cgi?id=201576
2856         https://trac.webkit.org/changeset/250762
2857
2858 2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>
2859
2860         Build fix for macOS Catalina.
2861
2862         * wtf/spi/darwin/SandboxSPI.h:
2863
2864 2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>
2865
2866         Make a ThreadSafeRefCounted object safe to ref & deref inside its destructor
2867         https://bugs.webkit.org/show_bug.cgi?id=201576
2868
2869         Reviewed by Geoffrey Garen.
2870
2871         This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
2872         such that ref'ing and deref'ing it again inside its destructor would never try
2873         to double delete the object.
2874
2875         Also added m_deletionHasBegun like RefCounted.
2876
2877         * wtf/ThreadSafeRefCounted.h:
2878         (WTF::ThreadSafeRefCountedBase::ref const):
2879         (WTF::ThreadSafeRefCountedBase::hasOneRef const):
2880         (WTF::ThreadSafeRefCountedBase::derefBase const):
2881
2882 2019-10-04  Heiko Becker  <heirecka@exherbo.org>
2883
2884         Fix build with icu 65.1
2885         https://bugs.webkit.org/show_bug.cgi?id=202600
2886
2887         Reviewed by Konstantin Tokarev.
2888
2889         * wtf/URLHelpers.cpp:
2890         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
2891
2892 2019-10-04  Truitt Savell  <tsavell@apple.com>
2893
2894         Unreviewed, rolling out r250583.
2895
2896         Broke multiple internal API tests
2897
2898         Reverted changeset:
2899
2900         "[JSC] Place VM* in TLS"
2901         https://bugs.webkit.org/show_bug.cgi?id=202391
2902         https://trac.webkit.org/changeset/250583
2903
2904 2019-10-03  Keith Rollin  <krollin@apple.com>
2905
2906         Remove some support for < iOS 13
2907         https://bugs.webkit.org/show_bug.cgi?id=202549
2908         <rdar://problem/55967232>
2909
2910         Reviewed by Alex Christensen.
2911
2912         Remove some support for iOS versions less than 13.0. 
2913
2914         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
2915         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
2916         values >= 130000. This means that expressions like
2917         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
2918         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
2919
2920         This removal is part of a series of patches effecting the removal of
2921         dead code for old versions of iOS. This particular pass involves
2922         changes in which Michael Saboff was involved. These changes are
2923         isolated from other similar changes in order to facilitate the
2924         reviewing process.
2925
2926         * wtf/spi/darwin/ProcessMemoryFootprint.h:
2927
2928 2019-10-03  Per Arne Vollan  <pvollan@apple.com>
2929
2930         REGRESSION(249649): Unable to open local files in MiniBrowser on macOS
2931         https://bugs.webkit.org/show_bug.cgi?id=201798
2932
2933         Reviewed by Brent Fulgham.
2934
2935         Add HAVE_AUDIT_TOKEN and SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN defines.
2936
2937         * wtf/Platform.h:
2938
2939 2019-10-02  Myles C. Maxfield  <mmaxfield@apple.com>
2940
2941         REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari
2942         https://bugs.webkit.org/show_bug.cgi?id=202198
2943
2944         Reviewed by Tim Horton.
2945
2946         * wtf/Platform.h:
2947
2948 2019-10-02  Mark Lam  <mark.lam@apple.com>
2949
2950         DoubleToStringConverter::ToExponential() should null terminate its string.
2951         https://bugs.webkit.org/show_bug.cgi?id=202492
2952         <rdar://problem/55907708>
2953
2954         Reviewed by Filip Pizlo.
2955
2956         * wtf/dtoa/double-conversion.cc:
2957         - DoubleToStringConverter::DoubleToAscii() always produces a null terminated
2958           string.  Fixed the padding loop in DoubleToStringConverter::ToExponential()
2959           that follows it to also keep the null terminator.
2960
2961         * wtf/dtoa/utils.h:
2962         (WTF::double_conversion::StringBuilder::AddSubstring):
2963         - An assertion in here was using strlen() which indicates that it expects a null
2964           terminator in the incoming string.  However, this requirement is too restrictive.
2965           The code does not actually depend on the string having a null terminator, only
2966           that a null terminator does not manifest before the nth character.  Changed
2967           the assertion to use strnlen() instead to reflect this.
2968
2969 2019-10-02  Zan Dobersek  <zdobersek@igalia.com>
2970
2971         [Nicosia] Enable async scrolling at build-time for Nicosia-using ports
2972         https://bugs.webkit.org/show_bug.cgi?id=202397
2973
2974         Reviewed by Carlos Garcia Campos.
2975
2976         * wtf/Platform.h:
2977         Flip ENABLE_KINETIC_SCROLLING to 1 also for PlayStation and WPE ports
2978         when ASYNC_SCROLLING is enabled.
2979 2019-10-01  Jonathan Bedard  <jbedard@apple.com>
2980
2981         WebKitTestRunner: Many tests timeout on macOS Catalina
2982         https://bugs.webkit.org/show_bug.cgi?id=201616
2983         <rdar://problem/55200897>
2984
2985         Reviewed by Alexey Proskuryakov.
2986
2987         * wtf/Platform.h: USE_SOURCE_APPLICATION_AUDIT_DATA should only be enabled on
2988         builds which allow restricted entitlements.
2989
2990 2019-10-01  Yusuke Suzuki  <ysuzuki@apple.com>
2991
2992         [JSC] Place VM* in TLS
2993         https://bugs.webkit.org/show_bug.cgi?id=202391
2994
2995         Reviewed by Mark Lam.
2996
2997         Changed FastTLS's key name from WTF_GC_TLC_KEY to WTF_VM_KEY.
2998
2999         * wtf/FastTLS.h:
3000
3001 2019-10-01  Keith Rollin  <krollin@apple.com>
3002
3003         Remove some support for < iOS 13
3004         https://bugs.webkit.org/show_bug.cgi?id=202386
3005         <rdar://problem/55863017>
3006
3007         Reviewed by Eric Carlson.
3008
3009         Remove some support for iOS versions less than 13.0.
3010
3011         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
3012         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
3013         values >= 130000. This means that expressions like
3014         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
3015         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
3016
3017         This removal is part of a series of patches effecting the removal of
3018         dead code for old versions of iOS. This particular pass involves
3019         changes in which Jer Noble was involved. These changes are isolated
3020         from other similar changes in order to facilitate the reviewing
3021         process.
3022
3023         * wtf/Platform.h:
3024
3025
3026 2019-09-30  Alex Christensen  <achristensen@webkit.org>
3027
3028         Resurrect Mac CMake build
3029         https://bugs.webkit.org/show_bug.cgi?id=202384
3030
3031         Rubber-stamped by Tim Horton.
3032
3033         * wtf/PlatformMac.cmake:
3034
3035 2019-09-30  Mark Lam  <mark.lam@apple.com>
3036
3037         Add some assertions to convertUTF8ToUTF16().
3038         https://bugs.webkit.org/show_bug.cgi?id=202356
3039         <rdar://problem/52846813>
3040
3041         Reviewed by Filip Pizlo.
3042
3043         * wtf/unicode/UTF8Conversion.cpp:
3044         (WTF::Unicode::convertUTF8ToUTF16):
3045
3046 2019-09-30  Guillaume Emont  <guijemont@igalia.com>
3047
3048         Don't try to use backtrace() on MIPS
3049         https://bugs.webkit.org/show_bug.cgi?id=202196
3050
3051         Reviewed by Carlos Garcia Campos.
3052
3053         backtrace() on mips seems to always return 1 on mips/glibc (I tried
3054         with buildroot, debian stable and debian testing, with and without
3055         libunwind), which renders it useless and breaks a RELEASE_ASSERT in
3056         StackTrace::captureStackTrace().
3057
3058         * wtf/Platform.h:
3059
3060 2019-09-29  Keith Rollin  <krollin@apple.com>
3061
3062         Address static analysis warning in ParkingLot.cpp: Access to field 'size' results in a dereference of a null pointer
3063         https://bugs.webkit.org/show_bug.cgi?id=202154
3064         <rdar://problem/55672103>
3065
3066         Reviewed by Brent Fulgham.
3067
3068         Static analysis reports the following:
3069
3070             .../OpenSource/Source/WTF/wtf/ParkingLot.cpp:376:30: warning: Access to field 'size' results in a dereference of a null pointer (loaded from variable 'oldHashtable')
3071                 RELEASE_ASSERT(newSize > oldHashtable->size);
3072                                          ^~~~~~~~~~~~~~~~~~
3073
3074         This warning arises because earlier code checks to see if oldHashtable
3075         is NULL, leading the static analyzer to think that it *could* be NULL.
3076         However, even earlier code actually ensures that oldHashtable will not
3077         be NULL. Address this by removing the NULL check, and back it up with
3078         an ASSERT to ensure that it's not NULL.
3079
3080         * wtf/ParkingLot.cpp:
3081
3082 2019-09-26  Alexey Shvayka  <shvaikalesh@gmail.com>
3083
3084         toExponential, toFixed, and toPrecision should allow arguments up to 100
3085         https://bugs.webkit.org/show_bug.cgi?id=199163
3086
3087         Reviewed by Ross Kirsling.
3088
3089         Increase size of NumberToStringBuffer: <21 digits> + decimal point + <100 digits> + null char = 123.
3090         Increase kMaxFixedDigitsAfterPoint to make Number.prototype.toFixed work with arguments up to 100.
3091         Also update other constants to their correct values.
3092
3093         * wtf/dtoa.h:
3094         * wtf/dtoa/double-conversion.cc:
3095         * wtf/dtoa/double-conversion.h:
3096
3097 2019-09-25  Keith Rollin  <krollin@apple.com>
3098
3099         Address static analysis warning in UTextProviderLatin1.cpp: Array access results in a null pointer dereference
3100         https://bugs.webkit.org/show_bug.cgi?id=202155
3101         <rdar://problem/55672422>
3102
3103         Reviewed by Geoffrey Garen.
3104
3105         Xcode's static analysis reports:
3106
3107             .../OpenSource/Source/WTF/wtf/text/icu/UTextProviderLatin1.cpp:185:22: warning: Array access (from variable 'dest') results in a null pointer dereference
3108                     dest[length] = 0;
3109                     ~~~~         ^
3110
3111         This error is due to an earlier "if" statement that caused the static
3112         analyzer to infer that "dest" could be NULL. It turns out that that
3113         previous check was in error, in that it tested for "!dest" when it
3114         should have tested for "dest". So this patch fixes that.
3115
3116         Even with that error fixed, the static analyzer will still infer that
3117         "dest" could be NULL at the point shown above. Therefore, add a "dest"
3118         test just before the assignment.
3119
3120         * wtf/text/icu/UTextProviderLatin1.cpp:
3121         (WTF::uTextLatin1Extract):
3122
3123 2019-09-25  Wenson Hsieh  <wenson_hsieh@apple.com>
3124
3125         [iPadOS] [DataActivation] Focus moves away after focusing input fields on www.att.com
3126         https://bugs.webkit.org/show_bug.cgi?id=202167
3127         <rdar://problem/55185021>
3128
3129         Reviewed by Tim Horton.
3130
3131         Declare DYLD_IOS_VERSION_13_2.
3132
3133         * wtf/spi/darwin/dyldSPI.h:
3134
3135 2019-09-24  Keith Rollin  <krollin@apple.com>
3136
3137         Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
3138         https://bugs.webkit.org/show_bug.cgi?id=202119
3139         <rdar://problem/55638792>
3140
3141         Reviewed by Alex Christensen.
3142
3143         After refactoring and other code evolution, some platform checks have
3144         ended up looking like PLATFORM(MAC) || PLATFORM(IOS_FAMILY) (or
3145         vice-versa). These can be converted into the equivalent
3146         PLATFORM(COCOA). Where the instance occurs in a Cocoa-only file, the
3147         check can be removed altogether (along with any "#else" branches).
3148
3149         * wtf/Platform.h:
3150         * wtf/text/TextBreakIterator.h:
3151
3152 2019-09-21  David Kilzer  <ddkilzer@apple.com>
3153
3154         clang-tidy: Fix unnecessary copy/ref churn of for loop variables in WTF/JavaScriptCore
3155         <https://webkit.org/b/202069>
3156
3157         Reviewed by Mark Lam.
3158
3159         Fix unwanted copying/ref churn of loop variables by making them
3160         const references.
3161
3162         * wtf/AggregateLogger.h:
3163         (WTF::AggregateLogger::log const):
3164
3165 2019-09-20  Keith Rollin  <krollin@apple.com>
3166
3167         Remove some support for < iOS 13
3168         https://bugs.webkit.org/show_bug.cgi?id=201967
3169         <rdar://problem/55504738>
3170
3171         Reviewed by Andy Estes.
3172
3173         Remove some support for iOS versions less than 13.0.
3174
3175         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
3176         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
3177         values >= 130000. This means that expressions like
3178         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
3179         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
3180
3181         After version checks have been removed, there are some cases where the
3182         preprocessor conditional looks like "#if PLATFORM(MAC) ||
3183         PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
3184         PLATFORM(COCOA)". This additional cleanup will be performed in a
3185         subsequent patch.
3186
3187         This removal is part of a series of patches effecting the removal of
3188         dead code for old versions of iOS. This particular pass involves
3189         changes in which Andy Estes was involved. These changes are isolated
3190         from other similar changes in order to facilitate the reviewing
3191         process.
3192
3193         * wtf/FeatureDefines.h:
3194
3195 2019-09-20  Keith Rollin  <krollin@apple.com>
3196
3197         Remove some support for < iOS 13
3198         https://bugs.webkit.org/show_bug.cgi?id=201973
3199         <rdar://problem/55506966>
3200
3201         Reviewed by Alex Christensen.
3202
3203         Remove some support for iOS versions less than 13.0.
3204
3205         Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
3206         and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
3207         values >= 130000. This means that expressions like
3208         "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
3209         "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.
3210
3211         This removal is part of a series of patches effecting the removal of
3212         dead code for old versions of iOS. This particular pass involves
3213         changes in which Chris Dumez was involved. These changes are isolated
3214         from other similar changes in order to facilitate the reviewing
3215         process.
3216
3217         * wtf/FeatureDefines.h:
3218
3219 2019-09-20  Paulo Matos  <pmatos@igalia.com>
3220
3221         Implement memory monitoring functions for Linux OS
3222         https://bugs.webkit.org/show_bug.cgi?id=200391
3223
3224         Reviewed by Žan Doberšek.
3225
3226         * wtf/PlatformGTK.cmake:
3227         * wtf/PlatformJSCOnly.cmake:
3228         * wtf/PlatformWPE.cmake:
3229         * wtf/linux/ProcessMemoryFootprint.h: Added.
3230         (ProcessMemoryFootprint::now):
3231         (ProcessMemoryFootprint::resetPeak):
3232
3233 2019-09-20  Libor Bukata  <libor.bukata@oracle.com>
3234
3235         UI process crash when using callOnMainThread() after the main thread dispatcher has been destroyed
3236         https://bugs.webkit.org/show_bug.cgi?id=197266
3237
3238         Reviewed by Carlos Garcia Campos.
3239
3240         * wtf/generic/MainThreadGeneric.cpp:
3241         (WTF::scheduleDispatchFunctionsOnMainThread):
3242
3243 2019-09-17  Mark Lam  <mark.lam@apple.com>
3244
3245         Use constexpr instead of const in symbol definitions that are obviously constexpr.
3246         https://bugs.webkit.org/show_bug.cgi?id=201879
3247
3248         Rubber-stamped by Joseph Pecoraro.
3249
3250         * wtf/Assertions.cpp:
3251         * wtf/AutomaticThread.cpp:
3252         * wtf/BitVector.h:
3253         * wtf/Bitmap.h:
3254         * wtf/BloomFilter.h:
3255         * wtf/Brigand.h:
3256         * wtf/CheckedArithmetic.h:
3257         * wtf/CrossThreadCopier.h:
3258         * wtf/CurrentTime.cpp:
3259         * wtf/DataLog.cpp:
3260         * wtf/DateMath.cpp:
3261         (WTF::daysFrom1970ToYear):
3262         * wtf/DeferrableRefCounted.h:
3263         * wtf/GetPtr.h:
3264         * wtf/HashFunctions.h:
3265         * wtf/HashMap.h:
3266         * wtf/HashTable.h:
3267         * wtf/HashTraits.h:
3268         * wtf/JSONValues.cpp:
3269         * wtf/JSONValues.h:
3270         * wtf/ListHashSet.h:
3271         * wtf/Lock.h:
3272         * wtf/LockAlgorithm.h:
3273         * wtf/LockAlgorithmInlines.h:
3274         (WTF::Hooks>::lockSlow):
3275         * wtf/Logger.h:
3276         * wtf/LoggerHelper.h:
3277         (WTF::LoggerHelper::childLogIdentifier const):
3278         * wtf/MainThread.cpp:
3279         * wtf/MetaAllocatorPtr.h:
3280         * wtf/MonotonicTime.h:
3281         * wtf/NaturalLoops.h:
3282         (WTF::NaturalLoops::NaturalLoops):
3283         * wtf/ObjectIdentifier.h:
3284         * wtf/RAMSize.cpp:
3285         * wtf/Ref.h:
3286         * wtf/RefPtr.h:
3287         * wtf/RetainPtr.h:
3288         * wtf/SchedulePair.h:
3289         * wtf/StackShot.h:
3290         * wtf/StdLibExtras.h:
3291         * wtf/TinyPtrSet.h:
3292         * wtf/URL.cpp:
3293         * wtf/URLHash.h:
3294         * wtf/URLParser.cpp:
3295         (WTF::URLParser::defaultPortForProtocol):
3296         * wtf/Vector.h:
3297         * wtf/VectorTraits.h:
3298         * wtf/WallTime.h:
3299         * wtf/WeakHashSet.h:
3300         * wtf/WordLock.h:
3301         * wtf/cocoa/CPUTimeCocoa.cpp:
3302         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
3303         * wtf/persistence/PersistentDecoder.h:
3304         * wtf/persistence/PersistentEncoder.h:
3305         * wtf/text/AtomStringHash.h:
3306         * wtf/text/CString.h:
3307         * wtf/text/StringBuilder.cpp:
3308         (WTF::expandedCapacity):
3309         * wtf/text/StringHash.h:
3310         * wtf/text/StringImpl.h:
3311         * wtf/text/StringToIntegerConversion.h:
3312         (WTF::toIntegralType):
3313         * wtf/text/SymbolRegistry.h:
3314         * wtf/text/TextStream.cpp:
3315         (WTF::hasFractions):
3316         * wtf/text/WTFString.h:
3317         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
3318
3319 2019-09-16  Alex Christensen  <achristensen@webkit.org>
3320
3321         Remove "gopher" from list of special schemes in URLParser
3322         https://bugs.webkit.org/show_bug.cgi?id=201852
3323
3324         Reviewed by Simon Fraser.
3325
3326         There is little meaningful content on gopher servers, and WebKit does not actually support gopher.
3327         This makes WebKit match the behavior of Gecko and goes along with a change proposed at
3328         https://github.com/whatwg/url/issues/342
3329
3330         * wtf/URLParser.cpp:
3331         (WTF::URLParser::defaultPortForProtocol):
3332         (WTF::scheme):
3333         (WTF::URLParser::copyURLPartsUntil):
3334         (WTF::URLParser::parse):
3335
3336 2019-09-14  Yusuke Suzuki  <ysuzuki@apple.com>
3337
3338         Retire x86 32bit JIT support
3339         https://bugs.webkit.org/show_bug.cgi?id=201790
3340
3341         Reviewed by Mark Lam.
3342
3343         * wtf/Platform.h:
3344
3345 2019-09-13  Jonathan Bedard  <jbedard@apple.com>
3346
3347         iOS 13: Some SPI targets 13.1
3348         https://bugs.webkit.org/show_bug.cgi?id=201777
3349
3350         Reviewed by Alexey Proskuryakov.
3351
3352         * wtf/Platform.h:
3353
3354 2019-09-12  Mark Lam  <mark.lam@apple.com>
3355
3356         Harden JSC against the abuse of runtime options.
3357         https://bugs.webkit.org/show_bug.cgi?id=201597
3358         <rdar://problem/55167068>
3359
3360         Reviewed by Filip Pizlo.
3361
3362         Add a source file that was missing so that Xcode can search its contents too.
3363
3364         * WTF.xcodeproj/project.pbxproj:
3365
3366 2019-09-09  Tim Horton  <timothy_horton@apple.com>
3367
3368         Clarify some macCatalyst feature flags
3369         https://bugs.webkit.org/show_bug.cgi?id=201619
3370         <rdar://problem/54615618>
3371
3372         Reviewed by Megan Gardner.
3373
3374         * wtf/Platform.h:
3375         We prefer specific flags over platform checks.
3376
3377 2019-09-07  David Quesada  <david_quesada@apple.com>
3378
3379         REGRESSION(r248533): Unable to use WTF::RefCounted when building in a debug configuration against a non-debug WebKit
3380         https://bugs.webkit.org/show_bug.cgi?id=201585
3381         rdar://problem/55153369
3382
3383         Reviewed by Chris Dumez.
3384
3385         Export WTF::RefCountedBase::areThreadingChecksEnabledGlobally regardless of whether or not assertions
3386         are enabled for the WTF being built. This allows WebKit-based projects to use RefCounted for their own
3387         objects in a debug configuration without requiring a debug build of WebKit.
3388
3389         * wtf/RefCounted.cpp:
3390         * wtf/RefCounted.h:
3391
3392 2019-09-07  Mark Lam  <mark.lam@apple.com>
3393
3394         performJITMemcpy() source buffer should not be in the Gigacage.
3395         https://bugs.webkit.org/show_bug.cgi?id=201577
3396         <rdar://problem/55142606>
3397
3398         Reviewed by Michael Saboff.
3399
3400         * wtf/Gigacage.h:
3401         (Gigacage::contains):
3402
3403 2019-09-06  Mark Lam  <mark.lam@apple.com>
3404
3405         Harden protection of the Gigacage Config parameters.
3406         https://bugs.webkit.org/show_bug.cgi?id=201570
3407         <rdar://problem/55134229>
3408
3409         Reviewed by Saam Barati.
3410
3411         Just renaming some function names here.
3412
3413         * wtf/Gigacage.h:
3414         (Gigacage::forbidDisablingPrimitiveGigacage):
3415         (Gigacage::isDisablingPrimitiveGigacageForbidden):
3416         (Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled): Deleted.
3417         (Gigacage::isDisablingPrimitiveGigacageDisabled): Deleted.
3418
3419 2019-09-05  Mark Lam  <mark.lam@apple.com>
3420
3421         Refactor the Gigacage code to require less pointer casting.
3422         https://bugs.webkit.org/show_bug.cgi?id=201521
3423
3424         Reviewed by Saam Barati.
3425
3426         Remove some unneeded stubs in WTF Gigacage.h.
3427
3428         * wtf/Gigacage.cpp:
3429         * wtf/Gigacage.h:
3430         (Gigacage::name):
3431         (Gigacage::isEnabled):
3432         (Gigacage::basePtr): Deleted.
3433         (Gigacage::basePtrs): Deleted.
3434
3435 2019-08-30  Alex Christensen  <achristensen@webkit.org>
3436
3437         Remove HAVE_CFNETWORK_WITH_AUTO_ADDED_HTTP_HEADER_SUPPRESSION_SUPPORT conditional
3438         https://bugs.webkit.org/show_bug.cgi?id=201280
3439
3440         Reviewed by Youenn Fablet.
3441
3442         * wtf/Platform.h:
3443
3444 2019-08-30  Alex Christensen  <achristensen@webkit.org>
3445
3446         Remove HAVE_CFNETWORK_WITH_IGNORE_HSTS conditional
3447         https://bugs.webkit.org/show_bug.cgi?id=201279
3448
3449         Reviewed by Darin Adler.
3450
3451         * wtf/Platform.h:
3452
3453 2019-08-30  Alex Christensen  <achristensen@webkit.org>
3454
3455         Fix non-iOS iOS-family and catalyst builds after r249019
3456         https://bugs.webkit.org/show_bug.cgi?id=200945
3457
3458         * wtf/Platform.h:
3459         State that they have tls_protocol_version_t
3460
3461 2019-08-30  Simon Fraser  <simon.fraser@apple.com>
3462
3463         Add system tracing points for compositing updates, and touch-event dispatching
3464         https://bugs.webkit.org/show_bug.cgi?id=201327
3465
3466         Reviewed by Alex Christensen.
3467
3468         * wtf/SystemTracing.h:
3469
3470 2019-08-30  Keith Rollin  <krollin@apple.com>
3471
3472         Remove AppKitCompatibilityDeclarations.h
3473         https://bugs.webkit.org/show_bug.cgi?id=201283
3474         <rdar://problem/54822042>
3475
3476         Reviewed by Alexey Proskuryakov.
3477
3478         The two copies of these files -- on in WTF, one in MiniBrowser -- are
3479         empty and can be removed.
3480
3481         * WTF.xcodeproj/project.pbxproj:
3482         * wtf/PlatformMac.cmake:
3483         * wtf/mac/AppKitCompatibilityDeclarations.h: Removed.
3484
3485 2019-08-29  Keith Rollin  <krollin@apple.com>
3486
3487         Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional
3488         https://bugs.webkit.org/show_bug.cgi?id=201278
3489         <rdar://problem/54821052>
3490
3491         Reviewed by Alex Christensen.
3492
3493         HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional
3494         tests, keeping the True branches and removing the False branches.
3495
3496         * wtf/FeatureDefines.h:
3497
3498 2019-08-29  Keith Rollin  <krollin@apple.com>
3499
3500         Update .xcconfig symbols to reflect the current set of past and future product versions.
3501         https://bugs.webkit.org/show_bug.cgi?id=200720
3502         <rdar://problem/54305032>
3503
3504         Reviewed by Alex Christensen.
3505
3506         Remove version symbols related to old OS's we no longer support,
3507         ensure that version symbols are defined for OS's we do support.
3508
3509         * Configurations/Base.xcconfig:
3510         * Configurations/DebugRelease.xcconfig:
3511
3512 2019-08-29  Keith Rollin  <krollin@apple.com>
3513
3514         Remove 32-bit macOS support
3515         https://bugs.webkit.org/show_bug.cgi?id=201282
3516         <rdar://problem/54821667>
3517
3518         Reviewed by Anders Carlsson.
3519
3520         WebKit doesn’t support 32-bit Mac any more, so remove checks and code
3521         for that platform.
3522
3523         * wtf/Platform.h:
3524
3525 2019-08-29  Chris Dumez  <cdumez@apple.com>
3526
3527         CompletionHandler default constructor does not initialize `m_wasConstructedOnMainThread`
3528         https://bugs.webkit.org/show_bug.cgi?id=201249
3529
3530         Reviewed by Joseph Pecoraro and Alex Christensen.
3531
3532         * wtf/CompletionHandler.h:
3533         (WTF::CompletionHandler<Out):
3534
3535 2019-08-29  Chris Dumez  <cdumez@apple.com>
3536
3537         Crash when mach_port_deallocate() returns KERN_INVALID_NAME
3538         https://bugs.webkit.org/show_bug.cgi?id=201248
3539         <rdar://problem/54813890>
3540
3541         Reviewed by Alex Christensen.
3542
3543         * wtf/cocoa/MachSendRight.cpp:
3544         (WTF::deallocateSendRightSafely):
3545
3546 2019-08-25  Fujii Hironori  <Hironori.Fujii@sony.com>
3547
3548         Regression(r248533) Assertion hit in isMainThread() for some clients using WTF because the main thread is not initialized
3549         https://bugs.webkit.org/show_bug.cgi?id=201083
3550         <rdar://problem/54651993>
3551
3552         Unreviewed build fox for Windows.
3553
3554         * wtf/win/MainThreadWin.cpp:
3555         (WTF::isMainThreadInitialized): Added.
3556
3557 2019-08-23  Jiewen Tan  <jiewen_tan@apple.com>
3558
3559         Unreviewed, build fix after r249059
3560
3561         * wtf/Platform.h:
3562         Make HAVE_NEAR_FIELD available only on iOS 13+ and macOS Catalina+.
3563
3564 2019-08-23  Chris Dumez  <cdumez@apple.com>
3565
3566         Regression(r248533) Assertion hit in isMainThread() for some clients using WTF because the main thread is not initialized
3567         https://bugs.webkit.org/show_bug.cgi?id=201083
3568
3569         Reviewed by Alex Christensen.
3570
3571         An assertion is hit in isMainThread() for some clients using WTF because the main thread is not initialized, since r248533.
3572         Clients can work around this by calling WTF::initializeMainThread() before using WTF but it seems unfortunate to force them
3573         to do so. I propose we disable the assertion until the main thread is initialized.
3574
3575         * wtf/MainThread.h:
3576         * wtf/RefCounted.h:
3577         (WTF::RefCountedBase::RefCountedBase):
3578         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
3579         * wtf/cocoa/MainThreadCocoa.mm:
3580         (WTF::isMainThreadInitialized):
3581         * wtf/generic/MainThreadGeneric.cpp:
3582         (WTF::isMainThreadInitialized):
3583
3584 2019-08-21  Jiewen Tan  <jiewen_tan@apple.com>
3585
3586         [WebAuthn] Support NFC authenticators for iOS
3587         https://bugs.webkit.org/show_bug.cgi?id=188624
3588         <rdar://problem/43354214>
3589
3590         Reviewed by Chris Dumez.
3591
3592         * wtf/Platform.h:
3593         Add a feature flag for NearField.
3594
3595 2019-08-22  Andy Estes  <aestes@apple.com>
3596
3597         [watchOS] Disable Content Filtering in the simulator build
3598         https://bugs.webkit.org/show_bug.cgi?id=201047
3599