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