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