b6228fb9c9cda02881e65ffa96d1bc704efd4564
[WebKit-https.git] / Source / WTF / ChangeLog
1 2020-03-23  Jacob Uphoff  <jacob_uphoff@apple.com>
2
3         Unreviewed, reverting r258803.
4
5         This revision caused many layout tests and 10 API tests to
6         start failing/crashing
7
8         Reverted changeset:
9
10         "[Cocoa] Deny access to database mapping service"
11         https://bugs.webkit.org/show_bug.cgi?id=209339
12         https://trac.webkit.org/changeset/258803
13
14 2020-03-23  youenn fablet  <youenn@apple.com>
15
16         StringView::startsWith and String::startsWith do not treat null strings the same
17         https://bugs.webkit.org/show_bug.cgi?id=209273
18
19         Reviewed by Darin Adler.
20
21         Align StringImpl with StringView and make startsWith return true if prefix is null.
22
23         * wtf/text/StringImpl.cpp:
24         (WTF::StringImpl::startsWith const):
25
26 2020-03-22  Antoine Quint  <graouts@apple.com>
27
28         DocumentTimeline / CSSTransition objects are leaking on CNN.com
29         https://bugs.webkit.org/show_bug.cgi?id=208069
30         <rdar://problem/59680143>
31
32         Reviewed by Simon Fraser, Geoffrey Garen and Darin Adler.
33
34         If a CSSAnimation is set on an element using the `animation-name` CSS property, and later removed, it will leak due to the ListHashSet<RefPtr<CSSAnimation>>
35         (aka CSSAnimationCollection) member on ElementAnimationRareData being replaced to the new list, but the old list not being cleared from its members.
36
37         We fix the ListHashSet assignment operator to use swap ensuring previously held items are cleared.
38
39         * wtf/ListHashSet.h:
40         (WTF::=):
41
42 2020-03-20  Per Arne Vollan  <pvollan@apple.com>
43
44         [Cocoa] Deny access to database mapping service
45         https://bugs.webkit.org/show_bug.cgi?id=209339
46         <rdar://problem/56966010>
47
48         Reviewed by Brent Fulgham.
49
50         Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
51         of denying the database mapping service in this patch.
52
53         * wtf/PlatformUse.h:
54
55 2020-03-20  Oliver Hunt  <oliver@nerget,com>
56
57         Add correct annotations to block isa pointer
58         https://bugs.webkit.org/show_bug.cgi?id=209355
59         <rdar://problem/60431606>
60
61         Reviewed by Keith Miller.
62
63         Trivial definition update. 
64
65         * wtf/BlockPtr.h:
66         (WTF::BlockPtr<R):
67
68 2020-03-20  Tim Horton  <timothy_horton@apple.com>
69
70         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
71         https://bugs.webkit.org/show_bug.cgi?id=209307
72
73         Reviewed by Andy Estes.
74
75         * wtf/PlatformEnableCocoa.h:
76         * wtf/PlatformHave.h:
77
78 2020-03-20  youenn fablet  <youenn@apple.com>
79
80         Add routines to check about:blank and about:srcdoc URLs
81         https://bugs.webkit.org/show_bug.cgi?id=209174
82
83         Reviewed by Alex Christensen.
84
85         * wtf/URL.cpp:
86         (WTF::aboutSrcDocURL):
87         (WTF::URL::isAboutBlank const):
88         (WTF::URL::isAboutSrcDoc const):
89         * wtf/URL.h:
90
91 2020-03-20  Jacob Uphoff  <jacob_uphoff@apple.com>
92
93         Unreviewed, reverting r258748.
94
95         This commit broke the Catalina build
96
97         Reverted changeset:
98
99         "Upstream a variety of Cocoa-platform HAVE and ENABLE macros"
100         https://bugs.webkit.org/show_bug.cgi?id=209307
101         https://trac.webkit.org/changeset/258748
102
103 2020-03-19  Tim Horton  <timothy_horton@apple.com>
104
105         Upstream a variety of Cocoa-platform HAVE and ENABLE macros
106         https://bugs.webkit.org/show_bug.cgi?id=209307
107
108         Reviewed by Andy Estes.
109
110         * wtf/PlatformEnableCocoa.h:
111         * wtf/PlatformHave.h:
112
113 2020-03-19  Tim Horton  <timothy_horton@apple.com>
114
115         Upstream the definition of HAVE_READ_ONLY_SYSTEM_VOLUME
116         https://bugs.webkit.org/show_bug.cgi?id=209305
117
118         Reviewed by Andy Estes.
119
120         * wtf/PlatformHave.h:
121
122 2020-03-19  Tim Horton  <timothy_horton@apple.com>
123
124         Implement support for cursor interactions on iPad
125         https://bugs.webkit.org/show_bug.cgi?id=209268
126
127         Reviewed by Darin Adler.
128
129         * wtf/PlatformEnableCocoa.h:
130         Don't disable the contextmenu event on iOS anymore.
131
132         * wtf/PlatformHave.h:
133         Rename HAVE_HOVER_GESTURE_RECOGNIZER to HAVE_UIKIT_WITH_MOUSE_SUPPORT.
134         Add HAVE_UI_CURSOR_INTERACTION.
135         Enable HAVE_UI_PARALLAX_TRANSITION_GESTURE_RECOGNIZER on iOS.
136
137 2020-03-19  Charlie Turner  <cturner@igalia.com>
138
139         Fix many warnings with Clang 7.0 on GTK x86-64 in Debug.
140         https://bugs.webkit.org/show_bug.cgi?id=209146
141
142         Reviewed by Darin Adler.
143
144         * wtf/LoggerHelper.h: When the RELEASE_LOG is disabled, avoid warning
145         spam about unused channel names. Call sites often create locals for
146         the channel name outside of RELEASE_LOG ifdef's, which cause many
147         unused variable warnings.
148
149 2020-03-19  Philippe Normand  <pnormand@igalia.com>
150
151         [GTK][WPE] Unreviewed, build fixes after r258547 when disabling release logging support
152
153         * wtf/Logger.h:
154         (WTF::Logger::logAlwaysVerbose const):
155
156 2020-03-19  youenn fablet  <youenn@apple.com>
157
158         Make URL::path() return a StringView
159         https://bugs.webkit.org/show_bug.cgi?id=209173
160
161         Reviewed by Alex Christensen.
162
163         * wtf/URL.cpp:
164         (WTF::URL::path const):
165         * wtf/URL.h:
166         * wtf/text/StringView.h:
167         (WTF::startsWithLettersIgnoringASCIICase):
168         Add an overload for StringView.
169
170 2020-03-18  Peng Liu  <peng.liu6@apple.com>
171
172         The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
173         https://bugs.webkit.org/show_bug.cgi?id=204979
174
175         Reviewed by Jer Noble.
176
177         A follow-up patch to fix build failures.
178
179         * wtf/PlatformHave.h:
180
181 2020-03-18  Myles C. Maxfield  <mmaxfield@apple.com>
182
183         REGRESSION(r254389): Cordova throws an exception because it expects a hyphen inside navigator.locale
184         https://bugs.webkit.org/show_bug.cgi?id=208969
185         <rdar://problem/59845517>
186
187         Reviewed by Darin Adler.
188
189         We want to thwart fingerprinting by minimizing the list of locales, but we also don't want to break existing apps.
190         We can achieve both by a linked-on-or-after check.
191
192         * wtf/cocoa/LanguageCocoa.mm:
193         (WTF::canMinimizeLanguages):
194
195 2020-03-17  Alex Christensen  <achristensen@webkit.org>
196
197         REGRESSION(r254856) Add exception for window.openDatabase to not masquerade as undefined in currently shipping Jesus Calling Devotional app
198         https://bugs.webkit.org/show_bug.cgi?id=209160
199         <rdar://problem/60297073>
200
201         Reviewed by Geoff Garen.
202
203         * wtf/spi/darwin/dyldSPI.h:
204
205 2020-03-17  Per Arne Vollan  <pvollan@apple.com>
206
207         [Cocoa] Disable CF prefs direct mode
208         https://bugs.webkit.org/show_bug.cgi?id=209166
209         <rdar://problem/60517387>
210
211         Reviewed by Brent Fulgham.
212
213         Revert <https://trac.webkit.org/changeset/258064> by disabling the CF prefs direct mode feature,
214         since it caused performance regressions.
215
216         * wtf/PlatformEnable.h:
217
218 2020-03-17  Philippe Normand  <pnormand@igalia.com>
219
220         RELEASE_LOG should not be Cocoa specific
221         https://bugs.webkit.org/show_bug.cgi?id=195182
222
223         Reviewed by Konstantin Tokarev.
224
225         Add sd-journal logging support and wrap the os_log calls with the USE(OS_LOG) guard.
226
227         * wtf/Assertions.cpp:
228         * wtf/Assertions.h:
229         * wtf/Logger.h:
230         (WTF::Logger::log):
231         * wtf/MemoryPressureHandler.cpp:
232         (WTF::toString):
233         * wtf/PlatformGTK.cmake:
234         * wtf/PlatformWPE.cmake:
235         * wtf/RefCountedLeakCounter.cpp:
236
237 2020-03-16  Keith Miller  <keith_miller@apple.com>
238
239         JavaScript identifier grammar supports unescaped astral symbols, but JSC doesn’t
240         https://bugs.webkit.org/show_bug.cgi?id=208998
241
242         Reviewed by Michael Saboff.
243
244         * wtf/text/WTFString.cpp:
245         (WTF::String::fromCodePoint):
246         * wtf/text/WTFString.h:
247
248 2020-03-15  Yusuke Suzuki  <ysuzuki@apple.com>
249
250         Should not use variable-length-array (VLA)
251         https://bugs.webkit.org/show_bug.cgi?id=209043
252
253         Reviewed by Mark Lam.
254
255         * Configurations/Base.xcconfig:
256         * wtf/UUID.cpp:
257         (WTF::bootSessionUUIDString):
258
259 2020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
260
261         [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
262         https://bugs.webkit.org/show_bug.cgi?id=209030
263
264         Reviewed by Simon Fraser.
265
266         * WTF.xcodeproj/project.pbxproj:
267         * wtf/PlatformMac.cmake:
268         * wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
269         * wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.
270         (WTF::applicationSDKVersionOverride):
271         (WTF::setApplicationSDKVersion):
272         (WTF::applicationSDKVersion):
273
274 2020-03-11  Jer Noble  <jer.noble@apple.com>
275
276         Adopt AVSampleBufferVideoOutput
277         https://bugs.webkit.org/show_bug.cgi?id=208951
278
279         Reviewed by Eric Carlson.
280
281         * wtf/PlatformHave.h:
282
283 2020-03-11  Jer Noble  <jer.noble@apple.com>
284
285         [EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
286         https://bugs.webkit.org/show_bug.cgi?id=208923
287
288         Reviewed by Eric Carlson.
289
290         * wtf/LoggerHelper.h:
291         (WTF::LoggerHelper::childLogIdentifier): Made static.
292
293 2020-03-11  Per Arne Vollan  <pvollan@apple.com>
294
295         [macOS] Crash under WebKit::WebProcessPool::platformInitialize()
296         https://bugs.webkit.org/show_bug.cgi?id=208945
297
298         Reviewed by Brent Fulgham.
299
300         Add macro to optionally soft link library.
301
302         * wtf/cocoa/SoftLinking.h:
303
304 2020-03-11  Alex Christensen  <achristensen@webkit.org>
305
306         Enable safe browsing warnings in Mac Catalyst WebKit
307         https://bugs.webkit.org/show_bug.cgi?id=208944
308         <rdar://problem/58854302>
309
310         Reviewed by Tim Horton.
311
312         * wtf/PlatformHave.h:
313
314 2020-03-09  Megan Gardner  <megan_gardner@apple.com>
315
316         Build Fix
317         https://bugs.webkit.org/show_bug.cgi?id=208838
318
319         Reviewed by Tim Horton.
320
321         * wtf/PlatformHave.h:
322
323 2020-03-09  Don Olmstead  <don.olmstead@sony.com>
324
325         Remove obsolete feature flags
326         https://bugs.webkit.org/show_bug.cgi?id=208830
327
328         Reviewed by Alex Christensen.
329
330         Remove ENABLE_CUSTOM_SCHEME_HANDLER as it is unused in source.
331
332         * wtf/PlatformEnable.h:
333
334 2020-03-08  Brady Eidson  <beidson@apple.com>
335
336         Remember completed subranges during incremental PDF loading.
337         https://bugs.webkit.org/show_bug.cgi?id=208785
338
339         Reviewed by Tim Horton.
340
341         * wtf/Range.h: Don't include the typical 'using WTF::Range' as that makes it almost impossible
342           to use in the stack at WebCore or higher (Because of WebCore::Range)
343
344 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
345
346         Unreviewed build fix.
347
348         * wtf/PlatformUse.h:
349
350 2020-03-08  Per Arne Vollan  <pvollan@apple.com>
351
352         [iOS] Mapping to UTI from tag and tag class should be performed in the UI process
353         https://bugs.webkit.org/show_bug.cgi?id=208783
354
355         Reviewed by Brent Fulgham.
356
357         * wtf/PlatformUse.h:
358
359 2020-03-08  Wenson Hsieh  <wenson_hsieh@apple.com>
360
361         Lazily generate CGPaths for some simple types of paths, such as arcs and lines
362         https://bugs.webkit.org/show_bug.cgi?id=208464
363         <rdar://problem/59963226>
364
365         Reviewed by Daniel Bates, Darin Adler and Tim Horton.
366
367         Add a feature flag for INLINE_PATH_DATA. This feature flag exists to ensure that we can avoid having
368         m_inlineData on Path in ports that don't implement the necessary facilities for inline path data yet, since it
369         would just end up being wasted memory.
370
371         * wtf/PlatformEnable.h:
372
373 2020-03-07  Daniel Bates  <dabates@apple.com>
374
375         [iOS] Implement support for dictation alternatives
376         https://bugs.webkit.org/show_bug.cgi?id=208720
377         <rdar://problem/58540114>
378
379         Reviewed by Wenson Hsieh.
380
381         Part 5
382
383         Enable USE_DICTATION_ALTERNATIVES on iOS.
384
385         * wtf/PlatformUse.h:
386
387 2020-03-05  Sam Weinig  <weinig@apple.com>
388
389         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
390         https://bugs.webkit.org/show_bug.cgi?id=207436
391         <rdar://problem/59296762>
392
393         Reviewed by Darin Adler.
394
395         * wtf/PlatformEnable.h:
396         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
397
398         * wtf/PlatformEnableCocoa.h:
399         Added ENABLE_FAST_JIT_PERMISSIONS and ENABLE_INTL (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
400         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
401
402 2020-03-06  Per Arne Vollan  <pvollan@apple.com>
403
404         [Cocoa] Re-enable CFPrefs direct mode
405         https://bugs.webkit.org/show_bug.cgi?id=208690
406
407         Reviewed by Brent Fulgham.
408
409         * wtf/PlatformEnable.h:
410
411 2020-03-06  Peng Liu  <peng.liu6@apple.com>
412
413         Use the feature flags mechanism to give default feature preference values
414         https://bugs.webkit.org/show_bug.cgi?id=208607
415
416         Reviewed by Youenn Fablet.
417
418         ENABLE_GPU_PROCESS_FOR_WEBRTC is removed because we will use the feature flags
419         mechanism to give the default preference regarding the WebRTC in GPU process feature.
420         This patch also adds macro HAVE_SYSTEM_FEATURE_FLAGS.
421
422         * wtf/PlatformEnable.h:
423         * wtf/PlatformEnableCocoa.h:
424         * wtf/PlatformHave.h:
425
426 2020-03-05  Darin Adler  <darin@apple.com>
427
428         Improve some media code
429         https://bugs.webkit.org/show_bug.cgi?id=208322
430
431         Reviewed by Anders Carlsson.
432
433         * wtf/WeakPtr.h:
434         (WTF::WeakPtr::operator! const): Added.
435
436 2020-03-05  Jer Noble  <jer.noble@apple.com>
437
438         [GPUP] Implement RemoteAudioSession
439         https://bugs.webkit.org/show_bug.cgi?id=208583
440
441         Reviewed by Alex Christensen.
442
443         Add UniqueRef to the list of forward-declared template types.
444
445         * wtf/Forward.h:
446
447 2020-03-04  Mark Lam  <mark.lam@apple.com>
448
449         Handle an out of memory error while constructing the BytecodeGenerator.
450         https://bugs.webkit.org/show_bug.cgi?id=208622
451         <rdar://problem/59341136>
452
453         Reviewed by Saam Barati.
454
455         * wtf/CagedUniquePtr.h:
456         (WTF::CagedUniquePtr::tryCreate):
457
458 2020-03-04  Brady Eidson  <beidson@apple.com>
459
460         Lay initial groundwork for new PDF loading model
461         https://bugs.webkit.org/show_bug.cgi?id=208599
462
463         Reviewed by Alex Christensen.
464
465         * wtf/PlatformHave.h:
466
467 2020-03-04  Wenson Hsieh  <wenson_hsieh@apple.com>
468
469         Add system trace points around display list replay
470         https://bugs.webkit.org/show_bug.cgi?id=208616
471
472         Reviewed by Simon Fraser.
473
474         Add DisplayListReplayStart and DisplayListReplayEnd.
475
476         * wtf/SystemTracing.h:
477
478 2020-03-04  Per Arne Vollan  <pvollan@apple.com>
479
480         [Cocoa] Add enable flag to disable direct mode for preferences
481         https://bugs.webkit.org/show_bug.cgi?id=208588
482
483         Reviewed by Brent Fulgham.
484
485         * wtf/PlatformEnable.h:
486
487 2020-03-03  Megan Gardner  <megan_gardner@apple.com>
488
489         Build Fix
490         https://bugs.webkit.org/show_bug.cgi?id=208530
491
492         Reviewed by Wenson Hsieh.
493
494         * wtf/PlatformHave.h:
495
496 2020-03-03  Jiten Mehta  <jmehta@apple.com>
497
498         Adopt HTTP Alternative Services Storage
499         https://bugs.webkit.org/show_bug.cgi?id=208387
500
501         Reviewed by Alex Christensen.
502
503         * wtf/PlatformHave.h:
504
505 2020-03-03  youenn fablet  <youenn@apple.com>
506
507         Rename USE(GPU_PROCESS) to ENABLE(GPU_PROCESS_FOR_WEBRTC)
508         https://bugs.webkit.org/show_bug.cgi?id=208505
509
510         Reviewed by Eric Carlson.
511
512         Rename macro since the name is misleading.
513         Disable GPU_PROCESS_FOR_WEBRTC for iOS except simulator for now.
514
515         * wtf/PlatformEnable.h:
516         * wtf/PlatformEnableCocoa.h:
517         * wtf/PlatformUse.h:
518
519 2020-03-02  Ben Nham  <nham@apple.com>
520
521         Add performance probes for HTML parsing
522         https://bugs.webkit.org/show_bug.cgi?id=208271
523
524         Reviewed by Daniel Bates.
525
526         This adds probes that show which lines of HTML are have been parsed.
527
528         * wtf/SystemTracing.h:
529
530 2020-03-02  Ben Nham  <nham@apple.com>
531
532         [WTF] Add signpost API
533         https://bugs.webkit.org/show_bug.cgi?id=208395
534
535         Reviewed by Alex Christensen.
536
537         We want to start using os_signpost instead of kdebug_trace when emitting performance events,
538         because it is usually cheaper (doesn't require a system call unless the log buffer is full)
539         and allows for richer tracepoints (allows for logging strings as well as integers).
540
541         To facilitate this, this moves the os_signpost wrappers in NetworkDataTaskCocoa to
542         WTF. Since signposts can contain sensitive strings (like URLs), currently we only enable
543         them on Apple-internal devices when an environment variable is set.
544
545         * WTF.xcodeproj/project.pbxproj:
546         * wtf/PlatformMac.cmake:
547         * wtf/SystemTracing.h:
548         * wtf/cocoa/SystemTracingCocoa.cpp: Added.
549         (WTFSignpostsEnabled):
550         (WTFSignpostLogHandle):
551         * wtf/spi/darwin/OSVariantSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/OSVariantSPI.h.
552
553 2020-03-02  Alan Coon  <alancoon@apple.com>
554
555         Add new Mac target numbers
556         https://bugs.webkit.org/show_bug.cgi?id=208398
557
558         Reviewed by Alexey Proskuryakov.
559
560         * Configurations/Base.xcconfig:
561         * Configurations/DebugRelease.xcconfig:
562
563 2020-03-02  Megan Gardner  <megan_gardner@apple.com>
564
565         Add date/time style to macCatalyst
566         https://bugs.webkit.org/show_bug.cgi?id=208456
567
568         Reviewed by Wenson Hsieh.
569
570         * wtf/PlatformHave.h:
571
572 2020-03-02  Paulo Matos  <pmatos@igalia.com>
573
574         Fix JSC 32bit alignment increase gcc warning
575         https://bugs.webkit.org/show_bug.cgi?id=208445
576
577         Reviewed by Yusuke Suzuki.
578
579         Use reinterpret_cast_ptr<>() instead of reinterpret_cast<>() to
580         avoid GCC warning about increase in alignment requirement for cast
581         target type.
582
583         * wtf/HashTable.h:
584         (WTF::HashTable::tableSize const):
585         (WTF::HashTable::setTableSize const):
586         (WTF::HashTable::tableSizeMask const):
587         (WTF::HashTable::setTableSizeMask):
588         (WTF::HashTable::keyCount const):
589         (WTF::HashTable::setKeyCount const):
590         (WTF::HashTable::deletedCount const):
591         (WTF::HashTable::setDeletedCount const):
592         (WTF::KeyTraits>::allocateTable):
593         (WTF::KeyTraits>::deallocateTable):
594
595 2020-03-02  youenn fablet  <youenn@apple.com>
596
597         Enable capture in GPUProcess by default for recent platforms only
598         https://bugs.webkit.org/show_bug.cgi?id=208437
599
600         Reviewed by Eric Carlson.
601
602         * wtf/PlatformUse.h:
603         Introduce USE(GPU_PROCESS)
604
605 2020-02-29  Yusuke Suzuki  <ysuzuki@apple.com>
606
607         Remove std::lock_guard
608         https://bugs.webkit.org/show_bug.cgi?id=206451
609
610         Reviewed by Anders Carlsson.
611
612         Remove use of std::lock_guard. This is deprecated in C++17.
613
614         1. For particularly low-level usage (like, bmalloc, std::mutex), use std::scoped_lock.
615         2. For the other purpose, use holdLock.
616
617         * benchmarks/ConditionSpeedTest.cpp:
618         * wtf/CryptographicallyRandomNumber.cpp:
619         * wtf/HashTable.cpp:
620         (WTF::HashTableStats::recordCollisionAtCount):
621         (WTF::HashTableStats::dumpStats):
622         * wtf/HashTable.h:
623         (WTF::KeyTraits>::invalidateIterators):
624         (WTF::addIterator):
625         (WTF::removeIterator):
626         * wtf/Language.cpp:
627         (WTF::userPreferredLanguages):
628         * wtf/MainThread.cpp:
629         (WTF::dispatchFunctionsFromMainThread):
630         (WTF::callOnMainThread):
631         (WTF::callOnMainAndWait):
632         * wtf/StackStats.cpp:
633         (WTF::StackStats::CheckPoint::CheckPoint):
634         (WTF::StackStats::CheckPoint::~CheckPoint):
635         (WTF::StackStats::probe):
636         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
637         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
638         * wtf/WordLock.cpp:
639         (WTF::WordLock::unlockSlow):
640         * wtf/cf/LanguageCF.cpp:
641         (WTF::languagePreferencesDidChange):
642         (WTF::platformUserPreferredLanguages):
643         * wtf/text/StringView.cpp:
644         (WTF::StringView::invalidate):
645         (WTF::StringView::adoptUnderlyingString):
646         (WTF::StringView::setUnderlyingString):
647         * wtf/unicode/icu/CollatorICU.cpp:
648         (WTF::Collator::Collator):
649         (WTF::Collator::~Collator):
650         * wtf/win/LanguageWin.cpp:
651         (WTF::platformLanguage):
652
653 2020-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
654
655         [JSC] BuiltinNames' HashMap should be small
656         https://bugs.webkit.org/show_bug.cgi?id=208404
657
658         Reviewed by Mark Lam.
659
660         * wtf/text/AtomStringImpl.cpp:
661         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer): Deleted.
662         * wtf/text/StringImpl.h:
663         (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):
664
665 2020-02-27  Basuke Suzuki  <basuke.suzuki@sony.com>
666
667         [WinCairo] Fix RemoteInspector reconnect issue
668         https://bugs.webkit.org/show_bug.cgi?id=208256
669
670         Reviewed by Devin Rousso.
671
672         Added wakeupCallback to RunLoop. In case of RunLook::iterate, we need to wake up worker thread
673         when RunLoop is waking up.
674
675         * wtf/RunLoop.h:
676         * wtf/generic/RunLoopGeneric.cpp:
677         (WTF::RunLoop::setWakeUpCallback):
678         (WTF::RunLoop::wakeUp):
679         * wtf/win/RunLoopWin.cpp:
680         (WTF::RunLoop::setWakeUpCallback):
681         (WTF::RunLoop::wakeUp):
682
683 2020-02-27  Simon Fraser  <simon.fraser@apple.com>
684
685         Add ENABLE(SCROLLING_THREAD) and use it to turn off some code we don't need for iOS
686         https://bugs.webkit.org/show_bug.cgi?id=208282
687
688         Reviewed by Tim Horton.
689         
690         Define ENABLE_SCROLLING_THREAD PLATFORM(MAC) and USE(NICOSIA).
691
692         * wtf/PlatformEnable.h:
693         * wtf/PlatformEnableCocoa.h:
694
695 2020-02-26  Don Olmstead  <don.olmstead@sony.com>
696
697         Allow setting of stack sizes for threads
698         https://bugs.webkit.org/show_bug.cgi?id=208223
699
700         Reviewed by Yusuke Suzuki.
701
702         Introduce ThreadType which is used internally to specify a stack size for a particular
703         type of thread. Platforms can make their own decisions on what the stack size should be
704         based on their own observations. Additionally a default stack size can be specified
705         by defining DEFAULT_THREAD_STACK_SIZE_IN_KB if the default stack for a platform is
706         insufficient in all cases, or when investigating the stack size for tuning.
707
708         Both the pthread and Windows thread implementations are modified to set the stack size
709         if provided.
710
711         * wtf/Threading.cpp:
712         (WTF::stackSize):
713         (WTF::Thread::create):
714         * wtf/Threading.h:
715         * wtf/posix/ThreadingPOSIX.cpp:
716         (WTF::Thread::establishHandle):
717         * wtf/win/ThreadingWin.cpp:
718         (WTF::Thread::establishHandle):
719
720 2020-02-26  Christopher Reid  <chris.reid@sony.com>
721
722         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
723         https://bugs.webkit.org/show_bug.cgi?id=197684
724         <rdar://problem/59467397>
725
726         Reviewed by Yusuke Suzuki.
727
728         * wtf/FileSystem.cpp:
729         * wtf/FileSystem.h:
730         Added FileAccessPermission flag when opening files.
731         Remove default argument for the listDirectory filter since the defaut
732         String() filter doesn't match all files on Mac and Windows.
733
734         Added FileOpenMode::ReadWrite to be used with ReadWrite MappedFileData.
735         Added failIfFileExists flag to openFile.
736
737         * wtf/glib/FileSystemGlib.cpp:
738         * wtf/posix/FileSystemPOSIX.cpp:
739         Added (S_IRUSR | S_IWUSR) file open modes.
740
741         * wtf/win/FileSystemWin.cpp:
742         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
743         
744         * wtf/win/PathWalker.cpp:
745
746 2020-02-25  Devin Rousso  <drousso@apple.com>
747
748         Web Inspector: safari app extension isolated worlds and injected files use the extension's identifier instead of its name
749         https://bugs.webkit.org/show_bug.cgi?id=206911
750         <rdar://problem/58026635>
751
752         Reviewed by Brian Burg.
753
754         * wtf/HashSet.h:
755         (WTF::HashSet::reserveInitialCapacity): Added.
756
757 2020-02-25  Justin Michaud  <justin_michaud@apple.com>
758
759         Inline Cache delete by id/val
760         https://bugs.webkit.org/show_bug.cgi?id=207522
761
762         Reviewed by Keith Miller and Filip Pizlo.
763
764         * wtf/Spectrum.h:
765         (WTF::Spectrum::add):
766         (WTF::Spectrum::get const):
767         (WTF::Spectrum::buildList const):
768         (WTF::Spectrum::clear):
769         (WTF::Spectrum::removeIf):
770         (WTF::Spectrum::begin): Deleted.
771         (WTF::Spectrum::end): Deleted.
772
773 2020-02-25  Philippe Normand  <pnormand@igalia.com>
774
775         [WPE] Enable BACKTRACE_SYMBOLS
776         https://bugs.webkit.org/show_bug.cgi?id=208187
777
778         Reviewed by Žan Doberšek.
779
780         * wtf/PlatformHave.h: Enable backtrace_symbols, to be combined
781         with dladdr() the stacktrace dumps will be improved.
782
783 2020-02-25  Saam Barati  <sbarati@apple.com>
784
785         Update stale comment about PackedAlignedPtr
786         https://bugs.webkit.org/show_bug.cgi?id=208176
787
788         Reviewed by Yusuke Suzuki.
789
790         The comment was stale since cells aren't guaranteed anymore to be
791         aligned on 16 byte boundaries because of the GCs precise allocations.
792
793         * wtf/Packed.h:
794
795 2020-02-25  Carlos Garcia Campos  <cgarcia@igalia.com>
796
797         [GTK] Stop using gtk foreign drawing API to style form controls
798         https://bugs.webkit.org/show_bug.cgi?id=208129
799
800         Reviewed by Adrian Perez de Castro.
801
802         Enable USE_NEW_THEME for the GTK port.
803
804         * wtf/PlatformUse.h:
805
806 2020-02-25  Philippe Normand  <pnormand@igalia.com>
807
808         [Linux] StackTrace symbols are not demangled
809         https://bugs.webkit.org/show_bug.cgi?id=207933
810
811         Reviewed by Yusuke Suzuki.
812
813         Demangle symbols provided by backtrace_symbols.
814
815         * wtf/StackTrace.cpp:
816         (WTF::StackTrace::dump const):
817
818 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
819
820         [WTF] Add tests for CompactRefPtrTuple
821         https://bugs.webkit.org/show_bug.cgi?id=208172
822
823         Reviewed by Darin Adler.
824
825         Include Noncopyable.h.
826
827         * wtf/CompactRefPtrTuple.h:
828
829 2020-02-24  Yusuke Suzuki  <ysuzuki@apple.com>
830
831         [WTF] Attach WARN_UNUSED_RETURN to makeScopeExit and fix existing wrong usage
832         https://bugs.webkit.org/show_bug.cgi?id=208162
833
834         Reviewed by Robin Morisset.
835
836         We should hold ScopeExit to call destructor when we exit from the scope actually.
837         Putting WARN_UNUSED_RETURN to fix existing misuse.
838
839         * wtf/Scope.h:
840
841 2020-02-23  Yusuke Suzuki  <ysuzuki@apple.com>
842
843         [JSC] Shrink Structure
844         https://bugs.webkit.org/show_bug.cgi?id=207827
845
846         Reviewed by Saam Barati.
847
848         Make CompactPointerTuple usable for storing 16 bits data.
849
850         * WTF.xcodeproj/project.pbxproj:
851         * wtf/CMakeLists.txt:
852         * wtf/CompactPointerTuple.h:
853         * wtf/CompactRefPtrTuple.h: Added.
854         * wtf/text/StringImpl.h:
855         * wtf/text/SymbolImpl.h:
856         (WTF::SymbolImpl::hashForSymbol const):
857         (WTF::SymbolImpl::SymbolImpl):
858
859 2020-02-21  Antti Koivisto  <antti@apple.com>
860
861         REGRESSION(r257072): MotionMark | Mac | -10%
862         https://bugs.webkit.org/show_bug.cgi?id=208054
863         <rdar://problem/59664582>
864
865         Reviewed by Geoffrey Garen.
866
867         With rAF and slow scripts, suspended functions may pile up in RunLoop because every cycle does a rendering update.
868
869         * wtf/RunLoop.cpp:
870         (WTF::RunLoop::performWork):
871         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
872
873         Don't suspend if there are already pending suspended functions.
874
875         * wtf/RunLoop.h:
876
877 2020-02-20  Jiewen Tan  <jiewen_tan@apple.com>
878
879         [WebAuthn] Replace DeviceIdentity.framework
880         https://bugs.webkit.org/show_bug.cgi?id=207985
881         <rdar://problem/59369223>
882
883         Reviewed by Brent Fulgham.
884
885         * wtf/PlatformHave.h:
886
887 2020-02-20  Eric Liang  <ericliang@apple.com>
888
889         AX: Adopt _AXSCopyPathForAccessibilityBundle for WebKit
890         https://bugs.webkit.org/show_bug.cgi?id=207828
891
892         Use the _AXSCopyPathForAccessibilityBundle new API. Updated the required SDK version.
893
894         Reviewed by Darin Adler.
895
896         * wtf/PlatformHave.h:
897
898 2020-02-20  Antti Koivisto  <antti@apple.com>
899
900         Unreviewed comment fix.
901
902         * wtf/RunLoop.cpp:
903         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
904
905         Words by Simon.
906
907 2020-02-20  Antti Koivisto  <antti@apple.com>
908
909         [macOS] Disable RunLoop function dispatch when there is a pending rendering update
910         https://bugs.webkit.org/show_bug.cgi?id=207931
911
912         Reviewed by Geoffrey Garen.
913
914         * wtf/RunLoop.cpp:
915         (WTF::RunLoop::performWork):
916
917         Simplify the code by factoring it into a single loop.
918         Bail out if the runloop is initially suspended or if it becomes suspended by function execution.
919         Clear the suspended state so it last a single cycle only.
920
921         (WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
922
923         Set the suspended state and wake up the runloop to guarantee the state is cleared.
924
925         * wtf/RunLoop.h:
926
927 2020-02-18  Keith Miller  <keith_miller@apple.com>
928
929         Add an os_log PrintStream
930         https://bugs.webkit.org/show_bug.cgi?id=207898
931
932         Reviewed by Mark Lam.
933
934         When debugging on iOS writing to a file can be hard (thanks
935         Sandboxing!)  so logging our dataLogs to os_log would make things
936         easier. This patch adds a new subclass of PrintStream,
937         OSLogPrintStream, that converts our file writes to
938         os_log. Unfortunately, os_log doesn't buffer writes so
939         OSLogPrintStream needs to do its own buffering. e.g. if you call
940         `dataLogLn("some text with a ", number, " and a ", string);`
941         os_log will log that as 5 separate logs.
942
943         * WTF.xcodeproj/project.pbxproj:
944         * wtf/CMakeLists.txt:
945         * wtf/DataLog.cpp:
946         (WTF::setDataFile):
947         * wtf/DataLog.h:
948         * wtf/OSLogPrintStream.cpp: Added.
949         (WTF::OSLogPrintStream::OSLogPrintStream):
950         (WTF::OSLogPrintStream::~OSLogPrintStream):
951         (WTF::OSLogPrintStream::open):
952         (WTF::OSLogPrintStream::vprintf):
953         * wtf/OSLogPrintStream.h: Copied from Source/WTF/wtf/DataLog.h.
954         * wtf/PrintStream.cpp:
955         (WTF::printExpectedCStringHelper):
956         (WTF::printInternal):
957         * wtf/text/CString.cpp:
958         (WTF::CString::grow):
959         * wtf/text/CString.h:
960
961 2020-02-18  Simon Fraser  <simon.fraser@apple.com>
962
963         Move from "layer flush" terminology to "rendering update"
964         https://bugs.webkit.org/show_bug.cgi?id=207870
965
966         Reviewed by Tim Horton.
967
968         * wtf/SystemTracing.h:
969
970 2020-02-17  Chris Dumez  <cdumez@apple.com>
971
972         [WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
973         https://bugs.webkit.org/show_bug.cgi?id=207593
974         <rdar://problem/56027027>
975
976         Reviewed by Antti Koivisto.
977
978         Add build time flags for new feature.
979
980         * wtf/PlatformEnable.h:
981         * wtf/PlatformHave.h:
982
983 2020-02-17  Tim Horton  <timothy_horton@apple.com>
984
985         Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
986         https://bugs.webkit.org/show_bug.cgi?id=207876
987
988         Reviewed by Wenson Hsieh.
989
990         * wtf/PlatformHave.h:
991         For symmetry's sake, introduce a HAVE for this gesture.
992
993 2020-02-17  Mark Lam  <mark.lam@apple.com>
994
995         getVTablePointer() should return a const void*.
996         https://bugs.webkit.org/show_bug.cgi?id=207871
997         <rdar://problem/59525721>
998
999         Reviewed by Yusuke Suzuki.
1000
1001         * wtf/PointerPreparations.h:
1002         (WTF::getVTablePointer):
1003
1004 2020-02-17  Dean Jackson  <dino@apple.com>
1005
1006         [WebGL] Enable ANGLE by default for Cocoa platforms
1007         https://bugs.webkit.org/show_bug.cgi?id=205483
1008         rdar://56925821
1009
1010         Reviewed by Simon Fraser.
1011
1012         * wtf/Platform.h:
1013
1014 2020-02-17  Peng Liu  <peng.liu6@apple.com>
1015
1016         Fix check-webkit-style errors related to AVFoundationSPI.h
1017         https://bugs.webkit.org/show_bug.cgi?id=207834
1018
1019         Reviewed by Eric Carlson.
1020
1021         Add HAVE_VIDEO_PERFORMANCE_METRICS and USE_AV_SAMPLE_BUFFER_DISPLAY_LAYER to fix check-webkit-style errors.
1022
1023         * wtf/PlatformHave.h:
1024         * wtf/PlatformUse.h:
1025
1026 2020-02-17  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
1027
1028         a lot gcc warnings because of %{public}s format specifier
1029         https://bugs.webkit.org/show_bug.cgi?id=207478
1030
1031         Reviewed by Darin Adler.
1032
1033         Add PUBLIC_LOG_STRING macro which is defined depending on if
1034         os_log()[1] is used or rather old printf().
1035
1036         OS Logging processes format specifiers for privacy matters, for
1037         example dynamic strings, which demands %{public}s. But these
1038         specifiers are not valid for printf().
1039
1040         Calls to logging with this specifier, if they are not Mac/Darwing
1041         exclusive, use this new macro to avoid gcc warnings.
1042
1043         1. https://developer.apple.com/documentation/os/logging?language=objc
1044
1045         * wtf/Assertions.h:
1046         * wtf/MemoryPressureHandler.cpp:
1047         (WTF::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
1048
1049 2020-02-17  Antti Koivisto  <antti@apple.com>
1050
1051         [macOS] Add trace points for layer flush runloop observer
1052         https://bugs.webkit.org/show_bug.cgi?id=207837
1053
1054         Reviewed by Sam Weinig.
1055
1056         * wtf/SystemTracing.h:
1057
1058 2020-02-17  Don Olmstead  <don.olmstead@sony.com>
1059
1060         [CMake] Use builtin targets
1061         https://bugs.webkit.org/show_bug.cgi?id=205166
1062
1063         Reviewed by Darin Adler.
1064
1065         * wtf/PlatformGTK.cmake:
1066         * wtf/PlatformJSCOnly.cmake:
1067         * wtf/PlatformPlayStation.cmake:
1068         * wtf/PlatformWPE.cmake:
1069
1070 2020-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>
1071
1072         Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
1073         https://bugs.webkit.org/show_bug.cgi?id=207746
1074
1075         Reviewed by Don Olmstead.
1076
1077         I removed WTF_EXPORT from function declarations in r256420 (Bug 207453).
1078         WTF_EXPORT is still used mostly in *ExportMacros.h. However, there is no
1079         difference between WTF_EXPORT and WTF_EXPORT_DECLARATION.
1080
1081         Removed WTF_EXPORT and WTF_IMPORT by replacing them with
1082         WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
1083
1084         Removed unused WTF_HIDDEN.
1085
1086         Defined WTF_EXPORT_DECLARATION, WTF_IMPORT_DECLARATION and WTF_HIDDEN_DECLARATION empty
1087         in case of !USE(EXPORT_MACROS) to simplify *ExportMacros.h.
1088
1089         * wtf/ExportMacros.h:
1090
1091 2020-02-14  Commit Queue  <commit-queue@webkit.org>
1092
1093         Unreviewed, rolling out r256633.
1094         https://bugs.webkit.org/show_bug.cgi?id=207807
1095
1096         4% memory regression in new Membuster, possibly some leaking
1097         in WebKit Malloc? (Requested by yusukesuzuki on #webkit).
1098
1099         Reverted changeset:
1100
1101         "[Win] Implement NetworkCache::Data by using
1102         FileSystem::MappedFileData"
1103         https://bugs.webkit.org/show_bug.cgi?id=197684
1104         https://trac.webkit.org/changeset/256633
1105
1106 2020-02-14  Christopher Reid  <chris.reid@sony.com>
1107
1108         [Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
1109         https://bugs.webkit.org/show_bug.cgi?id=197684
1110
1111         Reviewed by Fujii Hironori.
1112
1113         * wtf/FileSystem.cpp:
1114         * wtf/FileSystem.h:
1115         Added FileAccessPermission flag when opening files.
1116         Remove default argument for the listDirectory filter since the defaut
1117         String() filter doesn't match all files on Mac and Windows.
1118
1119         * wtf/glib/FileSystemGlib.cpp:
1120         * wtf/posix/FileSystemPOSIX.cpp:
1121         Added (S_IRUSR | S_IWUSR) file open modes.
1122
1123         * wtf/win/FileSystemWin.cpp:
1124         Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
1125         
1126         * wtf/win/PathWalker.cpp:
1127
1128 2020-02-14  Alex Christensen  <achristensen@webkit.org>
1129
1130         Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
1131         https://bugs.webkit.org/show_bug.cgi?id=207360
1132         <rdar://problem/57825317>
1133
1134         Reviewed by Ryosuke Niwa.
1135
1136         * wtf/URLHelpers.cpp:
1137         (WTF::URLHelpers::mapHostName):
1138
1139 2020-02-12  Said Abou-Hallawa  <sabouhallawa@apple.com>
1140
1141         WebP image format is not supported
1142         https://bugs.webkit.org/show_bug.cgi?id=192672
1143
1144         Reviewed by Youenn Fablet.
1145
1146         Introduce HAVE(WEBP) for macOS and iOS.
1147
1148         * wtf/PlatformHave.h:
1149
1150 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
1151
1152         [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
1153         https://bugs.webkit.org/show_bug.cgi?id=207673
1154
1155         Reviewed by Mark Lam.
1156
1157         * wtf/MallocPtr.h:
1158
1159 2020-02-12  Ryan Haddad  <ryanhaddad@apple.com>
1160
1161         Unreviewed, rolling out r256010.
1162
1163         Introduced ASan crashes
1164
1165         Reverted changeset:
1166
1167         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
1168         https://bugs.webkit.org/show_bug.cgi?id=206582
1169         https://trac.webkit.org/changeset/r256010
1170
1171 2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>
1172
1173         Shrink CachedResource
1174         https://bugs.webkit.org/show_bug.cgi?id=207618
1175
1176         Reviewed by Mark Lam.
1177
1178         * wtf/Markable.h:
1179         (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
1180         * wtf/ObjectIdentifier.h:
1181         (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
1182         (WTF::ObjectIdentifier::MarkableTraits::emptyValue):
1183         (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
1184
1185 2020-02-12  Simon Fraser  <simon.fraser@apple.com>
1186
1187         Remove CSS_DEVICE_ADAPTATION
1188         https://bugs.webkit.org/show_bug.cgi?id=203479
1189
1190         Reviewed by Tim Horton.
1191
1192         CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
1193         so remove the code.
1194
1195         * wtf/PlatformEnable.h:
1196
1197 2020-02-11  Fujii Hironori  <Hironori.Fujii@sony.com>
1198
1199         Fix declarations marked by wrong export macros (WEBCORE_EXPORT and WTF_EXPORT)
1200         https://bugs.webkit.org/show_bug.cgi?id=207453
1201
1202         Reviewed by Ross Kirsling.
1203
1204         Export macros are prone to be misused because thier definitions
1205         are identical for POSIX ports. They can be used interchangeably on
1206         such ports.
1207
1208         WTF should use WTF_EXPORT_PRIVATE instead of WTF_EXPORT.
1209
1210         * wtf/HexNumber.h:
1211         * wtf/Language.h:
1212         * wtf/Logger.h:
1213         * wtf/ProcessPrivilege.h:
1214         * wtf/cocoa/CrashReporter.h:
1215         * wtf/cocoa/Entitlements.h:
1216         * wtf/text/LineEnding.h:
1217         * wtf/text/TextBreakIterator.h:
1218         * wtf/text/icu/UTextProviderLatin1.h:
1219         Replaced WTF_EXPORT with WTF_EXPORT_PRIVATE.
1220
1221 2020-02-11  Eric Carlson  <eric.carlson@apple.com>
1222
1223         Support in-band VTT captions when loading media in the GPU Process
1224         https://bugs.webkit.org/show_bug.cgi?id=207467
1225         <rdar://problem/59312749>
1226
1227         Reviewed by Jer Noble.
1228
1229         * wtf/LoggerHelper.h:
1230         (WTF::LoggerHelper::childLogIdentifier const):
1231
1232 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
1233
1234         Unreviewed, speculative build fix on watchOS simulator
1235         https://bugs.webkit.org/show_bug.cgi?id=207183
1236
1237         * wtf/HashTable.h:
1238         (WTF::HashTableCapacityForSize::capacityForSize):
1239
1240 2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>
1241
1242         Unreviewed, fix build failure on watchOS simulator
1243         https://bugs.webkit.org/show_bug.cgi?id=207183
1244
1245         * wtf/HashTable.h:
1246         (WTF::HashTableCapacityForSize::capacityForSize):
1247
1248 2020-02-10  Daniel Bates  <dabates@apple.com>
1249
1250         Disallow setting base URL to a data or JavaScript URL
1251         https://bugs.webkit.org/show_bug.cgi?id=207136
1252
1253         Reviewed by Brent Fulgham.
1254
1255         Add some more macro definitions.
1256
1257         * wtf/spi/darwin/dyldSPI.h:
1258
1259 2020-02-10  Truitt Savell  <tsavell@apple.com>
1260
1261         Unreviewed, rolling out r256091.
1262
1263         Broke internal builds
1264
1265         Reverted changeset:
1266
1267         "Move trivial definitions from FeatureDefines.xcconfig to
1268         PlatformEnableCocoa.h"
1269         https://bugs.webkit.org/show_bug.cgi?id=207155
1270         https://trac.webkit.org/changeset/256091
1271
1272 2020-02-10  Truitt Savell  <tsavell@apple.com>
1273
1274         Unreviewed, rolling out r256103.
1275
1276         This patch is blocking the rollout of r256091
1277
1278         Reverted changeset:
1279
1280         "Move JavaScriptCore related feature defines from
1281         FeatureDefines.xcconfig to PlatformEnableCocoa.h"
1282         https://bugs.webkit.org/show_bug.cgi?id=207436
1283         https://trac.webkit.org/changeset/256103
1284
1285 2020-02-09  Keith Rollin  <krollin@apple.com>
1286
1287         Re-enable LTO for ARM builds
1288         https://bugs.webkit.org/show_bug.cgi?id=207402
1289         <rdar://problem/49190767>
1290
1291         Reviewed by Sam Weinig.
1292
1293         Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
1294         Enabling it for ARM was left out due to a compiler issue. That issue
1295         has been fixed, and so now we can re-enable LTO for ARM.
1296
1297         * Configurations/Base.xcconfig:
1298
1299 2020-02-08  Sam Weinig  <weinig@apple.com>
1300
1301         Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
1302         https://bugs.webkit.org/show_bug.cgi?id=207436
1303
1304         Reviewed by Tim Horton.
1305
1306         * wtf/PlatformEnable.h:
1307         Add default values for ENABLE_FAST_JIT_PERMISSIONS and ENABLE_SEPARATED_WX_HEAP.
1308
1309         * wtf/PlatformEnableCocoa.h:
1310         Added ENABLE_FAST_JIT_PERMISSIONS (from FeatureDefines.xcconfig), ENABLE_SEPARATED_WX_HEAP
1311         (from PlatformEnable.h) and ENABLE_FTL_JIT (from both FeatureDefines.xcconfig and PlatformEnable.h).
1312
1313 2020-02-08  Sam Weinig  <weinig@apple.com>
1314
1315         Migrate definition of USE_PLATFORM_REGISTERS_WITH_PROFILE to PlatformUse.h
1316         https://bugs.webkit.org/show_bug.cgi?id=207428
1317
1318         Reviewed by Tim Horton.
1319
1320         * wtf/PlatformUse.h:
1321         Move definition of USE_PLATFORM_REGISTERS_WITH_PROFILE from AdditionalFeatureDefines.h, where 
1322         it did not belong.
1323
1324 2020-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
1325
1326         [WTF] Try using 75% load factor for HashTable
1327         https://bugs.webkit.org/show_bug.cgi?id=207183
1328
1329         Reviewed by Mark Lam.
1330
1331         We know that hash-table is one of the most memory consuming part in WebKit.
1332         By analyzing many production hash-table implementations[1], I found that many
1333         of them are using 75% load-factor while our one is 50%.
1334
1335         This patch changes the load-factor from 50% to 75%. But we pick 75% only for
1336         small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
1337         The collected data is telling that longer probe-length affects on performance if table
1338         size gets larger.
1339
1340         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
1341
1342         * wtf/HashTable.h:
1343         (WTF::HashTableCapacityForSize::shouldExpand):
1344         (WTF::HashTableCapacityForSize::capacityForSize):
1345         (WTF::HashTable::shouldExpand const):
1346         (WTF::KeyTraits>::computeBestTableSize):
1347
1348 2020-02-08  Sam Weinig  <weinig@apple.com>
1349
1350         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
1351         https://bugs.webkit.org/show_bug.cgi?id=207155
1352
1353         Reviewed by Tim Horton.
1354
1355         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
1356         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
1357         also has a default value in PlatformEnable.h
1358         
1359         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
1360         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
1361         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
1362
1363         * wtf/PlatformEnable.h:
1364         * wtf/PlatformEnableCocoa.h:
1365
1366 2020-02-07  Alex Christensen  <achristensen@webkit.org>
1367
1368         Harden HashTable IPC decoders
1369         https://bugs.webkit.org/show_bug.cgi?id=207415
1370
1371         Reviewed by Chris Dumez.
1372
1373         * wtf/HashCountedSet.h:
1374
1375 2020-02-07  Ryan Haddad  <ryanhaddad@apple.com>
1376
1377         Unreviewed, rolling out r256051.
1378
1379         Broke internal builds.
1380
1381         Reverted changeset:
1382
1383         "Move trivial definitions from FeatureDefines.xcconfig to
1384         PlatformEnableCocoa.h"
1385         https://bugs.webkit.org/show_bug.cgi?id=207155
1386         https://trac.webkit.org/changeset/256051
1387
1388 2020-02-07  Stephan Szabo  <stephan.szabo@sony.com>
1389
1390         [Win] Two FileSystem API tests fail
1391         https://bugs.webkit.org/show_bug.cgi?id=207388
1392
1393         Reviewed by Don Olmstead.
1394
1395         * wtf/win/FileSystemWin.cpp:
1396         Make getFinalPathName return dos path rather than nt volume path.
1397         Change createSymbolicLink return to match CreateSymbolicLinkW
1398         Have directoryName strip trailing slashes.
1399
1400 2020-02-03  Sam Weinig  <weinig@apple.com>
1401
1402         Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
1403         https://bugs.webkit.org/show_bug.cgi?id=207155
1404
1405         Reviewed by Tim Horton.
1406
1407         Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
1408         from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
1409         also has a default value in PlatformEnable.h
1410         
1411         ENABLE_INSPECTOR_TELEMETRY, ENABLE_TEXT_AUTOSIZING, ENABLE_WEBGL, ENABLE_METER_ELEMENT,
1412         ENABLE_VIDEO_TRACK, ENABLE_WEB_AUDIO and ENABLE_CURSOR_VISIBILITY are all now always
1413         set to 1 for Cocoa (if not defined already), as this was already the case via the xcconfig.
1414
1415         * wtf/PlatformEnable.h:
1416         * wtf/PlatformEnableCocoa.h:
1417
1418 2020-02-07  youenn fablet  <youenn@apple.com>
1419
1420         Mandate UUID version 4 for mDNS ICE candidates
1421         https://bugs.webkit.org/show_bug.cgi?id=207329
1422         <rdar://problem/59221606>
1423
1424         Address post-commit comments from Darin by using isASCIIHexDigit.
1425
1426         Unreviewed.
1427
1428         * wtf/UUID.cpp:
1429         (WTF::isVersion4UUID):
1430         (WTF::isHexadecimalCharacter): Deleted.
1431
1432 2020-02-07  youenn fablet  <youenn@apple.com>
1433
1434         Mandate UUID version 4 for mDNS ICE candidates
1435         https://bugs.webkit.org/show_bug.cgi?id=207329
1436
1437         Reviewed by Alex Christensen.
1438
1439         Add a routine to validate version 4 UUID.
1440
1441         * wtf/UUID.cpp:
1442         (WTF::isHexadecimalCharacter):
1443         (WTF::isVersion4UUID):
1444         * wtf/UUID.h:
1445
1446 2020-02-07  Yusuke Suzuki  <ysuzuki@apple.com>
1447
1448         Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
1449         https://bugs.webkit.org/show_bug.cgi?id=207183
1450
1451         * wtf/HashTable.h:
1452         (WTF::HashTable::shouldExpand const):
1453         (WTF::KeyTraits>::computeBestTableSize):
1454         (WTF::HashTable::shouldExpand): Deleted.
1455         (WTF::HashTableCapacityForSize::capacityForSize): Deleted.
1456
1457 2020-02-07  youenn fablet  <youenn@apple.com>
1458
1459         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
1460         https://bugs.webkit.org/show_bug.cgi?id=206582
1461
1462         Reviewed by Eric Carlson.
1463
1464         * wtf/PlatformHave.h:
1465
1466 2020-02-06  Mark Lam  <mark.lam@apple.com>
1467
1468         Add a comment in StringView::setUnderlyingString(const StringView&) for clarification.
1469         https://bugs.webkit.org/show_bug.cgi?id=207368
1470         <rdar://problem/59211075>
1471
1472         Reviewed by Keith Miller.
1473
1474         Every time I read this code, I have to re-deduce why this code is thread safe.
1475         So, I'm just going to add a comment to document it.
1476
1477         * wtf/text/StringView.cpp:
1478         (WTF::StringView::setUnderlyingString):
1479
1480 2020-02-06  Myles C. Maxfield  <mmaxfield@apple.com>
1481
1482         REGRESSION(r254534): 1-3% regression on PLT
1483         https://bugs.webkit.org/show_bug.cgi?id=207244
1484         <rdar://problem/58821709>
1485
1486         Reviewed by Simon Fraser.
1487
1488         CTFontTransformGlyphsWithLanguage() is only acceptable on certain OSes.
1489
1490         * wtf/PlatformHave.h:
1491
1492 2020-02-06  Commit Queue  <commit-queue@webkit.org>
1493
1494         Unreviewed, rolling out r255910, r255970, and r255972.
1495         https://bugs.webkit.org/show_bug.cgi?id=207345
1496
1497         Broke internal builds (Requested by ryanhaddad on #webkit).
1498
1499         Reverted changesets:
1500
1501         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
1502         https://bugs.webkit.org/show_bug.cgi?id=206582
1503         https://trac.webkit.org/changeset/255910
1504
1505         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
1506         https://bugs.webkit.org/show_bug.cgi?id=206582
1507         https://trac.webkit.org/changeset/255970
1508
1509         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
1510         https://bugs.webkit.org/show_bug.cgi?id=206582
1511         https://trac.webkit.org/changeset/255972
1512
1513 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
1514
1515         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
1516         https://bugs.webkit.org/show_bug.cgi?id=206582
1517
1518         Unreviewed internal build fix attempt.
1519
1520         * wtf/PlatformHave.h: Fix copy / paste error.
1521
1522 2020-02-06  Ryan Haddad  <ryanhaddad@apple.com>
1523
1524         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
1525         https://bugs.webkit.org/show_bug.cgi?id=206582
1526
1527         Unreviewed internal build fix attempt.
1528
1529         * wtf/PlatformHave.h:
1530
1531 2020-02-06  youenn fablet  <youenn@apple.com>
1532
1533         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
1534         https://bugs.webkit.org/show_bug.cgi?id=206582
1535
1536         Reviewed by Eric Carlson.
1537
1538         * wtf/PlatformHave.h:
1539
1540 2020-02-05  Don Olmstead  <don.olmstead@sony.com>
1541
1542         [PlayStation] Build a shared JavaScriptCore
1543         https://bugs.webkit.org/show_bug.cgi?id=198446
1544
1545         Reviewed by Fujii Hironori.
1546
1547         Add bmalloc definition when compiling WTF. Remove LanguageUnix.cpp since
1548         LanguagePlayStation.cpp is present which results in duplicate symbol definitions.
1549
1550         * wtf/PlatformPlayStation.cmake:
1551
1552 2020-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
1553
1554         [WTF] Try using 75% load factor for HashTable
1555         https://bugs.webkit.org/show_bug.cgi?id=207183
1556
1557         Reviewed by Mark Lam.
1558
1559         We know that hash-table is one of the most memory consuming part in WebKit.
1560         By analyzing many production hash-table implementations[1], I found that many
1561         of them are using 75% load-factor while our one is 50%.
1562
1563         A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
1564         JetStream2, while it offers 2~% improvement in Membuster. This means that we are
1565         wasting too much memory for no-performance-improvement.
1566
1567         This patch changes the load-factor from 50% to 75%.
1568
1569         [1]: LLVM DenseMap, Abseil's, rust's, and so on.
1570
1571         * wtf/HashTable.h:
1572         (WTF::HashTable::shouldExpand):
1573         (WTF::HashTable::shouldExpand const):
1574         (WTF::HashTableCapacityForSize::capacityForSize):
1575         (WTF::KeyTraits>::computeBestTableSize):
1576
1577 2020-02-05  Per Arne Vollan  <pvollan@apple.com>
1578
1579         [iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
1580         https://bugs.webkit.org/show_bug.cgi?id=207279
1581         <rdar://problem/59030957>
1582
1583         Reviewed by Brent Fulgham.
1584
1585         Add flag which avoids generating sandbox reports.
1586
1587         * wtf/spi/darwin/SandboxSPI.h:
1588
1589 2020-02-05  Alex Christensen  <achristensen@webkit.org>
1590
1591         Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
1592         https://bugs.webkit.org/show_bug.cgi?id=207207
1593
1594         Reviewed by Chris Dumez.
1595
1596         * wtf/persistence/PersistentDecoder.cpp:
1597         (WTF::Persistence::Decoder::decode):
1598         * wtf/persistence/PersistentDecoder.h:
1599         * wtf/persistence/PersistentEncoder.cpp:
1600         (WTF::Persistence::Encoder::encode):
1601         * wtf/persistence/PersistentEncoder.h:
1602
1603 2020-02-05  Commit Queue  <commit-queue@webkit.org>
1604
1605         Unreviewed, rolling out r255818.
1606         https://bugs.webkit.org/show_bug.cgi?id=207270
1607
1608         It is breaking some Mac builds (Requested by youenn on
1609         #webkit).
1610
1611         Reverted changeset:
1612
1613         "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
1614         https://bugs.webkit.org/show_bug.cgi?id=206582
1615         https://trac.webkit.org/changeset/255818
1616
1617 2020-02-05  youenn fablet  <youenn@apple.com>
1618
1619         [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
1620         https://bugs.webkit.org/show_bug.cgi?id=206582
1621
1622         Reviewed by Eric Carlson.
1623
1624         * wtf/PlatformHave.h:
1625
1626 2020-02-04  Adrian Perez de Castro  <aperez@igalia.com>
1627
1628         Non-unified build fixes early February 2020 edition
1629         https://bugs.webkit.org/show_bug.cgi?id=207227
1630
1631         Reviewed by Don Olmstead.
1632
1633         * wtf/SingleRootGraph.h: Add missing inclusion of wtf/StringPrintStream.h
1634
1635 2020-02-04  Yusuke Suzuki  <ysuzuki@apple.com>
1636
1637         [JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock)
1638         https://bugs.webkit.org/show_bug.cgi?id=207087
1639
1640         Reviewed by Tadeu Zagallo.
1641
1642         Add more useful methods for RefCountedArray.
1643
1644         * wtf/RefCountedArray.h:
1645         (WTF::RefCountedArray::operator=):
1646         (WTF::RefCountedArray::isEmpty const):
1647         (WTF::RefCountedArray::front):
1648         (WTF::RefCountedArray::front const):
1649         (WTF::RefCountedArray::last):
1650         (WTF::RefCountedArray::last const):
1651
1652 2020-02-03  Alex Christensen  <achristensen@webkit.org>
1653
1654         Reduce size of HashMap and HashSet
1655         https://bugs.webkit.org/show_bug.cgi?id=207138
1656
1657         Reviewed by Yusuke Suzuki.
1658
1659         This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
1660         I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
1661         so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
1662         dynamically allocated memory.  This makes another branch in size() for non-empty tables
1663         and an additional read and write when rehashing in exchange for fewer writes in the constructor
1664         and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.
1665
1666         * wtf/HashTable.h:
1667         (WTF::HashTable::~HashTable):
1668         (WTF::HashTable::end):
1669         (WTF::HashTable::end const):
1670         (WTF::HashTable::random):
1671         (WTF::HashTable::size const):
1672         (WTF::HashTable::capacity const):
1673         (WTF::HashTable::isEmpty const):
1674         (WTF::HashTable::reserveInitialCapacity):
1675         (WTF::HashTable::shouldExpand const):
1676         (WTF::HashTable::mustRehashInPlace const):
1677         (WTF::HashTable::shouldShrink const):
1678         (WTF::HashTable::shrink):
1679         (WTF::HashTable::makeIterator):
1680         (WTF::HashTable::makeConstIterator const):
1681         (WTF::HashTable::makeKnownGoodIterator):
1682         (WTF::HashTable::makeKnownGoodConstIterator const):
1683         (WTF::HashTable::tableSize const):
1684         (WTF::HashTable::setTableSize const):
1685         (WTF::HashTable::tableSizeMask const):
1686         (WTF::HashTable::setTableSizeMask):
1687         (WTF::HashTable::keyCount const):
1688         (WTF::HashTable::setKeyCount const):
1689         (WTF::HashTable::deletedCount const):
1690         (WTF::HashTable::setDeletedCount const):
1691         (WTF::KeyTraits>::HashTable):
1692         (WTF::KeyTraits>::inlineLookup):
1693         (WTF::KeyTraits>::lookupForWriting):
1694         (WTF::KeyTraits>::fullLookupForWriting):
1695         (WTF::KeyTraits>::addUniqueForInitialization):
1696         (WTF::KeyTraits>::add):
1697         (WTF::KeyTraits>::addPassingHashCode):
1698         (WTF::KeyTraits>::remove):
1699         (WTF::KeyTraits>::removeIf):
1700         (WTF::KeyTraits>::allocateTable):
1701         (WTF::KeyTraits>::deallocateTable):
1702         (WTF::KeyTraits>::expand):
1703         (WTF::KeyTraits>::shrinkToBestSize):
1704         (WTF::KeyTraits>::deleteReleasedWeakBuckets):
1705         (WTF::KeyTraits>::rehash):
1706         (WTF::KeyTraits>::clear):
1707         (WTF::KeyTraits>::swap):
1708         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
1709
1710 2020-02-03  Sam Weinig  <weinig@apple.com>
1711
1712         Start splitting platform specific overrides of default enable behavior into their own files
1713         https://bugs.webkit.org/show_bug.cgi?id=207105
1714
1715         Reviewed by Dean Jackson.
1716
1717         Splits out platform specific overrides of default enable behavior into separate files, 
1718         starting with one for all of the Cocoa related ports, one for Apple's Windows port, and
1719         one for the WinCario port.
1720         
1721         The rule is now that all ENABLE_* macros should have a default defined in PlatformEnable.h,
1722         but platforms are allowed to override it via their PlatformEnable*.h file. For now, I manually
1723         ensured that all the defines in PlatformEnableCocoa.h, PlatformEnableWinApple.h and PlatformEnableWinCairo.h
1724         also had defaults in PlatformEnable.h, but going forward this needs be validated either through
1725         some sort of macro-based validation, through the style checker or something else.
1726
1727         * WTF.xcodeproj/project.pbxproj:
1728         * wtf/CMakeLists.txt:
1729         * wtf/PlatformEnable.h:
1730         * wtf/PlatformEnableCocoa.h: Copied from Source/WTF/wtf/PlatformEnable.h.
1731         * wtf/PlatformEnableWinApple.h: Copied from Source/WTF/wtf/PlatformEnable.h.
1732         * wtf/PlatformEnableWinCairo.h: Copied from Source/WTF/wtf/PlatformEnable.h.
1733
1734 2020-01-31  Don Olmstead  <don.olmstead@sony.com>
1735
1736         [CMake] Add _PRIVATE_LIBRARIES to framework
1737         https://bugs.webkit.org/show_bug.cgi?id=207004
1738
1739         Reviewed by Konstantin Tokarev.
1740
1741         Move uses of PRIVATE within _LIBRARIES to _PRIVATE_LIBRARIES. Any _LIBRARIES appended
1742         afterwards will have that visibility set erroneously.
1743
1744         * wtf/PlatformFTW.cmake:
1745
1746 2020-01-30  Conrad Shultz  <conrad_shultz@apple.com>
1747
1748         `FALLTHROUGH` macro isn't properly defined when building Objective-C files using Clang
1749         https://bugs.webkit.org/show_bug.cgi?id=206637
1750
1751         Reviewed by Darin Adler.
1752
1753         Allow the `FALLTHROUGH` macro to be defined properly when building with either GCC
1754         or Clang.
1755
1756         * wtf/Compiler.h:
1757
1758 2020-01-30  Yusuke Suzuki  <ysuzuki@apple.com>
1759
1760         [WTF] Remove PackedIntVector
1761         https://bugs.webkit.org/show_bug.cgi?id=207018
1762
1763         Reviewed by Mark Lam.
1764
1765         Simply removing PackedIntVector since (1) nobody uses it, (2) it is somewhat broken (like, size()), and (3) its implementation is not so efficient.
1766         If we want to have this feature, we can recreate it.
1767
1768         * WTF.xcodeproj/project.pbxproj:
1769         * wtf/CMakeLists.txt:
1770         * wtf/PackedIntVector.h: Removed.
1771
1772 2020-01-30  Jonathan Bedard  <jbedard@apple.com>
1773
1774         PAL: Remove old iOS version macros
1775         https://bugs.webkit.org/show_bug.cgi?id=206905
1776
1777         Reviewed by Darin Adler.
1778
1779         * wtf/PlatformHave.h: Add HAVE(NSPROGRESS_PUBLISHING_SPI).
1780
1781 2020-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1782
1783         [GTK] Should use light theme unless website declares support for dark themes in color-schemes property
1784         https://bugs.webkit.org/show_bug.cgi?id=197947
1785
1786         Reviewed by Michael Catanzaro.
1787
1788         Do not define HAVE_OS_DARK_MODE_SUPPORT for the GTK port.
1789
1790         * wtf/PlatformHave.h:
1791
1792 2020-01-28  Jonathan Bedard  <jbedard@apple.com>
1793
1794         WebCore: Guard uneven corners in rounded rectangles
1795         https://bugs.webkit.org/show_bug.cgi?id=206838
1796
1797         Reviewed by Darin Adler.
1798
1799         * wtf/PlatformHave.h: Add HAVE(CG_PATH_UNEVEN_CORNERS_ROUNDEDRECT).
1800
1801 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
1802
1803         WebCore: Remove iOS 11 macros from RenderThemeIOS.mm
1804         https://bugs.webkit.org/show_bug.cgi?id=206787
1805
1806         Reviewed by Darin Adler.
1807
1808         * wtf/PlatformHave.h: Add HAVE(SYSTEM_FONT_STYLE_TITLE_0) and HAVE(SYSTEM_FONT_STYLE_TITLE_4).
1809
1810 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
1811
1812         Fix OpenSource iphoneos arm64e build
1813         https://bugs.webkit.org/show_bug.cgi?id=206703
1814
1815         Reviewed by Yusuke Suzuki.
1816
1817         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
1818
1819 2020-01-27  Ryan Haddad  <ryanhaddad@apple.com>
1820
1821         Unreviewed, rolling out r255159.
1822
1823         Broke the watchOS build.
1824
1825         Reverted changeset:
1826
1827         "Fix OpenSource iphoneos arm64e build"
1828         https://bugs.webkit.org/show_bug.cgi?id=206703
1829         https://trac.webkit.org/changeset/255159
1830
1831 2020-01-27  Jonathan Bedard  <jbedard@apple.com>
1832
1833         Fix OpenSource iphoneos arm64e build
1834         https://bugs.webkit.org/show_bug.cgi?id=206703
1835
1836         Reviewed by Yusuke Suzuki.
1837
1838         * wtf/PlatformUse.h: Add USE(DARWIN_REGISTER_MACROS) check.
1839
1840 2020-01-27  Mark Lam  <mark.lam@apple.com>
1841
1842         Make getVTablePointer() an inline function to be compliant with WebKit style guidelines.
1843         https://bugs.webkit.org/show_bug.cgi?id=206816
1844
1845         Reviewed by Darin Adler.
1846
1847         Convert getVTablePointer() from a macro into an inline template function.  This
1848         makes the naming compliant with WebKit style guidelines.
1849
1850         * wtf/PointerPreparations.h:
1851         (WTF::getVTablePointer):
1852
1853 2020-01-25  Brady Eidson  <beidson@apple.com>
1854
1855         Make ContentWorlds be identified by an ObjectIdentifier instead of a uint64_t
1856         https://bugs.webkit.org/show_bug.cgi?id=206784
1857
1858         Reviewed by Alex Christensen.
1859
1860         * wtf/ObjectIdentifier.h:
1861         (WTF::ObjectIdentifier::generate):
1862         (WTF::ObjectIdentifier::generateThreadSafe):
1863         (WTF::ObjectIdentifier::enableGenerationProtection): To allow restricting generating an identifier to the UIProcess.
1864
1865 2020-01-25  Mark Lam  <mark.lam@apple.com>
1866
1867         Introduce a getVTablePointer() utility function.
1868         https://bugs.webkit.org/show_bug.cgi?id=206804
1869         <rdar://problem/58872290>
1870
1871         Reviewed by Yusuke Suzuki and Oliver Hunt.
1872
1873         With getVTablePointer(), we can abstract away how we get a vtable function pointer
1874         without assuming the way it is signed for ARM64E.  With this, we can remove the
1875         WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION macro which assumes how a vtable function
1876         pointer is signed.
1877
1878         * wtf/PointerPreparations.h:
1879
1880 2020-01-25  Mark Lam  <mark.lam@apple.com>
1881
1882         Add some tests for dynamically allocated StaticStringImpls.
1883         https://bugs.webkit.org/show_bug.cgi?id=206802
1884
1885         Reviewed by Darin Adler.
1886
1887         Removed some unnecessary explicit specialization of the charactersAreAllASCII()
1888         template function.
1889
1890         * wtf/text/StringImpl.cpp:
1891         (WTF::StringImpl::createFromLiteral):
1892         (WTF::StringImpl::createStaticStringImpl):
1893
1894 2020-01-24  Mark Lam  <mark.lam@apple.com>
1895
1896         Move singleton Intl string locales out of JSGlobalObject.
1897         https://bugs.webkit.org/show_bug.cgi?id=206791
1898         <rdar://problem/58889037>
1899
1900         Reviewed by Yusuke Suzuki.
1901
1902         Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
1903         when I introduced it.  StaticStringImpls require that its hash code be set ahead
1904         of time, and cannot be mutated at runtime.  See the comment in the definition of
1905         StaticStringImpl in StringImpl.h.
1906
1907         * wtf/text/StringImpl.cpp:
1908         (WTF::StringImpl::createStaticStringImpl):
1909
1910 2020-01-24  Mark Lam  <mark.lam@apple.com>
1911
1912         IntlObject's cached strings should be immortal and safe for concurrent access.
1913         https://bugs.webkit.org/show_bug.cgi?id=206779
1914         <rdar://problem/58831763>
1915
1916         Reviewed by Yusuke Suzuki.
1917
1918         Add a factory for creating a dynamically allocated StaticStringImpl.
1919
1920         Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
1921         The only difference is that s_refCountFlagIsStaticString is set on the refCount
1922         for StaticStringImpl.  Since the client will use the StaticStringImpl as a
1923         StringImpl, we implement the factory by using StringImpl::createInternal() for
1924         simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
1925
1926         * wtf/text/StringImpl.cpp:
1927         (WTF::StringImpl::createStaticStringImpl):
1928         * wtf/text/StringImpl.h:
1929
1930 2020-01-24  Keith Rollin  <krollin@apple.com>
1931
1932         Fix internal Apple builds after r254411
1933         https://bugs.webkit.org/show_bug.cgi?id=206723
1934         <rdar://problem/58844735>
1935
1936         Reviewed by Maciej Stachowiak.
1937
1938         The default Xcode build configuration has changed between macOS 10.13
1939         and macOS 10.15, such that references to some frameworks when bulding
1940         for the latter don't work when building for the former. Fix this by
1941         explicitly adding support for the desired build location rather than
1942         assuming such support will be provided for us.
1943
1944         * Configurations/WTF.xcconfig:
1945
1946 2020-01-24  Jonathan Bedard  <jbedard@apple.com>
1947
1948         WTF: Remove old iOS version macros
1949         https://bugs.webkit.org/show_bug.cgi?id=206634
1950         <rdar://problem/58818561>
1951
1952         Reviewed by Darin Adler.
1953
1954         * wtf/PlatformEnable.h: Remove iOS 12 version macro.
1955         * wtf/PlatformHave.h: Ditto.
1956         * wtf/PlatformUse.h: Ditto.
1957
1958 2020-01-22  Darin Adler  <darin@apple.com>
1959
1960         Remove some unneeded definitions from Platform.h family headers
1961         https://bugs.webkit.org/show_bug.cgi?id=206642
1962
1963         Reviewed by Eric Carlson.
1964
1965         * wtf/PlatformEnable.h:
1966         Removed ENABLE_RESPECT_EXIF_ORIENTATION because it was unused.
1967
1968         * wtf/PlatformHave.h:
1969         Removed HAVE_PASSKIT_API_TYPE because it is now unused.
1970         Removed HAVE_MERGESORT because it was unused.
1971         Removed HAVE_AVFOUNDATION_VIDEO_OUTPUT because it is now unused.
1972         Removed HAVE_AVFOUNDATION_MEDIA_SELECTION_GROUP because it is now unused.
1973         Removed HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE because it was unused.
1974
1975         * wtf/PlatformUse.h:
1976         Removed USE_ARENA_ALLOC_ALIGNMENT_INTEGER because it was unused.
1977         Removed USE_NETWORK_CFDATA_ARRAY_CALLBACK because it is now unused.
1978
1979 2020-01-22  Eric Carlson  <eric.carlson@apple.com>
1980
1981         uniqueLogIdentifier() should generate a unique identifiers
1982         https://bugs.webkit.org/show_bug.cgi?id=206612
1983
1984         Reviewed by Brent Fulgham.
1985
1986         * wtf/LoggerHelper.h:
1987         (WTF::LoggerHelper::uniqueLogIdentifier):
1988
1989 2020-01-22  Sam Weinig  <weinig@apple.com>
1990
1991         Remove unused enable macro ENABLE_JIT_CONSTANT_BLINDING
1992         https://bugs.webkit.org/show_bug.cgi?id=206415
1993
1994         Reviewed by Anders Carlsson.
1995
1996         * wtf/PlatformEnable.h:
1997         ENABLE_JIT_CONSTANT_BLINDING is not used anywhere in WebKit so can be removed.
1998
1999 2020-01-22  Yusuke Suzuki  <ysuzuki@apple.com>
2000
2001         [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
2002         https://bugs.webkit.org/show_bug.cgi?id=160287
2003
2004         Reviewed by Ross Kirsling.
2005
2006         While ECMA262[1] always requires ":" in a timezone designator between hours and minutes (like, "hh:mm"),
2007         ISO-8601 can accept additional forms, "+hh" and "+hhmm". This patch relaxes our Date parsing to accept this
2008         type of timezone designators so that we can accept wider forms of date time formats. This addition does not
2009         break the existing parsing rules since '+-' prefix can clarify that following sequences are timezones.
2010
2011         [1]: https://tc39.es/ecma262/#sec-date-time-string-format
2012         [2]: https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
2013
2014         * wtf/DateMath.cpp:
2015         (WTF::parseES5TimePortion):
2016         (WTF::parseES5DateFromNullTerminatedCharacters):
2017
2018 2020-01-21  Ross Kirsling  <ross.kirsling@sony.com>
2019
2020         [JSC] Date parse logic should be less redundant
2021         https://bugs.webkit.org/show_bug.cgi?id=206560
2022
2023         Reviewed by Darin Adler.
2024
2025         * wtf/DateMath.cpp:
2026         (WTF::parseDateFromNullTerminatedCharacters):
2027         * wtf/DateMath.h:
2028         Align function signature with parseES5DateFromNullTerminatedCharacters.
2029         Namely, drop the integer out param and flip the boolean one.
2030
2031 2020-01-21  Yusuke Suzuki  <ysuzuki@apple.com>
2032
2033         [WTF] AtomStringTable should be small
2034         https://bugs.webkit.org/show_bug.cgi?id=206400
2035
2036         Reviewed by Sam Weinig.
2037
2038         AtomStringTable is the largest hashtable typically. It takes more
2039         than 256KB per WebProcess (sometimes, it took 1MB or more).
2040         This patch leverages PackedPtr to compact it from 8 bytes per entry
2041         to 6 bytes per entry.
2042
2043         While this is still large, we should investigate how to compact C++
2044         pointers in 4 bytes[1] to shrink memory footprint, since WebKit
2045         memory is used by Vector and HashTable fulfilled with pointers.
2046
2047         [1]: https://bugs.webkit.org/show_bug.cgi?id=206469
2048
2049         * wtf/DumbPtrTraits.h:
2050         (WTF::DumbPtrTraits::hashTableDeletedValue):
2051         (WTF::DumbPtrTraits::isHashTableDeletedValue):
2052         * wtf/Forward.h:
2053         * wtf/HashTraits.h:
2054         * wtf/Packed.h:
2055         (WTF::Packed<T::Packed):
2056         (WTF::Packed<T::isHashTableDeletedValue const):
2057         (WTF::GetPtrHelper<PackedPtr<T>>::getPtr):
2058         (WTF::PackedPtrTraits::hashTableDeletedValue):
2059         (WTF::PackedPtrTraits::isHashTableDeletedValue):
2060         (WTF::alignof): Deleted.
2061         * wtf/Ref.h:
2062         (WTF::Ref::Ref):
2063         (WTF::Ref::isHashTableDeletedValue const):
2064         (WTF::Ref::hashTableDeletedValue): Deleted.
2065         * wtf/RefPtr.h:
2066         (WTF::RefPtr::RefPtr):
2067         (WTF::RefPtr::isHashTableDeletedValue const):
2068         (WTF::RefPtr::hashTableDeletedValue): Deleted.
2069         * wtf/text/AtomStringImpl.cpp:
2070         (WTF::addToStringTable):
2071         (WTF::CStringTranslator::equal):
2072         (WTF::CStringTranslator::translate):
2073         (WTF::UCharBufferTranslator::equal):
2074         (WTF::UCharBufferTranslator::translate):
2075         (WTF::HashAndUTF8CharactersTranslator::equal):
2076         (WTF::HashAndUTF8CharactersTranslator::translate):
2077         (WTF::SubstringTranslator::translate):
2078         (WTF::SubstringTranslator8::equal):
2079         (WTF::SubstringTranslator16::equal):
2080         (WTF::LCharBufferTranslator::equal):
2081         (WTF::LCharBufferTranslator::translate):
2082         (WTF::BufferFromStaticDataTranslator::equal):
2083         (WTF::BufferFromStaticDataTranslator::translate):
2084         (WTF::AtomStringImpl::addSlowCase):
2085         (WTF::AtomStringImpl::remove):
2086         (WTF::AtomStringImpl::lookUpSlowCase):
2087         (WTF::AtomStringImpl::lookUp):
2088         * wtf/text/AtomStringTable.cpp:
2089         (WTF::AtomStringTable::~AtomStringTable):
2090         * wtf/text/AtomStringTable.h:
2091         (WTF::AtomStringTable::table):
2092         (): Deleted.
2093         * wtf/text/StringHash.h:
2094         (WTF::StringHash::hash):
2095         (WTF::StringHash::equal):
2096         (WTF::ASCIICaseInsensitiveHash::hash):
2097         (WTF::ASCIICaseInsensitiveHash::equal):
2098         * wtf/text/StringImpl.h:
2099
2100 2020-01-17  Sam Weinig  <weinig@apple.com>
2101
2102         Platform.h is out of control Part 8: Macros are used inconsistently
2103         https://bugs.webkit.org/show_bug.cgi?id=206425
2104
2105         Reviewed by Darin Adler.
2106
2107         Start addressing FIXMEs added to Platform.h (and helper files) during previous
2108         cleanup work.
2109         
2110         - Renames WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_CONSTANT_EFFECTIVE_ADDRESS_WIDTH,
2111           making it available via new macro OS_CONSTANT(...), and syncs bmalloc redefinition.
2112         - Renames:
2113              USE_LLINT_EMBEDDED_OPCODE_ID to ENABLE_LLINT_EMBEDDED_OPCODE_ID
2114              USE_UDIS86 to ENABLE_UDIS86 
2115              USE_ARM64_DISASSEMBLER to ENABLE_ARM64_DISASSEMBLER
2116           Enable is more appropriate here as these enable functionality within webkit.
2117         - Removes undefs that are no longer needed due to only defining the macro once now.
2118         - Removes dead defined(__LP64__) check after PLATFORM(MAC) macOS is always 64-bit these
2119           days.
2120
2121         * wtf/Packed.h:
2122         (WTF::alignof):
2123         * wtf/Platform.h:
2124         * wtf/PlatformEnable.h:
2125         * wtf/PlatformOS.h:
2126         * wtf/WTFAssertions.cpp:
2127         * wtf/text/StringCommon.h:
2128
2129 2020-01-20  David Kilzer  <ddkilzer@apple.com>
2130
2131         Fix missing header guards and clean up empty files in bmalloc, WTF, JavaScriptCore
2132         <https://webkit.org/b/206481>
2133
2134         Reviewed by Darin Adler.
2135
2136         * wtf/cocoa/Entitlements.h:
2137         * wtf/win/PathWalker.h:
2138         - Add #pragma once.
2139
2140 2020-01-19  Claudio Saavedra  <csaavedra@igalia.com>
2141
2142         [GTK] Remove usage of deprecated GTimeVal
2143         https://bugs.webkit.org/show_bug.cgi?id=206358
2144
2145         Reviewed by Žan Doberšek.
2146
2147         Use g_get_real_time() directly instead of deprecated and unsafe API.
2148
2149         * wtf/CurrentTime.cpp:
2150         (WTF::currentTime):
2151
2152 2020-01-16  Keith Miller  <keith_miller@apple.com>
2153
2154         Reland bytecode checkpoints since bugs have been fixed
2155         https://bugs.webkit.org/show_bug.cgi?id=206361
2156
2157         Unreviewed, reland.
2158
2159         The watch bugs have been fixed by https://trac.webkit.org/changeset/254674
2160
2161         * WTF.xcodeproj/project.pbxproj:
2162         * wtf/Bitmap.h:
2163         (WTF::WordType>::invert):
2164         (WTF::WordType>::operator):
2165         (WTF::WordType>::operator const const):
2166         * wtf/CMakeLists.txt:
2167         * wtf/EnumClassOperatorOverloads.h: Added.
2168         * wtf/FastBitVector.h:
2169         (WTF::FastBitReference::operator bool const):
2170         (WTF::FastBitReference::operator|=):
2171         (WTF::FastBitReference::operator&=):
2172         (WTF::FastBitVector::fill):
2173         (WTF::FastBitVector::grow):
2174         * wtf/UnalignedAccess.h:
2175         (WTF::unalignedLoad):
2176         (WTF::unalignedStore):
2177
2178 2020-01-16  Tim Horton  <timothy_horton@apple.com>
2179
2180         Fix the build after r254701
2181         <rdar://problem/58667355>
2182
2183         * wtf/Platform.h:
2184         * wtf/PlatformEnable.h:
2185         AdditionalFeatureDefines has to come first.
2186
2187 2020-01-16  Sam Weinig  <weinig@apple.com>
2188
2189         Platform.h is out of control Part 7: Split calling convention macro definitions out of Platform.h and into a new PlatformCallingConventions.h
2190         https://bugs.webkit.org/show_bug.cgi?id=206377
2191
2192         Reviewed by Anders Carlsson.
2193
2194         As a another step towards cleaning up Platform.h, split out all the calling convention
2195         macros into their own file.
2196
2197         * WTF.xcodeproj/project.pbxproj:
2198         * wtf/CMakeLists.txt:
2199         Add new header.
2200
2201         * wtf/Platform.h:
2202         * wtf/PlatformCPU.h:
2203         * wtf/PlatformEnable.h:
2204         * wtf/PlatformHave.h:
2205         * wtf/PlatformLegacy.h:
2206         * wtf/PlatformOS.h:
2207         * wtf/PlatformUse.h:
2208         Unify indirect inclusion guard.
2209
2210         * wtf/PlatformCallingConventions.h: Copied from Source/WTF/wtf/Platform.h.
2211
2212 2020-01-16  Robin Morisset  <rmorisset@apple.com>
2213
2214         Use dataLogIf more regularly
2215         https://bugs.webkit.org/show_bug.cgi?id=206332
2216
2217         Reviewed by Keith Miller.
2218
2219         * wtf/DataLog.h:
2220         (WTF::dataLog): Marked NEVER_INLINE, since it should never be perf-sensitive
2221
2222
2223 2020-01-16  Sam Weinig  <weinig@apple.com>
2224
2225         Platform.h is out of control Part 6: Split USE_* macro definitions out of Platform.h and into a new PlatformUse.h
2226         https://bugs.webkit.org/show_bug.cgi?id=206354
2227
2228         Reviewed by Dan Bernstein.
2229
2230         As a another step towards cleaning up Platform.h, split out all the legacy platform
2231         macros into their own file.
2232
2233         * WTF.xcodeproj/project.pbxproj:
2234         * wtf/CMakeLists.txt:
2235         Add new file.
2236
2237         * wtf/Platform.h: In addition to removing all the USE_* macros, consolidate
2238         all the sub-includes at the top.
2239
2240         * wtf/PlatformEnable.h: Moved ASSERT_ENABLED here from Platform.h, 
2241         as it makes more sense here. Eventually should be renamed ro ENABLE_ASSERT 
2242         for consistency.
2243
2244         * wtf/PlatformUse.h: Copied from Source/WTF/wtf/Platform.h.
2245
2246 2020-01-16  Per Arne Vollan  <pvollan@apple.com>
2247
2248         [Win] Fix AppleWin build
2249         https://bugs.webkit.org/show_bug.cgi?id=206299
2250
2251         Reviewed by Brent Fulgham.
2252
2253         Build internal builds with VS2019.
2254
2255         * WTF.vcxproj/WTF.proj:
2256
2257 2020-01-15  Sam Weinig  <weinig@apple.com>
2258
2259         Platform.h is out of control Part 5: Split HAVE_* macro definitions out of Platform.h and into a new PlatformHave.h
2260         https://bugs.webkit.org/show_bug.cgi?id=206307
2261
2262         Reviewed by Anders Carlsson.
2263
2264         * WTF.xcodeproj/project.pbxproj:
2265         * wtf/CMakeLists.txt:
2266         * wtf/Platform.h:
2267         * wtf/PlatformHave.h: Copied from Source/WTF/wtf/Platform.h.
2268
2269 2020-01-15  Keith Miller  <keith_miller@apple.com>
2270
2271         Revert bytecode checkpoints since it breaks watch
2272         https://bugs.webkit.org/show_bug.cgi?id=206301
2273
2274         Unreviewed, revert.
2275
2276 2020-01-14  Sam Weinig  <weinig@apple.com>
2277
2278         Platform.h is out of control Part 4: Split PLATFORM_* macro definitions out of Platform.h and into a new PlatformLegacy.h
2279         https://bugs.webkit.org/show_bug.cgi?id=206272
2280
2281         Reviewed by Anders Carlsson.
2282
2283         As a another step towards cleaning up Platform.h, split out all the legacy platform
2284         macros into their own file.
2285
2286         * WTF.xcodeproj/project.pbxproj:
2287         * wtf/CMakeLists.txt:
2288         * wtf/Platform.h:
2289         * wtf/PlatformLegacy.h: Copied from Source/WTF/wtf/Platform.h.
2290
2291 2020-01-14  Sam Weinig  <weinig@apple.com>
2292
2293         Plaform.h helper files should have a consistent naming scheme
2294         https://bugs.webkit.org/show_bug.cgi?id=206240
2295
2296         Reviewed by Dean Jackson.
2297
2298         Rename Plaform.h helper files to use the prefix "Platform" consistently.
2299
2300         * WTF.xcodeproj/project.pbxproj:
2301         * wtf/CMakeLists.txt:
2302         * wtf/CPU.h: Removed.
2303         * wtf/FeatureDefines.h: Removed.
2304         * wtf/OS.h: Removed.
2305         * wtf/Platform.h:
2306         * wtf/PlatformCPU.h: Copied from Source/WTF/wtf/CPU.h.
2307         * wtf/PlatformEnable.h: Copied from Source/WTF/wtf/FeatureDefines.h.
2308         * wtf/PlatformOS.h: Copied from Source/WTF/wtf/OS.h.
2309
2310 2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>
2311
2312         [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
2313         https://bugs.webkit.org/show_bug.cgi?id=77568
2314         <rdar://problem/14649193>
2315
2316         Reviewed by Simon Fraser.
2317
2318         * wtf/Platform.h:
2319
2320 2020-01-13  Darin Adler  <darin@apple.com>
2321
2322         Use even more "shortest form" formatting, and less "fixed precision" and "fixed width"
2323         https://bugs.webkit.org/show_bug.cgi?id=198918
2324
2325         Reviewed by Sam Weinig.
2326
2327         * wtf/Logger.h:
2328         (WTF::LogArgument::toString): Log floating point numbers as shortest form instead of fixed precision.
2329
2330         * wtf/MediaTime.cpp:
2331         (WTF::MediaTime::toString const): Convert time to string as shortest form instead of fixed precision.
2332         Also use multiple-argument append for great simplicity and clarity.
2333
2334 2020-01-14  Alicia Boya García  <aboya@igalia.com>
2335
2336         [WTF] Make MediaTime constructor constexpr
2337         https://bugs.webkit.org/show_bug.cgi?id=206036
2338
2339         Reviewed by Adrian Perez de Castro.
2340
2341         https://bugs.webkit.org/show_bug.cgi?id=205723 allowed to declare
2342         MediaTime variables as static inside functions without needing a
2343         global destructor.
2344
2345         It did not eliminate the call to the MediaTime constructor on runtime
2346         though. This wasn't a problem for static variables inside functions,
2347         as the compiler adds a guard variable to call the constructor the
2348         first time the function is called.
2349
2350         On the other hand, for variables defined outside of the scope of the
2351         function, for them to be initialized the MediaTime constructor would
2352         have to be called at runtime from a global constructor, something
2353         we're trying to avoid and which generates an error in clang.
2354
2355         But again, MediaTime is a simple class with only integral values, we
2356         shouldn't need a runtime function call to initialize it!
2357
2358         This patch makes the MediaTime constructor constexpr so that we don't
2359         need runtime initialization for static MediaTime variables. This
2360         allows us to declare them outside functions and enables the compiler
2361         to generate code without guard variables when static MediaTime
2362         variables are declared inside functions.
2363
2364         A test has been added accessing a global const static MediaTime. The
2365         build should not produce any error stating the need for a global
2366         constructor.
2367
2368         * wtf/MediaTime.cpp:
2369         * wtf/MediaTime.h:
2370         (WTF::MediaTime::MediaTime):
2371
2372 2020-01-14  David Kilzer  <ddkilzer@apple.com>
2373
2374         Enable -Wconditional-uninitialized in bmalloc, WTF, JavaScriptCore
2375         <https://webkit.org/b/206190>
2376         <rdar://problem/58540387>
2377
2378         Reviewed by Mark Lam.
2379
2380         * Configurations/Base.xcconfig:
2381         (WARNING_CFLAGS): Add -Wconditional-uninitialized.
2382
2383 2020-01-13  Sam Weinig  <weinig@apple.com>
2384
2385         Platform.h is out of control Part 3: Move all ENABLE_* macros definitions in FeatureDefines.h
2386         https://bugs.webkit.org/show_bug.cgi?id=206139
2387
2388         Reviewed by Anders Carlsson.
2389
2390         - Moves all remaining ENABLE_* defines out of Platform.h and into FeatureDefines.h
2391         - Moves most, USE_UDIS86 and USE_ARM64_DISASSEMBLER are tangled up in the JIT definitions
2392           still, HAVE_* and USE_* defines out of FeatureDefines.h and into Platform.h
2393         - Where straigthforward, convert macro definitions into a canonical 3 line entry of the 
2394           form:
2395           
2396               #if !defined(MACRO_NAME) && (<CONDITIONS HERE>)
2397               #define MACRO_NAME 1
2398               #endif
2399
2400           There is rarely (if ever) a resone to undefine or define one of these platform related
2401           macros to 0 as the usage macros (e.g. HAVE(...), ENABLE(...), etc.) handle undefined as 0.
2402         - Added a guard so that FeatureDefines.h can't be included directly, and must be included via
2403           Platform.h. This is necessary as it depends heavily on macros defined in Platform.h
2404         - Added numerous FIXMEs detailing follow up cleaning.
2405
2406         * wtf/FeatureDefines.h:
2407         * wtf/Platform.h:
2408
2409 2020-01-12  Sam Weinig  <weinig@apple.com>
2410
2411         Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h
2412         https://bugs.webkit.org/show_bug.cgi?id=206138
2413
2414         Reviewed by Anders Carlsson.
2415
2416         As a another step towards cleaning up Platform.h, split out OS related
2417         macros into their own file.
2418
2419         * WTF.xcodeproj/project.pbxproj:
2420         * wtf/CMakeLists.txt:
2421         * wtf/OS.h: Copied from Source/WTF/wtf/Platform.h.
2422         * wtf/Platform.h:
2423
2424 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
2425
2426         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
2427         https://bugs.webkit.org/show_bug.cgi?id=200043
2428
2429         Unreviewed.
2430
2431         Fix build.
2432
2433         * wtf/cocoa/LanguageCocoa.mm:
2434         (WTF::canMinimizeLanguages):
2435
2436 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
2437
2438         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
2439         https://bugs.webkit.org/show_bug.cgi?id=200043
2440
2441         Unreviewed.
2442
2443         Addressing additional review comments.
2444
2445         * wtf/cocoa/LanguageCocoa.mm:
2446         (WTF::canMinimizeLanguages):
2447
2448 2020-01-11  Myles C. Maxfield  <mmaxfield@apple.com>
2449
2450         Fix internal Apple builds after r254389
2451         https://bugs.webkit.org/show_bug.cgi?id=206135
2452
2453         Rubber stamped by Zalan Bujtas.
2454
2455         * wtf/spi/cocoa/NSLocaleSPI.h:
2456
2457 2020-01-11  Sam Weinig  <weinig@apple.com>
2458
2459         Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h
2460         https://bugs.webkit.org/show_bug.cgi?id=206124
2461
2462         Reviewed by Anders Carlsson.
2463
2464         As a step towards cleaning up Platform.h, split out CPU related
2465         macros into their own file.
2466
2467         * WTF.xcodeproj/project.pbxproj:
2468         * wtf/CMakeLists.txt:
2469         * wtf/CPU.h: Copied from Source/WTF/wtf/Platform.h.
2470         * wtf/Platform.h:
2471
2472 2020-01-10  Dean Jackson  <dino@apple.com>
2473
2474         [WebGL] Clarify USE_OPENGL_ES_3
2475         https://bugs.webkit.org/show_bug.cgi?id=206081
2476         <rdar://problem/58486798>
2477
2478         Reviewed by Simon Fraser.
2479
2480         Make it clear that USE_ANGLE | USE_OPENGL | USE_OPENGL_ES are exclusive,
2481         and that the availability of OpenGL ES 3 is a separate query.
2482
2483         * wtf/Platform.h:
2484
2485 2020-01-11  Yusuke Suzuki  <ysuzuki@apple.com>
2486
2487         Unreviewed, fix RunLoopGeneric's RunLoop::cycle
2488
2489         * wtf/generic/RunLoopGeneric.cpp:
2490         (WTF::RunLoop::cycle):
2491
2492 2020-01-10  Myles C. Maxfield  <mmaxfield@apple.com>
2493
2494         REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
2495         https://bugs.webkit.org/show_bug.cgi?id=200043
2496         <rdar://problem/44119496>
2497
2498         Reviewed by Dean Jackson.
2499
2500         We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
2501         it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
2502         This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
2503         language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
2504         turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
2505         in this way.
2506
2507         Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
2508         canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
2509         more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
2510         minimize the entropy revealed.
2511
2512         * WTF.xcodeproj/project.pbxproj:
2513         * wtf/Language.h:
2514         * wtf/Platform.h:
2515         * wtf/PlatformMac.cmake:
2516         * wtf/cf/LanguageCF.cpp:
2517         (WTF::httpStyleLanguageCode):
2518         (WTF::platformUserPreferredLanguages):
2519         * wtf/cocoa/LanguageCocoa.mm: Added.
2520         (WTF::minimizedLanguagesFromLanguages):
2521         * wtf/spi/cocoa/NSLocaleSPI.h: Added.
2522
2523 2020-01-10  Simon Fraser  <simon.fraser@apple.com>
2524
2525         Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
2526         https://bugs.webkit.org/show_bug.cgi?id=206091
2527
2528         Reviewed by Tim Horton.
2529
2530         Define ENABLE_META_VIEWPORT for iOS.
2531
2532         * wtf/FeatureDefines.h:
2533
2534 2020-01-09  Tim Horton  <timothy_horton@apple.com>
2535
2536         Adopt TARGET_OS_MACCATALYST in more places
2537         https://bugs.webkit.org/show_bug.cgi?id=206040
2538         <rdar://problem/57127108>
2539
2540         Reviewed by Simon Fraser.
2541
2542         * wtf/Platform.h:
2543
2544 2020-01-09  Simon Fraser  <simon.fraser@apple.com>
2545
2546         Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places
2547         https://bugs.webkit.org/show_bug.cgi?id=205982
2548
2549         Reviewed by Jon Lee.
2550         
2551         Add a #define ENABLE_UI_SIDE_COMPOSITING for Cocoa platforms. Minor comment cleanup, and
2552         move the duplicate ENABLE_ASYNC_SCROLLING from iOS and macOS sections into the Cocoa section.
2553
2554         * wtf/FeatureDefines.h:
2555
2556 2020-01-08  Yusuke Suzuki  <ysuzuki@apple.com>
2557
2558         Reduce binary size by purging C++ type information in Objective-C fields and parameters
2559         https://bugs.webkit.org/show_bug.cgi?id=205905
2560
2561         Reviewed by Saam Barati.
2562
2563         Objective-C has reflection mechanisms. This means that fields, methods, and their types
2564         need to hold its string representations in binary even if we are using release build.
2565         While typical Objective-C class does not have large size of type names, C++ struct / class
2566         has very large one, and putting them in Objective-C method names, parameter types, or fields
2567         makes binary size very large.
2568
2569         Interesting thing is that type information is gathered when parameter is a C++ pointer, reference,
2570         or value. And it gathers one-level deep information from this pointer etc. This means that, if
2571         we use RefPtr<T>, collected type information is the one of RefPtr, not one of T. So it becomes significantly
2572         smaller.
2573
2574         This patch introduces NakedRef<T>. This is similar to Ref while it does not have any ownership. So it
2575         is just a wrapper around T&. We already have NakedPtr<T>. And use NakedRef<T> / NakedPtr<T> instead
2576         of T& and T* if,
2577
2578             1. T is C++ class.
2579             2. T* / T& is in Objective-C fields or parameter types (including a return type).
2580
2581         Then, these type information is one of NakedRef<T> / NakedPtr<T> instead of T, and we can reduce binary size.
2582
2583         This patch saves 600~KB in binary size.
2584
2585         Note the following things.
2586
2587         1. If we use `__attribute__((objc_direct))`, `__attribute__((objc_direct_members))`, possibly, we can completely remove these
2588            metadata without using NakedRef / NakedPtr[1]. However, this is not available for our supporting platforms now (including
2589            pre-Catalina OSes). This NakedRef / NakedPtr technique can reduce binary without waiting for it.
2590         2. Reverting NakedRef / NakedPtr to usual reference / pointer is fairly easy since it is well typed. Once `__attribute__((objc_direct))`
2591            becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is harmless.
2592
2593         [1]: https://github.com/llvm/llvm-project/commit/d4e1ba3fa9dfec2613bdcc7db0b58dea490c56b1
2594
2595         * WTF.xcodeproj/project.pbxproj:
2596         * wtf/CMakeLists.txt:
2597         * wtf/NakedRef.h: Added.
2598         (WTF::NakedRef::NakedRef):
2599         (WTF::NakedRef::operator-> const):
2600         (WTF::NakedRef::get const):
2601         (WTF::NakedRef::operator T& const):
2602         (WTF::NakedRef::operator! const):
2603         (WTF::=):
2604         (WTF::NakedRef<T>::swap):
2605         (WTF::swap):
2606
2607 2020-01-08  Alicia Boya García  <aboya@igalia.com>
2608
2609         [WTF] Allow MediaTime static constants
2610         https://bugs.webkit.org/show_bug.cgi?id=205723
2611
2612         Reviewed by Darin Adler.
2613
2614         Despite all its convenience methods, at its core MediaTime is a rather
2615         trivial class with only integral members. Despite this, since it had a
2616         destructor declared, this made the class non-trivially destructible
2617         even if the implementation was empty, and therefore clang did not
2618         allow to use it for static variables unless done in form of a pointer.
2619
2620         By removing the destructor this restriction is lifted and we don't
2621         need heap allocations for static MediaTime objects.
2622
2623         Previous usages of heap allocation for static MediaTime objects have
2624         been rewritten to take advantage of this. Test coverage is provided by
2625         successful compilation without [-Werror,-Wexit-time-destructors]
2626         errors and existing tests.
2627
2628         * wtf/MediaTime.cpp:
2629         (WTF::MediaTime::zeroTime):
2630         (WTF::MediaTime::invalidTime):
2631         (WTF::MediaTime::positiveInfiniteTime):
2632         (WTF::MediaTime::negativeInfiniteTime):
2633         (WTF::MediaTime::indefiniteTime):
2634         (WTF::MediaTime::~MediaTime): Deleted.
2635         * wtf/MediaTime.h:
2636
2637 2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
2638
2639         Implement css3-images image-orientation
2640         https://bugs.webkit.org/show_bug.cgi?id=89052
2641
2642         Reviewed by Simon Fraser.
2643
2644         Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
2645
2646         * wtf/FeatureDefines.h:
2647
2648 2020-01-07  Simon Fraser  <simon.fraser@apple.com>
2649
2650         Add some more Animations logging
2651         https://bugs.webkit.org/show_bug.cgi?id=205890
2652
2653         Reviewed by Dean Jackson.
2654
2655         Make Seconds TextStream-loggable, and make Markable<> loggable.
2656
2657         * wtf/Seconds.cpp:
2658         (WTF::operator<<):
2659         * wtf/Seconds.h:
2660         * wtf/text/TextStream.h:
2661         (WTF::operator<<):
2662
2663 2020-01-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2664
2665         [GTK][WPE] Add API to set purpose and hints of active editable element to input methods
2666         https://bugs.webkit.org/show_bug.cgi?id=205605
2667
2668         Reviewed by Žan Doberšek.
2669
2670         Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
2671
2672         * wtf/FeatureDefines.h:
2673
2674 2020-01-06  Don Olmstead  <don.olmstead@sony.com>
2675
2676         Rename GraphicsContext3D to GraphicsContextGL
2677         https://bugs.webkit.org/show_bug.cgi?id=205778
2678         <rdar://problem/58327597>
2679
2680         Reviewed by Ross Kirsling.
2681
2682         Define USE_OPENGL_3 for Mac and USE_OPENGL_ES_3 for iOS. Use CMake config for
2683         Windows and WebGL.
2684
2685         * wtf/Platform.h:
2686
2687 2020-01-06  Mark Lam  <mark.lam@apple.com>
2688
2689         Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
2690         https://bugs.webkit.org/show_bug.cgi?id=205776
2691
2692         Reviewed by Saam Barati.
2693
2694         This patch did the following changes:
2695
2696         1. Replaced ASSERT_DISABLED with ASSERT_ENABLED.  This change does away
2697            with the need for the double negative !ASSERT_DISABLED test that is commonly
2698            used all over the code, thereby improving code readability.
2699
2700            In Assertions.h, there is also BACKTRACE_DISABLED, ASSERT_MSG_DISABLED,
2701            ASSERT_ARG_DISABLED, FATAL_DISABLED, ERROR_DISABLED, LOG_DISABLED, and
2702            RELEASE_LOG_DISABLED.  We should replace those with ..._ENABLED equivalents
2703            as well.  We'll do that in another patch.  For now, they are left as is to
2704            minimize the size of this patch.
2705            See https://bugs.webkit.org/show_bug.cgi?id=205780.
2706
2707         2. Fixed some code was guarded with "#ifndef NDEBUG" that should actually be
2708            guarded by "#if ASSERT_ENABLED" instead.
2709
2710         3. In cases where the change is minimal, we move some code around so that we can
2711            test for "#if ASSERT_ENABLED" instead of "#if !ASSERT_ENABLED".
2712
2713         * wtf/Assertions.h:
2714         * wtf/AutomaticThread.cpp:
2715         (WTF::AutomaticThread::start):
2716         * wtf/BitVector.h:
2717         * wtf/BlockObjCExceptions.mm:
2718         (ReportBlockedObjCException):
2719         * wtf/BloomFilter.h:
2720         * wtf/CallbackAggregator.h:
2721         (WTF::CallbackAggregator::CallbackAggregator):
2722         * wtf/CheckedArithmetic.h:
2723         (WTF::observesOverflow<AssertNoOverflow>):
2724         * wtf/CheckedBoolean.h:
2725         (CheckedBoolean::CheckedBoolean):
2726         (CheckedBoolean::operator bool):
2727         * wtf/CompletionHandler.h:
2728         (WTF::CompletionHandler<Out):
2729         * wtf/DateMath.cpp:
2730         (WTF::initializeDates):
2731         * wtf/Gigacage.cpp:
2732         (Gigacage::tryAllocateZeroedVirtualPages):
2733         * wtf/HashTable.h:
2734         (WTF::KeyTraits>::checkKey):
2735         (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
2736         * wtf/LoggerHelper.h:
2737         * wtf/NaturalLoops.h:
2738         (WTF::NaturalLoops::headerOf const):
2739         * wtf/NeverDestroyed.h:
2740         (WTF::LazyNeverDestroyed::construct):
2741         * wtf/OptionSet.h:
2742         (WTF::OptionSet::OptionSet):
2743         * wtf/Platform.h:
2744         * wtf/PtrTag.h:
2745         * wtf/RefCounted.h:
2746         (WTF::RefCountedBase::disableThreadingChecks):
2747         (WTF::RefCountedBase::enableThreadingChecksGlobally):
2748         (WTF::RefCountedBase::RefCountedBase):
2749         (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
2750         * wtf/SingleRootGraph.h:
2751         (WTF::SingleRootGraph::assertIsConsistent const):
2752         * wtf/SizeLimits.cpp:
2753         * wtf/StackBounds.h:
2754         (WTF::StackBounds::checkConsistency const):
2755         * wtf/URLParser.cpp:
2756         (WTF::URLParser::URLParser):
2757         (WTF::URLParser::domainToASCII):
2758         * wtf/ValueCheck.h:
2759         * wtf/Vector.h:
2760         (WTF::Malloc>::checkConsistency):
2761         * wtf/WeakHashSet.h:
2762         * wtf/WeakPtr.h:
2763         (WTF::WeakPtrImpl::WeakPtrImpl):
2764         (WTF::WeakPtrFactory::WeakPtrFactory):
2765         * wtf/text/AtomStringImpl.cpp:
2766         * wtf/text/AtomStringImpl.h:
2767         * wtf/text/StringBuilder.cpp:
2768         (WTF::StringBuilder::reifyString const):
2769         * wtf/text/StringBuilder.h:
2770         * wtf/text/StringCommon.h:
2771         (WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):
2772         * wtf/text/StringHasher.h:
2773         (WTF::StringHasher::addCharacters):
2774         * wtf/text/StringImpl.h:
2775         * wtf/text/SymbolImpl.h:
2776         * wtf/text/UniquedStringImpl.h:
2777
2778 2020-01-05  Dean Jackson  <dino@apple.com>
2779
2780         Rename GraphicsContext3D to GraphicsContextGL
2781         https://bugs.webkit.org/show_bug.cgi?id=205778
2782         <rdar://problem/58327597>
2783
2784         Reviewed by Sam Weinig.
2785
2786         Rename all the GraphicsContext3D things to GraphicsContextGL
2787         (includes Extensions3D and GRAPHICS_CONTEXT_3D).
2788
2789         GraphicsContext3DBase now becomes GraphicsContextGL.
2790         GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents
2791         the OpenGL implementation of the API).
2792
2793         * wtf/FeatureDefines.h:
2794         * wtf/Platform.h:
2795
2796 2020-01-05  Sam Weinig  <weinig@apple.com>
2797
2798         Further simplify StringBuilder usage by standardizing hex formating to a single hex() function
2799         https://bugs.webkit.org/show_bug.cgi?id=205759
2800
2801         Reviewed by Dean Jackson.
2802
2803         Removes appendByteAsHex, appendUnsignedAsHex and appendUnsignedAsHexFixedSize with the
2804         following mappings:
2805
2806             appendByteAsHex(value, builder, case) 
2807               -> builder.append(hex(static_cast<unsigned char>(value), 2, case))
2808             appendUnsignedAsHex(value, builder, case) 
2809               -> builder.append(hex(value, case))
2810             appendUnsignedAsHexFixedSize(value, builder, size, case)
2811               -> builder.append(hex(value, size, case))
2812         
2813         Adds new API test for HexNumber.cpp
2814
2815         * wtf/HexNumber.h:
2816         (WTF::appendByteAsHex): Deleted.
2817         (WTF::appendUnsignedAsHex): Deleted.
2818         (WTF::appendUnsignedAsHexFixedSize): Deleted.
2819         Remove now unused helper functions.
2820         
2821         * wtf/FileSystem.cpp:
2822         (WTF::FileSystemImpl::encodeForFileName):
2823         Replace appendByteAsHex with direct use of hex(x, 2). The static_cast is needed
2824         since there was an implicit down cast when appendByteAsHex was used.
2825  
2826         * wtf/Logger.cpp:
2827         (WTF::Logger::LogSiteIdentifier::toString const):
2828         (WTF::>::toString):
2829         * wtf/UUID.cpp:
2830         (WTF::createCanonicalUUIDString):
2831         Replace appendUnsignedAsHex/appendUnsignedAsHexFixedSize with hex(). Use makeString() 
2832         rather StringBuilder to simplify things further.
2833
2834         * wtf/text/WTFString.cpp:
2835         (asciiDebug):
2836         Replace appendUnsignedAsHexFixedSize with append(hex()).
2837
2838 2020-01-05  Ross Kirsling  <ross.kirsling@sony.com>
2839
2840         JavaScript: Invalid date parse for ISO 8601 strings when no timezone given
2841         https://bugs.webkit.org/show_bug.cgi?id=89071
2842
2843         Reviewed by Darin Adler.
2844
2845         * wtf/DateMath.cpp:
2846         (WTF::parseES5TimePortion):
2847         (WTF::parseES5DateFromNullTerminatedCharacters):
2848         * wtf/DateMath.h:
2849         Add an out param to tell JSC whether we still need to do a local time adjustment.
2850
2851 2020-01-03  Dean Jackson  <dino@apple.com>
2852
2853         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
2854         https://bugs.webkit.org/show_bug.cgi?id=205483
2855         <rdar://problem/58097701>
2856
2857         Reverting this from trunk (was r253926) due to the number of
2858         flakey tests and failures.
2859
2860         * wtf/Platform.h:
2861
2862 2020-01-03  Simon Fraser  <simon.fraser@apple.com>
2863
2864         Add some shared schemes to the WebKit.xcworkspace
2865         https://bugs.webkit.org/show_bug.cgi?id=205698
2866
2867         Reviewed by Tim Horton.
2868
2869         Make WebKit.xcworkspace show the following schemes by default:
2870             All Source
2871             All Tools
2872             WTF
2873             JavaScriptCore
2874             WebCore
2875             WebKit
2876             WebKitLegacy
2877             DumpRenderTree
2878             WebKitTestRunner
2879             TestWebKitAPI
2880             MiniBrowser
2881             MobileMiniBrowser.
2882             
2883         Also remove the MobileMiniBrowserUITests scheme.
2884
2885         * WTF.xcodeproj/xcshareddata/xcschemes/WTF.xcscheme: Copied from Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowserUITests.xcscheme.
2886
2887 2020-01-02  Yusuke Suzuki  <ysuzuki@apple.com> and Simon Fraser  <simon.fraser@apple.com>
2888
2889         Experiment: create lots of different malloc zones for easier accounting of memory use
2890         https://bugs.webkit.org/show_bug.cgi?id=186422
2891
2892         Reviewed by Saam Barati.
2893
2894         This patch introduces ENABLE(MALLOC_HEAP_BREAKDOWN). If this is enabled, we allocate malloc_zone per malloc kind.
2895         This offers the way to investigate the usage of memory per kind by using vmmap, like the following.
2896
2897             VIRTUAL   RESIDENT      DIRTY    SWAPPED ALLOCATION      BYTES DIRTY+SWAP          REGION
2898             MALLOC ZONE                                                      SIZE       SIZE       SIZE       SIZE      COUNT  ALLOCATED  FRAG SIZE  % FRAG   COUNT
2899             ===========                                                   =======  =========  =========  =========  =========  =========  =========  ======  ======
2900             StringImpl_0x116efd000                                         188.0M      69.3M      30.9M         0K     139456      18.0M      12.9M     42%      34
2901             DefaultMallocZone_0x10f487000                                  176.0M      53.9M      14.1M         0K     115956      9955K      4497K     32%      22
2902             Vector_0x116eff000                                             162.0M      56.3M      55.3M         0K     140715      17.3M      37.9M     69%      36
2903             MetadataTable_0x11843b000                                      152.0M      17.5M      17.5M         0K      14200      2353K      15.2M     87%      26
2904             WebKit Using System Malloc_0x114cbe000                         150.0M      31.6M      21.8M         0K      87422      16.7M      5278K     24%      23
2905             InstructionStream_0x118469000                                  150.0M      5764K      5764K         0K      14470      4688K      1076K     19%      24
2906             AssemblerData_0x117ee6000                                      150.0M      1928K      1928K         0K          1         16      1928K    100%      24
2907
2908         To achieve this goal without making very large change, we put a template type in various containers.
2909         For example, Vector will take Malloc parameter (the default one is FastMalloc allocator). If ENABLE(MALLOC_HEAP_BREAKDOWN) is enabled, we change this to
2910         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
2911         allocation per IsoHeap in vmmap.
2912
2913         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.
2914         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,
2915         and define allocator by DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a header and DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a cpp file.
2916
2917         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
2918         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
2919         which callsite is consuming much memory, which tell us that what Vector is consuming memory.
2920
2921         * WTF.xcodeproj/project.pbxproj:
2922         * wtf/Bag.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
2923         * wtf/Bag.h:
2924         (WTF::Private::BagNode::BagNode): Deleted.
2925         * wtf/BitVector.cpp:
2926         (WTF::BitVector::OutOfLineBits::create):
2927         (WTF::BitVector::OutOfLineBits::destroy):
2928         * wtf/CMakeLists.txt:
2929         * wtf/ConcurrentBuffer.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
2930         * wtf/ConcurrentBuffer.h:
2931         * wtf/DebugHeap.cpp: Copied from Source/JavaScriptCore/runtime/CachePayload.cpp.
2932         (WTF::DebugHeap::DebugHeap):
2933         (WTF::DebugHeap::malloc):
2934         (WTF::DebugHeap::calloc):
2935         (WTF::DebugHeap::memalign):
2936         (WTF::DebugHeap::realloc):
2937         (WTF::DebugHeap::free):
2938         * wtf/DebugHeap.h: Added.
2939         * wtf/FastBitVector.cpp:
2940         (WTF::FastBitVectorWordOwner::setEqualsSlow):
2941         (WTF::FastBitVectorWordOwner::resizeSlow):
2942         * wtf/FastBitVector.h:
2943         (WTF::FastBitVectorWordOwner::~FastBitVectorWordOwner):
2944         * wtf/FastMalloc.cpp:
2945         (WTF::fastMallocDumpMallocStats):
2946         (WTF::AvoidRecordingScope::AvoidRecordingScope):
2947         (WTF::AvoidRecordingScope::~AvoidRecordingScope):
2948         (WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
2949         (WTF::MallocCallTracker::singleton):
2950         (WTF::MallocCallTracker::MallocCallTracker):
2951         (WTF::MallocCallTracker::recordMalloc):
2952         (WTF::MallocCallTracker::recordRealloc):
2953         (WTF::MallocCallTracker::recordFree):
2954         (WTF::MallocCallTracker::dumpStats):
2955         (WTF::fastMalloc):
2956         (WTF::fastRealloc):
2957         (WTF::fastFree):
2958         (WTF::fastAlignedMalloc):
2959         (WTF::tryFastAlignedMalloc):
2960         (WTF::fastAlignedFree):
2961         * wtf/FastMalloc.h:
2962         (WTF::FastMalloc::zeroedMalloc):
2963         (WTF::FastMalloc::tryZeroedMalloc):
2964         * wtf/Forward.h:
2965         * wtf/HashTable.cpp:
2966         * wtf/HashTable.h:
2967         (WTF::KeyTraits>::allocateTable):
2968         (WTF::KeyTraits>::deallocateTable):
2969         (WTF::KeyTraits>::rehash):
2970         * wtf/MallocPtr.h:
2971         (WTF::MallocPtr::MallocPtr):
2972         (WTF::MallocPtr::malloc):
2973         (WTF::MallocPtr::zeroedMalloc):
2974         (WTF::MallocPtr::tryMalloc):
2975         (WTF::MallocPtr::tryZeroedMalloc):
2976         (WTF::adoptMallocPtr):
2977         * wtf/MetaAllocator.cpp:
2978         (WTF::MetaAllocator::allocFreeSpaceNode):
2979         (WTF::MetaAllocator::freeFreeSpaceNode):
2980         * wtf/MetaAllocatorHandle.h:
2981         * wtf/Platform.h:
2982         * wtf/RefCountedArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
2983         * wtf/RefCountedArray.h:
2984         (WTF::RefCountedArray::RefCountedArray):
2985         (WTF::RefCountedArray::~RefCountedArray):
2986         (WTF::RefCountedArray::assign):
2987         * wtf/SegmentedVector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
2988         * wtf/SegmentedVector.h:
2989         * wtf/SmallPtrSet.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
2990         * wtf/SmallPtrSet.h:
2991         (WTF::SmallPtrSet::~SmallPtrSet):
2992         (WTF::SmallPtrSet::grow):
2993         * wtf/UniqueArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
2994         * wtf/UniqueArray.h:
2995         (WTF::UniqueArrayFree::operator() const):
2996         (WTF::UniqueArrayFree<T::operator() const):
2997         * wtf/Vector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
2998         * wtf/Vector.h:
2999         (WTF::VectorBufferBase::allocateBuffer):
3000         (WTF::VectorBufferBase::tryAllocateBuffer):
3001         (WTF::VectorBufferBase::reallocateBuffer):
3002         (WTF::VectorBufferBase::deallocateBuffer):
3003         (WTF::VectorBufferBase::releaseBuffer):
3004         (WTF::VectorBuffer::releaseBuffer):
3005         (WTF::Vector::swap):
3006         (WTF::Malloc>::Vector):
3007         (WTF::=):
3008         (WTF::Malloc>::contains const):
3009         (WTF::Malloc>::findMatching const):
3010         (WTF::Malloc>::find const):
3011         (WTF::Malloc>::reverseFind const):
3012         (WTF::Malloc>::appendIfNotContains):
3013         (WTF::Malloc>::fill):
3014         (WTF::Malloc>::appendRange):
3015         (WTF::Malloc>::expandCapacity):
3016         (WTF::Malloc>::tryExpandCapacity):
3017         (WTF::Malloc>::resize):
3018         (WTF::Malloc>::resizeToFit):
3019         (WTF::Malloc>::shrink):
3020         (WTF::Malloc>::grow):
3021         (WTF::Malloc>::asanSetInitialBufferSizeTo):
3022         (WTF::Malloc>::asanSetBufferSizeToFullCapacity):
3023         (WTF::Malloc>::asanBufferSizeWillChangeTo):
3024         (WTF::Malloc>::reserveCapacity):
3025         (WTF::Malloc>::tryReserveCapacity):
3026         (WTF::Malloc>::reserveInitialCapacity):
3027         (WTF::Malloc>::shrinkCapacity):
3028         (WTF::Malloc>::append):
3029         (WTF::Malloc>::tryAppend):
3030         (WTF::Malloc>::constructAndAppend):
3031         (WTF::Malloc>::tryConstructAndAppend):
3032         (WTF::Malloc>::appendSlowCase):
3033         (WTF::Malloc>::constructAndAppendSlowCase):
3034         (WTF::Malloc>::tryConstructAndAppendSlowCase):
3035         (WTF::Malloc>::uncheckedAppend):
3036         (WTF::Malloc>::uncheckedConstructAndAppend):
3037         (WTF::Malloc>::appendVector):
3038         (WTF::Malloc>::insert):
3039         (WTF::Malloc>::insertVector):
3040         (WTF::Malloc>::remove):
3041         (WTF::Malloc>::removeFirst):
3042         (WTF::Malloc>::removeFirstMatching):
3043         (WTF::Malloc>::removeAll):
3044         (WTF::Malloc>::removeAllMatching):
3045         (WTF::Malloc>::reverse):
3046         (WTF::Malloc>::map const):
3047         (WTF::Malloc>::releaseBuffer):
3048         (WTF::Malloc>::checkConsistency):
3049         (WTF::swap):
3050         (WTF::operator==):
3051         (WTF::operator!=):
3052         (WTF::Malloc>::isolatedCopy const):
3053         (WTF::removeRepeatedElements):
3054         (WTF::minCapacity>::Vector): Deleted.
3055         (WTF::minCapacity>::contains const): Deleted.
3056         (WTF::minCapacity>::findMatching const): Deleted.
3057         (WTF::minCapacity>::find const): Deleted.
3058         (WTF::minCapacity>::reverseFind const): Deleted.
3059         (WTF::minCapacity>::appendIfNotContains): Deleted.
3060         (WTF::minCapacity>::fill): Deleted.
3061         (WTF::minCapacity>::appendRange): Deleted.
3062         (WTF::minCapacity>::expandCapacity): Deleted.
3063         (WTF::minCapacity>::tryExpandCapacity): Deleted.
3064         (WTF::minCapacity>::resize): Deleted.
3065         (WTF::minCapacity>::resizeToFit): Deleted.
3066         (WTF::minCapacity>::shrink): Deleted.
3067         (WTF::minCapacity>::grow): Deleted.
3068         (WTF::minCapacity>::asanSetInitialBufferSizeTo): Deleted.
3069         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity): Deleted.
3070         (WTF::minCapacity>::asanBufferSizeWillChangeTo): Deleted.
3071         (WTF::minCapacity>::reserveCapacity): Deleted.
3072         (WTF::minCapacity>::tryReserveCapacity): Deleted.
3073         (WTF::minCapacity>::reserveInitialCapacity): Deleted.
3074         (WTF::minCapacity>::shrinkCapacity): Deleted.
3075         (WTF::minCapacity>::append): Deleted.
3076         (WTF::minCapacity>::tryAppend): Deleted.
3077         (WTF::minCapacity>::constructAndAppend): Deleted.
3078         (WTF::minCapacity>::tryConstructAndAppend): Deleted.
3079         (WTF::minCapacity>::appendSlowCase): Deleted.
3080         (WTF::minCapacity>::constructAndAppendSlowCase): Deleted.
3081         (WTF::minCapacity>::tryConstructAndAppendSlowCase): Deleted.
3082         (WTF::minCapacity>::uncheckedAppend): Deleted.
3083         (WTF::minCapacity>::uncheckedConstructAndAppend): Deleted.
3084         (WTF::minCapacity>::appendVector): Deleted.
3085         (WTF::minCapacity>::insert): Deleted.
3086         (WTF::minCapacity>::insertVector): Deleted.
3087         (WTF::minCapacity>::remove): Deleted.
3088         (WTF::minCapacity>::removeFirst): Deleted.
3089         (WTF::minCapacity>::removeFirstMatching): Deleted.
3090         (WTF::minCapacity>::removeAll): Deleted.
3091         (WTF::minCapacity>::removeAllMatching): Deleted.
3092         (WTF::minCapacity>::reverse): Deleted.
3093         (WTF::minCapacity>::map const): Deleted.
3094         (WTF::minCapacity>::releaseBuffer): Deleted.
3095         (WTF::minCapacity>::checkConsistency): Deleted.
3096         (WTF::minCapacity>::isolatedCopy const): Deleted.
3097         * wtf/text/CString.cpp:
3098         (WTF::CStringBuffer::createUninitialized):
3099         * wtf/text/CString.h:
3100         * wtf/text/StringBuffer.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
3101         * wtf/text/StringBuffer.h:
3102         (WTF::StringBuffer::StringBuffer):
3103         (WTF::StringBuffer::~StringBuffer):
3104         (WTF::StringBuffer::resize):
3105         (WTF::StringBuffer::release):
3106         * wtf/text/StringImpl.cpp:
3107         (WTF::StringImpl::~StringImpl):
3108         (WTF::StringImpl::destroy):
3109         (WTF::StringImpl::createUninitializedInternalNonEmpty):
3110         (WTF::StringImpl::reallocateInternal):
3111         * wtf/text/StringImpl.h:
3112         (WTF::StringImpl::StringImpl):
3113         (WTF::StringImpl::createSubstringSharingImpl):
3114         (WTF::StringImpl::tryCreateUninitialized):
3115         (WTF::StringImpl::adopt):
3116         * wtf/text/cf/StringImplCF.cpp:
3117         (WTF::StringWrapperCFAllocator::allocate):
3118         (WTF::StringWrapperCFAllocator::reallocate):
3119         (WTF::StringWrapperCFAllocator::deallocate):
3120
3121 2020-01-02  Dean Jackson  <dino@apple.com>
3122
3123         REGRESSION(r253926): Crash at libANGLE-shared.dylib: gl::LogMessage::~LogMessage
3124         https://bugs.webkit.org/show_bug.cgi?id=205690
3125         rdar://58279401
3126
3127         Reviewed by Eric Carlson.
3128
3129         Only enable ANGLE for iOS hardware while we investigate this fatal error.
3130
3131         * wtf/Platform.h:
3132
3133 2020-01-02  Sam Weinig  <weinig@apple.com>
3134
3135         Simplify StringBuilder API/align with makeString by removing appendFixed* functions and using FormatNumber struct instead
3136         https://bugs.webkit.org/show_bug.cgi?id=205671
3137
3138         Reviewed by Alex Christensen.
3139
3140         In an ongoing attempt to simplify the StringBuilder interface and unify it's functionality with makeString,
3141         this change removes appendFixedPrecisionNumber() and appendFixedWidthNumber(), replacing their uses
3142         with direct calls to append(), using a FormattedNumber object to direct it to the appropriate StringTypeAdapter.
3143
3144         * wtf/text/StringBuilder.h:
3145         * wtf/text/StringBuilder.cpp:
3146         (WTF::StringBuilder::appendFixedPrecisionNumber): Deleted.
3147         (WTF::StringBuilder::appendFixedWidthNumber): Deleted.
3148         Remove StringBuilder::appendFixedPrecisionNumber() and StringBuilder::appendFixedWidthNumber(). The same functionality
3149         is available and more flexible by passing FormattedNumbers to the variadic append() function.
3150         
3151         * wtf/text/TextStream.cpp:
3152         (WTF::TextStream::operator<<):
3153         * wtf/MediaTime.cpp:
3154         (WTF::MediaTime::toString const):
3155         Replace all uses of builder.appendFixedPrecisionNumber(...) with builder.append(FormattedNumber::fixedPrecision(...))
3156         and builder.appendFixedWidthNumber(...) with with builder.append(FormattedNumber::fixedWidth(...))
3157
3158 2019-12-20  Darin Adler  <darin@apple.com>
3159
3160         Tidy a bit of StringBuilder usage
3161         https://bugs.webkit.org/show_bug.cgi?id=205509
3162
3163         Reviewed by Sam Weinig.
3164
3165         * wtf/FileSystem.cpp:
3166         (WTF::FileSystemImpl::decodeFromFilename): Fix misleading variable name "hexDigit"
3167         for result of decoding "%+XXXX"; what's decoded is a character, not a hex digit.
3168
3169         * wtf/HexNumber.h: Remove unused appendUnsignedAsHexFixedSize function for
3170         destinations other than StringBuilder. Don't need it at this time, could add
3171         it later if we ever decide we do.
3172
3173         * wtf/text/StringBuilder.h:
3174         (WTF::StringBuilder::appendSubstring): Improved logic in appendSubstring so it
3175         will handle even absurd values for offset and length correctly, and added a
3176         default length of "infinity" just like in String::substring.
3177
3178         * wtf/text/StringImpl.cpp:
3179         (WTF::StringImpl::convertToLowercaseWithoutLocale): Use isASCII.
3180         (WTF::StringImpl::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit): Ditto.
3181
3182         * wtf/text/WTFString.cpp:
3183         (asciiDebug): Use StringBuilder to build the string; this was the one place that
3184         used appendUnsignedAsHexFixedSize on something else, and there is no need.
3185
3186 2019-12-30  youenn fablet  <youenn@apple.com>
3187
3188         Ignore URL host for schemes that are not using host information
3189         https://bugs.webkit.org/show_bug.cgi?id=205157
3190         <rdar://problem/57825963>
3191
3192         Reviewed by Darin Adler.
3193
3194         * wtf/URL.cpp:
3195         (WTF::URL::removeHostAndPort):
3196         * wtf/URL.h:
3197
3198 2019-12-25  Dean Jackson  <dino@apple.com>
3199
3200         [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
3201         https://bugs.webkit.org/show_bug.cgi?id=205483
3202         rdar://56925821
3203
3204         Reviewed by Simon Fraser.
3205
3206         Turn USE_ANGLE on for Cocoa, with the exception of the simulator.
3207
3208         * wtf/Platform.h:
3209
3210 2019-12-24  Eric Carlson  <eric.carlson@apple.com>
3211
3212         [Media in GPU process] Enable media player proxy logging
3213         https://bugs.webkit.org/show_bug.cgi?id=205557
3214         <rdar://problem/58160932>
3215
3216         Reviewed by Youenn Fablet.
3217
3218         * wtf/Logger.h:
3219         (WTF::Logger::willLog const): Minor optimization: don't check m_enabled unnecessarily.
3220
3221 2019-12-23  Keith Miller  <keith_miller@apple.com>
3222
3223         DFG/FTL should be able to exit to the middle of a bytecode
3224         https://bugs.webkit.org/show_bug.cgi?id=205232
3225
3226         Reviewed by Saam Barati.
3227
3228         * WTF.xcodeproj/project.pbxproj:
3229         * wtf/Bitmap.h:
3230         (WTF::WordType>::invert):
3231         (WTF::WordType>::operator):
3232         (WTF::WordType>::operator const const):
3233         * wtf/CMakeLists.txt:
3234         * wtf/EnumClassOperatorOverloads.h: Added.
3235         * wtf/FastBitVector.h:
3236         (WTF::FastBitReference::operator bool const):
3237         (WTF::FastBitReference::operator|=):
3238         (WTF::FastBitReference::operator&=):
3239         (WTF::FastBitVector::fill):
3240         (WTF::FastBitVector::grow):
3241         * wtf/UnalignedAccess.h:
3242         (WTF::unalignedLoad):
3243         (WTF::unalignedStore):
3244
3245 2019-12-21  Antti Koivisto  <antti@apple.com>
3246
3247         Move Vector HashTraits to HashTraits.h to fix GCC build
3248         https://bugs.webkit.org/show_bug.cgi?id=205540
3249
3250         Reviewed by Zalan Bujtas.
3251
3252         GCC is stricter than LLVM with partial specializations
3253
3254         Error: partial specialization of struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >
3255         after instantiation of struct WTF::HashTraits<WTF::Vector<WTF::String> >
3256
3257         * wtf/HashTraits.h:
3258         * wtf/VectorHash.h:
3259
3260 2019-12-20  Truitt Savell  <tsavell@apple.com>
3261
3262         Unreviewed, rolling out r253820.
3263
3264         Broke Mac testing
3265
3266         Reverted changeset:
3267
3268         "Invalidate only affected elements after media query
3269         evaluation changes"
3270         https://bugs.webkit.org/show_bug.cgi?id=205392
3271         https://trac.webkit.org/changeset/253820
3272
3273 2019-12-20  Antti Koivisto  <antti@apple.com>
3274
3275         Invalidate only affected elements after media query evaluation changes
3276         https://bugs.webkit.org/show_bug.cgi?id=205392
3277
3278         Reviewed by Zalan Bujtas.
3279
3280         Fix GCC build error
3281
3282         Error: partial specialization of ‘struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >’
3283                after instantiation of ‘struct WTF::HashTraits<WTF::Vector<WTF::String> >’
3284
3285         * wtf/HashTraits.h:
3286         * wtf/VectorHash.h:
3287
3288         Move to HashTraits to HashTraits.h so it gets specialized before any instantiation.
3289
3290 2019-12-19  Antti Koivisto  <antti@apple.com>
3291
3292         Allow Vectors as hash keys
3293         https://bugs.webkit.org/show_bug.cgi?id=205449
3294
3295         Reviewed by Geoff Garen.
3296
3297         Add traits to allow Vectors of hashable types to act as hash keys.
3298
3299         * WTF.xcodeproj/project.pbxproj:
3300         * wtf/Vector.h:
3301         (WTF::Vector::Vector):
3302         (WTF::Vector::~Vector):
3303         (WTF::Vector::isHashTableDeletedValue const):
3304
3305         Use m_size = numeric_limits::max() as the deleted value.
3306
3307         * wtf/VectorHash.h: Added.
3308         (WTF::VectorHash::hash):
3309         (WTF::VectorHash::equal):
3310
3311         Add traits. Empty Vector is the empty value.
3312
3313 2019-12-19  Jer Noble  <jer.noble@apple.com>
3314
3315         Safely iterate observers in languageDidChange()
3316         https://bugs.webkit.org/show_bug.cgi?id=205452
3317         <rdar://problem/57937765>
3318
3319         Reviewed by Eric Carlson.
3320
3321         Use the "copyToVector() then verify each item is still in the original
3322         map" pattern to safely iterate over the observerMap().
3323
3324         * wtf/Language.cpp:
3325         (WTF::languageDidChange):
3326
3327 2019-12-18  Yusuke Suzuki  <ysuzuki@apple.com>
3328
3329         Unreviewed, build fix after r253730
3330         https://bugs.webkit.org/show_bug.cgi?id=204398
3331
3332         Thread::destructTLS is always required in POSIX environments
3333
3334         * wtf/Threading.h:
3335
3336 2019-12-18  Fujii Hironori  <Hironori.Fujii@sony.com>
3337
3338         [Win] Use thread_local to hold Ref<WTF::Thread> in the thread rather than using FLS
3339         https://bugs.webkit.org/show_bug.cgi?id=204398
3340
3341         Reviewed by Yusuke Suzuki.
3342
3343         Use thread_local which is faster than FLS.
3344
3345         * wtf/Threading.cpp:
3346         (WTF::initializeThreading):
3347         * wtf/Threading.h:
3348         (WTF::Thread::current):
3349         * wtf/ThreadingPrimitives.h: Deleted threadSpecificKeyCreate and
3350         related functions which aren't used now in Windows port. Deleted
3351         THREAD_SPECIFIC_CALL macro which isn't used now.
3352         * wtf/win/ThreadingWin.cpp: Added a thread_local variable s_threadHolder.
3353         (WTF::Thread::ThreadHolder::~ThreadHolder): Added.
3354         (WTF::Thread::currentMayBeNull):
3355         (WTF::Thread::initializeTLS): Store a reference of Thread into s_threadHolder.
3356         (WTF::Thread::initializeTLSKey): Deleted.
3357         (WTF::Thread::destructTLS): Deleted.
3358
3359 2019-12-18  Ben Nham  <nham@apple.com>
3360
3361         Add network loading signposts
3362         https://bugs.webkit.org/show_bug.cgi?id=204822
3363         <rdar://problem/57608824>
3364
3365         Reviewed by Alex Christensen.
3366
3367         This adds os_signposts related to network loads to aid in debugging networking performance
3368         issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
3369         internal builds when an environment variable is set.
3370
3371         * wtf/Platform.h:
3372         Add HAVE_OS_SIGNPOST.
3373
3374 2019-12-17  Myles C. Maxfield  <mmaxfield@apple.com>
3375
3376         [iOS] Update to use CTFontCreateForCharactersWithLanguageAndOption()
3377         https://bugs.webkit.org/show_bug.cgi?id=205310
3378
3379         Reviewed by Simon Fraser.
3380
3381         All our bots are on the appropriate OS version.
3382
3383         * wtf/Platform.h:
3384
3385 2019-12-17  Yusuke Suzuki  <ysuzuki@apple.com>
3386
3387         [JSC] 8Bit JSRopeString can contain 16Bit string in its rope
3388         https://bugs.webkit.org/show_bug.cgi?id=205323
3389
3390         Reviewed by Mark Lam.
3391
3392         * wtf/text/StringImpl.h:
3393         (WTF::StringImpl::copyCharacters):
3394
3395 2019-12-17  Tim Horton  <timothy_horton@apple.com>
3396
3397         macCatalyst: Cursor should update on mouse movement and style change
3398         https://bugs.webkit.org/show_bug.cgi?id=205317
3399         <rdar://problem/46793696>
3400
3401         Reviewed by Anders Carlsson.
3402
3403         * wtf/FeatureDefines.h:
3404         Make ENABLE_CURSOR_SUPPORT true on iOS, for macCatalyst. This results
3405         in it being true everywhere, so remove it.
3406
3407         Add a new ENABLE_CUSTOM_CURSOR_SUPPORT, indicating whether we support
3408         custom bitmap cursors. It covers the subset of ENABLE_CURSOR_SUPPORT
3409         code that we still don't support in macCatalyst.
3410
3411         * wtf/Platform.h:
3412         Add HAVE_HISERVICES (true on macOS but not macCatalyst) and
3413         HAVE_NSCURSOR (true on macOS and macCatalyst but not e.g. iOS).
3414
3415 2019-12-16  Yusuke Suzuki  <ysuzuki@apple.com>
3416
3417         [JSC] Remove ArrayBufferNeuteringWatchpointSet
3418         https://bugs.webkit.org/show_bug.cgi?id=205194
3419
3420         Reviewed by Saam Barati.
3421
3422         This patch adds PackedRef and PackedRefPtr. They are Ref and RefPtr, but its internal pointer is packed.
3423         So we can represent them in 6 bytes with 1 byte alignment.
3424
3425         * WTF.xcodeproj/project.pbxproj:
3426         * wtf/CMakeLists.txt:
3427         * wtf/Packed.h:
3428         (WTF::alignof):
3429         * wtf/PackedRef.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
3430         * wtf/PackedRefPtr.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
3431         * wtf/RefPtr.h:
3432         (WTF::RefPtr::operator UnspecifiedBoolType const):
3433         (WTF::RefPtr::unspecifiedBoolTypeInstance const):
3434
3435 2019-12-13  Saam Barati  <sbarati@apple.com>
3436
3437         Add a Heap::finalize function that takes WTF::Function<void()>
3438         https://bugs.webkit.org/show_bug.cgi?id=205211
3439
3440         Reviewed by Geoffrey Garen.
3441
3442         * wtf/Function.h:
3443         (WTF::Function<Out):
3444
3445 2019-12-13  Per Arne Vollan  <pvollan@apple.com>
3446
3447         [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
3448         https://bugs.webkit.org/show_bug.cgi?id=205134
3449         <rdar://problem/56984257>
3450
3451         Reviewed by Brent Fulgham.
3452
3453         Add enum value for the XPC service name filter type.
3454
3455         * wtf/spi/darwin/SandboxSPI.h:
3456
3457 2019-12-09  Fujii Hironori  <Hironori.Fujii@sony.com>
3458
3459         [MSVC] writeNumberToBufferUnsigned is unsafe for bool type
3460         https://bugs.webkit.org/show_bug.cgi?id=204873
3461
3462         Reviewed by Darin Adler.
3463
3464         MSVC reports warning for using / operator for bool type.
3465         > warning C4804: '/': unsafe use of type 'bool' in operation
3466
3467         And, 'bool' isn't expected to be serialized as '0' or '1'. 'bool' isn't supported.
3468
3469         * wtf/text/IntegerToStringConversion.h: Added a static_assert to ensure UnsignedIntegerType isn't bool.
3470
3471 2019-07-13  Darin Adler  <darin@apple.com>
3472
3473         Streamline PODIntervalTree code and remove ValueToString
3474         https://bugs.webkit.org/show_bug.cgi?id=199782
3475
3476         Reviewed by Anders Carlsson.
3477
3478         * WTF.xcodeproj/project.pbxproj: Remove ValueToString.h.
3479         * wtf/CMakeLists.txt: Ditto.
3480
3481         * wtf/MediaTime.cpp:
3482         (WTF::operator<<): Implement debug-only TextStream serialization
3483         based on toJSONString.
3484         * wtf/MediaTime.h: Ditto.
3485
3486         * wtf/text/ValueToString.h: Removed.
3487
3488 2019-12-06  Zan Dobersek  <zdobersek@igalia.com>
3489
3490         [GTK][WPE] Use bmalloc's memory footprint API for JSC heap growth management
3491         https://bugs.webkit.org/show_bug.cgi?id=204576
3492
3493         Reviewed by Saam Barati.
3494
3495         Add the new USE_BMALLOC_MEMORY_FOOTPRINT_API, enabled for the iOS-family
3496         ports and the Linux ports, as long as system malloc enforcement is
3497         disabled and bmalloc is subsequently built and used. The flag is used in
3498         JavaScriptCore to enable usage of bmalloc's memory footprint API for
3499         JSC heap growth control.
3500
3501         * wtf/Platform.h:
3502
3503 2019-12-05  Chris Dumez  <cdumez@apple.com>
3504
3505         [IPC] Fail ObjectIdentifier decoding if the decoded integer is not a valid ID
3506         https://bugs.webkit.org/show_bug.cgi?id=204921
3507         <rdar://problem/57677747>
3508
3509         Reviewed by Ryosuke Niwa.
3510
3511         * wtf/ObjectIdentifier.h:
3512         (WTF::ObjectIdentifier::decode):
3513
3514 2019-12-03  Sunny He  <sunny_he@apple.com>
3515
3516         Enable security assertions on all ASAN builds
3517         https://bugs.webkit.org/show_bug.cgi?id=204802
3518
3519         Reviewed by Ryosuke Niwa.
3520
3521         * wtf/FeatureDefines.h:
3522
3523 2019-12-03  Christopher Reid  <chris.reid@sony.com>
3524
3525         Regular expression hangs in Safari only
3526         https://bugs.webkit.org/show_bug.cgi?id=202882
3527         <rdar://problem/56236654>
3528
3529         Reviewed by Yusuke Suzuki.
3530
3531         BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
3532         if multiple large pools are deallocated and a new capacity does not
3533         fit in the deallocated pools. BumpPointerPool should try using
3534         more pools if the next one isn't large enough.
3535
3536         * wtf/BumpPointerAllocator.h:
3537         (WTF::BumpPointerPool::ensureCapacityCrossPool):
3538
3539 2019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>
3540
3541         Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
3542         https://bugs.webkit.org/show_bug.cgi?id=204666
3543
3544         Reviewed by Ross Kirsling and Don Olmstead.
3545
3546         * wtf/FeatureDefines.h:
3547
3548 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
3549
3550         [Win] Update KeyboardEvent as per the latest specification
3551         https://bugs.webkit.org/show_bug.cgi?id=202183
3552
3553         Reviewed by Ross Kirsling.
3554
3555         * wtf/FeatureDefines.h:
3556
3557 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
3558
3559         Add DefaultHash<OptionSet<T>> and HashTrait<OptionSet<T>> specializations
3560         https://bugs.webkit.org/show_bug.cgi?id=204562
3561
3562         Reviewed by Daniel Bates.
3563
3564         * WTF.xcodeproj/project.pbxproj: Added OptionSetHash.h
3565         * wtf/CMakeLists.txt: Ditto.
3566         * wtf/OptionSet.h: Made StorageType public, and use C++14 types.
3567         * wtf/OptionSetHash.h: Added.
3568         (WTF::DefaultHash<OptionSet<T>>::Hash::hash):
3569         (WTF::DefaultHash<OptionSet<T>>::Hash::equal):
3570         (WTF::HashTraits<OptionSet<T>>::emptyValue):
3571         (WTF::HashTraits<OptionSet<T>>::constructDeletedValue):
3572         (WTF::HashTraits<OptionSet<T>>::isDeletedValue):
3573
3574 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
3575
3576         REGRESSION(r252770): [GTK][WPE] Remote inspector no longer works if debugger is in a different kind of system
3577         https://bugs.webkit.org/show_bug.cgi?id=204572
3578
3579         Reviewed by Žan Doberšek.
3580
3581         This patch adds the following changes:
3582
3583          - Use uint32_t instead of size_t to store the body size in the message header, because size_t has a different
3584            size in 32 and 64 bit platforms.
3585          - Use htonl/ntohl to write/read the body size in the header.
3586          - Add a flags byte to the header to include the message byte order. The sender always uses the host byter order
3587            and the receiver does the byte swapping if needed.
3588
3589         * wtf/glib/SocketConnection.cpp:
3590         (WTF::messageIsByteSwapped):
3591         (WTF::SocketConnection::readMessage):
3592         (WTF::SocketConnection::sendMessage):
3593
3594 2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>
3595
3596         REGRESSION(r252770): [GTK][WPE] Remote inspector broken in debug builds after r252770
3597         https://bugs.webkit.org/show_bug.cgi?id=204569
3598
3599         Reviewed by Žan Doberšek.
3600
3601         We need to call relaxAdoptionRequirement() in SocketConnection constructor because we are taking a reference for
3602         the read monitor lambda.
3603
3604         * wtf/glib/SocketConnection.cpp:
3605         (WTF::SocketConnection::SocketConnection):
3606
3607 2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>
3608
3609         Ran sort-Xcode-project-file.
3610
3611         Unreviewed.
3612
3613         * WTF.xcodeproj/project.pbxproj:
3614
3615 2019-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
3616
3617         Unreviewed. Try to fix the GTK WebDriver tests in the bots after r252770
3618
3619         They are failing in the bots because g_variant_new_from_data() is failing due to the given data not being
3620         properly aligned for the type being loaded. This is not a problem since GLib 2.60 that checks the alignment and
3621         reallocates the buffer in aligned memory only if needed. For previous versions we need to ensure the memory we
3622         pass to g_variant_new_from_data() is aligned.
3623
3624         * wtf/glib/SocketConnection.cpp:
3625         (WTF::SocketConnection::readMessage):
3626
3627 2019-11-22  Brent Fulgham  <bfulgham@apple.com>
3628
3629         Unreviewed FTW build fix after r252687.
3630
3631         * wtf/PlatformFTW.cmake:
3632
3633 2019-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3634
3635         [GTK][WPE] RemoteInspector: use sockets instead of DBus
3636         https://bugs.webkit.org/show_bug.cgi?id=204503
3637
3638         Reviewed by Žan Doberšek.
3639
3640         Add SocketConnection class.
3641
3642         * wtf/PlatformGTK.cmake:
3643         * wtf/PlatformWPE.cmake:
3644         * wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp.
3645         (WTF::GSocketMonitor::start):
3646         * wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h.
3647         (WTF::GSocketMonitor::isActive const):
3648         * wtf/glib/GTypedefs.h:
3649         * wtf/glib/GUniquePtr.h:
3650         * wtf/glib/SocketConnection.cpp: Added.
3651         (WTF::SocketConnection::SocketConnection):
3652         (WTF::SocketConnection::~SocketConnection):
3653         (WTF::SocketConnection::read):
3654         (WTF::SocketConnection::readMessage):
3655         (WTF::SocketConnection::sendMessage):
3656         (WTF::SocketConnection::write):
3657         (WTF::SocketConnection::waitForSocketWritability):
3658         (WTF::SocketConnection::close):
3659         (WTF::SocketConnection::didClose):
3660         * wtf/glib/SocketConnection.h: Added.
3661         (WTF::SocketConnection::create):
3662         (WTF::SocketConnection::isClosed const):
3663
3664 2019-11-21  Yusuke Suzuki  <ysuzuki@apple.com>
3665
3666         Unreviewed, rolling in again, regression is not caused by it
3667         https://bugs.webkit.org/show_bug.cgi?id=202471
3668
3669         * wtf/text/StringCommon.h:
3670         (WTF::findCommon):
3671
3672 2019-11-21  Commit Queue  <commit-queue@webkit.org>
3673
3674         Unreviewed, rolling out r252683 and r252721.
3675         https://bugs.webkit.org/show_bug.cgi?id=204475
3676
3677         13% regression in JetStream2/prepack-wtb (Requested by
3678         yusukesuzuki on #webkit).
3679
3680         Reverted changesets:
3681
3682         "Implement String.prototype.replaceAll"
3683         https://bugs.webkit.org/show_bug.cgi?id=202471
3684         https://trac.webkit.org/changeset/252683
3685
3686         "Unreviewed, address Darin's feedback on r252683."
3687         https://trac.webkit.org/changeset/252721
3688
3689 2019-11-21  Tuomas Karkkainen  <tuomas.webkit@apple.com>
3690
3691         add ASSERT_NOT_REACHED_WITH_MESSAGE and RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE
3692         https://bugs.webkit.org/show_bug.cgi?id=204445
3693
3694         Reviewed by Antti Koivisto.
3695
3696         Add assertions that combine ASSERT_NOT_REACHED and ASSERT_WITH_MESSAGE.
3697
3698         * wtf/Assertions.h:
3699
3700 2019-11-20  Ross Kirsling  <ross.kirsling@sony.com>
3701
3702         Unreviewed, address Darin's feedback on r252683.
3703
3704         * wtf/text/StringCommon.h:
3705         (WTF::findCommon):
3706
3707 2019-11-20  ChangSeok Oh  <changseok@webkit.org>
3708
3709         [GTK] Add ANGLE backend to GTK port
3710         https://bugs.webkit.org/show_bug.cgi?id=199060
3711
3712         Reviewed by Žan Doberšek.
3713
3714         The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
3715         and ANGLE has an egl context for WebGL. We want to make both live together
3716         so an exception is made where TEXTURE_MAPPER is enabled.
3717
3718         * wtf/Platform.h:
3719
3720 2019-11-20  Fujii Hironori  <Hironori.Fujii@sony.com>
3721
3722         [Win] Implement WTF::ThreadSpecific in WTF::Thread
3723         https://bugs.webkit.org/show_bug.cgi?id=204341
3724
3725         Reviewed by Brent Fulgham and Yusuke Suzuki.
3726
3727         Thread::destructTLS had a tricky code to defer destroying
3728         WTF::Thread in TLS in order to ensure WTF::Thread is destructed
3729         after other ThreadSpecific are destructed, which is a part of
3730         cause of nasty hanging issue in the process termination (Bug 204192).
3731
3732         This change implements WTF::ThreadSpecific in WTF::Thread by
3733         adding a new class Thread::SpecificStorage to manage TLS. Simplify
3734         Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp
3735
3736         * wtf/PlatformWin.cmake:
3737         * wtf/ThreadSpecific.h:
3738         (WTF::canBeGCThread>::ThreadSpecific):
3739         (WTF::canBeGCThread>::get):
3740         (WTF::canBeGCThread>::setInTLS):
3741         (WTF::canBeGCThread>::destroy):
3742         (WTF::canBeGCThread>::~ThreadSpecific): Deleted.
3743         * wtf/Threading.h:
3744         (WTF::Thread::specificStorage):
3745         (WTF::Thread::current):
3746         * wtf/win/ThreadSpecificWin.cpp: Removed.
3747         * wtf/win/ThreadingWin.cpp:
3748         (WTF::Thread::initializeTLSKey):
3749         (WTF::Thread::initializeTLS):
3750         (WTF::Thread::destructTLS):
3751         (WTF::Thread::SpecificStorage::allocateKey):
3752         (WTF::Thread::SpecificStorage::get):
3753         (WTF::Thread::SpecificStorage::set):
3754         (WTF::Thread::SpecificStorage::destroySlots):
3755         (): Deleted.
3756         (WTF::Thread::currentDying): Deleted.
3757         (WTF::Thread::get): Deleted.
3758
3759 2019-11-19  Ross Kirsling  <ross.kirsling@sony.com>
3760
3761         Implement String.prototype.replaceAll
3762         https://bugs.webkit.org/show_bug.cgi?id=202471
3763
3764         Reviewed by Yusuke Suzuki.
3765
3766         * wtf/text/StringCommon.h:
3767         (WTF::findCommon):
3768         Fix logic: "start > length" early out should come before "empty search string" early out.
3769
3770 2019-11-19  Yusuke Suzuki  <ysuzuki@apple.com>
3771
3772         [IndexedDB] IndexedDB's threading assertion should respect Web thread
3773         https://bugs.webkit.org/show_bug.cgi?id=204346
3774
3775         Reviewed by Daniel Bates.
3776
3777         * wtf/MainThread.cpp:
3778         (WTF::canCurrentThreadAccessThreadLocalData):
3779         (WTF::canAccessThreadLocalDataForThread): Deleted.
3780         * wtf/MainThread.h:
3781         * wtf/cocoa/MainThreadCocoa.mm:
3782         (WTF::canCurrentThreadAccessThreadLocalData):
3783         (WTF::canAccessThreadLocalDataForThread): Deleted.
3784
3785 2019-11-18  Fujii Hironori  <Hironori.Fujii@sony.com>
3786
3787         Remove self-defined C++14 features in StdLibExtras.h
3788         https://bugs.webkit.org/show_bug.cgi?id=204220
3789
3790         Reviewed by Ross Kirsling.
3791
3792         Remove std::conjunction, std::in_place_t and std::make_unique definitions.
3793         Remove unsued std::clz.
3794
3795         * wtf/StdLibExtras.h:
3796         (std::make_unique): Deleted.
3797         (std::exchange): Deleted.
3798         (std::clz): Deleted.
3799
3800 2019-11-18  Alex Christensen  <achristensen@webkit.org>
3801
3802         Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available
3803         https://bugs.webkit.org/show_bug.cgi?id=204159
3804         <rdar://problem/45894288>
3805
3806         Reviewed by Darin Adler.
3807
3808         * wtf/Platform.h:
3809
3810 2019-11-15  Yusuke Suzuki  <ysuzuki@apple.com>
3811
3812         [JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
3813         https://bugs.webkit.org/show_bug.cgi?id=204269
3814
3815         Reviewed by Saam Barati.
3816
3817         * wtf/MathExtras.h:
3818         (WTF::computeIndexingMask): Deleted.
3819         (WTF::preciseIndexMaskShiftForSize): Deleted.
3820         (WTF::preciseIndexMaskShift): Deleted.
3821         (WTF::opaque): Deleted.
3822         (WTF::preciseIndexMaskPtr): Deleted.
3823
3824 2019-11-14  Yusuke Suzuki  <ysuzuki@apple.com>
3825
3826         [JSC] BlockDirectory's bits should be compact
3827         https://bugs.webkit.org/show_bug.cgi?id=204149
3828
3829         Reviewed by Robin Morisset.
3830
3831         * wtf/FastBitVector.h:
3832         (WTF::fastBitVectorArrayLength):
3833         (WTF::FastBitVectorImpl::unsafeWords):
3834         (WTF::FastBitVectorImpl::unsafeWords const):
3835         (WTF::FastBitReference::FastBitReference):
3836         (WTF::FastBitReference::operator bool const):
3837         (WTF::FastBitReference::operator=):
3838         (WTF::FastBitVector::at):
3839         (WTF::FastBitVector::operator[]):
3840         (WTF::FastBitVector::BitReference::BitReference): Deleted.
3841         (WTF::FastBitVector::BitReference::operator bool const): Deleted.
3842         (WTF::FastBitVector::BitReference::operator=): Deleted.
3843
3844 2019-11-11  Ross Kirsling  <ross.kirsling@sony.com>
3845
3846         UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
3847         https://bugs.webkit.org/show_bug.cgi?id=204032
3848
3849         Reviewed by Yusuke Suzuki.
3850
3851         We have code assuming that the world's time zones haven't changed in the past decade,
3852         but Samoa changed from UTC-11 to UTC+13 at the beginning of 2012.
3853
3854         (Note: "Samoa" here means the Independent State of Samoa (Pacific/Apia) and not American Samoa (Pacific/Samoa).
3855                See https://en.wikipedia.org/wiki/Time_in_Samoa for more information.)
3856
3857         * wtf/DateMath.cpp:
3858         (WTF::calculateUTCOffset):
3859         Update "canned date" from 2009 to 2019.
3860
3861 2019-11-07  Mark Lam  <mark.lam@apple.com>
3862
3863         Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
3864         https://bugs.webkit.org/show_bug.cgi?id=203936
3865         <rdar://problem/56624724>
3866
3867         Reviewed by Saam Barati.
3868
3869         1. Add a StackCheck utility class so that we don't have to keep reinventing this
3870            every time we need to add stack checking somewhere.
3871         2. Rename some arguments and constants in StackBounds to be more descriptive of
3872            what they actually are.
3873
3874         * WTF.xcodeproj/project.pbxproj:
3875         * wtf/CMakeLists.txt:
3876         * wtf/StackBounds.h:
3877         (WTF::StackBounds::recursionLimit const):
3878         * wtf/StackCheck.h: Added.
3879         (WTF::StackCheck::StackCheck):
3880         (WTF::StackCheck::isSafeToRecurse):
3881
3882 2019-11-06  Mark Lam  <mark.lam@apple.com>
3883
3884         Remove remnants of support code for an upwards growing stack.
3885         https://bugs.webkit.org/show_bug.cgi?id=203942
3886
3887         Reviewed by Yusuke Suzuki.
3888
3889         We haven't supported an upwards growing stack in years, and a lot of code has
3890         since been written specifically with only a downwards growing stack in mind (e.g.
3891         the LLInt, the JITs).  Also, all our currently supported platforms use a downward
3892         growing stack.
3893
3894         We should remove the remnants of support code for an upwards growing stack.  The
3895         presence of that code is deceptive in that it conveys support for an upwards
3896         growing stack where this hasn't been the case in years.
3897
3898         * wtf/StackBounds.cpp:
3899         (WTF::StackBounds::newThreadStackBounds):
3900         (WTF::StackBounds::currentThreadStackBoundsInternal):
3901         (WTF::StackBounds::stackDirection): Deleted.
3902         (WTF::testStackDirection2): Deleted.
3903         (WTF::testStackDirection): Deleted.
3904         * wtf/StackBounds.h:
3905         (WTF::StackBounds::size const):
3906         (WTF::StackBounds::contains const):
3907         (WTF::StackBounds::recursionLimit const):
3908         (WTF::StackBounds::StackBounds):
3909         (WTF::StackBounds::isGrowingDownwards const):
3910         (WTF::StackBounds::checkConsistency const):
3911         (WTF::StackBounds::isGrowingDownward const): Deleted.
3912         * wtf/StackStats.cpp:
3913         (WTF::StackStats::CheckPoint::CheckPoint):
3914         (WTF::StackStats::CheckPoint::~CheckPoint):
3915         (WTF::StackStats::probe):
3916         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
3917
3918 2019-11-05  Mark Lam  <mark.lam@apple.com>
3919
3920         WTF::RunLoop should not depend on isMainThread() idiom.
3921         https://bugs.webkit.org/show_bug.cgi?id=203873
3922         <rdar://problem/56524251>
3923
3924         Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.
3925
3926         The isMainThread() idiom is only meaningful for WebCore.  It is less meaningful
3927         for JSC since a VM instance can be entered from multiple threads, as long as only
3928         one thread enters it at any time.  Hence, the concept of a main thread doesn't
3929         make sense at the JSC level.
3930
3931         Since r251036, we started using a WTF::String to represent the RunLoop mode.
3932         This caused problems for JSC clients when USE(CF) since it necessitated the use of
3933         StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
3934         the WTF::String.
3935
3936         To fix this problem, we should restore the original behavior of using CFStringRefs
3937         as the RunLoop mode token.
3938
3939         * wtf/RunLoop.h:
3940         (WTF::RunLoop::cycle): Deleted.
3941         * wtf/cf/RunLoopCF.cpp:
3942         (WTF::RunLoop::cycle):
3943         * wtf/generic/RunLoopGeneric.cpp:
3944         (WTF::RunLoop::cycle):
3945         * wtf/glib/RunLoopGLib.cpp:
3946         (WTF::RunLoop::cycle):
3947         * wtf/win/RunLoopWin.cpp:
3948         (WTF::RunLoop::cycle):
3949
3950 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
3951
3952         Add definitions of ANSI colors for colorful log output
3953         https://bugs.webkit.org/show_bug.cgi?id=203805
3954
3955         Reviewed by Saam Barati.
3956
3957         * WTF.xcodeproj/project.pbxproj:
3958         * wtf/AnsiColors.h: Added.
3959         * wtf/CMakeLists.txt:
3960
3961 2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>
3962
3963         move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore
3964         https://bugs.webkit.org/show_bug.cgi?id=203803
3965
3966         Reviewed by Saam Barati.
3967
3968         * WTF.xcodeproj/project.pbxproj:
3969         * wtf/PlatformMac.cmake:
3970         * wtf/cocoa/CrashReporter.cpp: Added.
3971         (WTF::setCrashLogMessage):
3972         * wtf/cocoa/CrashReporter.h: Added.
3973         * wtf/spi/cocoa/CrashReporterClientSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/CrashReporterClientSPI.h.
3974
3975 2019-11-02  Devin Rousso  <drousso@apple.com>
3976
3977         Web Inspector: Add diagnostic logging for frontend feature usage
3978         https://bugs.webkit.org/show_bug.cgi?id=203579
3979         <rdar://problem/56717410>
3980
3981         Reviewed by Brian Burg.
3982
3983         Original patch by Matt Baker <mattbaker@apple.com>.
3984
3985         * wtf/FeatureDefines.h:
3986         Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.
3987
3988 2019-11-01  Devin Rousso  <drousso@apple.com>
3989
3990         Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
3991         https://bugs.webkit.org/show_bug.cgi?id=203651
3992         <rdar://problem/56128726>
3993
3994         Reviewed by Brian Burg.
3995
3996         * wtf/Markable.h:
3997         (WTF::operator==):
3998         (WTF::operator!=):
3999         Add extra utility operators.
4000
4001 2019-10-31  Tim Horton  <timothy_horton@apple.com>
4002
4003         Turn on IOSurface support in the iOS Simulator
4004         https://bugs.webkit.org/show_bug.cgi?id=203026
4005         <rdar://problem/56320993>
4006
4007         Reviewed by Simon Fraser.
4008
4009         * wtf/Platform.h:
4010         Turn on HAVE(IOSURFACE) and USE(IOSURFACE_CANVAS_BACKING_STORE) in the simulator.
4011         Add HAVE(IOSURFACE_COREIMAGE_SUPPORT).
4012
4013 2019-10-31  Jer Noble  <jer.noble@apple.com>
4014
4015         [EME] Batch multiple key requests into one request and response
4016         https://bugs.webkit.org/show_bug.cgi?id=203580
4017         <rdar://problem/54853345>
4018
4019         Reviewed by Eric Carlson.
4020
4021         Support appending an r-value reference Vector to another.
4022
4023         * wtf/Vector.h:
4024         (WTF::minCapacity>::appendVector):
4025
4026 2019-10-31  Alex Christensen  <achristensen@webkit.org>
4027
4028         Remove unneeded HAVE_TIMINGDATAOPTIONS
4029         https://bugs.webkit.org/show_bug.cgi?id=202990
4030
4031         Reviewed by Brady Eidson.
4032
4033         * wtf/Platform.h:
4034
4035 2019-10-31  Yusuke Suzuki  <ysuzuki@apple.com>
4036
4037         [JSC] DateMath should have TimeClipped version
4038         https://bugs.webkit.org/show_bug.cgi?id=203550
4039
4040         Reviewed by Saam Barati.
4041
4042         We found that our Date constructor is slow because GregorianDateTime calculation takes so long.
4043         We are doing many `fmod`, floating division, `floor` etc. These operations, in particular `fmod`, takes
4044         very long time. As a result, 30% of JetStream2/date-format-xparb is taken by `fmod` function.
4045
4046         But since we are performance timeClip operation, double value in DateInstance is always Int52. We should
4047         have integer version of GregorianDateTime calculation which avoids many unnecessary fmod etc.
4048
4049         While integer division is truncate-to-zero, many Date calculation requires `floor(value / xxx)`. For now,
4050         we use integer fast path only when the value is Int52 and positive.
4051
4052         We see 10~ % improvement in JetStream2/date-format-xparb-SP (from 201 to 239).
4053
4054         * wtf/DateMath.cpp:
4055         (WTF::isLeapYear): Deleted.
4056         (WTF::daysInYear): Deleted.
4057         (WTF::daysFrom1970ToYear): Deleted.
4058         (WTF::msToDays): Deleted.
4059         (WTF::msToYear): Deleted.
4060         (WTF::dayInYear): Deleted.
4061         (WTF::msToMinutes): Deleted.
4062         (WTF::msToHours): Deleted.
4063         (WTF::monthFromDayInYear): Deleted.
4064         (WTF::checkMonth): Deleted.
4065         (WTF::dayInMonthFromDayInYear): Deleted.
4066         (WTF::dateToDaysFrom1970): Deleted.
4067         (WTF::timeClip): Deleted.
4068         * wtf/DateMath.h:
4069         (WTF::TimeClippedPositiveMilliseconds::TimeClippedPositiveMilliseconds):
4070         (WTF::TimeClippedPositiveMilliseconds::value const):
4071         (WTF::TimeClippedPositiveMilliseconds::asDouble const):
4072         (WTF::timeClip):
4073         (WTF::daysFrom1970ToYear):
4074         (WTF::daysFrom1970ToYearTimeClippedPositive):
4075         (WTF::isLeapYear):
4076         (WTF::daysInYear):
4077         (WTF::msToDays):
4078         (WTF::dayInYear):
4079         (WTF::dateToDaysFrom1970):
4080         (WTF::msToYear):
4081         (WTF::msToMinutes):
4082         (WTF::msToHours):
4083         (WTF::msToSeconds):
4084         (WTF::msToWeekDay):
4085         (WTF::monthFromDayInYear):
4086         (WTF::dayInMonthFromDayInYear):
4087         * wtf/GregorianDateTime.cpp:
4088         (WTF::GregorianDateTime::GregorianDateTime):
4089         * wtf/GregorianDateTime.h:
4090
4091 2019-10-30  Alex Christensen  <achristensen@webkit.org>
4092
4093         Prevent Mac CMake build from bit rotting
4094         https://bugs.webkit.org/show_bug.cgi?id=203647
4095
4096         Reviewed by Tim Horton.
4097
4098         * wtf/PlatformMac.cmake:
4099
4100 2019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>
4101
4102         [JSC] Date functions should have intrinsic
4103         https://bugs.webkit.org/show_bug.cgi?id=202187
4104
4105         Reviewed by Keith Miller.
4106
4107         * wtf/DateMath.h:
4108         * wtf/GregorianDateTime.cpp:
4109         (WTF::GregorianDateTime::setToCurrentLocalTime):
4110         * wtf/GregorianDateTime.h:
4111
4112 2019-10-30  Per Arne Vollan  <pvollan@apple.com>
4113
4114         It should be possible to create a mach sandbox extension for the WebContent process before the audit token is known
4115         https://bugs.webkit.org/show_bug.cgi?id=203618
4116
4117         Reviewed by Brent Fulgham.
4118
4119         Added SPI to create mach extension without PID or audit token.
4120
4121         * wtf/spi/darwin/SandboxSPI.h:
4122
4123 2019-10-30  Daniel Bates  <dabates@apple.com>
4124
4125         Add pretty printer for CompactPointerTuple
4126         https://bugs.webkit.org/show_bug.cgi?id=203495
4127
4128         Reviewed by Jer Noble.
4129
4130         #include <wtf/FastMalloc.h> for the definition of WTF_MAKE_FAST_ALLOCATED.
4131
4132         * wtf/CompactPointerTuple.h:
4133
4134 2019-10-29  Yusuke Suzuki  <ysuzuki@apple.com>
4135
4136         [JSC] Add fast path for String#localeCompare
4137         https://bugs.webkit.org/show_bug.cgi?id=202676
4138
4139         Reviewed by Mark Lam.
4140
4141         * wtf/text/StringView.h:
4142         (WTF::StringView::isAllASCII const):
4143
4144 2019-10-26  Chris Lord  <clord@igalia.com>
4145
4146         Put OffscreenCanvas behind a build flag
4147         https://bugs.webkit.org/show_bug.cgi?id=203146
4148
4149         Reviewed by Ryosuke Niwa.
4150
4151         * wtf/FeatureDefines.h:
4152
4153 2019-10-25  Andy Estes  <aestes@apple.com>
4154
4155         [Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
4156         https://bugs.webkit.org/show_bug.cgi?id=203396
4157
4158         Reviewed by Alex Christensen.
4159
4160         * wtf/FeatureDefines.h: Defined ENABLE_PREVIEW_CONVERTER.
4161
4162 2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>
4163
4164         [JSC] Figure out missing prepareCallOperation
4165         https://bugs.webkit.org/show_bug.cgi?id=203285
4166
4167         Reviewed by Mark Lam.
4168
4169         Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.
4170
4171         * wtf/Platform.h:
4172
4173 2019-10-23  Tim Horton  <timothy_horton@apple.com>
4174
4175         macCatalyst: Should dispatch contextmenu event on right click
4176         https://bugs.webkit.org/show_bug.cgi?id=203316
4177         <rdar://problem/54617376>
4178
4179         Reviewed by Wenson Hsieh.
4180
4181         * wtf/FeatureDefines.h:
4182
4183 2019-10-23  Truitt Savell  <tsavell@apple.com>
4184
4185         Unreviewed, rolling out r251261.
4186
4187         This broke multiple tests
4188
4189         Reverted changeset:
4190
4191         "Using version 1 CFRunloopSource for faster task dispatch"
4192         https://bugs.webkit.org/show_bug.cgi?id=202874
4193         https://trac.webkit.org/changeset/251261
4194
4195 2019-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
4196
4197         [iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan
4198         https://bugs.webkit.org/show_bug.cgi?id=203345
4199
4200         Reviewed by Simon Fraser.
4201
4202         * wtf/Platform.h:
4203
4204 2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>
4205
4206         Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
4207         https://bugs.webkit.org/show_bug.cgi?id=203274
4208
4209         Reviewed by Saam Barati.
4210
4211         * wtf/Platform.h:
4212
4213 2019-10-22  Antti Koivisto  <antti@apple.com>
4214
4215         operator==(Vector, Vector) should work with different inline capacities
4216         https://bugs.webkit.org/show_bug.cgi?id=203245
4217
4218         Reviewed by Alex Christensen.
4219
4220         Also allow different overflow behavior and minimum capacity.
4221
4222         * wtf/Vector.h:
4223         (WTF::operator==):
4224         (WTF::operator!=):
4225
4226 2019-10-22  Rob Buis  <rbuis@igalia.com>
4227
4228         https://bugs.webkit.org/show_bug.cgi?id=169667
4229         URL: protocol setter needs to be more restrictive around file
4230
4231         Reviewed by Alex Christensen.
4232
4233         Restrict setting protocol to "file" as indictaed in the spec [1].
4234
4235         Test: imported/w3c/web-platform-tests/url/url-setters.html
4236
4237         [1] https://url.spec.whatwg.org/#scheme-state steps 2.1.3 and 2.1.4.
4238
4239         * wtf/URL.cpp:
4240         (WTF::URL::setProtocol):
4241
4242 2019-10-21  Tim Horton  <timothy_horton@apple.com>
4243
4244         macCatalyst: Swipe navigation gestures do not work
4245         https://bugs.webkit.org/show_bug.cgi?id=203205
4246         <rdar://problem/54617473>
4247
4248         Reviewed by Wenson Hsieh.
4249
4250         * wtf/Platform.h:
4251         Add a new HAVE.
4252
4253 2019-10-20  Mark Lam  <mark.lam@apple.com>
4254
4255         Remove all uses of untagCodePtr in debugging code.
4256         https://bugs.webkit.org/show_bug.cgi?id=203188
4257         <rdar://problem/56453043> 
4258
4259         Reviewed by Yusuke Suzuki.
4260
4261         We want the ability to always assert on failure to authenticate in untagCodePtr
4262         (though we don't currently do that yet).
4263
4264         * wtf/PtrTag.cpp:
4265         (WTF::tagForPtr):
4266         * wtf/PtrTag.h:
4267         (WTF::retagCodePtrImpl):
4268         (WTF::tagCFunctionPtrImpl):
4269         (WTF::untagCFunctionPtrImpl):
4270         (WTF::assertIsCFunctionPtr):
4271         (WTF::isTaggedWith):
4272
4273 2019-10-19  Simon Fraser  <simon.fraser@apple.com>
4274
4275         Add support to TextStream for dumping HashMap<> and HashSet<>
4276         https://bugs.webkit.org/show_bug.cgi?id=202969
4277
4278         Reviewed by Dean Jackson.
4279         
4280         Make it possible to output HashMap<> and HashSet<> to TextStream,
4281         so long as key and value types are streamable. Also implement operator<<(char)
4282         so that chars show as ASCII, rather than numbers.
4283
4284         * wtf/text/TextStream.cpp:
4285         (WTF::TextStream::operator<<):
4286         * wtf/text/TextStream.h:
4287         (WTF::operator<<):
4288
4289 2019-10-18  Yusuke Suzuki  <ysuzuki@apple.com>
4290
4291         [JSC] Make ConcurrentJSLock Lock even if ENABLE_CONCURRENT_JS=OFF
4292         https://bugs.webkit.org/show_bug.cgi?id=202892
4293
4294         Reviewed by Mark Lam.
4295
4296         BaselineJIT also has concurrent compiler. ENABLE(CONCURRENT_JS) should not rely on ENABLE(DFG_JIT).
4297         It should rely on ENABLE(JIT) instead.
4298
4299         * wtf/Platform.h:
4300
4301 2019-10-17  Mark Lam  <mark.lam@apple.com>
4302
4303         Use constexpr in more places and remove some unnecessary external linkage.
4304         https://bugs.webkit.org/show_bug.cgi?id=203115
4305
4306         Reviewed by Yusuke Suzuki.
4307
4308         Also removed unused lockSpinLimit in Threading.h.
4309