GeneratePreferences.rb is noisy
[WebKit-https.git] / Source / WTF / ChangeLog
1 2020-10-11  Michael Catanzaro  <mcatanzaro@gnome.org>
2
3         GeneratePreferences.rb is noisy
4         https://bugs.webkit.org/show_bug.cgi?id=217589
5
6         Reviewed by Sam Weinig.
7
8         Don't print anything when the script is successful. Since it runs during the build, it
9         should only print errors.
10
11         * Scripts/GeneratePreferences.rb:
12
13 2020-10-11  Luming Yin  <luming_yin@apple.com>
14
15         Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur 
16         or later
17         https://bugs.webkit.org/show_bug.cgi?id=217594
18         rdar://70188497
19
20         Reviewed by Darin Adler.
21
22         To ensure successful Mac Catalyst WebKit builds, strip the patch version from 
23         TARGET_MAC_OS_X_VERSION_MAJOR by using two `base:`s on MACOSX_DEPLOYMENT_TARGET.
24
25         * Configurations/Base.xcconfig:
26
27 2020-10-11  Luming Yin  <luming_yin@apple.com>
28
29         Ignore deployment suffix and identifier when computing major OS version for macOS 
30         Big Sur and newer
31         https://bugs.webkit.org/show_bug.cgi?id=217584
32         rdar://70168426
33
34         Reviewed by Darin Adler.
35
36         Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions. 
37         Only use the deployment target base for macOS Big Sur and newer. Keep the manual 
38         definitions for legacy versions of macOS.
39
40         * Configurations/Base.xcconfig:
41
42 2020-10-09  Yusuke Suzuki  <ysuzuki@apple.com>
43
44         [JSC] Assert Operation and HostFunction are in JITOperationsList
45         https://bugs.webkit.org/show_bug.cgi?id=217500
46
47         Reviewed by Saam Barati.
48
49         This patch makes tagCodePtr etc. take PtrTag only from template parameter.
50         As a result, we can easily customize special verification process for specific PtrTag.
51         By leveraging this feature, we introduce HostFunction / JITOperation assertions for HostFunctionPtrTag and OperationPtrTag.
52
53         We also add tagCodePtrWithStackPointerForJITCall and untagCodePtrWithStackPointerForJITCall, they are used only when we need
54         to tag a pointer with stack pointer which is a dynamic PtrTag.
55
56         * wtf/PtrTag.cpp:
57         (WTF::tagForPtr):
58         * wtf/PtrTag.h:
59         (WTF::tagNativeCodePtrImpl):
60         (WTF::untagNativeCodePtrImpl):
61         (WTF::PtrTagTraits::tagCodePtr):
62         (WTF::PtrTagTraits::untagCodePtr):
63         (WTF::registerPtrTagLookup):
64         (WTF::reportBadTag):
65         (WTF::removeCodePtrTag):
66         (WTF::tagCodePtrImpl):
67         (WTF::tagCodePtr):
68         (WTF::untagCodePtrImpl):
69         (WTF::untagCodePtr):
70         (WTF::retagCodePtrImplHelper):
71         (WTF::retagCodePtrImpl):
72         (WTF::retagCodePtr):
73         (WTF::assertIsCFunctionPtr):
74         (WTF::isTaggedWith):
75         (WTF::tagCFunctionPtrImpl):
76         (WTF::tagCFunctionPtr):
77         (WTF::tagCFunction):
78         (WTF::untagCFunctionPtrImpl):
79         (WTF::untagCFunctionPtr):
80         (WTF::tagArrayPtr):
81         (WTF::untagArrayPtr):
82         (WTF::removeArrayPtrTag):
83         (WTF::retagArrayPtr):
84         (WTF::tagCodePtrWithStackPointerForJITCall):
85         (WTF::untagCodePtrWithStackPointerForJITCall):
86         (WTF::untagCodePtrImplHelper): Deleted.
87
88 2020-10-10  Sam Weinig  <weinig@apple.com>
89
90         Use WebPreference definitions from shared configuration files in WebCore (Part 1)
91         https://bugs.webkit.org/show_bug.cgi?id=217551
92
93         Reviewed by Darin Adler.
94
95         This begins using the WebPreferences*.yaml files for the generation of 
96         WebCore's Settings and InternalSettings classes. In this first part, we 
97         only are moving settings that already exist in the WebPreferences*.yaml 
98         files. A subsequent change will migrate the remaining additional settings
99         over.
100
101         To do this we must add default values for 'WebCore', which are unfortunately
102         still needed for things like the empty client based SVGImage and sanitizing 
103         web content functionality. We only need default WebCore values for preferences 
104         that are bound to WebCore::Settings. It would be good to eliminate the need
105         for these eventually, but that is not a goal of this change.
106
107         This also adds some new keys from WebCore's Settings.yaml:
108         - 'webcoreOnChange: *' called by WebCore::Settings when the setting changes.
109         - 'inspectorOverride: true' used to allow the inspector to override the setting.
110         - 'webcoreImplementation: custom' used to indicate that WebCore::SettingsBase 
111           implements the setting.
112         - 'webcoreGetter: *' used to provide an alternate name for the getter in WebCore::Settings.
113         - 'webcoreExcludeFromInternalSettings: true' used to exclude from WebCore's InternalSettings
114           bindings.
115
116         * Scripts/GeneratePreferences.rb:
117         Adds check that if the preference is bound to WebCore, it includes defaults for all
118         three front generators, 'WebKit', WebKitLegacy', and 'WebCore'.
119
120         * Scripts/Preferences/WebPreferences.yaml:
121         * Scripts/Preferences/WebPreferencesDebug.yaml:
122         * Scripts/Preferences/WebPreferencesExperimental.yaml:
123         * Scripts/Preferences/WebPreferencesInternal.yaml:
124         Migrates defaults and additional keys from Settings.yaml.
125
126 2020-10-09  Keith Miller  <keith_miller@apple.com>
127
128         Finalizers shouldn't run if events can't fire
129         https://bugs.webkit.org/show_bug.cgi?id=214508
130
131         Reviewed by Ryosuke Niwa.
132
133         Add a DropLockScope to make it easier to drop a lock for a short
134         piece of code.  Also, instead of deleting int Locker constructor
135         we should just delete the underlying type of the
136         NoLockingNecessary enum.
137
138         * wtf/Locker.h:
139         (WTF::Locker::~Locker):
140         (WTF::Locker::unlockEarly):
141         (WTF::Locker::Locker):
142         (WTF::Locker::operator=):
143         (WTF::Locker::unlock):
144         (WTF::DropLockForScope::DropLockForScope):
145         (WTF::DropLockForScope::~DropLockForScope):
146
147 2020-10-08  Yusuke Suzuki  <ysuzuki@apple.com>
148
149         Unreviewed, reland r268170
150         https://bugs.webkit.org/show_bug.cgi?id=217460
151
152         * wtf/PlatformRegisters.cpp:
153         (WTF::threadStateLRInternal):
154         (WTF::threadStatePCInternal):
155         * wtf/PtrTag.h:
156         (WTF::tagCodePtr):
157         (WTF::untagCodePtr):
158         (WTF::assertIsCFunctionPtr):
159         (WTF::assertIsNullOrCFunctionPtr):
160         (WTF::assertIsNotTagged):
161         (WTF::assertIsTagged):
162         (WTF::assertIsNullOrTagged):
163         (WTF::isTaggedWith):
164         (WTF::assertIsTaggedWith):
165         (WTF::assertIsNullOrTaggedWith):
166         (WTF::tagCFunctionPtr):
167         (WTF::tagCFunction):
168         (WTF::untagCFunctionPtr):
169         (WTF::tagInt):
170
171 2020-10-08  Commit Queue  <commit-queue@webkit.org>
172
173         Unreviewed, reverting r268170 and r268190.
174         https://bugs.webkit.org/show_bug.cgi?id=217502
175
176         Crash on ARM64E exclusively
177
178         Reverted changesets:
179
180         "[JSC] Restrict more ptr-tagging and avoid using
181         OperationPtrTag for JIT code"
182         https://bugs.webkit.org/show_bug.cgi?id=217460
183         https://trac.webkit.org/changeset/268170
184
185         "Unreviewed, build fix for ARM64E"
186         https://bugs.webkit.org/show_bug.cgi?id=217460
187         https://trac.webkit.org/changeset/268190
188
189 2020-10-08  Ryosuke Niwa  <rniwa@webkit.org>
190
191         Make it possible to send an arbitrary IPC message from JavaScript
192         https://bugs.webkit.org/show_bug.cgi?id=217423
193         <rdar://problem/69969351>
194
195         Reviewed by Geoffrey Garen.
196
197         Added a compile time flag (ENABLE_IPC_TESTING_API) and a runtime flag (IPCTestingAPIEnabled)
198         for the JavaScript API to test IPC.
199
200         * Scripts/GeneratePreferences.rb:
201         (Preference::nameLower): Keep IPC uppercase.
202         * Scripts/Preferences/WebPreferencesInternal.yaml: Added IPCTestingAPIEnabled.
203         * wtf/PlatformEnable.h: Added ENABLE_IPC_TESTING_API.
204
205 2020-10-08  Alex Christensen  <achristensen@webkit.org>
206
207         REGRESSION (r267763): [ iOS wk2 ] http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html is a constant failure
208         https://bugs.webkit.org/show_bug.cgi?id=217386
209
210         Reviewed by Brent Fulgham.
211
212         * Scripts/Preferences/WebPreferencesDebug.yaml:
213
214 2020-10-08  Yusuke Suzuki  <ysuzuki@apple.com>
215
216         Unreviewed, build fix for ARM64E
217         https://bugs.webkit.org/show_bug.cgi?id=217460
218
219         * wtf/PtrTag.h:
220         (WTF::tagCodePtr):
221         (WTF::untagCodePtr):
222         (WTF::assertIsCFunctionPtr):
223         (WTF::assertIsNullOrCFunctionPtr):
224         (WTF::assertIsNotTagged):
225         (WTF::assertIsTagged):
226         (WTF::assertIsNullOrTagged):
227         (WTF::isTaggedWith):
228         (WTF::assertIsTaggedWith):
229         (WTF::assertIsNullOrTaggedWith):
230
231 2020-10-07  Yusuke Suzuki  <ysuzuki@apple.com>
232
233         [JSC] Restrict more ptr-tagging and avoid using OperationPtrTag for JIT code
234         https://bugs.webkit.org/show_bug.cgi?id=217460
235
236         Reviewed by Saam Barati.
237
238         * wtf/PlatformRegisters.cpp:
239         (WTF::threadStateLRInternal):
240         (WTF::threadStatePCInternal):
241         * wtf/PtrTag.h:
242         (WTF::tagCFunctionPtr):
243         (WTF::tagCFunction):
244         (WTF::untagCFunctionPtr):
245         (WTF::tagInt):
246         (WTF::isTaggedWith):
247         (WTF::assertIsTaggedWith):
248         (WTF::assertIsNullOrTaggedWith):
249
250 2020-10-07  Keith Rollin  <krollin@apple.com>
251
252         Update post-processing rules for headers to not unnecessarily change timestamps
253         https://bugs.webkit.org/show_bug.cgi?id=217371
254         <rdar://problem/69992230>
255
256         Reviewed by Darin Adler.
257
258         Under XCBuild, the scripts employed in custom build rules can be
259         invoked in innocuous situations. A common example is when the user is
260         building from the command-line and they change the `make` output from
261         stdout to a file, or vice-versa. Changing the output changes the
262         setting of the COLOR_DIAGNOSTICS environment variable, which is enough
263         to cause XCBuild to think something is different and that the custom
264         build rule needs to be invoked. For the script's part, nothing
265         significant has changed, yet it post-processes the header files,
266         causing their modification dates to change, causing downstream
267         rebuilds to occur.
268
269         Fix this problem by adopting an approach that doesn't modify the
270         post-processed header files unless their contents actually change.
271
272         * Scripts/GeneratePreferences.rb:
273
274 2020-10-07  Devin Rousso  <drousso@apple.com>
275
276         Add missing `#define` for `PENCILKIT_TEXT_INPUT` flag
277         https://bugs.webkit.org/show_bug.cgi?id=217436
278         <rdar://problem/69720219>
279
280         Reviewed by Wenson Hsieh.
281
282         * wtf/PlatformHave.h:
283
284 2020-10-07  Tadeu Zagallo  <tzagallo@apple.com>
285
286         Add maximum depth check to RedBlackTree
287         https://bugs.webkit.org/show_bug.cgi?id=217249
288         <rdar://problem/69432957>
289
290         Reviewed by Saam Barati.
291
292         We limit all tree traversals to 128 levels deep. That's a very conservative upper bound that
293         would work for a tree that used all of the available address space.
294
295         * wtf/RedBlackTree.h:
296
297 2020-10-07  Aditya Keerthi  <akeerthi@apple.com>
298
299         REGRESSION: Date/time pickers are not displayed in UIWebViews
300         https://bugs.webkit.org/show_bug.cgi?id=217341
301         <rdar://problem/66881739>
302
303         Reviewed by Wenson Hsieh.
304
305         Date/time inputs were incorrectly disabled by default on
306         PLATFORM(IOS_FAMILY) in WebPreferencesInternal.
307
308         * Scripts/Preferences/WebPreferencesInternal.yaml:
309
310 2020-10-06  Simon Fraser  <simon.fraser@apple.com>
311
312         Redundant rendering updates can be scheduled from inside Page::updateRendering()
313         https://bugs.webkit.org/show_bug.cgi?id=216726
314
315         Reviewed by Tim Horton.
316
317         Make it possible to dump Vectors with inline capacity.
318
319         * wtf/text/TextStream.h:
320         (WTF::operator<<):
321
322 2020-10-06  Youenn Fablet  <youenn@apple.com>
323
324         Enable video capture in WebProcess by default on MacOS
325         https://bugs.webkit.org/show_bug.cgi?id=217385
326         <rdar://problem/69999542>
327
328         Reviewed by Sam Weinig.
329
330         * Scripts/Preferences/WebPreferencesInternal.yaml:
331
332 2020-10-06  Alex Christensen  <achristensen@webkit.org>
333
334         Align URL setters with reasonably behaving other browsers
335         https://bugs.webkit.org/show_bug.cgi?id=217366
336
337         Reviewed by Youenn Fablet.
338
339         Firefox ignores everything after '/', '?', '#', and '\' in special URL schemes when setting the host to a new value.
340         Chrome doesn't add another '/' to the beginning of the path if it's a special scheme and starts with '\'.
341         I think these behaviors make sense, and aligning with these behaviors makes it so there are no tests in url-setters.html
342         that any other browser passes that we don't also pass.
343         Once https://github.com/whatwg/url/issues/551 is resolved this will also be reflected in spec wording.
344
345         * wtf/URL.cpp:
346         (WTF::URL::hasSpecialScheme const):
347         (WTF::forwardSlashHashOrQuestionMark):
348         (WTF::slashHashOrQuestionMark):
349         (WTF::URL::setHost):
350         (WTF::URL::setPath):
351         * wtf/URL.h:
352
353 2020-10-05  Sam Weinig  <weinig@apple.com>
354
355         Add implementation of <filesystem> to WTF for macOS 10.14
356         https://bugs.webkit.org/show_bug.cgi?id=217302
357
358         Reviewed by Darin Adler.
359
360         Imports a copy of <filesystem> and its needed implementation files
361         from libc++ (r343838) and modifies them to build outside of  libc++. 
362         This is only needed and only built for versions of macOS < 10.15
363         and can be dropped when we require 10.15.
364
365         * WTF.xcodeproj/project.pbxproj:
366         * wtf/CMakeLists.txt:
367         * wtf/StdFilesystem.cpp: Added.
368         * wtf/StdFilesystem.h: Added.
369         * LICENSE-libc++.txt: Added.
370
371 2020-10-05  Rob Buis  <rbuis@igalia.com>
372
373         WebKit doesn't parse "#" as delimiter for fragment identifier in data URIs
374         https://bugs.webkit.org/show_bug.cgi?id=68089
375
376         Reviewed by Alex Christensen, Ryosuke Niwa, and Darin Adler.
377
378         * wtf/URL.h:
379         * wtf/spi/darwin/dyldSPI.h:
380
381 2020-10-05  Aditya Keerthi  <akeerthi@apple.com>
382
383         [Contact Picker API] Introduce bindings for the Contact Picker API
384         https://bugs.webkit.org/show_bug.cgi?id=216793
385         <rdar://problem/69317957>
386
387         Reviewed by Wenson Hsieh.
388
389         * Scripts/Preferences/WebPreferencesExperimental.yaml:
390
391         Add experimental preference for the Contact Picker API.
392
393 2020-10-05  Sam Weinig  <weinig@apple.com>
394
395         Remove support for enabling subpixel CSSOM values, it's off by default everywhere and known to be not-compatible with the web
396         https://bugs.webkit.org/show_bug.cgi?id=217300
397
398         Reviewed by Simon Fraser.
399
400         Remove preference for toggling subpixel CSSOM values.
401
402         * Scripts/Preferences/WebPreferences.yaml:
403
404 2020-10-05  Alex Christensen  <achristensen@webkit.org>
405
406         URLParser should fail to parse URLs with hosts containing invalid punycode encodings
407         https://bugs.webkit.org/show_bug.cgi?id=217285
408
409         Reviewed by Darin Adler.
410
411         URLParser has a fast path for parsing hosts that are all ASCII, but that does not validate hosts that are invalid punycode, such as "xn--".
412         Since all punycode encoded strings start with "xn--", if the input string starts with "xn--" then skip the fast path and let ICU decide if it's valid.
413
414         * wtf/URLParser.cpp:
415         (WTF::URLParser::domainToASCII):
416         (WTF::URLParser::startsWithXNDashDash):
417         (WTF::URLParser::parseHostAndPort):
418         * wtf/URLParser.h:
419
420 2020-10-05  Alex Christensen  <achristensen@webkit.org>
421
422         When appending a Windows drive letter to a file URL, remove any path we may have copied from the base URL
423         https://bugs.webkit.org/show_bug.cgi?id=217284
424
425         Reviewed by Darin Adler.
426
427         This fixes a web platform test and adds another to verify that we remove the entire path, not just the last segment like we do with ..
428         Edge has implemented this, and in order to have a platform-independent URL we should do it too.
429
430         * wtf/URLParser.cpp:
431         (WTF::URLParser::isWindowsDriveLetter):
432         (WTF::URLParser::appendWindowsDriveLetter):
433         (WTF::URLParser::parse):
434
435 2020-10-05  Alex Christensen  <achristensen@webkit.org>
436
437         Fix UTF-8 encoding in URL parsing
438         https://bugs.webkit.org/show_bug.cgi?id=217289
439
440         Reviewed by Darin Adler.
441
442         This matches the behavior of Firefox and the Unicode and whatwg encoding specifications.
443
444         * wtf/URLParser.cpp:
445         (WTF::URLParser::utf8PercentEncode):
446         (WTF::URLParser::utf8QueryEncode):
447         (WTF::URLParser::parseHostAndPort):
448
449 2020-10-03  Yusuke Suzuki  <ysuzuki@apple.com>
450
451         [JSC] Introduce JITOperationList to validate JIT-caged pointers
452         https://bugs.webkit.org/show_bug.cgi?id=217261
453
454         Reviewed by Saam Barati.
455
456         * wtf/PlatformCallingConventions.h:
457         * wtf/PlatformEnable.h:
458
459 2020-10-03  Alex Christensen  <achristensen@webkit.org>
460
461         Add extra slash after empty host copied from base URL if path is also empty
462         https://bugs.webkit.org/show_bug.cgi?id=217278
463
464         Reviewed by Darin Adler.
465
466         * wtf/URLParser.cpp:
467         (WTF::URLParser::parse):
468
469 2020-10-03  Alex Christensen  <achristensen@webkit.org>
470
471         "http:" should not be a valid URL
472         https://bugs.webkit.org/show_bug.cgi?id=217250
473
474         Reviewed by Brady Eidson.
475
476         Same with https, ws, wss, and for some reason ftp.
477         This matches the URL specification and Chrome and Firefox.
478
479         * wtf/URLParser.cpp:
480         (WTF::URLParser::parse):
481
482 2020-10-03  Aditya Keerthi  <akeerthi@apple.com>
483
484         [macOS] Enable date, time, and datetime-local input types
485         https://bugs.webkit.org/show_bug.cgi?id=217229
486         <rdar://problem/69882757>
487
488         Reviewed by Sam Weinig.
489
490         * Scripts/Preferences/WebPreferencesInternal.yaml:
491
492 2020-10-02  Alex Christensen  <achristensen@webkit.org>
493
494         Copy host from base file URL
495         https://bugs.webkit.org/show_bug.cgi?id=217170
496
497         Reviewed by Brady Eidson.
498
499         This matches Chrome and the URL specification.
500         Covered by newly passing web platform tests.
501
502         I also updated the web platform tests from https://github.com/web-platform-tests/wpt/pull/25716
503         which aligns with Safari in cases except copying of the host from base file URLs.
504
505         The implementation pushes copying from the base URL downstream in the parsing process to where it is in the URL specification
506         so that we can properly decide how much of the base URL to copy and so we can copy it into the right place in the result URL.
507
508         I also updated an assertion that makes sure that we re-use the input String if possible because there are cases where we copy
509         part of the parent URL, which is a "syntax violation" (meaning we copy the string parts and assemble a new one), then re-assemble
510         a new String that is equal to the input string.  This is not a problem, it just needed to be reflected in the assertion.
511
512         * wtf/URLParser.cpp:
513         (WTF::URLParser::URLParser):
514         (WTF::URLParser::parse):
515
516 2020-10-02  Youenn Fablet  <youenn@apple.com>
517
518         Add AVAssetWriter SPI header
519         https://bugs.webkit.org/show_bug.cgi?id=217169
520         <rdar://problem/69793050>
521
522         Reviewed by Eric Carlson.
523
524         * wtf/PlatformHave.h:
525         Remove dependency on AVAssetWriter_private.h.
526         Introduce HAVE_AVASSETWRITERDELEGATE_API for older OSes that only have delegate as SPI.
527
528 2020-10-01  Truitt Savell  <tsavell@apple.com>
529
530         Unreviewed, reverting r267841.
531
532         Broke Catalina Builds
533
534         Reverted changeset:
535
536         "Add AVAssetWriter SPI header"
537         https://bugs.webkit.org/show_bug.cgi?id=217169
538         https://trac.webkit.org/changeset/267841
539
540 2020-10-01  Youenn Fablet  <youenn@apple.com>
541
542         Add AVAssetWriter SPI header
543         https://bugs.webkit.org/show_bug.cgi?id=217169
544         <rdar://problem/69793050>
545
546         Reviewed by Eric Carlson.
547
548         * wtf/PlatformHave.h:
549         Remove dependency on AVAssetWriter_private.h
550
551 2020-10-01  Alex Christensen  <achristensen@webkit.org>
552
553         Non-special URLs are not idempotent
554         https://bugs.webkit.org/show_bug.cgi?id=215762
555
556         Reviewed by Tim Horton.
557
558         https://github.com/whatwg/url/pull/505 added an interesting edge case to the URL serialization:
559         "If url’s host is null, url’s path’s size is greater than 1, and url’s path[0] is the empty string, then append U+002F (/) followed by U+002E (.) to output."
560         The problem was that URLs like "a:/a/..//a" would be parsed into "a://a" with a pathname of "//a" and an empty host.  If "a://a" was then reparsed, it would again have an href of "a://a"
561         but its host would be "a" and it would have an empty path.  There is consensus that URL parsing should be idempotent, so we need to do something different here.
562         According to https://github.com/whatwg/url/issues/415#issuecomment-419197290 this follows what Edge did (and then subsequently abandoned when they switched to Chromium)
563         to make URL parsing idempotent by adding "/." before the path in the edge case of a URL with a non-special scheme (not http, https, wss, etc.) and a null host and a non-empty path that
564         has an empty first segment.  All the members of the URL remain unchanged except the full serialization (href).  This is not important in practice, but important in theory.
565
566         Our URL parser tries very hard to use the exact same WTF::String object given as input if it can.  However, this step is better implemented as a post-processing step that will almost never happen
567         because otherwise we would have to parse the entire path twice to find out if we need to add "./" or if the "./" that may have already been there needs to stay.  This is illustrated with the test URL
568         "t:/.//p/../../../..//x" which does need the "./".
569
570         In the common case, this adds one well-predicted branch to URL parsing, so I expect performance to be unaffected.  Since this is such a rare edge case of URLs, I expect no compatibility problems.
571
572         * wtf/URL.cpp:
573         (WTF::URL::pathStart const):
574         * wtf/URL.h:
575         (WTF::URL::pathStart const): Deleted.
576         * wtf/URLParser.cpp:
577         (WTF::URLParser::copyURLPartsUntil):
578         (WTF::URLParser::URLParser):
579         (WTF::URLParser::needsNonSpecialDotSlash const):
580         (WTF::URLParser::addNonSpecialDotSlash):
581         * wtf/URLParser.h:
582
583 2020-09-30  Commit Queue  <commit-queue@webkit.org>
584
585         Unreviewed, reverting r267795.
586         https://bugs.webkit.org/show_bug.cgi?id=217135
587
588         Incorrect fix.
589
590         Reverted changeset:
591
592         "REGRESSION(r259582): Build fails on aarch64 Linux with WebKit
593         2.30.1 on LLIntOffsetsExtractor.cpp.o"
594         https://bugs.webkit.org/show_bug.cgi?id=217079
595         https://trac.webkit.org/changeset/267795
596
597 2020-09-30  Mike Gorse  <mgorse@suse.com>
598
599         REGRESSION(r259582): Build fails on aarch64 Linux with WebKit 2.30.1 on LLIntOffsetsExtractor.cpp.o
600         https://bugs.webkit.org/show_bug.cgi?id=217079
601
602         Reviewed by Michael Catanzaro.
603
604         * wtf/PlatformEnable.h: Only define USE_JUMP_ISLANDS if JIT is enabled.
605
606 2020-09-30  Alexander Mikhaylenko  <alexm@gnome.org>
607
608         [GTK] Chassis type check fails if the value is quoted
609         https://bugs.webkit.org/show_bug.cgi?id=217123
610
611         Reviewed by Carlos Garcia Campos.
612
613         Sometimes the chassis type can be quoted, in this case we'll fail to
614         parse it and fall back to desktop type. Unquote the string before
615         attempting to parse it.
616
617         * wtf/glib/ChassisType.cpp:
618         (WTF::readMachineInfoChassisType):
619
620 2020-09-29  Sam Weinig  <weinig@apple.com>
621
622         [Preferences] Adopt shared preferences configuration and script in WebKit
623         https://bugs.webkit.org/show_bug.cgi?id=217075
624
625         Reviewed by Darin Adler.
626
627         * Scripts/GeneratePreferences.rb:
628         Simplify input by passing the templates as complete paths, rather than by name + template directory.
629
630         * Scripts/Preferences/WebPreferences.yaml:
631         * Scripts/Preferences/WebPreferencesDebug.yaml:
632         * Scripts/Preferences/WebPreferencesExperimental.yaml:
633         * Scripts/Preferences/WebPreferencesInternal.yaml:
634         Fix some mistakes / things left out to make WebKit defaults and names match current WebKit names and defaults.
635
636         * wtf/CMakeLists.txt:
637         Copy all the preferences and scripts into WTF_SCRIPTS_DIR so it can be accessed by WebKit.
638
639 2020-09-29  Alex Christensen  <achristensen@webkit.org>
640
641         Remove plist-based ResourceLoadStatistics storage, which has been replaced by database-based storage
642         https://bugs.webkit.org/show_bug.cgi?id=217063
643
644         Reviewed by John Wilander.
645
646         * Scripts/Preferences/WebPreferencesInternal.yaml:
647
648 2020-09-28  Yusuke Suzuki  <ysuzuki@apple.com>
649
650         Use JSC_DECLARE_JIT_OPERATION / JSC_DECLARE_CUSTOM_GETTER / JSC_DECLARE_CUSTOM_SETTER
651         https://bugs.webkit.org/show_bug.cgi?id=217071
652
653         Reviewed by Keith Miller.
654
655         Add the following macros.
656
657             1. JSC_DECLARE_JIT_OPERATION
658             2. JSC_DEFINE_JIT_OPERATION
659             3. JSC_DECLARE_CUSTOM_GETTER
660             4. JSC_DEFINE_CUSTOM_GETTER
661             5. JSC_DECLARE_CUSTOM_SETTER
662             6. JSC_DEFINE_CUSTOM_SETTER
663
664         * wtf/PlatformCallingConventions.h:
665
666 2020-09-28  Sam Weinig  <weinig@apple.com>
667
668         [Preferences] Move GeneratePreferences.rb and yaml configuration files to WTF to be shared
669         https://bugs.webkit.org/show_bug.cgi?id=217056
670
671         Reviewed by Darin Adler.
672
673         Move GeneratePreferences.rb and WebPreferences*.yaml files from WebKitLegacy to WTF, and install them into the existing
674         $SDKROOT/usr/local/install/wtf/Scripts for use by down stack projects.
675
676         * Scripts/GeneratePreferences.rb: Copied from Source/WebKitLegacy/mac/Scripts/GeneratePreferences.rb.
677         * Scripts/Preferences: Added.
678         * Scripts/Preferences/WebPreferences.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferences.yaml.
679         * Scripts/Preferences/WebPreferencesDebug.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesDebug.yaml.
680         * Scripts/Preferences/WebPreferencesExperimental.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesExperimental.yaml.
681         * Scripts/Preferences/WebPreferencesInternal.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesInternal.yaml.
682         * WTF.xcodeproj/project.pbxproj:
683
684 2020-09-25  Yusuke Suzuki  <ysuzuki@apple.com>
685
686         [JSC] Introduce JSC_DECLARE_HOST_FUNCTION / JSC_DEFINE_HOST_FUNCTION to make host function definition easy-to-scanned for JIT-caging
687         https://bugs.webkit.org/show_bug.cgi?id=216966
688
689         Reviewed by Saam Barati.
690
691         Rename JSC_HOST_CALL to JSC_HOST_CALL_ATTRIBUTE, and introduce JSC_DECLARE_HOST_FUNCTION / JSC_DEFINE_HOST_FUNCTION.
692         We also introduce JSC_ANNOTATE_HOST_FUNCTION if the function is not defined as free-function[1].
693
694         [1]: https://stackoverflow.com/questions/4861914/what-is-the-meaning-of-the-term-free-function-in-c
695
696         * wtf/PlatformCallingConventions.h:
697
698 2020-09-25  Chris Dumez  <cdumez@apple.com>
699
700         Get rid of AudioNode::RefType
701         https://bugs.webkit.org/show_bug.cgi?id=216945
702
703         Reviewed by Darin Adler.
704
705         Add third template parameter to RefPtr allowing to define the traits
706         from incrementing / decrementing the refcount. The default traits
707         call ref() / deref() but this can now be customized to call other
708         functions.
709
710         * wtf/CompactRefPtrTuple.h:
711         * wtf/Forward.h:
712         * wtf/RefPtr.h:
713         (WTF::DefaultRefDerefTraits::refIfNotNull):
714         (WTF::DefaultRefDerefTraits::derefIfNotNull):
715         (WTF::RefPtr::RefPtr):
716         (WTF::RefPtr::~RefPtr):
717         (WTF::V>::RefPtr):
718         (WTF::V>::leakRef):
719         (WTF::=):
720         (WTF::V>::swap):
721         (WTF::swap):
722         (WTF::operator==):
723         (WTF::operator!=):
724         (WTF::static_pointer_cast):
725         (WTF::adoptRef):
726         (WTF::is):
727
728 2020-09-25  Antti Koivisto  <antti@apple.com>
729
730         [LFC][Integration] Enable on Apple Windows port
731         https://bugs.webkit.org/show_bug.cgi?id=216928
732         <rdar://problem/69505961>
733
734         Reviewed by Zalan Bujtas.
735
736         * wtf/PlatformEnableWinApple.h:
737
738 2020-09-24  Keith Miller  <keith_miller@apple.com>
739
740         CSS angle unit conversions should consistently use the same associativity
741         https://bugs.webkit.org/show_bug.cgi?id=216906
742
743         Reviewed by Simon Fraser.
744
745         Right now we inconsistently associate our floating point math for
746         angle unit conversions. In particular,
747         conversionToCanonicalUnitsScaleFactor expects there to be a single
748         fixed constant we can multiply by to change units. However, the
749         various conversion functions in WTF are not associated in this
750         way. e.g. rad2deg does ((radian * 180) / pi) rather than
751         (radian  *(180 / pi)). Since FP math is NOT associative these
752         produce different results. For example, 1.57 radians is
753         89.954373835539258 degrees in the first case but
754         89.954373835539243 in the second.
755
756         This patch changes those WTF functions to operate on a single
757         scale factor when converting to/from the canonical
758         unit. Conversions between non-canonical units first convert to the
759         canonical unit (degree).
760
761         * wtf/MathExtras.h:
762         (deg2rad):
763         (rad2deg):
764         (deg2grad):
765         (grad2deg):
766         (deg2turn):
767         (turn2deg):
768         (rad2grad):
769         (grad2rad):
770
771 2020-09-24  Antti Koivisto  <antti@apple.com>
772
773         [LFC][Integration] Enable on Apple Windows port
774         https://bugs.webkit.org/show_bug.cgi?id=216928
775
776         Reviewed by Sam Weinig.
777
778         * wtf/PlatformEnableWinApple.h:
779
780         For consistency.
781
782 2020-09-23  Fujii Hironori  <Hironori.Fujii@sony.com>
783
784         Remove ENABLE_SVG_FONTS macro
785         https://bugs.webkit.org/show_bug.cgi?id=216850
786
787         Reviewed by Don Olmstead.
788
789         * wtf/PlatformEnable.h:
790
791 2020-09-23  Youenn Fablet  <youenn@apple.com>
792
793         Add support for HTMLMediaElement.setSinkId
794         https://bugs.webkit.org/show_bug.cgi?id=216696
795
796         Reviewed by Eric Carlson.
797
798         Add HAVE_AUDIO_OUTPUT_DEVICE_UNIQUE_ID.
799         * wtf/PlatformHave.h:
800
801 2020-09-21  Yusuke Suzuki  <ysuzuki@apple.com>
802
803         [JSC] BigInt should work with Map / Set
804         https://bugs.webkit.org/show_bug.cgi?id=216667
805
806         Reviewed by Robin Morisset.
807
808         * wtf/Hasher.h:
809         (WTF::Hasher::hash const):
810         (WTF::add):
811
812 2020-09-21  Mark Lam  <mark.lam@apple.com>
813
814         Move some LLInt globals into JSC::Config.
815         https://bugs.webkit.org/show_bug.cgi?id=216685
816         rdar://68964544
817
818         Reviewed by Keith Miller.
819
820         1. Introduce ConfigAlignment as a distinct value from ConfigSizeToProtect.
821            This is because ConfigSizeToProtect is now larger than 1 CeilingOnPageSize on
822            some platforms, but ConfigAlignment only needs to match CeilingOnPageSize.
823
824         2. Introduced ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) to disable using the
825            unified g_config record for Windows ports.
826
827            This is needed because WTF is built as a DLL on Windows.  offlineasm does not
828            know how to resolve a DLL exported variable.  Additionally, the Windows ports
829            have never supported freezing of the Config record to begin with.  So, we're
830            working around this by disabling ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD)
831            for Windows.  This allows JSC to have its own g_jscConfig record, which solves
832            this issue for now.
833
834         * wtf/PlatformEnable.h:
835         * wtf/WTFConfig.cpp:
836         (WTF::Config::permanentlyFreeze):
837         * wtf/WTFConfig.h:
838
839 2020-09-18  Don Olmstead  <don.olmstead@sony.com>
840
841         [WebGPU] Add ENABLE(WHLSL_COMPILER) guard
842         https://bugs.webkit.org/show_bug.cgi?id=216713
843
844         Reviewed by Myles C. Maxfield.
845
846         Adds a default for ENABLE_WHLSL_COMPILER on Cocoa platforms.
847
848         * wtf/PlatformEnable.h:
849         * wtf/PlatformEnableCocoa.h:
850
851 2020-09-17  Devin Rousso  <drousso@apple.com>
852
853         Web Inspector: REGRESSION(r266885): fix open source build
854         https://bugs.webkit.org/show_bug.cgi?id=216675
855
856         Reviewed by Timothy Hatcher.
857
858         Add back methods used by `WebInspector.framework`.
859
860         * wtf/JSONValues.h:
861         * wtf/JSONValues.cpp:
862         (WTF::JSONImpl::Value::asDouble const): Added.
863         (WTF::JSONImpl::Value::asInteger const): Added.
864         (WTF::JSONImpl::Value::asString const): Added.
865         (WTF::JSONImpl::ObjectBase::getBoolean const): Added.
866         (WTF::JSONImpl::ObjectBase::getString const): Added.
867         (WTF::JSONImpl::ObjectBase::getObject const): Added.
868         (WTF::JSONImpl::ObjectBase::getArray const): Added.
869         (WTF::JSONImpl::ObjectBase::getValue const): Added.
870
871 2020-09-16  Stephan Szabo  <stephan.szabo@sony.com>
872
873         Remove ENABLE_METER_ELEMENT
874         https://bugs.webkit.org/show_bug.cgi?id=216582
875
876         Reviewed by Fujii Hironori.
877
878         With PlayStation finally planning to turn this on,
879         no ports had this disabled, so remove the enable flag.
880
881         * wtf/PlatformEnable.h:
882
883 2020-09-16  Alex Christensen  <achristensen@webkit.org>
884
885         Remove unneeded HAVE_FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER
886         https://bugs.webkit.org/show_bug.cgi?id=216572
887
888         Reviewed by Youenn Fablet.
889
890         * wtf/PlatformHave.h:
891
892 2020-09-15  David Kilzer  <ddkilzer@apple.com>
893
894         WebKit should support building with clang ThreadSanitizer enabled
895         <https://webkit.org/b/216318>
896         <rdar://problem/31615729>
897
898         Reviewed by Darin Adler.
899
900         This patch doesn't attempt to resolve every potential false
901         positive, but makes it easy to build WebKit with TSan enabled.
902
903         * WTF.xcodeproj/project.pbxproj:
904         * wtf/CMakeLists.txt:
905         - Add ThreadSanitizerSupport.h to the project.
906
907         * wtf/Compiler.h:
908         - Define TSAN_ENABLED and SUPPRESS_TSAN macros.
909
910         * wtf/Locker.h:
911         (WTF::Locker::~Locker):
912         (WTF::Locker::unlockEarly):
913         (WTF::Locker::operator=):
914         (WTF::Locker::lock):
915         - Instrument lock/unlock methods for ThreadSanitizer.
916
917         * wtf/ThreadSanitizerSupport.h: Add.
918         (AnnotateHappensBefore):
919         (AnnotateHappensAfter):
920         - Declare TSan runtime functions needed to annotate WTF::Locker.
921         (TSAN_ANNOTATE_HAPPENS_BEFORE):
922         (TSAN_ANNOTATE_HAPPENS_AFTER):
923         - Define macros used to call TSan runtime functions if TSan is
924           enabled.
925
926 2020-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
927
928         [macOS Big Sur] CGFontRenderingGetFontSmoothingDisabled() is no longer useful
929         https://bugs.webkit.org/show_bug.cgi?id=216588
930         <rdar://problem/68657748>
931
932         Reviewed by Simon Fraser.
933
934         We can eliminate WebKit's use of it to eventually phase it out entirely.
935
936         * wtf/PlatformHave.h:
937
938 2020-09-12  Simon Fraser  <simon.fraser@apple.com>
939
940         Convert TextStream::FormattingFlags to an OptionSet<>
941         https://bugs.webkit.org/show_bug.cgi?id=216443
942
943         Reviewed by Darin Adler.
944
945         Use an OptionSet<> for FormattingFlags.
946
947         * wtf/text/TextStream.h:
948         (WTF::TextStream::TextStream):
949         (WTF::TextStream::formattingFlags const):
950         (WTF::TextStream::setFormattingFlags):
951         (WTF::TextStream::hasFormattingFlag const):
952
953 2020-09-11  Yusuke Suzuki  <ysuzuki@apple.com>
954
955         [JSC] Canonicalize "true" unicode extension type value to ""
956         https://bugs.webkit.org/show_bug.cgi?id=216224
957
958         Reviewed by Ross Kirsling.
959
960         * wtf/text/StringView.h:
961         (WTF::StringView::characterAt const):
962         (WTF::StringView::operator[] const):
963
964 2020-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
965
966         [Cocoa] Migrate CoreText-specific code from ***Cocoa.mm to ***CoreText.cpp
967         https://bugs.webkit.org/show_bug.cgi?id=216400
968
969         Reviewed by Tim Horton.
970
971         * wtf/PlatformUse.h:
972
973 2020-09-11  Kate Cheney  <katherine_cheney@apple.com>
974
975         Followup to Bug 215027: address comments to improve APP_BOUND_DOMAINS macro use
976         https://bugs.webkit.org/show_bug.cgi?id=216373
977         <rdar://problem/68645704>
978
979         Reviewed by Darin Adler.
980
981         Remove unnecessary default. All enable flags are off by default.
982
983         * wtf/PlatformEnable.h:
984
985 2020-09-10  Ben Nham  <nham@apple.com>
986
987         Disable hardware JPEG decoding on x86 Mac
988         https://bugs.webkit.org/show_bug.cgi?id=216377
989
990         Reviewed by Geoff Garen.
991
992         Add macros to disable HW JPEG decoding on x86 Macs and indicate the presence of a new MediaToolbox SPI.
993         (The latter is to prevent unnecessary dlopen/dlsym calls since we soft-link MediaToolbox.)
994
995         * wtf/PlatformEnableCocoa.h:
996         * wtf/PlatformHave.h:
997
998 2020-09-10  Devin Rousso  <drousso@apple.com>
999
1000         Web Inspector: modernize generated backend protocol code
1001         https://bugs.webkit.org/show_bug.cgi?id=216302
1002         <rdar://problem/68547649>
1003
1004         Reviewed by Brian Burg.
1005
1006         * wtf/JSONValues.h:
1007         (WTF::JSONImpl::ObjectBase::setValue):
1008         (WTF::JSONImpl::ObjectBase::setObject):
1009         (WTF::JSONImpl::ObjectBase::setArray):
1010         (WTF::JSONImpl::ArrayBase::pushValue):
1011         (WTF::JSONImpl::ArrayBase::pushObject):
1012         (WTF::JSONImpl::ArrayBase::pushArray):
1013         (WTF::JSONImpl::ArrayOf::ArrayOf): Deleted.
1014         (WTF::JSONImpl::ArrayOf::castedArray): Deleted.
1015         (WTF::JSONImpl::ArrayOf::addItem): Deleted.
1016         (WTF::JSONImpl::ArrayOf::create): Deleted.
1017         * wtf/JSONValues.cpp:
1018         (WTF::JSONImpl::Value::asValue):
1019         (WTF::JSONImpl::Value::asObject):
1020         (WTF::JSONImpl::Value::asArray):
1021         (WTF::JSONImpl::Value::parseJSON):
1022         (WTF::JSONImpl::Value::asBoolean const):
1023         (WTF::JSONImpl::Value::asDouble const):
1024         (WTF::JSONImpl::Value::asInteger const):
1025         (WTF::JSONImpl::Value::asString const):
1026         (WTF::JSONImpl::ObjectBase::asObject):
1027         (WTF::JSONImpl::ObjectBase::memoryCost const):
1028         (WTF::JSONImpl::ObjectBase::getBoolean const):
1029         (WTF::JSONImpl::ObjectBase::getDouble const):
1030         (WTF::JSONImpl::ObjectBase::getInteger const):
1031         (WTF::JSONImpl::ObjectBase::getString const):
1032         (WTF::JSONImpl::ObjectBase::getObject const):
1033         (WTF::JSONImpl::ObjectBase::getArray const):
1034         (WTF::JSONImpl::ObjectBase::getValue const):
1035         (WTF::JSONImpl::ObjectBase::ObjectBase):
1036         (WTF::JSONImpl::ArrayBase::asArray):
1037         (WTF::JSONImpl::ArrayBase::writeJSON const):
1038         (WTF::JSONImpl::ArrayBase::ArrayBase):
1039         (WTF::JSONImpl::ArrayBase::get const):
1040         (WTF::JSONImpl::ArrayBase::memoryCost const):
1041         (WTF::JSONImpl::ObjectBase::openAccessors): Deleted.
1042         Use `Ref&&` wherever possible and `Optional` instead of an out parameter for `get*`/`as*`
1043         so that values can be more easily manipulated and can be confidently assumed to exist.
1044         Remove unused overloads and allow subclasses to call `as*` instead of `openAccessors` as
1045         they're effectively the same thing.
1046
1047 2020-09-10  Jer Noble  <jer.noble@apple.com>
1048
1049         [Cocoa] PERF: Don't instantiate AVPlayer-based audio decoders or renderers if an element is initially muted.
1050         https://bugs.webkit.org/show_bug.cgi?id=216299
1051
1052         Reviewed by Eric Carlson.
1053
1054         * wtf/PlatformHave.h:
1055
1056 2020-09-10  Tim Horton  <timothy_horton@apple.com>
1057
1058         Upstream additional linked-on-or-after version checks
1059         https://bugs.webkit.org/show_bug.cgi?id=216365
1060
1061         Reviewed by Sam Weinig.
1062
1063         * wtf/spi/darwin/dyldSPI.h:
1064
1065 2020-09-10  Kate Cheney  <katherine_cheney@apple.com>
1066
1067         Clean up App-Bound Domains code to only compile for iOS with its own macro
1068         https://bugs.webkit.org/show_bug.cgi?id=215027
1069         <rdar://problem/63688232>
1070
1071         Reviewed by Darin Adler.
1072
1073         Define a new APP_BOUND_DOMAINS preprocessor macro to more aptly gate
1074         App Bound Domains behavior.
1075
1076         * wtf/PlatformEnable.h:
1077         * wtf/PlatformEnableCocoa.h:
1078
1079 2020-09-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
1080
1081         [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
1082         https://bugs.webkit.org/show_bug.cgi?id=216018
1083         <rdar://problem/68304035>
1084
1085         Reviewed by Tim Horton.
1086
1087         Add a new macro for the new accurate behavior of CGImageSource.
1088
1089         Unrelated change: Fix the conditions for enabling the WebP images.
1090
1091         * wtf/PlatformHave.h:
1092
1093 2020-09-09  Ryosuke Niwa  <rniwa@webkit.org>
1094
1095         Simplify OptionSet::set
1096         https://bugs.webkit.org/show_bug.cgi?id=216335
1097
1098         Reviewed by Said Abou-Hallawa.
1099
1100         Simplified the implementation of OptionSet::set since we've verified that both clang and gcc
1101         generate comparable code in x86_64 and clang does the same for arm64.
1102
1103         * wtf/OptionSet.h:
1104         (WTF::OptionSet::set):
1105
1106 2020-09-09  Wenson Hsieh  <wenson_hsieh@apple.com>
1107
1108         Text copied and pasted from Mac Catalyst apps appears larger than expected
1109         https://bugs.webkit.org/show_bug.cgi?id=215971
1110         <rdar://problem/65768907>
1111
1112         Reviewed by Tim Horton.
1113
1114         Add a new flag to guard the presence of `_UIApplicationCatalystUserInterfaceIdiom`,
1115         `_UIApplicationCatalystScaleFactor`, and `_UIApplicationCatalystRequestViewServiceIdiomAndScaleFactor`.
1116
1117         * wtf/PlatformHave.h:
1118
1119 2020-09-08  Ryosuke Niwa  <rniwa@webkit.org>
1120
1121         Node flags should be an OptionSet
1122         https://bugs.webkit.org/show_bug.cgi?id=216305
1123
1124         Reviewed by Antti Koivisto.
1125
1126         * wtf/OptionSet.h:
1127         (WTF::OptionSet::set): Added.
1128
1129 2020-09-06  Ryosuke Niwa  <rniwa@webkit.org>
1130
1131         Make CompactUniquePtrTuple actually work with subclassing and custom deleter
1132         https://bugs.webkit.org/show_bug.cgi?id=216225
1133
1134         Reviewed by Darin Adler.
1135
1136         Fixed bugs in CompactUniquePtrTuple which prevented subclassing and custom deleter to work.
1137
1138         * wtf/CompactPointerTuple.h:
1139         (WTF::CompactPointerTuple::CompactPointerTuple): Added move constructor with implicit cast
1140         of a convertible pointer type.
1141         * wtf/CompactUniquePtrTuple.h:
1142         (WTF::makeCompactUniquePtr): Added the missing deleter from the return type.
1143         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Allow Deleter to be different if it's
1144         the default deleter in the move constructor so that CompactUniquePtrTuple<U, Type> could be
1145         moved to CompactUniquePtrTuple<T, Type> if U is convertible to T without having to specify
1146         the same deleter (std::default_delete<U> is not same as std::default_delete<T> but allow it).
1147         (WTF::CompactUniquePtrTuple::operator=): Ditto.
1148         (WTF::CompactUniquePtrTuple::setPointer): Ditto from std::unique_ptr.
1149         (WTF::CompactUniquePtrTuple): Friend declare all other specializations of CompactUniquePtrTuple
1150         so that the above fixes work.
1151
1152 2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
1153
1154         [iOS] attachmentActionFont() Needs to use kCTFontSymbolicTrait: @(kCTFontTraitTightLeading | kCTFontTraitEmphasized) to get the short emphasized footnote font
1155         https://bugs.webkit.org/show_bug.cgi?id=215707
1156         <rdar://problem/63930892>
1157
1158         Reviewed by Darin Adler.
1159
1160         * wtf/PlatformHave.h:
1161
1162 2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
1163
1164         CTFontGetPhysicalSymbolicTraits() is faster than CTFontCopyPhysicalFont()/CTFontGetSymbolicTraits()
1165         https://bugs.webkit.org/show_bug.cgi?id=215685
1166
1167         Reviewed by Darin Adler.
1168
1169         * wtf/PlatformHave.h:
1170
1171 2020-09-06  Darin Adler  <darin@apple.com>
1172
1173         TextCodec refinements
1174         https://bugs.webkit.org/show_bug.cgi?id=216219
1175
1176         Reviewed by Sam Weinig.
1177
1178         * wtf/unicode/CharacterNames.h: Use constexpr instead of just const.
1179         Added byteOrderMark, synonym for zeroWidthNoBreakSpace.
1180
1181 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1182
1183         [Cocoa] USE(PLATFORM_SYSTEM_FALLBACK_LIST) is true on all Cocoa platforms, so there's no need to consult it in Cocoa-specific files
1184         https://bugs.webkit.org/show_bug.cgi?id=215684
1185
1186         Reviewed by Darin Adler.
1187
1188         * wtf/PlatformUse.h:
1189
1190 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1191
1192         [Cocoa] CTFontIsSystemUIFont() is faster than CTFontDescriptorIsSystemUIFont()/CTFontCopyFontDescriptor()
1193         https://bugs.webkit.org/show_bug.cgi?id=215687
1194
1195         Reviewed by Darin Adler.
1196
1197         * wtf/PlatformHave.h:
1198
1199 2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1200
1201         [Cocoa] Migrate off SPI in Font::platformWidthForGlyph()
1202         https://bugs.webkit.org/show_bug.cgi?id=215670
1203
1204         Reviewed by Zalan Bujtas.
1205
1206         * wtf/PlatformUse.h:
1207
1208 2020-09-04  Alex Christensen  <achristensen@webkit.org>
1209
1210         Move PDF heads-up display to UI process on macOS
1211         https://bugs.webkit.org/show_bug.cgi?id=215780
1212         <rdar://problem/58715847>
1213
1214         Reviewed by Tim Horton.
1215
1216         * wtf/PlatformHave.h:
1217
1218 2020-09-03  Ryosuke Niwa  <rniwa@webkit.org>
1219
1220         GTK+ build fix attempt after r266573.
1221
1222         * wtf/CompactUniquePtrTuple.h:
1223
1224 2020-09-02  Ryosuke Niwa  <rniwa@webkit.org>
1225
1226         Add CompactUniquePtrTuple
1227         https://bugs.webkit.org/show_bug.cgi?id=215936
1228
1229         Reviewed by Darin Adler.
1230
1231         Added a new template class, CompactUniquePtrTuple, which stores a pointer and up to 16-bits of
1232         a POD type using CompactPointerTuple.
1233
1234         * WTF.xcodeproj/project.pbxproj:
1235         * wtf/CMakeLists.txt:
1236         * wtf/CompactUniquePtrTuple.h: Added.
1237         (WTF::makeCompactUniquePtr): Added. Like makeUnique, creates an object of the specified type
1238         and returns CompactUniquePtrTuple.
1239         (WTF::CompactUniquePtrTuple): Added.
1240         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Move constructor.
1241         (WTF::CompactUniquePtrTuple::~CompactUniquePtrTuple):
1242         (WTF::CompactUniquePtrTuple::operator=):
1243         (WTF::CompactUniquePtrTuple::pointer):
1244         (WTF::CompactUniquePtrTuple::moveToUniquePtr): Clears this pointer and returns unique_ptr.
1245         (WTF::CompactUniquePtrTuple::setPointer): Like CompactPointerTuple sets the pointer component
1246         of this tuple, freeing the old object if there is already one stored.
1247         (WTF::CompactUniquePtrTuple::type):
1248         (WTF::CompactUniquePtrTuple::setType):
1249         (WTF::CompactUniquePtrTuple::CompactUniquePtrTuple): Constructor which takes unique_ptr&&.
1250         (WTF::CompactUniquePtrTuple::deletePointer):
1251
1252 2020-09-02  Ryosuke Niwa  <rniwa@webkit.org>
1253
1254         Add a variant of map which filters items to Vector.h
1255         https://bugs.webkit.org/show_bug.cgi?id=215879
1256
1257         Reviewed by Darin Adler and Yusuke Suzuki.
1258
1259         This patch adds WTF::compactMap, which calls a function on each item in an iterable object like WTF::map
1260         but also filters the returned value. The mapped function may return Optional<T> or RefPtr<T>. The value
1261         is kept in the result if the returned value is not WTF::nullopt in the case of Optional<T> and not null
1262         in the case of RefPtr<T>. The result will be either Vector<T> for Optional<T> or else Vector<Ref<T>>.
1263
1264         * wtf/Vector.h:
1265         (WTF::CompactMapTraits:): Added. Traits to have a different behavior
1266         (WTF::CompactMapTraits<Optional<T>>::hasValue): Added.
1267         (WTF::CompactMapTraits<Optional<T>>::extractValue): Added.
1268         (WTF::CompactMapTraits<RefPtr<T>>::hasValue): Added.
1269         (WTF::CompactMapTraits<RefPtr<T>>::extractValue): Added.
1270         (WTF::CompactMap): Added. The helper to use WTFMove on the argument to the mapped function if possible.
1271         (WTF::compactMap): Added.
1272
1273 2020-09-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
1274
1275         Unreviewed, reverting r266449.
1276
1277         Underlying frameworks do not work correctly for loopCount >=
1278         1.
1279
1280         Reverted changeset:
1281
1282         "[CG] REGRESSION (Big Sur): A GIF image with a finite
1283         loopCount loops an extra cycle"
1284         https://bugs.webkit.org/show_bug.cgi?id=216018
1285         https://trac.webkit.org/changeset/266449
1286
1287 2020-09-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
1288
1289         [CG] REGRESSION (Big Sur): A GIF image with a finite loopCount loops an extra cycle
1290         https://bugs.webkit.org/show_bug.cgi?id=216018
1291         <rdar://problem/66660579>
1292
1293         Reviewed by Tim Horton.
1294
1295         Add a new macro for the new accurate behavior of CGImageSource.
1296
1297         Unrelated change: Fix the conditions for enabling the WebP images.
1298
1299         * wtf/PlatformHave.h:
1300
1301 2020-08-31  Mark Lam  <mark.lam@apple.com>
1302
1303         Remove some PtrTag debugging code from release builds.
1304         https://bugs.webkit.org/show_bug.cgi?id=216025
1305         <rdar://problem/68098263>
1306
1307         Reviewed by Saam Barati.
1308
1309         Converted uses of PtrTagAction::ReleaseAssert to PtrTagAction::DebugAssert.
1310         These assertions serve a purpose during development (hence, PtrTagAction::DebugAssert),
1311         but is no longer needed for release builds.  Previously, we use these assertions
1312         to verify that pointers are tagged correctly in release build.  Clang takes care
1313         of that automatically now.
1314
1315         Also removed PtrTag name lookup debugging utility from release builds.
1316
1317         * wtf/PtrTag.cpp:
1318         * wtf/PtrTag.h:
1319         (WTF::untagCodePtr):
1320         (WTF::retagCodePtrImpl):
1321         (WTF::assertIsCFunctionPtr):
1322         (WTF::assertIsNotTagged):
1323         (WTF::assertIsTagged):
1324         (WTF::assertIsTaggedWith):
1325
1326 2020-09-01  Alex Christensen  <achristensen@webkit.org>
1327
1328         Update URL fragment percent encode set
1329         https://bugs.webkit.org/show_bug.cgi?id=216022
1330
1331         Reviewed by Youenn Fablet.
1332
1333         It now matches the behavior of Chrome and Firefox, as well as the spec at
1334         https://url.spec.whatwg.org/#fragment-percent-encode-set
1335
1336         * wtf/URLParser.cpp:
1337         (WTF::isInFragmentEncodeSet):
1338         (WTF::URLParser::parse):
1339
1340 2020-09-01  Alex Christensen  <achristensen@webkit.org>
1341
1342         Align Big5 decoding with spec, Chrome, and Firefox
1343         https://bugs.webkit.org/show_bug.cgi?id=216016
1344
1345         Reviewed by Darin Adler.
1346
1347         * wtf/text/CodePointIterator.h:
1348
1349 2020-09-01  Carlos Garcia Campos  <cgarcia@igalia.com>
1350
1351         [Linux] Web Inspector: show per thread cpu usage
1352         https://bugs.webkit.org/show_bug.cgi?id=215883
1353
1354         Reviewed by Adrian Perez de Castro.
1355
1356         Add API to get the thread ID in Linux platform.
1357
1358         * wtf/Threading.cpp:
1359         (WTF::Thread::initializeInThread):
1360         * wtf/Threading.h:
1361         (WTF::Thread::id const):
1362         * wtf/ThreadingPrimitives.h:
1363         * wtf/posix/ThreadingPOSIX.cpp:
1364         (WTF::Thread::currentID):
1365
1366 2020-08-31  Alex Christensen  <achristensen@webkit.org>
1367
1368         Make Big5 encoder conform to the specification and behavior of Chrome and Firefox
1369         https://bugs.webkit.org/show_bug.cgi?id=215983
1370
1371         Reviewed by Darin Adler.
1372
1373         * WTF.xcodeproj/project.pbxproj:
1374         * wtf/CMakeLists.txt:
1375         * wtf/URLParser.cpp:
1376         (WTF::CodePointIterator::CodePointIterator): Deleted.
1377         (WTF::CodePointIterator::operator== const): Deleted.
1378         (WTF::CodePointIterator::operator!= const): Deleted.
1379         (WTF::CodePointIterator::atEnd const): Deleted.
1380         (WTF::CodePointIterator::codeUnitsSince const): Deleted.
1381         (WTF::CodePointIterator<LChar>::operator const): Deleted.
1382         (WTF::CodePointIterator<LChar>::operator): Deleted.
1383         (WTF::CodePointIterator<UChar>::operator const): Deleted.
1384         (WTF::CodePointIterator<UChar>::operator): Deleted.
1385         * wtf/text/CodePointIterator.h: Added.
1386         (WTF::CodePointIterator::CodePointIterator):
1387         (WTF::CodePointIterator::operator== const):
1388         (WTF::CodePointIterator::operator!= const):
1389         (WTF::CodePointIterator::atEnd const):
1390         (WTF::CodePointIterator::codeUnitsSince const):
1391         (WTF::CodePointIterator<LChar>::operator const):
1392         (WTF::CodePointIterator<LChar>::operator):
1393         (WTF::CodePointIterator<UChar>::operator const):
1394         (WTF::CodePointIterator<UChar>::operator):
1395
1396 2020-08-30  Jim Mason  <jmason@ibinx.com>
1397
1398         [GTK] REGRESSION(r150392) insufficient space allocation results in heap corruption
1399         https://bugs.webkit.org/show_bug.cgi?id=215976
1400
1401         Reviewed by Carlos Garcia Campos.
1402
1403         * wtf/glib/RunLoopGLib.cpp:
1404         (WTF::RunLoop::TimerBase::TimerBase):
1405
1406 2020-08-27  Stephan Szabo  <stephan.szabo@sony.com>
1407
1408         [PlayStation] Build fix due to memmem not always being available.
1409         https://bugs.webkit.org/show_bug.cgi?id=215893
1410
1411         Unreviewed build fix
1412
1413         * wtf/PlatformHave.h: Don't always HAVE_MEMMEM on playstation
1414
1415 2020-08-27  Carlos Garcia Campos  <cgarcia@igalia.com>
1416
1417         [GTK] Include the run loop source name in frame rendering timeline
1418         https://bugs.webkit.org/show_bug.cgi?id=215847
1419
1420         Reviewed by Adrian Perez de Castro.
1421
1422         Pass the run loop source name to the observer.
1423
1424         * wtf/RunLoop.h:
1425         * wtf/glib/RunLoopGLib.cpp:
1426         (WTF::RunLoop::RunLoop):
1427         (WTF::RunLoop::notify):
1428
1429 2020-08-26  Alexey Shvayka  <shvaikalesh@gmail.com>
1430
1431         Use jsTypeofIsObject() in DFG AI and operationTypeOfIsObject()
1432         https://bugs.webkit.org/show_bug.cgi?id=144457
1433
1434         Reviewed by Saam Barati.
1435
1436         * wtf/TriState.h:
1437         (WTF::invert):
1438
1439 2020-08-25  Ryosuke Niwa  <rniwa@webkit.org>
1440
1441         HashMap<Ref<T>>::take should return RefPtr<T>
1442         https://bugs.webkit.org/show_bug.cgi?id=215830
1443
1444         Reviewed by Darin Adler.
1445
1446         Updated the hash traits for Ref<T> to make HashMap<Ref<T>> and HashSet<Ref<T>>
1447         return RefPtr<T> instad of Optional<Ref<T>>.
1448
1449         * wtf/HashTraits.h:
1450         (WTF::RefHashTraits::take):
1451
1452 2020-08-25  Per Arne Vollan  <pvollan@apple.com>
1453
1454         [Win] Assert failure under RunLoop::RunLoop
1455         https://bugs.webkit.org/show_bug.cgi?id=215812
1456
1457         Reviewed by Brent Fulgham.
1458
1459         The assert 'ASSERT(::IsWindow(m_runLoopMessageWindow))' under RunLoop::RunLoop will fail if the JSC API JSGlobalContextCreate*()
1460         is being called by a client before WTF::initializeMainThread() has been called. The assertion fails because the method
1461         RunLoop::registerRunLoopMessageWindowClass() has not been called yet, since it is only called when initializing the main thread.
1462         This patch addresses this issue by making sure the window class has been registered before being referenced in RunLoop::RunLoopl
1463         The method call is also removed from the main thread initialization, since the window class is only used in RunLoop::RunLoop,
1464         making it sufficient to only be registered there. Also change the debug assert to a release assert, so we can catch similar
1465         issues in release builds.
1466
1467         * wtf/win/MainThreadWin.cpp:
1468         (WTF::initializeMainThreadPlatform):
1469         * wtf/win/RunLoopWin.cpp:
1470         (WTF::RunLoop::registerRunLoopMessageWindowClass):
1471         (WTF::RunLoop::RunLoop):
1472
1473 2020-08-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1474
1475         [GTK] Implement rendering frames timeline panel for GTK+ port
1476         https://bugs.webkit.org/show_bug.cgi?id=150392
1477         <rdar://problem/23200510>
1478
1479         Reviewed by Brian Burg.
1480
1481         Add API to observe RunLoop events for GLib event loop implementation.
1482
1483         * wtf/RunLoop.h:
1484         * wtf/glib/RunLoopGLib.cpp:
1485         (WTF::RunLoop::RunLoop): Use RunLoopSource struct and initialize the RunLoop.
1486         (WTF::RunLoop::observe): Add the given observer to the set.
1487         (WTF::RunLoop::notify): Notife observers of the given event.
1488         (WTF::RunLoop::TimerBase::TimerBase): Use RunLoopSource struct and initialize the RunLoop.
1489
1490 2020-08-24  Alex Christensen  <achristensen@webkit.org>
1491
1492         Implement Request/Response consuming as FormData
1493         https://bugs.webkit.org/show_bug.cgi?id=215671
1494
1495         Reviewed by Darin Adler.
1496
1497         In order to be compatible with other browsers, we need a verson of String::fromUTF8 that
1498         uses U8_NEXT_OR_FFFD instead of U8_NEXT, but changing that across the board will break other things.
1499         Leave everything else as it is, use templates and constexpr to not add any branches, but add
1500         String::fromUTF8ReplacingInvalidSequences to allow me to make our FormData consuming compatible with other browsers.
1501
1502         * wtf/text/WTFString.cpp:
1503         (WTF::fromUTF8Helper):
1504         (WTF::String::fromUTF8):
1505         (WTF::String::fromUTF8ReplacingInvalidSequences):
1506         * wtf/text/WTFString.h:
1507         * wtf/unicode/UTF8Conversion.cpp:
1508         (WTF::Unicode::convertUTF8ToUTF16Impl):
1509         (WTF::Unicode::convertUTF8ToUTF16):
1510         (WTF::Unicode::convertUTF8ToUTF16ReplacingInvalidSequences):
1511         * wtf/unicode/UTF8Conversion.h:
1512
1513 2020-08-24  Alex Christensen  <achristensen@webkit.org>
1514
1515         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
1516         https://bugs.webkit.org/show_bug.cgi?id=213048
1517
1518         Reviewed by Youenn Fablet.
1519
1520         * wtf/PlatformHave.h:
1521
1522 2020-08-22  Yusuke Suzuki  <ysuzuki@apple.com>
1523
1524         [JSC] Add Intl.Segmenter
1525         https://bugs.webkit.org/show_bug.cgi?id=213638
1526
1527         Reviewed by Ross Kirsling.
1528
1529         * wtf/text/WTFString.cpp:
1530         (WTF::String::charactersWithoutNullTermination const):
1531         (WTF::String::charactersWithNullTermination const):
1532         * wtf/text/WTFString.h:
1533
1534 2020-08-18  Simon Fraser  <simon.fraser@apple.com>
1535
1536         Turn off wheel event regions until we need them
1537         https://bugs.webkit.org/show_bug.cgi?id=215586
1538
1539         Reviewed by Darin Adler.
1540         
1541         Leave ENABLE_WHEEL_EVENT_REGIONS off because it's currently unused, and adds extra
1542         region building overhead on macOS.
1543
1544         * wtf/PlatformEnableCocoa.h:
1545
1546 2020-08-17  Fujii Hironori  <Hironori.Fujii@sony.com>
1547
1548         [WTF] HashTable<Ref<K>, V>::HashTable(const HashTable& other) can't compile
1549         https://bugs.webkit.org/show_bug.cgi?id=215550
1550
1551         Reviewed by Darin Adler.
1552
1553         Even though the copy constructor takes a const HashTable
1554         reference, RefHashTraits::assignToEmpty takes non-const Ref<P>. It
1555         seems that RefHashTraits::assignToEmpty and
1556         Ref::assignToHashTableEmptyValue are unnecessary. Just remove them.
1557
1558         * wtf/HashTraits.h:
1559         (WTF::RefHashTraits::assignToEmpty): Deleted.
1560         * wtf/Ref.h:
1561         (WTF::Ref::assignToHashTableEmptyValue): Deleted.
1562
1563 2020-08-17  Youenn Fablet  <youenn@apple.com>
1564
1565         Bump HAVE_NSURLSESSION_WEBSOCKET requirement to BigSur for MacOS
1566         https://bugs.webkit.org/show_bug.cgi?id=215517
1567
1568         Reviewed by Alex Christensen.
1569
1570         Catalina NSURLSession WebSocket is missing some features we need.
1571         Bump it to Big Sur.
1572
1573         * wtf/PlatformHave.h:
1574
1575 2020-08-15  Yusuke Suzuki  <ysuzuki@apple.com>
1576
1577         Use std::call_once + LazyNeverDestroyed to initialize complex data structures
1578         https://bugs.webkit.org/show_bug.cgi?id=215535
1579         <rdar://problem/66774266>
1580
1581         Reviewed by Mark Lam.
1582
1583         NeverDestroyed<> is not thread-safe in Darwin build since it is not using C++11 thread-safe static variable semantics.
1584         This patch uses LazyNeverDestroyed and call_once to initialize complex data structures so that we can ensure they are
1585         initialized atomically.
1586
1587         We also move some of `singleton` definitions from headers to cpp files. This is important since this ensures that singleton
1588         is only one instance which is generated in one translation unit.
1589
1590         * WTF.xcodeproj/project.pbxproj:
1591         * wtf/CMakeLists.txt:
1592         * wtf/FastMalloc.cpp:
1593         (WTF::MallocCallTracker::singleton):
1594         * wtf/Language.cpp:
1595         (WTF::observerMap):
1596         (WTF::preferredLanguagesOverride):
1597         * wtf/Logger.cpp:
1598         (WTF::Logger::observers):
1599         * wtf/Logger.h:
1600         (WTF::Logger::observerLock):
1601         (WTF::Logger::observers): Deleted.
1602         * wtf/MemoryPressureHandler.cpp:
1603         (WTF::MemoryPressureHandler::singleton):
1604         * wtf/MemoryPressureHandler.h:
1605         * wtf/RunLoop.cpp:
1606         (WTF::RunLoop::current):
1607         * wtf/Threading.cpp:
1608         (WTF::Thread::initializeInThread):
1609         * wtf/URL.cpp:
1610         (WTF::aboutBlankURL):
1611         (WTF::aboutSrcDocURL):
1612         * wtf/cf/LanguageCF.cpp:
1613         (WTF::preferredLanguages):
1614         * wtf/cocoa/NSURLExtras.mm:
1615         (WTF::rangeOfURLScheme):
1616         * wtf/text/LineBreakIteratorPoolICU.cpp: Copied from Source/WTF/wtf/Logger.cpp.
1617         (WTF::LineBreakIteratorPool::sharedPool):
1618         * wtf/text/LineBreakIteratorPoolICU.h:
1619         (WTF::LineBreakIteratorPool::sharedPool): Deleted.
1620         * wtf/text/StringView.cpp:
1621         * wtf/text/TextBreakIterator.cpp:
1622         (WTF::TextBreakIteratorCache::singleton):
1623         * wtf/text/TextBreakIterator.h:
1624         (WTF::TextBreakIteratorCache::singleton): Deleted.
1625         * wtf/threads/Signals.cpp:
1626         (WTF::activeThreads):
1627
1628 2020-08-11  Wenson Hsieh  <wenson_hsieh@apple.com>
1629
1630         Text input autocorrect="off" attribute ignored on Mac
1631         https://bugs.webkit.org/show_bug.cgi?id=151019
1632         <rdar://problem/65061700>
1633
1634         Reviewed by Simon Fraser.
1635
1636         * wtf/PlatformEnableCocoa.h: Turn the feature on for macOS.
1637
1638 2020-08-10  Myles C. Maxfield  <mmaxfield@apple.com>
1639
1640         [Cocoa] Migrate from CTFontTransformGlyphsWithLanguage() to CTFontShapeGlyphs()
1641         https://bugs.webkit.org/show_bug.cgi?id=215059
1642
1643         Reviewed by Darin Adler.
1644
1645         * wtf/PlatformUse.h: Rename CTFONTTRANSFORMGLYPHSWITHLANGUAGE to CTFONTSHAPEGLYPHS,
1646         because that's the new function.
1647
1648 2020-08-09  Ben Nham  <nham@apple.com>
1649
1650         Preload graphics drivers in Mac WebProcess
1651         https://bugs.webkit.org/show_bug.cgi?id=215183
1652
1653         Reviewed by Darin Adler.
1654
1655         Enable GPU driver preheating in versions of the OS that might not have the drivers in the dyld
1656         shared cache due to size restrictions.
1657
1658         * wtf/PlatformEnableCocoa.h:
1659
1660 2020-08-09  Commit Queue  <commit-queue@webkit.org>
1661
1662         Unreviewed, reverting r263195, r263252, and r265394.
1663         https://bugs.webkit.org/show_bug.cgi?id=215312
1664
1665         Revert all related GC Bitmap changes because some of perf is
1666         not fully recovered
1667
1668         Reverted changesets:
1669
1670         "Replace JSC::FreeList linked list with a Bitmap."
1671         https://bugs.webkit.org/show_bug.cgi?id=213071
1672         https://trac.webkit.org/changeset/263195
1673
1674         "Unify Bitmap math loops in
1675         MarkedBlock::Handle::specializedSweep()."
1676         https://bugs.webkit.org/show_bug.cgi?id=213345
1677         https://trac.webkit.org/changeset/263252
1678
1679         "[JSC] Disable ENABLE_BITMAP_FREELIST"
1680         https://bugs.webkit.org/show_bug.cgi?id=215285
1681         https://trac.webkit.org/changeset/265394
1682
1683 2020-08-08  Joonghun Park  <jh718.park@samsung.com>
1684
1685         [WTF] Remove the build warning since r265344.
1686         https://bugs.webkit.org/show_bug.cgi?id=215269
1687
1688         warning: parameter ‘integer’ set but not used [-Wunused-but-set-parameter]
1689
1690         * wtf/text/IntegerToStringConversion.h:
1691         (WTF::lengthOfIntegerAsString):
1692
1693 2020-08-07  John Wilander  <wilander@apple.com>
1694
1695         Experimental: Cap the expiry of persistent cookies set in 3rd-party CNAME cloaked HTTP responses
1696         https://bugs.webkit.org/show_bug.cgi?id=215201
1697         <rdar://problem/57454633>
1698
1699         Reviewed by Brent Fulgham. Also reviewed and commented on by Chris Dumez, Jiten Mehta, Sam Weinig, and Alex Christensen.
1700
1701         This change defines HAVE_CFNETWORK_CNAME_AND_COOKIE_TRANSFORM_SPI.
1702
1703         * wtf/PlatformHave.h:
1704
1705 2020-08-07  Saam Barati  <sbarati@apple.com>
1706
1707         Use thread_switch instead of switch_pri to drop priority to zero for 1ms instead of 10
1708         https://bugs.webkit.org/show_bug.cgi?id=215248
1709
1710         Reviewed by Yusuke Suzuki.
1711
1712         This seems to be a slight JetStream2 and Speedometer2 speedup. In the
1713         range of 0%-0.75%, depending on device.
1714
1715         * wtf/posix/ThreadingPOSIX.cpp:
1716         (WTF::Thread::yield):
1717
1718 2020-08-07  Robin Morisset  <rmorisset@apple.com>
1719
1720         Fix inequality in newly added assertion
1721         https://bugs.webkit.org/show_bug.cgi?id=215272
1722
1723         Reviewed by Alexey Proskuryakov.
1724
1725         No new tests, as it was caught by our testing infrastructure (not sure why it only got caught after landing).
1726
1727         * wtf/IndexSparseSet.h:
1728         (WTF::OverflowHandler>::validate):
1729
1730 2020-08-07  Robin Morisset  <rmorisset@apple.com>
1731
1732         IndexSparseSet::sort() should update m_map
1733         https://bugs.webkit.org/show_bug.cgi?id=215100
1734
1735         Reviewed by Yusuke Suzuki and Mark Lam.
1736
1737         IndexSparseSet is made of two fields: m_values and m_map, and the two must be kept in sync.
1738         But its sort routine currently only sorts m_values.
1739         This might be related to a random crash that seems to occasionally occur in the vicinity of this code in the wild (rdar://problem/64594569)
1740
1741         I added a validation routine, that I run in the tests that I added to TestWTF.
1742         I verified, and without the fix, the validation routine fails after the sorting.
1743
1744         I also fixed remove() which was wrong on non-trivial types (thanks to Mark for catching this other bug).
1745
1746         * wtf/IndexSparseSet.h:
1747         (WTF::OverflowHandler>::remove):
1748         (WTF::OverflowHandler>::sort):
1749         (WTF::OverflowHandler>::validate):
1750
1751 2020-08-07  Youenn Fablet  <youenn@apple.com>
1752
1753         Introduce a Vector::isolatedCopy() &&
1754         https://bugs.webkit.org/show_bug.cgi?id=215160
1755
1756         Reviewed by Alex Christensen.
1757
1758         By introducing an isolatedCopy() &&, we remove the need to allocate a vector buffer.
1759         This can make a Vector<String>::isolatedCopy() allocate no memory at all in cases like RegistrationDatabase::schedulePushChanges.
1760
1761         * wtf/Vector.h:
1762         (WTF::Malloc>::isolatedCopy const):
1763         (WTF::Malloc>::isolatedCopy):
1764
1765 2020-08-06  David Kilzer  <ddkilzer@apple.com>
1766
1767         WTF::makeString() should handle enum values
1768         <https://webkit.org/b/214906>
1769
1770         Reviewed by Sam Weinig.
1771
1772         * wtf/text/IntegerToStringConversion.h:
1773         (WTF::numberToStringSigned):
1774         - Drive-by fix to change std::make_unsigned<>::type to
1775           std::make_unsigned_t<>.
1776         (WTF::writeNumberToBufferImpl): Delete.
1777         (WTF::writeIntegerToBufferImpl):
1778         - Rename from WTF::writeNumberToBufferImpl().
1779         (WTF::writeNumberToBufferSigned): Delete.
1780         (WTF::writeNumberToBufferUnsigned): Delete.
1781         (WTF::writeIntegerToBuffer):
1782         - Replace WTF::writeNumberToBufferSigned() and
1783           WTF::writeNumberToBufferUnsigned() with a single function that
1784           uses constexpr checks to let the compiler eliminate code.  Had
1785           to use if/else if/else construct to help the compiler
1786           eliminate unused cases.
1787         (WTF::lengthOfNumberAsStringImpl): Delete.
1788         (WTF::lengthOfIntegerAsStringImpl):
1789         - Rename from WTF::lengthOfNumberAsStringImpl().
1790         (WTF::lengthOfNumberAsStringSigned): Delete.
1791         (WTF::lengthOfNumberAsStringUnsigned): Delete.
1792         (WTF::lengthOfIntegerAsString):
1793         - Replace WTF::lengthOfNumberAsStringSigned() and
1794           WTF::lengthOfNumberAsStringUnsigned() with a single function
1795           that uses constexpr checks to let the compiler eliminate code.
1796           Had to use if/else if/else construct to help the compiler
1797           eliminate unused cases.
1798
1799         * wtf/text/StringConcatenateNumbers.h:
1800         (WTF::StringTypeAdapter<SignedInt, ...>): Deleted.
1801         (WTF::StringTypeAdapter<UnignedInt, ...>): Deleted.
1802         (WTF::StringTypeAdapter<Integer, ...>):
1803         - Combine signed/unsigned templated classes into a single class
1804           now that WTF::lengthOfIntegerAsString() and
1805           WTF::writeIntegerToBuffer() are templated.
1806         (WTF::StringTypeAdapter<Enum, ...>):
1807         - Add support for enum types to WTF::makeString().  This also
1808           takes advantage of templated WTF::lengthOfIntegerAsString()
1809           and WTF::writeIntegerToBuffer() functions since enum types may
1810           be either signed or unsigned.
1811
1812 2020-08-05  Tim Horton  <timothy_horton@apple.com>
1813
1814         Remove all references to non-existent 10.16
1815         https://bugs.webkit.org/show_bug.cgi?id=215202
1816
1817         Reviewed by Wenson Hsieh.
1818
1819         * Configurations/Base.xcconfig:
1820         * Configurations/DebugRelease.xcconfig:
1821         * wtf/PlatformEnableCocoa.h:
1822         * wtf/PlatformHave.h:
1823         * wtf/PlatformUse.h:
1824
1825 2020-08-04  Yusuke Suzuki  <ysuzuki@apple.com>
1826
1827         [JSC] Use LazyNeverDestroyed & std::call_once for complex singletons
1828         https://bugs.webkit.org/show_bug.cgi?id=215153
1829         <rdar://problem/65718983>
1830
1831         Reviewed by Mark Lam.
1832
1833         Add lock's bits in crash information to investigate if this speculative fix does not work.
1834
1835         * wtf/LockAlgorithmInlines.h:
1836         (WTF::Hooks>::lockSlow):
1837         (WTF::Hooks>::unlockSlow):
1838
1839 2020-08-04  Keith Miller  <keith_miller@apple.com>
1840
1841         CheckpointSideState shoud play nicely with StackOverflowException unwinding.
1842         https://bugs.webkit.org/show_bug.cgi?id=215114
1843
1844         Reviewed by Saam Barati.
1845
1846         Add a helper so we can have soft stack bounds.
1847
1848         * wtf/StackBounds.h:
1849         (WTF::StackBounds::withSoftOrigin const):
1850
1851 2020-08-04  Fujii Hironori  <Hironori.Fujii@sony.com>
1852
1853         [MSVC] wtf/Optional.h: error C2280: 'WTF::constexpr_storage_t<T> &WTF::constexpr_storage_t<T>::operator =(const WTF::constexpr_storage_t<T> &)': attempting to reference a deleted function
1854         https://bugs.webkit.org/show_bug.cgi?id=215003
1855
1856         Reviewed by Yusuke Suzuki.
1857
1858         Microsoft reported the upcoming MSVC can't compile
1859         Optional<std::pair<JSC::SamplingProfiler::StackFrame::CodeLocation,JSC::CodeBlock *>>.
1860
1861         > wtf/Optional.h(419,39): error C2280: 'WTF::constexpr_storage_t<T> &WTF::constexpr_storage_t<T>::operator =(const WTF::constexpr_storage_t<T> &)': attempting to reference a deleted function
1862
1863         They suggests using std::is_trivially_copy_assignable_v in
1864         Optional ctor instead of std::is_trivially_copyable_v.
1865
1866         * wtf/Optional.h:
1867         (WTF::Optional::Optional): Replaced std::is_trivially_copyable_v with std::is_trivially_copy_assignable_v.
1868
1869 2020-08-04  Alex Christensen  <achristensen@webkit.org>
1870
1871         about: scheme URL constants should be backed by StaticStringImpl
1872         https://bugs.webkit.org/show_bug.cgi?id=215113
1873
1874         Reviewed by Darin Adler.
1875
1876         * wtf/URL.cpp:
1877         (WTF::aboutBlankURL):
1878         (WTF::aboutSrcDocURL):
1879
1880 2020-08-03  Wenson Hsieh  <wenson_hsieh@apple.com>
1881
1882         Remove the ENABLE_DATA_INTERACTION feature flag
1883         https://bugs.webkit.org/show_bug.cgi?id=215091
1884
1885         Reviewed by Megan Gardner.
1886
1887         * wtf/PlatformEnable.h:
1888         * wtf/PlatformEnableCocoa.h:
1889
1890 2020-08-01  Commit Queue  <commit-queue@webkit.org>
1891
1892         Unreviewed, reverting r265097, r265113, and r265122.
1893         https://bugs.webkit.org/show_bug.cgi?id=215065
1894
1895         Broke AppleSilicon Big Sur
1896
1897         Reverted changesets:
1898
1899         "Strip pointers instead of authing for byteOffset to not allow
1900         for a possible way to guess data pac"
1901         https://bugs.webkit.org/show_bug.cgi?id=214952
1902         https://trac.webkit.org/changeset/265097
1903
1904         "Compute number of PAC bits from what the OS says its address
1905         space is"
1906         https://bugs.webkit.org/show_bug.cgi?id=214986
1907         https://trac.webkit.org/changeset/265113
1908
1909         "Remove UB from nonPACBitsMask computation"
1910         https://bugs.webkit.org/show_bug.cgi?id=214996
1911         https://trac.webkit.org/changeset/265122
1912
1913 2020-07-30  Simon Fraser  <simon.fraser@apple.com>
1914
1915         Have TimingScope track the max event duration
1916         https://bugs.webkit.org/show_bug.cgi?id=215006
1917
1918         Reviewed by Tim Horton.
1919
1920         Have TimingScope track and print the longest event, as well as the count and
1921         mean duration.
1922
1923         * wtf/TimingScope.cpp:
1924         (WTF::TimingScope::scopeDidEnd):
1925
1926 2020-07-30  Keith Miller  <keith_miller@apple.com>
1927
1928         Remove UB from nonPACBitsMask computation
1929         https://bugs.webkit.org/show_bug.cgi?id=214996
1930
1931         Reviewed by Tadeu Zagallo.
1932
1933         For non-ARM64E we now set numberOfPACBits to zero, which was causing UB in our computation of the nonPACBitsMask.
1934
1935         * wtf/CagedPtr.h:
1936
1937 2020-07-30  Jer Noble  <jer.noble@apple.com>
1938
1939         [Cocoa] Adopt -[AVContentKeyRequest willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:]
1940         https://bugs.webkit.org/show_bug.cgi?id=214659
1941         <rdar://problem/63555006>
1942
1943         Reviewed by Darin Adler.
1944         
1945         Add a new Observer template class. This allows classes to provide support for listeners without requiring
1946         those listeners to subclass from a pure-virtual (and CanMakeWeakPtr capable) client class. Instead, clients
1947         can just create one of these Observer objects, and pass a WeakPtr to that observer to the notifying object.
1948         When the client object destroys the observer, it is automatically unregistered when the observing object
1949         uses a WeakHashSet.
1950
1951         * WTF.xcodeproj/project.pbxproj:
1952         * wtf/CMakeLists.txt:
1953         * wtf/Observer.h: Added.
1954         (WTF::Observer<Out):
1955
1956 2020-07-30  Keith Miller  <keith_miller@apple.com>
1957
1958         Compute number of PAC bits from what the OS says its address space is
1959         https://bugs.webkit.org/show_bug.cgi?id=214986
1960
1961         Reviewed by Saam Barati.
1962
1963         * wtf/CagedPtr.h:
1964         * wtf/PtrTag.h:
1965
1966 2020-07-29  Fujii Hironori  <Hironori.Fujii@sony.com>
1967
1968         [Win Debug] Unreviewed build fix
1969
1970         > JavaScriptCore/runtime/JSArrayBufferView.cpp(51): error C2660: 'Gigacage::isEnabled': function does not take 0 arguments
1971
1972         * wtf/Gigacage.h:
1973         (Gigacage::isEnabled): Added isEnabled taking no argument which was adeed to bmalloc in r249556 (Bug 201521).
1974
1975 2020-07-29  Don Olmstead  <don.olmstead@sony.com>
1976
1977         Remove USE(ZLIB)
1978         https://bugs.webkit.org/show_bug.cgi?id=214929
1979
1980         Reviewed by Darin Adler.
1981
1982         Remove setting a default value of USE_ZLIB.
1983
1984         * wtf/PlatformUse.h:
1985
1986 2020-07-28  Karl Rackler  <rackler@apple.com>
1987
1988         Unreviewed, reverting r264955.
1989
1990         Reverting because this commit may have caused issues with
1991         tests.
1992
1993         Reverted changeset:
1994
1995         "WebCoreResourceHandleAsOperationQueueDelegate can use
1996         RunLoop::dispatch"
1997         https://bugs.webkit.org/show_bug.cgi?id=214771
1998         https://trac.webkit.org/changeset/264955
1999
2000 2020-07-27  Geoffrey Garen  <ggaren@apple.com>
2001
2002         WebCoreResourceHandleAsOperationQueueDelegate can use RunLoop::dispatch
2003         https://bugs.webkit.org/show_bug.cgi?id=214771
2004
2005         Reviewed by Darin Adler.
2006
2007         * wtf/cf/RunLoopCF.cpp:
2008         (WTF::RunLoop::dispatch): Migrated the optimization from
2009         WebCoreResourceHandleAsOperationQueueDelegate. All Cocoa WebViews begin
2010         life with a single SchedulePair scheduled in kCFRunLoopCommonModes, so
2011         this optimization is the common case.
2012
2013         (Note that I did not copy the kCFRunLoopDefaultMode clause from
2014         the WebCoreResourceHandleAsOperationQueueDelegate optimization. That's
2015         because it's not the common case, and also because it's not correct to
2016         do a vanilla disptach() in the case of kCFRunLoopDefaultMode because a
2017         vanilla dispatch() would use kCFRunLoopCommonModes.)
2018
2019 2020-07-27  Yusuke Suzuki  <ysuzuki@apple.com>
2020
2021         [JSC] Disable BIGINT32 optimization temporarily because of SP2 / JS2 regression
2022         https://bugs.webkit.org/show_bug.cgi?id=214776
2023
2024         Reviewed by Darin Adler.
2025
2026         We disable BIGINT32 optimization because it causes 1% regression in JetStream2 and Speedometer2.
2027         We should enable it after we fix the cause of regression.
2028
2029         * wtf/PlatformUse.h:
2030
2031 2020-07-27  Carlos Garcia Campos  <cgarcia@igalia.com>
2032
2033         [WPE][GTK] Add API to support "Privacy Report"
2034         https://bugs.webkit.org/show_bug.cgi?id=213493
2035
2036         Reviewed by Adrian Perez de Castro.
2037
2038         Add support for using GRefPtr with GDateTime.
2039
2040         * wtf/glib/GRefPtr.cpp:
2041         (WTF::refGPtr):
2042         (WTF::derefGPtr):
2043         * wtf/glib/GRefPtr.h:
2044
2045 2020-07-23  Keith Miller  <keith_miller@apple.com>
2046
2047         iOS simulator does not support WebAssembly
2048         https://bugs.webkit.org/show_bug.cgi?id=191064
2049
2050         Reviewed by Yusuke Suzuki.
2051
2052         Now that it seems we can JIT in the Simulator we should enable
2053         WebAssembly there. This just means enabling FTL/B3 so WASM gets
2054         enabled.
2055
2056         * wtf/PlatformEnable.h:
2057         * wtf/PlatformEnableCocoa.h:
2058
2059 2020-07-23  Aditya Keerthi  <akeerthi@apple.com>
2060
2061         [macOS] Datalist dropdown scrollbar position does not match visible region
2062         https://bugs.webkit.org/show_bug.cgi?id=214656
2063
2064         Reviewed by Wenson Hsieh.
2065
2066         * wtf/PlatformHave.h: Define HAVE_NSTABLEVIEWSTYLE.
2067
2068 2020-07-23  Brady Eidson  <beidson@apple.com>
2069
2070         Add Gamepad tests that exercise the native frameworks
2071         <rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188
2072
2073         Reviewed by Tim Horton.
2074
2075         * wtf/PlatformHave.h:
2076
2077 2020-07-23  Commit Queue  <commit-queue@webkit.org>
2078
2079         Unreviewed, reverting r264745.
2080         https://bugs.webkit.org/show_bug.cgi?id=214681
2081
2082         Broke 3 web-platform-tests on iOS
2083
2084         Reverted changeset:
2085
2086         "iOS simulator does not support WebAssembly"
2087         https://bugs.webkit.org/show_bug.cgi?id=191064
2088         https://trac.webkit.org/changeset/264745
2089
2090 2020-07-22  Jer Noble  <jer.noble@apple.com>
2091
2092         [Cocoa] Add feature flag for WebM & VP9
2093         https://bugs.webkit.org/show_bug.cgi?id=214672
2094         <rdar://problem/65959506>
2095
2096         Reviewed by Beth Dakin.
2097
2098         * wtf/PlatformEnableCocoa.h:
2099
2100 2020-07-22  Conrad Shultz  <conrad_shultz@apple.com>
2101
2102         Update macOS Version macros
2103         https://bugs.webkit.org/show_bug.cgi?id=214653
2104
2105         Reviewed by Tim Horton.
2106
2107         * Configurations/Base.xcconfig:
2108         * Configurations/DebugRelease.xcconfig:
2109         * wtf/PlatformHave.h:
2110
2111 2020-07-22  Keith Miller  <keith_miller@apple.com>
2112
2113         iOS simulator does not support WebAssembly
2114         https://bugs.webkit.org/show_bug.cgi?id=191064
2115
2116         Reviewed by Yusuke Suzuki.
2117
2118         Now that it seems we can JIT in the Simulator we should enable
2119         WebAssembly there. This just means enabling FTL/B3 so WASM gets
2120         enabled.
2121
2122         * wtf/PlatformEnable.h:
2123         * wtf/PlatformEnableCocoa.h:
2124
2125 2020-07-22  Geoffrey Garen  <ggaren@apple.com>
2126
2127         WTF::Function adoption should be explicit instead of implicit
2128         https://bugs.webkit.org/show_bug.cgi?id=214654
2129
2130         Reviewed by Darin Adler.
2131
2132         * wtf/Function.h:
2133         (WTF::Function<Out):
2134         (WTF::adoptImpl): Added an adopt function for Functions and made the
2135         adopting constructor private.
2136
2137         * wtf/cf/RunLoopCF.cpp:
2138         (WTF::RunLoop::dispatch): Use new adopt function.
2139
2140 2020-07-22  Jer Noble  <jer.noble@apple.com>
2141
2142         Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.
2143
2144         * wtf/PlatformHave.h:
2145
2146 2020-07-22  Geoffrey Garen  <ggaren@apple.com>
2147
2148         JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
2149         https://bugs.webkit.org/show_bug.cgi?id=214102
2150
2151         Unreviewed, re-landing r264242 with crash fixed.
2152
2153         To support JSC using external locking around a RunLoop timer, we needed
2154         to avoid modifying unsynchronized timer state while firing.
2155
2156         * wtf/cf/RunLoopCF.cpp:
2157         (WTF::RunLoop::TimerBase::start):
2158
2159 2020-07-21  Eric Carlson  <eric.carlson@apple.com>
2160
2161         Use AVRoutePickerView when available for choosing AirPlay devices
2162         https://bugs.webkit.org/show_bug.cgi?id=213497
2163         <rdar://problem/58610662>
2164
2165         Reviewed by Jer Noble.
2166
2167         * wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.
2168
2169 2020-07-20  Yusuke Suzuki  <ysuzuki@apple.com>
2170
2171         [ECMA-402] Implement Intl.DisplayNames
2172         https://bugs.webkit.org/show_bug.cgi?id=209779
2173
2174         Reviewed by Ross Kirsling.
2175
2176         * wtf/text/StringView.h:
2177
2178 2020-07-20  Adrian Perez de Castro  <aperez@igalia.com>
2179
2180         Non unified build fixes, midsummer 2020 edition
2181         https://bugs.webkit.org/show_bug.cgi?id=213616
2182
2183         Unreviewed build fix.
2184
2185         * wtf/text/StringParsingBuffer.h: Add missing inclusion of wtf/text/StringView.h,
2186         and removed other now-unneeded header inclusions.
2187
2188 2020-07-19  Geoffrey Garen  <ggaren@apple.com>
2189
2190         There should be only one RunLoop Timer class
2191         https://bugs.webkit.org/show_bug.cgi?id=214340
2192
2193         Reviewed by Darin Adler.
2194
2195         RunLoop::Timer wins. RunLoopTimer loses.
2196
2197         * WTF.xcodeproj/project.pbxproj:
2198         * wtf/CMakeLists.txt:
2199         * wtf/PlatformHave.h:
2200         * wtf/PlatformMac.cmake: Remove RunLoopTimer.
2201
2202         * wtf/RunLoop.cpp:
2203         (WTF::RunLoop::dispatchAfter): While we're here. let's make dispatchAfter
2204         available on all platforms. We had cross-platform code, but it was
2205         factored to be needlessly platform-specific.
2206
2207         * wtf/RunLoop.h: Added a version of dispatch() that accepts a
2208         SchedulePairHashSet for Cocoa. Removed some indirection from timer
2209         stuff, since it was confusing me. Consistently named all time intervals
2210         "interval".
2211
2212         * wtf/RunLoopTimer.h: Removed.
2213
2214         * wtf/cf/RunLoopCF.cpp:
2215         (WTF::createTimer): Factored out a helper function for dispatch() to use.
2216         (WTF::RunLoop::dispatch): This function is the meat of the patch. It's
2217         the only unique functionality that RunLoopTimer used to provide.
2218         (WTF::RunLoop::TimerBase::start): Adopted helper function.
2219         (WTF::RunLoop::runForDuration): Deleted.
2220         (WTF::RunLoop::TimerBase::timerFired): Deleted.
2221
2222         * wtf/cf/RunLoopTimerCF.cpp: Removed.
2223
2224         * wtf/generic/RunLoopGeneric.cpp:
2225         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
2226
2227         * wtf/glib/RunLoopGLib.cpp:
2228         (WTF::RunLoop::TimerBase::updateReadyTime):
2229         (WTF::RunLoop::TimerBase::start):
2230         (WTF::RunLoop::TimerBase::stop):
2231         (WTF::DispatchAfterContext::DispatchAfterContext): Deleted.
2232         (WTF::DispatchAfterContext::dispatch): Deleted.
2233         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
2234
2235         * wtf/win/RunLoopWin.cpp:
2236         (WTF::RunLoop::TimerBase::start):
2237         (WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.
2238
2239 2020-07-17  Sam Weinig  <weinig@apple.com>
2240
2241         Remove final vestigates of SimpleColor
2242         https://bugs.webkit.org/show_bug.cgi?id=214439
2243
2244         Reviewed by Simon Fraser.
2245
2246         * wtf/KeyValuePair.h:
2247         (WTF::KeyValuePair::KeyValuePair):
2248         Add overload of constructor that is not a template function to aid deduction
2249         when using std::initializer_lists to contruct a HashMap.
2250
2251 2020-07-17  Fujii Hironori  <Hironori.Fujii@sony.com>
2252
2253         Don't include <wtf/text/WTFString.h> in SVGParserUtilities.h
2254         https://bugs.webkit.org/show_bug.cgi?id=214320
2255
2256         Reviewed by Darin Adler.
2257
2258         * wtf/Forward.h: Added foward declarations for template specializations of DefaultHash.
2259
2260 2020-07-17  Keith Miller  <keith_miller@apple.com>
2261
2262         Fix 32-bit debug watchos build
2263         https://bugs.webkit.org/show_bug.cgi?id=214480
2264
2265         Reviewed by Michael Saboff.
2266
2267         subtracting pointers produces a ptrdiff_t but on 32-bit that's the same
2268         as an int. Since we were comparing that to an unsigned that triggered
2269         the signed comparison warning, which broke the build.
2270
2271         * wtf/text/StringParsingBuffer.h:
2272
2273 2020-07-17  Truitt Savell  <tsavell@apple.com>
2274
2275         Unreviewed, reverting r264482.
2276
2277         Part of an attempted fix for the build
2278
2279         Reverted changeset:
2280
2281         "Use AVRoutePickerView when available for choosing AirPlay
2282         devices"
2283         https://bugs.webkit.org/show_bug.cgi?id=213497
2284         https://trac.webkit.org/changeset/264482
2285
2286 2020-07-16  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2287
2288         Rename createBoxPtr into adoptBoxPtr
2289         https://bugs.webkit.org/show_bug.cgi?id=214171
2290
2291         Reviewed by Darin Adler.
2292
2293         * wtf/BoxPtr.h:
2294         (WTF::adoptInBoxPtr):
2295
2296 2020-07-16  Per Arne Vollan  <pvollan@apple.com>
2297
2298         XPC connection should be suspended before setting target queue
2299         https://bugs.webkit.org/show_bug.cgi?id=214427
2300
2301         Reviewed by Darin Adler.
2302
2303         Declare function to suspend XPC connection.
2304
2305         * wtf/spi/darwin/XPCSPI.h:
2306
2307 2020-07-16  Fujii Hironori  <Hironori.Fujii@sony.com>
2308
2309         [WTF] Remove the unnecessary inner class DefaultHash<T>::Hash
2310         https://bugs.webkit.org/show_bug.cgi?id=214389
2311
2312         Reviewed by Darin Adler.
2313
2314         DefaultHash<T> doesn't need to have a inner struct Hash. This can
2315         be a problem for forward declarations (Bug 214320 Comment 5).
2316
2317         * wtf/BitVector.h:
2318         * wtf/Forward.h:
2319         * wtf/HashFunctions.h:
2320         (WTF::PairHash::hash):
2321         (WTF::PairHash::equal):
2322         (WTF::TupleHash::hash):
2323         (WTF::TupleHash::equal):
2324         * wtf/ListHashSet.h:
2325         * wtf/LoggingHashMap.h:
2326         * wtf/LoggingHashSet.h:
2327         * wtf/MetaAllocatorPtr.h:
2328         * wtf/ObjectIdentifier.h:
2329         * wtf/OptionSetHash.h:
2330         (WTF::DefaultHash<OptionSet<T>>::hash):
2331         (WTF::DefaultHash<OptionSet<T>>::equal):
2332         (WTF::DefaultHash<OptionSet<T>>::Hash::hash): Deleted.
2333         (WTF::DefaultHash<OptionSet<T>>::Hash::equal): Deleted.
2334         * wtf/Packed.h:
2335         * wtf/RetainPtr.h:
2336         * wtf/StackShot.h:
2337         * wtf/URLHash.h:
2338         * wtf/VectorHash.h:
2339         (WTF::VectorHash::hash):
2340         * wtf/text/AtomString.h:
2341         * wtf/text/AtomStringHash.h:
2342         * wtf/text/CString.h:
2343         * wtf/text/StringHash.h:
2344         * wtf/text/StringImpl.h:
2345         * wtf/text/SymbolRegistry.h:
2346         (WTF::DefaultHash<SymbolRegistryKey>::hash):
2347         (WTF::DefaultHash<SymbolRegistryKey>::equal):
2348         (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash): Deleted.
2349         (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal): Deleted.
2350         * wtf/text/WTFString.h:
2351
2352 2020-07-16  Eric Carlson  <eric.carlson@apple.com>
2353
2354         Use AVRoutePickerView when available for choosing AirPlay devices
2355         https://bugs.webkit.org/show_bug.cgi?id=213497
2356         <rdar://problem/58610662>
2357
2358         Unreviewed build fix.
2359
2360         * wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.
2361
2362 2020-07-16  Jonathan Bedard  <jbedard@apple.com>
2363
2364         [Big Sur] De-duplicate SPI
2365         https://bugs.webkit.org/show_bug.cgi?id=214415
2366         <rdar://problem/65678060>
2367
2368         Reviewed by Darin Adler.
2369
2370         * wtf/PlatformHave.h:
2371
2372 2020-07-16  Jonathan Bedard  <jbedard@apple.com>
2373
2374         [Big Sur] Build on Seed 1
2375         https://bugs.webkit.org/show_bug.cgi?id=214396
2376         <rdar://problem/65644762>
2377
2378         Reviewed by Tim Horton.
2379
2380         * wtf/PlatformHave.h: Add HAVE(LARGE_CONTROL_SIZE).
2381
2382 2020-07-15  Saagar Jha  <saagar@saagarjha.com>
2383
2384         Add some missing boilerplate to help fix build on macOS Big Sur
2385         https://bugs.webkit.org/show_bug.cgi?id=214338
2386
2387         Reviewed by Darin Adler.
2388
2389         * wtf/PlatformHave.h: Add HAVE_LARGE_CONTROL_SIZE and enable it on Big Sur.
2390
2391 2020-07-15  Darin Adler  <darin@apple.com>
2392
2393         Remove a few more uses of the terms black/white list
2394         https://bugs.webkit.org/show_bug.cgi?id=214371
2395
2396         Reviewed by Alex Christensen.
2397
2398         * wtf/URLHelpers.cpp:
2399         (WTF::URLHelpers::loadIDNAllowedScriptList): Renamed.
2400         (WTF::URLHelpers::isLookalikeCharacter): Renamed.
2401         (WTF::URLHelpers::addScriptToIDNAllowedScriptList): Renamed.
2402         (WTF::URLHelpers::initializeDefaultIDNAllowedScriptList): Renamed.
2403         (WTF::URLHelpers::allCharactersInAllowedIDNScriptList): Renamed.
2404         (WTF::URLHelpers::mapHostName): Updated for name changes.
2405         * wtf/URLHelpers.h: Renamed things.
2406
2407         * wtf/cocoa/NSURLExtras.mm:
2408         (WTF::readIDNAllowedScriptListFile): Renamed.
2409         (WTF::URLHelpers::loadIDNAllowedScriptList): Renamed. Also use a modern for
2410         loop to simplify the code.
2411
2412 2020-07-15  Jim Mason  <jmason@ibinx.com>
2413
2414         [WTF] Fix PackedAlignedPtr for X86_64 canonical addresses
2415         https://bugs.webkit.org/show_bug.cgi?id=214142
2416
2417         Reviewed by Mark Lam
2418
2419         * wtf/Packed.h:
2420         (WTF::PackedAlignedPtr::get const):
2421         (WTF::PackedAlignedPtr::set):
2422
2423 2020-07-15  Brady Eidson  <beidson@apple.com>
2424
2425         Resolve race between IOHIDManager and GameController framework.
2426         <rdar://problem/65554490> and https://bugs.webkit.org/show_bug.cgi?id=214245
2427
2428         Reviewed by Tim Horton.
2429
2430         * wtf/PlatformHave.h:
2431
2432 2020-07-14  Alex Christensen  <achristensen@webkit.org>
2433
2434         REGRESSION(r262341) URL::createCFURL should produce a CFURL that uses UTF-8 to decode its percent-encoded sequences
2435         https://bugs.webkit.org/show_bug.cgi?id=214314
2436         <rdar://problem/65079249>
2437
2438         Reviewed by Darin Adler.
2439
2440         r262341 made it so we usually pass kCFStringEncodingISOLatin1 into CFURLCreateAbsoluteURLWithBytes when creating a CFURLRef from a WTF::URL.
2441         This is correct for the interpretation of the bytes to create a CFStringRef, and that is a change we want to make.
2442         The encoding, however, is also stored with the CFURL and used later when interpreting percent-encoded sequences.
2443         We want to use kCFStringEncodingUTF8 to make the interpretation of percent-encoded sequences the same as it used to be.
2444         To avoid making a separate CString most of the time, use characters8() only for ASCII-only URLs, where UTF-8 and Latin1 are the same.
2445         For all other URLs, we have to make a CString containing the UTF-8 representation of the string to get the percent-encoded sequences interpreted the same.
2446
2447         * wtf/cf/URLCF.cpp:
2448         (WTF::URL::createCFURL const):
2449         * wtf/cocoa/URLCocoa.mm:
2450         (WTF::URL::createCFURL const):
2451
2452 2020-07-14  Jer Noble  <jer.noble@apple.com>
2453
2454         Add support for parsing VP-style codec strings.
2455         https://bugs.webkit.org/show_bug.cgi?id=214270
2456         <rdar://problem/65500048>
2457
2458         Reviewed by Eric Carlson.
2459
2460         Add a variant of toIntegralType<> which returns an Optional. Since no existing callers of the
2461         original toIntegralType fail to pass in the optional bool* parameter, make that parameter
2462         non-optional, as it causes a conflict with the new Optional-returning version.
2463
2464         * wtf/text/StringToIntegerConversion.h:
2465         (WTF::toIntegralType):
2466
2467 2020-07-13  Keith Miller  <keith_miller@apple.com>
2468
2469         Clean up SourceProvider and add caller relative load script to jsc.cpp
2470         https://bugs.webkit.org/show_bug.cgi?id=214205
2471
2472         Reviewed by Yusuke Suzuki.
2473
2474         Using a URL as a boolean in a conditional should be a compile
2475         error.  Currently, it "works" because it actually calls `operator
2476         NSURL*()`... which is likely NOT what you wanted. Until we decide
2477         what it means to have a URL in a conditional it will be a compile
2478         error.
2479
2480         * wtf/URL.cpp:
2481         (WTF::URL::fileSystemPath const):
2482         * wtf/URL.h:
2483
2484 2020-07-12  Yusuke Suzuki  <ysuzuki@apple.com>
2485
2486         [JSC] String.protoytpe.toLocaleLowerCase's availableLocales HashSet is inefficient
2487         https://bugs.webkit.org/show_bug.cgi?id=213158
2488
2489         Reviewed by Darin Adler.
2490
2491         Add characterAt method to ASCIILiteral.
2492
2493         * wtf/text/ASCIILiteral.h:
2494
2495 2020-07-12  Darin Adler  <darin@apple.com>
2496
2497         Some further streamlining of Gradient handling code
2498         https://bugs.webkit.org/show_bug.cgi?id=214239
2499
2500         Reviewed by Sam Weinig.
2501
2502         * wtf/Vector.h: Added an overload for insert analogous to the ones we already have
2503         for append and uncheckedAppend, helpful for type deduction.
2504
2505 2020-07-12  Said Abou-Hallawa  <sabouhallawa@apple.com>
2506
2507         [macOS]: A HEIF image, selected from the OpenPanel, should be converted to an accepted MIME type
2508         https://bugs.webkit.org/show_bug.cgi?id=213347
2509         <rdar://problem/57258464>
2510
2511         Reviewed by Darin Adler.
2512
2513         Allow a suffix to be included in the temporary file name. The goal is to
2514         make it possible to create temporary image files with valid extensions.
2515
2516         * wtf/FileSystem.h:
2517         (WTF::FileSystemImpl::openTemporaryFile):
2518         * wtf/cocoa/FileSystemCocoa.mm:
2519         (WTF::FileSystemImpl::openTemporaryFile):
2520         * wtf/glib/FileSystemGlib.cpp:
2521         (WTF::FileSystemImpl::openTemporaryFile):
2522         * wtf/posix/FileSystemPOSIX.cpp:
2523         (WTF::FileSystemImpl::openTemporaryFile):
2524         * wtf/win/FileSystemWin.cpp:
2525         (WTF::FileSystemImpl::openTemporaryFile):
2526
2527 2020-07-12  Rob Buis  <rbuis@igalia.com>
2528
2529         Improve IPv6 detection when setting host/hostname
2530         https://bugs.webkit.org/show_bug.cgi?id=214218
2531
2532         Reviewed by Darin Adler.
2533
2534         * wtf/URL.cpp:
2535         (WTF::URL::setHost): do not bail out if ':' was found but we start
2536         with a '[', since the host may be IPv6.
2537         (WTF::URL::setHostAndPort): multiple colons are acceptable only in case of IPv6.
2538
2539 2020-07-11  Sam Weinig  <weinig@apple.com> and Yusuke Suzuki  <ysuzuki@apple.com>
2540
2541         Relanding "Make hasher work with tuple-like classes"
2542         https://bugs.webkit.org/show_bug.cgi?id=214224
2543
2544         Reviewed by Darin Adler.
2545
2546         The original patch broke the internal build. And reverting patch (r264274) broke the build too.
2547         This patch relands r264270 with `constexpr` => `inline constexpr` template variable fix.
2548
2549         * wtf/Hasher.h:
2550         (WTF::add):
2551         (WTF::addTupleLikeHelper):
2552         (WTF::TypeCheckHelper<decltype): Deleted.
2553         (WTF::addTupleHelper): Deleted.
2554         Add support for tuple-like classes. These are classes that:
2555         - Have defined specializations of std::tuple_size<> and std::tuple_element<>.
2556         - And have either a member function named get<> or there exists a function get<>()
2557           that takes the class as argument that can be looked up via ADL.
2558
2559         To avoid abiguity when hashing std::array, the add() overload enabled for containers
2560         with a begin member functions also now checks that the container is not tuple-like.
2561         The std::pair overload is no longer needed as it will use the tuple-like one now.
2562
2563         * wtf/OptionSet.h:
2564         * wtf/StdLibExtras.h:
2565         Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
2566         adhere to WebKit style as IsTypeComplete<>.
2567
2568 2020-07-11  Commit Queue  <commit-queue@webkit.org>
2569
2570         Unreviewed, reverting r264270.
2571         https://bugs.webkit.org/show_bug.cgi?id=214228
2572
2573         Broke the build
2574
2575         Reverted changeset:
2576
2577         "Make hasher work with tuple-like classes"
2578         https://bugs.webkit.org/show_bug.cgi?id=214224
2579         https://trac.webkit.org/changeset/264270
2580
2581 2020-07-11  Darin Adler  <darin@apple.com>
2582
2583         Remove live ranges from AccessibilityObject.h, AccessibilityObjectInterface.h, AccessibilityRenderObject.h, AXIsolatedObject.h
2584         https://bugs.webkit.org/show_bug.cgi?id=214215
2585
2586         Reviewed by Sam Weinig.
2587
2588         * wtf/cocoa/VectorCocoa.h: Added a new makeVector that takes a function.
2589         Also updated createNSArray to use std::invoke.
2590
2591 2020-07-11  Sam Weinig  <weinig@apple.com>
2592
2593         Make hasher work with tuple-like classes
2594         https://bugs.webkit.org/show_bug.cgi?id=214224
2595
2596         Reviewed by Darin Adler.
2597
2598         * wtf/Hasher.h:
2599         (WTF::add):
2600         (WTF::addTupleLikeHelper):
2601         (WTF::TypeCheckHelper<decltype): Deleted.
2602         (WTF::addTupleHelper): Deleted.
2603         Add support for tuple-like classes. These are classes that:
2604         - Have defined specializations of std::tuple_size<> and std::tuple_element<>.
2605         - And have either a member function named get<> or there exists a function get<>()
2606           that takes the class as argument that can be looked up via ADL.
2607
2608         To avoid abiguity when hashing std::array, the add() overload enabled for containers
2609         with a begin member functions also now checks that the container is not tuple-like.
2610         The std::pair overload is no longer needed as it will use the tuple-like one now.
2611
2612         * wtf/OptionSet.h:
2613         * wtf/StdLibExtras.h:
2614         Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
2615         adhere to WebKit style as IsTypeComplete<>.
2616
2617 2020-07-10  Brady Eidson  <beidson@apple.com>
2618
2619         GameController.framework gamepads should support Home buttons.
2620         <rdar://problem/63500696> and https://bugs.webkit.org/show_bug.cgi?id=212933
2621
2622         Reviewed by Tim Horton.
2623
2624         * wtf/PlatformHave.h:
2625
2626 2020-07-10  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2627
2628         [GStreamer][EME][OpenCDM] Implement OpenCDM support
2629         https://bugs.webkit.org/show_bug.cgi?id=213550
2630
2631         Reviewed by Philippe Normand.
2632
2633         * wtf/PlatformEnable.h: Disable OPENCDM by default.
2634
2635 2020-07-09  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2636
2637         Simplify BoxPtr::create
2638         https://bugs.webkit.org/show_bug.cgi?id=214144
2639
2640         Reviewed by Darin Adler.
2641
2642         * wtf/BoxPtr.h:
2643         (WTF::createBoxPtr): Use the alias instead of the unrolled type.
2644
2645 2020-07-09  Per Arne Vollan  <pvollan@apple.com>
2646
2647         [Cocoa] Update Launch Services database in the WebContent process from the Network process
2648         https://bugs.webkit.org/show_bug.cgi?id=213794
2649
2650         Reviewed by Brent Fulgham.
2651
2652         Added HAVE define for determining if the class LSDatabaseContext is present.
2653
2654         * wtf/PlatformHave.h:
2655
2656 2020-07-09  Commit Queue  <commit-queue@webkit.org>
2657
2658         Unreviewed, reverting r264148.
2659         https://bugs.webkit.org/show_bug.cgi?id=214136
2660
2661         Introduced layout test failures
2662
2663         Reverted changeset:
2664
2665         "[Cocoa] Update Launch Services database in the WebContent
2666         process from the Network process"
2667         https://bugs.webkit.org/show_bug.cgi?id=213794
2668         https://trac.webkit.org/changeset/264148
2669
2670 2020-07-09  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2671
2672         [WTF] Implement new BoxPtr alias
2673         https://bugs.webkit.org/show_bug.cgi?id=212379
2674
2675         Reviewed by Darin Adler.
2676
2677         Added BoxPtr.h that includes BoxPtr<T> as alias of
2678         Box<std::unique_ptr<T>>. We discussed about this class on bugzilla
2679         and we agreed on this alias being the best idea. Apart from the
2680         alias I'm adding a couple of helpers like a create function and
2681         the operator== and operator!=.
2682
2683         Tests: BoxPtr API tests added.
2684
2685         * WTF.xcodeproj/project.pbxproj:
2686         * wtf/BoxPtr.h: Added.
2687         (WTF::createBoxPtr):
2688         (WTF::operator==):
2689         (WTF::operator!=):
2690         * wtf/CMakeLists.txt:
2691
2692 2020-07-08  Per Arne Vollan  <pvollan@apple.com>
2693
2694         [Cocoa] Update Launch Services database in the WebContent process from the Network process
2695         https://bugs.webkit.org/show_bug.cgi?id=213794
2696
2697         Reviewed by Brent Fulgham.
2698
2699         Added HAVE define for determining if the class LSDatabaseContext is present.
2700
2701         * wtf/PlatformHave.h:
2702
2703 2020-07-08  Per Arne Vollan  <pvollan@apple.com>
2704
2705         [Cocoa] Make it possible to establish direct XPC connections between WebKit processes
2706         https://bugs.webkit.org/show_bug.cgi?id=214079
2707
2708         Reviewed by Brent Fulgham.
2709
2710         Declare function to create a xpc endpoint, as well as a function to create a connection from an endpoint.
2711
2712         * wtf/spi/darwin/XPCSPI.h:
2713
2714 2020-07-08  Geoffrey Garen  <ggaren@apple.com>
2715
2716         dyld: Symbol not found: __ZN3WTF19initializeThreadingEv - webkit MacOSX
2717         https://bugs.webkit.org/show_bug.cgi?id=214034
2718
2719         Reviewed by Mark Lam.
2720
2721         * wtf/Threading.cpp:
2722         (WTF::initializeThreading): Export the old symbol name for compatibility.
2723
2724 2020-07-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2725
2726         [GTK] WebProcess hangs when browsing GitHub
2727         https://bugs.webkit.org/show_bug.cgi?id=213970
2728
2729         Reviewed by Sergio Villar Senin.
2730
2731         Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
2732         drawing with the idea of keeping a good rendering performance without being affected by other timers. The
2733         problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
2734         higher priority than drawing.
2735
2736         * wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.
2737
2738 2020-07-06  Geoffrey Garen  <ggaren@apple.com>
2739
2740         callOnMainThread should use the same queue as RunLoop::dispatch
2741         https://bugs.webkit.org/show_bug.cgi?id=213830
2742
2743         Reviewed by Brady Eidson.
2744
2745         This should reduce flakiness in scheduled tasks.
2746
2747         There's no need to keep a separate queue anymore since both APIs have
2748         the same semantics now.
2749
2750         * wtf/MainThread.cpp:
2751         (WTF::callOnMainThread):
2752         (WTF::functionQueue): Deleted.
2753         (WTF::dispatchFunctionsFromMainThread): Deleted.
2754         * wtf/MainThread.h:
2755         * wtf/cocoa/MainThreadCocoa.mm:
2756         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2757         * wtf/generic/MainThreadGeneric.cpp:
2758         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2759         * wtf/win/MainThreadWin.cpp:
2760         (WTF::scheduleDispatchFunctionsOnMainThread): Deleted.
2761
2762 2020-07-06  Michael Catanzaro  <mcatanzaro@gnome.org>
2763
2764         Spams system logs with "Current memory footprint: 10 MB"
2765         https://bugs.webkit.org/show_bug.cgi?id=213991
2766
2767         Reviewed by Darin Adler.
2768
2769         This particular log statement is too much spam in the system journal, since it prints
2770         continuously under normal operating conditions. Let's limit it only to Apple platforms,
2771         which have had RELEASE_LOG() for a long time and where this is presumably expected.
2772
2773         * wtf/MemoryPressureHandler.cpp:
2774         (WTF::MemoryPressureHandler::measurementTimerFired):
2775
2776 2020-07-06  Sam Weinig  <weinig@apple.com>
2777
2778         Compile-time enable (but leave disabled at runtime by default) date/time input types on macOS to allow testing of cross platform (e.g. DOM) aspects of the controls
2779         https://bugs.webkit.org/show_bug.cgi?id=213949
2780
2781         Reviewed by Darin Adler.
2782
2783         * wtf/PlatformEnableCocoa.h:
2784         Enable building date/time input types on all Cocoa ports. 
2785
2786 2020-07-06  Geoffrey Garen  <ggaren@apple.com>
2787
2788         RunLoop::dispatch should only call wakeUp when needed
2789         https://bugs.webkit.org/show_bug.cgi?id=213705
2790
2791         Reviewed by Brady Eidson.
2792
2793         RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
2794         when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
2795         of all database lookup time.
2796
2797         We can reduce the cost a bit by only scheduling a wakeUp when the queue
2798         is empty.
2799
2800         * wtf/RunLoop.cpp:
2801         (WTF::RunLoop::performWork): Take all the functions out of the pending
2802         queue before we start executing them; that way, we can tell if a new
2803         function has been added to the pending queue since we enetered
2804         performWork.
2805
2806         (WTF::RunLoop::dispatch): Only call wakeUp if we need to.
2807
2808         * wtf/RunLoop.h:
2809
2810 2020-07-04  Darin Adler  <darin@apple.com>
2811
2812         [Cocoa] Add almost everything from FeatureDefines.xcconfig to PlatformEnableCocoa.h
2813         https://bugs.webkit.org/show_bug.cgi?id=213964
2814
2815         Reviewed by Sam Weinig.
2816
2817         Added logic that matches what FeatureDefines.xcconfig does for everything
2818         except for ENABLE_EXPERIMENTAL_FEATURES.
2819
2820         Changed format so we mostly list platforms where we do not want to enable
2821         a certain feature; also order it pretty consistently macOS, iOS, Mac Catalyst,
2822         watchOS, then tvOS. This format highlights possible mistakes when not enabling
2823         a feature on some platforms in an easier to understand way.
2824
2825         * wtf/PlatformEnableCocoa.h:
2826         (ENABLE_AIRPLAY_PICKER): List platforms that do *not* enable this.
2827         (ENABLE_APPLE_PAY): All except Mac Catalyst, watchOS, tvOS.
2828         Not sure why disabled in Mac Catalyst, but replicates FeatureDefines.xcconfig.
2829         (ENABLE_APPLE_PAY_REMOTE_UI): List platforms that do *not* enable this.
2830         (ENABLE_AUTOCAPITALIZE): List platforms that do *not* enable this.
2831         (ENABLE_AUTOCORRECT): List platforms that do *not* enable this.
2832         (ENABLE_CONTENT_FILTERING): All except older watchOS simulator and tvOS.
2833         (ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER): Re-sorted this.
2834         (ENABLE_CSS_CONIC_GRADIENTS): All except older macOS and tvOS. The tvOS
2835         exception seems questionable, so added a FIXME.
2836         (ENABLE_DARK_MODE_CSS): All except watchOS and tvOS.
2837         (ENABLE_DATA_INTERACTION): All except macOS, watchOS, and tvOS.
2838         (ENABLE_DATA_DETECTION): All except Mac Catalyst, watchOS, and tvOS.
2839         (ENABLE_EDITABLE_REGION): Only iOS.
2840         (ENABLE_ENCRYPTED_MEDIA): All except older macOS and Mac Catalyst.
2841         (ENABLE_FULLSCREEN_API): All except Mac Catalyst, watchOS, and tvOS.
2842         (ENABLE_FULL_KEYBOARD_ACCESS): All except Mac Catalyst, watchOS, and tvOS.
2843         (ENABLE_GAMEPAD): All except watchOS.
2844         (ENABLE_INPUT_TYPE_DATE): All except macOS, Mac Catalyst, and tvOS.
2845         (ENABLE_INPUT_TYPE_DATETIMELOCAL): Ditto.
2846         (ENABLE_INPUT_TYPE_MONTH): Ditto.
2847         (ENABLE_INPUT_TYPE_TIME): Ditto.
2848         (ENABLE_INPUT_TYPE_WEEK): Ditto.
2849         (ENABLE_MEDIA_CAPTURE): All except macOS.
2850         (ENABLE_MEDIA_SOURCE): All except Mac Catalyst, watchOS, tvOS, and
2851         all simulators.
2852         (ENABLE_MEDIA_STREAM): All except Mac Catalyst, watchOS, and tvOS.
2853         (ENABLE_NAVIGATOR_STANDALONE): All iOS family. (Considered writing as
2854         all except macOS, but left like this to match some .cpp code for now.)
2855         (ENABLE_OVERFLOW_SCROLLING_TOUCH): All iOS family.
2856         (ENABLE_PICTURE_IN_PICTURE_API): All except Mac Catalyst, watchOS, and tvOS.
2857         (ENABLE_SPEECH_SYNTHESIS): All except Mac Catalyst.
2858         (ENABLE_REVEAL): All except older macOS, watchOS, and tvOS.
2859         (ENABLE_SIGILL_CRASH_ANALYZER): All except macOS and watchOS.
2860         (ENABLE_TAKE_UNBOUNDED_NETWORKING_ASSERTION): All except macOS, watchOS, and tvOS.
2861         (ENABLE_VIDEO_PRESENTATION_MODE): All except simulators and tvOS.
2862         (ENABLE_WEBGPU): All except older macOS, Mac Catalyst, and simulators.
2863         (ENABLE_WEB_API_STATISTICS): Re-sorted this.
2864         (ENABLE_WEB_AUTHN): All except Mac Catalyst, watchOS, and tvOS.
2865         (ENABLE_WEB_RTC): All except Mac Catalyst, watchOS, and tvOS.
2866
2867 2020-07-04  Darin Adler  <darin@apple.com>
2868
2869         [Cocoa] Remove all features from FeatureDefines.xcconfig that are already mentioned in PlatformEnableCocoa.h
2870         https://bugs.webkit.org/show_bug.cgi?id=213962
2871
2872         Reviewed by Sam Weinig.
2873
2874         * wtf/PlatformEnableCocoa.h:
2875         (ENABLE_DRAG_SUPPORT): Before, this was enabled for iOS, iOS simulator, and Mac Catalyst in the
2876         FeatureDefines.xcconfig file, but then disabled for any other iOS family platform here, then enabled
2877         by default in PlatformEnable.h, which covered Mac. Instead, disable here only for watchOS and tvOS,
2878         which gives the same result in a more straightforward way.
2879         (ENABLE_GEOLOCATION): Before, this was enabled for iOS, iOS simulator, Mac Catalyst, and Mac in the
2880         FeatureDefines.xcconfig file, then enabled for any other iOS family platform here. Instead, just
2881         enable here for all Cocoa platforms, which gives the same result in a more straightforward way.
2882
2883 2020-07-03  Darin Adler  <darin@apple.com>
2884
2885         Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
2886         https://bugs.webkit.org/show_bug.cgi?id=212420
2887
2888         Reviewed by Don Olmstead.
2889
2890         * Scripts/generate-unified-source-bundles.rb: Removed the --feature-flags
2891         command line option along with the code that implements it.
2892
2893 2020-07-03  Sam Weinig  <weinig@apple.com>
2894
2895         Remove support for ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE
2896         https://bugs.webkit.org/show_bug.cgi?id=213932
2897
2898         Reviewed by Darin Adler.
2899
2900         Removes support for non-standard <input type="datetime">, currently being 
2901         guarded by the macro ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE. This macro, was
2902         added back in 2013 as a temporary measure to support some engines who shipped
2903         support for <input type="datetime">. It is currently not enabled for any
2904         ports so now seems like as good a time as any to remove it.
2905
2906         * wtf/PlatformEnable.h:
2907
2908 2020-07-03  Sam Weinig  <weinig@apple.com>
2909
2910         Add "-Wliteral-conversion" warning to Xcode based builds and fix the issues it finds
2911         https://bugs.webkit.org/show_bug.cgi?id=213931
2912
2913         Reviewed by Darin Adler.
2914
2915         * Configurations/Base.xcconfig:
2916         Add -Wliteral-conversion.
2917
2918 2020-07-03  Commit Queue  <commit-queue@webkit.org>
2919
2920         Unreviewed, reverting r263882.
2921         https://bugs.webkit.org/show_bug.cgi?id=213933
2922
2923         Broke the build
2924
2925         Reverted changeset:
2926
2927         "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
2928         replace _WKProcessPoolConfiguration.hstsStorageDirectory"
2929         https://bugs.webkit.org/show_bug.cgi?id=213048
2930         https://trac.webkit.org/changeset/263882
2931
2932 2020-07-02  Alex Christensen  <achristensen@webkit.org>
2933
2934         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
2935         https://bugs.webkit.org/show_bug.cgi?id=213048
2936
2937         Reviewed by Youenn Fablet.
2938
2939         * wtf/PlatformHave.h:
2940
2941 2020-07-02  Alex Christensen  <achristensen@webkit.org>
2942
2943         Add testing infrastructure and SPI declaration for HTTP/2 ping
2944         https://bugs.webkit.org/show_bug.cgi?id=213913
2945
2946         Reviewed by Jer Noble.
2947
2948         This is work towards rdar://problem/64495827
2949
2950         * wtf/PlatformHave.h:
2951
2952 2020-07-01  Tim Horton  <timothy_horton@apple.com>
2953
2954         Upstream application accent color support
2955         https://bugs.webkit.org/show_bug.cgi?id=213859
2956
2957         Reviewed by Wenson Hsieh.
2958
2959         * wtf/PlatformHave.h:
2960
2961 2020-07-01  Alexey Shvayka  <shvaikalesh@gmail.com>
2962
2963         Use more efficient makeString() instead of StringBuilder
2964         https://bugs.webkit.org/show_bug.cgi?id=213708
2965
2966         Reviewed by Sam Weinig.
2967
2968         Introduces StringTypeAdapter<std::tuple> overload, which enables using
2969         makeString() instead of StringBuilder in more cases.
2970
2971         * wtf/text/StringConcatenate.h:
2972         (WTF::StringTypeAdapter<std::tuple<StringTypes...>, void>): Added.
2973
2974 2020-06-30  Geoffrey Garen  <ggaren@apple.com>
2975
2976         [Cocoa] [GTK] RunLoop::Timer::isActive() is incorrect for timers while they are firing
2977         https://bugs.webkit.org/show_bug.cgi?id=213771
2978
2979         Reviewed by Darin Adler.
2980
2981         I noticed this because it triggered an assertion failure in
2982         BackgroundProcessResponsivenessTimer::scheduleNextResponsivenessCheck().
2983
2984         In WebKit timer parlance "isActive()" means "will fire again", so a
2985         one-shot timer should report inactive right when it fires. Otherwise,
2986         there's no way to check if it needs to be rescheduled.
2987
2988         * wtf/cf/RunLoopCF.cpp:
2989         (WTF::RunLoop::TimerBase::timerFired): For one-shot timers, stop our
2990         timer before it fires, so that we know it is not active.
2991
2992         * wtf/glib/RunLoopGLib.cpp:
2993         (WTF::RunLoop::TimerBase::TimerBase): For repeating timers, reschedule
2994         our timer before it fires, so that we know it is active.
2995
2996 2020-06-30  Mark Lam  <mark.lam@apple.com>
2997
2998         Add handling for a case of OOME in CSSTokenizer and CSSParser.
2999         https://bugs.webkit.org/show_bug.cgi?id=213702
3000         <rdar://problem/64808889>
3001
3002         Reviewed by Darin Adler.
3003
3004         1. Added FailureAction so that we can parameterize how we want to handle failures.
3005            In this patch, we're only using this for allocation failures, but we could
3006            technically apply this to other types of failures as well.
3007
3008         2. Apply FailureAction to many methods in Vector (and its super classes) so that
3009            we can start de-duplicating code.  Previously, we were always duplicating code
3010            just to have a "try" version of the same method that reports the failure to
3011            allocate instead of crashing.  We can now parameterize all these methods on a
3012            FailureAction template parameter instead, and avoid the code duplication.
3013            This patch also reverses some of the existing code duplication.
3014
3015         * WTF.xcodeproj/project.pbxproj:
3016         * wtf/CMakeLists.txt:
3017         * wtf/FailureAction.h: Added.
3018         * wtf/Vector.h:
3019         (WTF::VectorBufferBase::allocateBuffer):
3020         (WTF::VectorBufferBase::tryAllocateBuffer):
3021         (WTF::VectorBuffer::allocateBuffer):
3022         (WTF::VectorBuffer::tryAllocateBuffer):
3023         (WTF::Vector::reserveCapacity):
3024         (WTF::Vector::tryReserveCapacity):
3025         (WTF::Vector::reserveInitialCapacity):
3026         (WTF::Vector::tryReserveInitialCapacity):
3027         (WTF::Vector::append):
3028         (WTF::Vector::tryAppend):
3029         (WTF::Vector::constructAndAppend):
3030         (WTF::Vector::tryConstructAndAppend):
3031         (WTF::Vector::expandCapacity):
3032         (WTF::Vector::resize):
3033         (WTF::Vector::grow):
3034         (WTF::Vector::reserveCapacity):
3035         (WTF::Vector::reserveInitialCapacity):
3036         (WTF::Vector::append):
3037         (WTF::Vector::constructAndAppend):
3038         (WTF::Vector::appendSlowCase):
3039         (WTF::Vector::constructAndAppendSlowCase):
3040         (WTF::Vector::appendVector):
3041         (WTF::Vector::insert):
3042         (WTF::Vector::tryExpandCapacity): Deleted.
3043         (WTF::Vector::tryReserveCapacity): Deleted.
3044         (WTF::Vector::tryAppend): Deleted.
3045         (WTF::Vector::tryConstructAndAppend): Deleted.
3046         (WTF::Vector::tryConstructAndAppendSlowCase): Deleted.
3047
3048 2020-06-30  Peng Liu  <peng.liu6@apple.com>
3049
3050         Enable the support of FULLSCREEN_API in WebKitTestRunner
3051         https://bugs.webkit.org/show_bug.cgi?id=213774
3052
3053         Reviewed by Youenn Fablet.
3054
3055         Replace the definition of ENABLE_FULLSCREEN_API in FeatureDefines.xcconfig with
3056         the one in PlatformEnableCocoa.h. We have to do that because WebKitTestRunner
3057         does not have a FeatureDefines.xcconfig but it uses "ENABLE(FULLSCREEN_API)"
3058         to conditionally compile code to test the element fullscreen API.
3059         WebKitTestRunner can use the macro defined in PlatformEnableCocoa.h.
3060
3061         * wtf/PlatformEnableCocoa.h:
3062
3063 2020-06-30  Alex Christensen  <achristensen@webkit.org>
3064
3065         Remove WTF::MD5
3066         https://bugs.webkit.org/show_bug.cgi?id=213766
3067
3068         Reviewed by Youenn Fablet.
3069
3070         It was only used for CURL's cache file name generation.
3071         If you want to use a broken hash function, use SHA1.
3072
3073         * WTF.xcodeproj/project.pbxproj:
3074         * wtf/CMakeLists.txt:
3075         * wtf/MD5.cpp: Removed.
3076         * wtf/MD5.h: Removed.
3077
3078 2020-06-30  Andy Estes  <aestes@apple.com>
3079
3080         [Xcode] Enable the "My Mac (Mac Catalyst)" destination in WebKit Xcode projects
3081         https://bugs.webkit.org/show_bug.cgi?id=213740
3082
3083         Reviewed by Darin Adler.
3084
3085         * Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this
3086         project supports building for Mac Catalyst.
3087
3088 2020-06-30  Commit Queue  <commit-queue@webkit.org>
3089
3090         Unreviewed, reverting r263724.
3091         https://bugs.webkit.org/show_bug.cgi?id=213781
3092
3093
3094         Reverted changeset:
3095
3096         "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
3097         replace _WKProcessPoolConfiguration.hstsStorageDirectory"
3098         https://bugs.webkit.org/show_bug.cgi?id=213048
3099         https://trac.webkit.org/changeset/263724
3100
3101 2020-06-29  Geoffrey Garen  <ggaren@apple.com>
3102
3103         Unreviewed, rolling out an accidental change from r263723.
3104
3105         * wtf/cf/RunLoopCF.cpp:
3106         (WTF::RunLoop::TimerBase::timerFired):
3107
3108 2020-06-29  Alex Christensen  <achristensen@webkit.org>
3109
3110         Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
3111         https://bugs.webkit.org/show_bug.cgi?id=213048
3112
3113         Reviewed by Youenn Fablet.
3114
3115         * wtf/PlatformHave.h:
3116
3117 2020-06-29  Geoffrey Garen  <ggaren@apple.com>
3118
3119         [GTK] [Win] Build callOnMainThread on WTF::RunLoop rather than on a timer
3120         https://bugs.webkit.org/show_bug.cgi?id=213694
3121
3122         Reviewed by Carlos Garcia Campos.
3123
3124         As of https://bugs.webkit.org/show_bug.cgi?id=213063, Darwin platforms
3125         use the RunLoop. Let's match them for consistency, and to delete some
3126         code.
3127
3128         * wtf/generic/MainThreadGeneric.cpp:
3129         (WTF::scheduleDispatchFunctionsOnMainThread):
3130         (WTF::MainThreadDispatcher::MainThreadDispatcher): Deleted.
3131         (WTF::MainThreadDispatcher::schedule): Deleted.
3132         (WTF::MainThreadDispatcher::fired): Deleted.
3133         * wtf/glib/RunLoopSourcePriority.h:
3134         * wtf/win/MainThreadWin.cpp:
3135         (WTF::initializeMainThreadPlatform):
3136         (WTF::scheduleDispatchFunctionsOnMainThread):
3137         (WTF::ThreadingWindowWndProc): Deleted.
3138
3139 2020-06-29  Guowei Yang  <guowei_yang@apple.com>
3140
3141         Adding Experimental Feature Flags for CoreImage backed SVG/CSS Filters
3142         https://bugs.webkit.org/show_bug.cgi?id=213578
3143
3144         Reviewed by Darin Adler, Simon Fraser, Myles C. Maxfield.
3145
3146         Preparing to implement CoreImage backed filter rendering
3147         Needs Compiler guards and experimental feature guard.
3148
3149         * wtf/PlatformEnableCocoa.h: Added definition of a feature flag, 
3150           ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER
3151         * wtf/PlatformUse.h:  Added compiler guard #define USE_CORE_IMAGE 1
3152           to indicate whether CoreImage code is visible to the compiler
3153
3154 2020-06-29  Tetsuharu Ohzeki  <tetsuharu.ohzeki@gmail.com>
3155
3156         Remove ENABLE_STREAMS_API compilation flag
3157         https://bugs.webkit.org/show_bug.cgi?id=213728
3158
3159         Reviewed by Sam Weinig.
3160
3161         * wtf/PlatformEnable.h:
3162
3163 2020-06-29  Yusuke Suzuki  <ysuzuki@apple.com>
3164
3165         [WTF] Add more StringView / ASCIILiteral helper functions and add ICUDeleter
3166         https://bugs.webkit.org/show_bug.cgi?id=209774
3167
3168         Reviewed by Ross Kirsling and Darin Adler.
3169
3170         Add ICUDeleter for cleaner ICU object deletion.
3171         Add ICU::majorVersion and ICU::minorVersion to switch the skeleton string in Intl.NumberFormat.
3172         Add more features for ASCIILiteral.
3173
3174         This patch is part of https://bugs.webkit.org/show_bug.cgi?id=209774. I land it separately from
3175         Intl.NumberFormat change to unlock the further Intl implementations using ICUDeleter.
3176
3177         * WTF.xcodeproj/project.pbxproj:
3178         * wtf/CMakeLists.txt:
3179         * wtf/text/ASCIILiteral.h:
3180         * wtf/text/StringView.cpp:
3181         (WTF::codePointCompare):
3182         * wtf/text/StringView.h:
3183         (WTF::StringView::StringView):
3184         * wtf/unicode/icu/ICUHelpers.cpp: Copied from Source/WTF/wtf/text/ASCIILiteral.h.
3185         (WTF::ICU::version):
3186         (WTF::ICU::majorVersion):
3187         (WTF::ICU::minorVersion):
3188         * wtf/unicode/icu/ICUHelpers.h:
3189         (WTF::ICUDeleter::operator()):
3190
3191 2020-06-28  Geoffrey Garen  <ggaren@apple.com>
3192
3193         Rename initializeThreading to initialize
3194         https://bugs.webkit.org/show_bug.cgi?id=213674
3195
3196         Reviewed by Mark Lam.
3197
3198         Reasons:
3199
3200         (1) You need to call it even if you don't use threads.
3201
3202         (2) It initializes things unrelated to threads (like the PRNG).
3203
3204         (3) People seem to get confused about the relationship between
3205         initializeThreading() and initializeMainThread(), and sometimes think
3206         initializeThreading() is a superset. The opposite is true! I think the
3207         confusion may come from "threading" being read as "all threading".
3208
3209         Some filenames still use the legacy name. We can fix that in post.
3210
3211         * benchmarks/ConditionSpeedTest.cpp:
3212         (main):
3213         * benchmarks/HashSetDFGReplay.cpp:
3214         (main):
3215         * benchmarks/LockFairnessTest.cpp:
3216         (main):
3217         * benchmarks/LockSpeedTest.cpp:
3218         (main):
3219         * wtf/MainThread.cpp:
3220         (WTF::initializeMainThread):
3221         * wtf/Threading.cpp:
3222         (WTF::Thread::create):
3223         (WTF::initialize):
3224         (WTF::initializeThreading): Deleted.
3225         * wtf/Threading.h:
3226         (WTF::Thread::current):
3227
3228 2020-06-27  Sam Weinig  <weinig@apple.com>
3229
3230         Improve assertions in StringParsingBuffer 
3231         https://bugs.webkit.org/show_bug.cgi?id=213633
3232
3233         Reviewed by Darin Adler.
3234
3235         * wtf/text/StringParsingBuffer.h:
3236         Address additional feedback and improve the assertions by making them more
3237         clear and avoid potential overflows.
3238
3239 2020-06-26  Geoffrey Garen  <ggaren@apple.com>
3240
3241         Re-land r262863
3242         https://bugs.webkit.org/show_bug.cgi?id=213654
3243
3244         Reviewed by Tadeu Zagallo.
3245
3246         r263575 should fix the crash we saw.
3247
3248         * wtf/cocoa/MainThreadCocoa.mm:
3249         (WTF::initializeMainThreadPlatform):
3250         (WTF::scheduleDispatchFunctionsOnMainThread):
3251         (-[JSWTFMainThreadCaller call]): Deleted.
3252
3253 2020-06-26  Geoffrey Garen  <ggaren@apple.com>
3254
3255         Initializing the main thread should initialize the main run loop
3256         https://bugs.webkit.org/show_bug.cgi?id=213637
3257
3258         Reviewed by Anders Carlsson.
3259
3260         Previously, some code initialized one, some the other, and some both;
3261         and some code tried to initialize more than once; and some code tried
3262         to initialize in ways that would crash but luckily got pre-empted by
3263         other code that had already initialized.
3264
3265         In addition to general confusion, this setup made it subtly high stakes
3266         to call certain functions, like callOnMainThread or
3267         RunLoop::main().dispatch(), because they might crash if the right
3268         initialization had not been performed.
3269
3270         Let's fix that.
3271
3272         * wtf/MainThread.cpp:
3273         (WTF::initializeMainThread): Removed defunct comment about
3274         initializeMainThreadToProcessMainThread. Shrank scope of initializeKey.
3275         * wtf/RunLoop.cpp:
3276         (WTF::RunLoop::initializeMain): Don't call initializeMainThread anymore
3277         because it calls us now. No need for a store fence since we run on the
3278         main thread and we don't store anything.
3279         (WTF::RunLoop::initializeWeb): Upgrade to RELEASE_ASSERT.
3280         * wtf/RunLoop.h: Removed incorrect comment. (Fascinating to wonder when
3281         it became incorrect.)
3282
3283 2020-06-25  Sam Weinig  <weinig@apple.com>
3284
3285         Add a new templated string type to help write more idiomatic parsing code
3286         https://bugs.webkit.org/show_bug.cgi?id=213588
3287
3288         Reviewed by Darin Adler.
3289         
3290         Introduce StringParsingBuffer<CharType>, a new class in the String class family
3291         designed to be used by parsing code. It's designed to be used with the helper
3292         function, readCharactersForParsing, and for the user to write the parsing code
3293         in a way that will work for both latin1 and UTF-16 inputs. Most usage will likely
3294         follow something like the following form
3295         
3296         {
3297             ...
3298             auto parsedResult = readCharactersForParsing(stringishObjectToParse, [](auto parsingBuffer) {
3299                 while (parsingBuffer.hasCharactersRemaining()) {
3300                     if (*parsingBuffer == foo) {
3301                         ...
3302                     }
3303                 }
3304
3305                 ...
3306
3307                 return parsedResult
3308             });
3309             ...
3310         }
3311
3312         API tests added.
3313
3314         * WTF.xcodeproj/project.pbxproj:
3315         * wtf/CMakeLists.txt:
3316         Add StringParsingBuffer.h
3317
3318         * wtf/Forward.h:
3319         Forward declare StringParsingBuffer.
3320
3321         * wtf/text/StringParsingBuffer.h: 
3322         Added.
3323
3324 2020-06-25  Tadeu Zagallo  <tzagallo@apple.com>
3325
3326         WTF::callOnMainThread should not require the main runloop to be initialized
3327         https://bugs.webkit.org/show_bug.cgi?id=213612
3328         <rdar://problem/64446028>
3329
3330         Reviewed by Yusuke Suzuki.
3331
3332         When using JavaScriptCore as a framework, the WTF main runloop is never initialized. However,
3333         the inspector uses CFString wrappers, which use `callOnMainThread` when deallocating the
3334         underlying string. For now, we bring back the old `JSWTFMainThreadCaller` to ensure we have
3335         a way of dispatching to the main thread, even when the main runloop hasn't been initialized.
3336
3337         * wtf/RunLoop.cpp:
3338         (WTF::RunLoop::mainIfExists):
3339         * wtf/RunLoop.h:
3340         * wtf/cocoa/MainThreadCocoa.mm:
3341         (-[JSWTFMainThreadCaller call]):
3342         (WTF::initializeMainThreadPlatform):
3343         (WTF::scheduleDispatchFunctionsOnMainThread):
3344
3345 2020-06-24  Umar Iqbal  <uiqbal@apple.com>
3346
3347         We should resurrect the older patch that collects some statistics of web API calls
3348         https://bugs.webkit.org/show_bug.cgi?id=213319
3349
3350         Reviewed by Brent Fulgham.
3351
3352         + Enabled ENABLE_WEB_API_STATISTICS flag
3353         
3354         * wtf/PlatformEnableCocoa.h:
3355
3356 2020-06-24  Geoffrey Garen  <ggaren@apple.com>
3357
3358         Removed the 50ms rescheduling timeout from callOnMainThread
3359         https://bugs.webkit.org/show_bug.cgi?id=213560
3360
3361         Reviewed by Anders Carlsson.
3362
3363         This is a step toward making the engine less flaky by unifying
3364         callOnMainThread with RunLoop::dispatch.
3365
3366         The timeout was added in r40888 to avoid a hang under heavy postMessage
3367         load. A few reasons this isn’t the right approach anymore:
3368
3369         (1) postMessage has migrated to EventLoop, which does its own
3370         scheduling.
3371
3372         (2) postMessage does not use the application process RunLoop in Modern
3373         WebKit.
3374
3375         (3) Delay is not a sufficient solution to a messaging hang — because
3376         you’ll just OOM crash instead. The original author noted this problem
3377         in bug 23705 but never resolved it; and we rediscovered it in r233111.
3378
3379         I verified manually that the r40888 version of
3380         fast/workers/worker-timeout.html does not hang.
3381
3382         * wtf/MainThread.cpp:
3383         (WTF::dispatchFunctionsFromMainThread):
3384
3385 2020-06-23  Geoffrey Garen  <ggaren@apple.com>
3386
3387         Remove WTF::setMainThreadCallbacksPaused
3388         https://bugs.webkit.org/show_bug.cgi?id=213112
3389
3390         Reviewed by Tim Horton.
3391
3392         setMainThreadCallbacksPaused pauses all uses of callOnMainThread. That
3393         has too many side-effects. For example, you can scroll, but you can't
3394         paint any large images (since they do async image decoding).
3395
3396         Meanwhile, setMainThreadCallbacksPaused doesn't pause RunLoop::dispatch.
3397         So, other things don't get paused.
3398
3399         Let's just rely on suspending the ScriptExecutionContext and document
3400         event queue. That should suspend JavaScript-visible stuff without
3401         suspending engine-critical stuff.
3402
3403         * wtf/MainThread.cpp:
3404         (WTF::dispatchFunctionsFromMainThread):
3405         (WTF::setMainThreadCallbacksPaused): Deleted.
3406         * wtf/MainThread.h:
3407
3408 2020-06-23  Chris Dumez  <cdumez@apple.com>
3409
3410         Remove a lot of unnecessary calls to Ref::copyRef()
3411         https://bugs.webkit.org/show_bug.cgi?id=213533
3412
3413         Reviewed by Darin Adler.
3414
3415         Remove a lot of unnecessary calls to Ref::copyRef() now that Ref is copyable.
3416
3417         * wtf/glib/SocketConnection.cpp:
3418         (WTF::SocketConnection::waitForSocketWritability):
3419
3420 2020-06-23  Saam Barati  <sbarati@apple.com>
3421
3422         Remove WKkIsTranslated once our bots are updated to the needed SDK
3423         https://bugs.webkit.org/show_bug.cgi?id=213489
3424
3425         Reviewed by Tim Horton.
3426
3427         We can use the "sysctl.proc_translated" sysctl instead.
3428
3429         * WTF.xcodeproj/project.pbxproj:
3430         * wtf/TranslatedProcess.cpp: Added.
3431         (WTF::isX86BinaryRunningOnARM):
3432         * wtf/TranslatedProcess.h:
3433         (WTF::isX86BinaryRunningOnARM):
3434
3435 2020-06-23  Mark Lam  <mark.lam@apple.com>
3436
3437         Handle string overflow in DFG graph dump while validating AI.
3438         https://bugs.webkit.org/show_bug.cgi?id=213524
3439         <rdar://problem/64635620>
3440
3441         Reviewed by Saam Barati.
3442
3443         * wtf/StringPrintStream.cpp:
3444         (WTF::StringPrintStream::tryToString):
3445         * wtf/StringPrintStream.h:
3446
3447 2020-06-22  Saam Barati  <sbarati@apple.com>
3448
3449         Allow building JavaScriptCore Mac+arm64 in public SDK build
3450         https://bugs.webkit.org/show_bug.cgi?id=213472
3451
3452         Reviewed by Sam Weinig.
3453
3454         * wtf/PlatformEnable.h:
3455         * wtf/PlatformEnableCocoa.h:
3456         * wtf/PlatformHave.h:
3457
3458 2020-06-22  Timothy Horton  <timothy_horton@apple.com>
3459
3460         Fix the build
3461
3462         * wtf/TranslatedProcess.h:
3463         (WTF::isX86BinaryRunningOnARM):
3464
3465 2020-06-22  Tim Horton  <timothy_horton@apple.com>
3466
3467         Disable the JS JIT when running in a translated process
3468         https://bugs.webkit.org/show_bug.cgi?id=213478
3469
3470         Reviewed by Saam Barati.
3471
3472         * wtf/PlatformHave.h:
3473         * wtf/TranslatedProcess.h: Added.
3474         * WTF.xcodeproj/project.pbxproj:
3475         * wtf/CMakeLists.txt:
3476         Add a helper function that can be used to determine that the current process
3477         is being translated; currently the only case is an x86_64 process running on arm64e.
3478
3479 2020-06-22  Tim Horton  <timothy_horton@apple.com>
3480
3481         Update macOS version macros
3482         https://bugs.webkit.org/show_bug.cgi?id=213484
3483
3484         Reviewed by Alexey Proskuryakov.
3485
3486         * Configurations/Base.xcconfig:
3487         * Configurations/DebugRelease.xcconfig:
3488
3489 2020-06-22  Geoffrey Garen  <ggaren@apple.com>
3490
3491         Unreviewed, re-landing r262904.
3492
3493         r263223 should fix the test flakiness we saw.
3494
3495         Re-landed changeset:
3496
3497         "[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
3498         a timer"
3499         https://bugs.webkit.org/show_bug.cgi?id=213063
3500         https://trac.webkit.org/changeset/262904
3501
3502 2020-06-21  Yusuke Suzuki  <ysuzuki@apple.com>
3503
3504         [WTF] Ensure ASCIILiteral is ASCII characters at compile time
3505         https://bugs.webkit.org/show_bug.cgi?id=213449
3506
3507         Reviewed by Ross Kirsling.
3508
3509         The purpose of ASCIILiteral is ensure that this is compile-time (do not need to consider about ownership) ASCII characters.
3510         By using `isASCII` and `ASSERT_UNDER_CONSTEXPR_CONTEXT`, we can make sure that this C string does not include non ASCII characters.
3511         For example,
3512
3513             auto globalVariable = "ラーメン (Ramen in Japanese)"_s;
3514
3515         becomes compile error.
3516
3517         * wtf/ASCIICType.h:
3518         (WTF::isASCII):
3519         * wtf/text/ASCIILiteral.h:
3520         (WTF::StringLiterals::operator _s):
3521
3522 2020-06-21  Yusuke Suzuki  <ysuzuki@apple.com>
3523
3524         [WTF] URL should support dataLog
3525         https://bugs.webkit.org/show_bug.cgi?id=213450
3526
3527         Reviewed by Mark Lam.
3528
3529         Add URL::dump(PrintStream&) to support `dataLog(url)` which is extremely useful for WTF / JSC developers.
3530
3531         * wtf/URL.cpp:
3532         (WTF::URL::dump const):
3533         * wtf/URL.h:
3534
3535 2020-06-19  Yusuke Suzuki  <ysuzuki@apple.com>
3536
3537         [JSC] Check Gigacage usage before launching VM
3538         https://bugs.webkit.org/show_bug.cgi?id=213410
3539
3540         Reviewed by Mark Lam.
3541
3542         * wtf/Gigacage.h:
3543         (Gigacage::footprint):
3544         (Gigacage::maxSize):
3545         (Gigacage::size):
3546
3547 2020-06-19  Truitt Savell  <tsavell@apple.com>
3548
3549         Unreviewed, reverting r263223.
3550
3551         Broke compositing/video/video-border-radius-clipping.html on
3552         Mac release wk1
3553
3554         Reverted changeset:
3555
3556         "Unreviewed, re-landing r262904."
3557         https://bugs.webkit.org/show_bug.cgi?id=213063
3558         https://trac.webkit.org/changeset/263223
3559
3560 2020-06-19  Michael Catanzaro  <mcatanzaro@gnome.org>
3561
3562         -Wsign-compare in isValidOptionSet
3563         https://bugs.webkit.org/show_bug.cgi?id=213383
3564
3565         Reviewed by Darin Adler.
3566
3567         The OptionSet's StorageType is always unsigned, even if the enum's underlying value is not.
3568         Match this in isValidOptionSet to avoid -Wsign-compare during validity checking.
3569
3570         * wtf/OptionSet.h:
3571         (WTF::isValidOptionSet):
3572
3573 2020-06-19  Myles C. Maxfield  <mmaxfield@apple.com>
3574
3575         [Cocoa] Unify "font:" CSS shorthand values between macOS and iOS family
3576         https://bugs.webkit.org/show_bug.cgi?id=213332
3577         <rdar://problem/64479189>
3578
3579         Reviewed by Tim Horton and Darin Adler.
3580
3581         All Cocoa platforms support kCTUIFontTextStyleTitle0 and kCTUIFontTextStyleTitle4.
3582
3583         * wtf/PlatformHave.h:
3584
3585 2020-06-18  Mark Lam  <mark.lam@apple.com>
3586
3587         Unify Bitmap math loops in MarkedBlock::Handle::specializedSweep().
3588         https://bugs.webkit.org/show_bug.cgi?id=213345
3589
3590         Reviewed by Robin Morisset and Saam Barati.
3591
3592         1. Removed Bitmap::words.  Use Bitmap::numberOfWords instead.
3593         2. Removed Bitmap::wordSize.  Use Bitmap::bitsInWord instead.
3594         3. Added a new Bitmap::words() method which returns the address of the underlying
3595            bitmap storage as a Bitmap::Word*.  This enables clients to do direct bit
3596            manipulation on the Bitmap words if needed.
3597
3598         * wtf/Bitmap.h:
3599         (WTF::WordType>::get const):
3600         (WTF::WordType>::set):
3601         (WTF::WordType>::testAndSet):
3602         (WTF::WordType>::testAndClear):
3603         (WTF::WordType>::concurrentTestAndSet):
3604         (WTF::WordType>::concurrentTestAndClear):
3605         (WTF::WordType>::clear):
3606         (WTF::WordType>::invert):
3607         (WTF::WordType>::nextPossiblyUnset const):
3608         (WTF::WordType>::count const):
3609         (WTF::WordType>::isEmpty const):
3610         (WTF::WordType>::isFull const):
3611         (WTF::WordType>::merge):
3612         (WTF::WordType>::filter):
3613         (WTF::WordType>::exclude):
3614         (WTF::WordType>::concurrentFilter):
3615         (WTF::WordType>::subsumes const):
3616         (WTF::WordType>::forEachSetBit const):
3617         (WTF::WordType>::findBit const):
3618         (WTF::WordType>::mergeAndClear):
3619         (WTF::WordType>::setAndClear):