4ecf7736ec6fd4a2ff0799e188231d5c38d5185c
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-02-21  Dean Jackson  <dino@apple.com>
2
3         Rotation animations sometimes use the wrong origin (affects apple.com)
4         https://bugs.webkit.org/show_bug.cgi?id=194878
5         <rdar://problem/43908047>
6
7         Follow-up commit to ensure this change only affects newer versions
8         of iOS.
9
10         * wtf/Platform.h: Add a version check.
11
12 2019-02-20  Alex Christensen  <achristensen@webkit.org>
13
14         URL percent-encode operations should use checked arithmetic for buffer allocation length
15         https://bugs.webkit.org/show_bug.cgi?id=194877
16         <rdar://problem/48212062>
17
18         Reviewed by Tim Horton.
19
20         * wtf/URLHelpers.cpp:
21         (WTF::URLHelpers::userVisibleURL):
22         * wtf/cocoa/NSURLExtras.mm:
23         (WTF::dataWithUserTypedString):
24
25 2019-02-20  Dean Jackson  <dino@apple.com>
26
27         Rotation animations sometimes use the wrong origin (affects apple.com)
28         https://bugs.webkit.org/show_bug.cgi?id=194878
29         <rdar://problem/43908047>
30
31         Reviewed by Simon Fraser.
32
33         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
34
35 2019-02-20  Andy Estes  <aestes@apple.com>
36
37         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
38         https://bugs.webkit.org/show_bug.cgi?id=194869
39
40         Rubber-stamped by Jer Noble.
41
42         * WTF.xcodeproj/project.pbxproj:
43
44 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
45
46         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
47         https://bugs.webkit.org/show_bug.cgi?id=167941
48
49         Reviewed by Carlos Garcia Campos.
50
51         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
52
53         * wtf/glib/GRefPtr.cpp:
54         (WTF::refGPtr): Added.
55         (WTF::derefGPtr): Added.
56         * wtf/glib/GRefPtr.h: Declare template specializations.
57
58 2019-02-19  Commit Queue  <commit-queue@webkit.org>
59
60         Unreviewed, rolling out r241770.
61         https://bugs.webkit.org/show_bug.cgi?id=194833
62
63         Caused crashes (Requested by smfr on #webkit).
64
65         Reverted changeset:
66
67         "Code quality cleanup in NeverDestroyed"
68         https://bugs.webkit.org/show_bug.cgi?id=194824
69         https://trac.webkit.org/changeset/241770
70
71 2019-02-19  Keith Miller  <keith_miller@apple.com>
72
73         Code quality cleanup in NeverDestroyed
74         https://bugs.webkit.org/show_bug.cgi?id=194824
75
76         Reviewed by Yusuke Suzuki.
77
78         First, move data members to the end of the class per WebKit
79         style. Also, add forbid heap allocation since we expect the
80         NeverDestroyed classes to be static.
81
82         * wtf/NeverDestroyed.h:
83
84 2019-02-16  Darin Adler  <darin@apple.com>
85
86         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
87         https://bugs.webkit.org/show_bug.cgi?id=194752
88
89         Reviewed by Daniel Bates.
90
91         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
92         * wtf/CMakeLists.txt: Ditto.
93
94         * wtf/HexNumber.cpp: Added.
95         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
96
97         * wtf/HexNumber.h:
98         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
99         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
100         use with StringTypeAdapter.
101         (WTF::appendUnsignedAsHex): Ditto.
102         (WTF::appendUnsignedAsHexFixedSize): Ditto.
103         (WTF::hex): Added.
104         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
105
106         * wtf/Logger.cpp: Added.
107         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
108         function and moved it here so that we don't need to include HexNumber.h
109         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
110         don't include it in any other headers.
111
112         * wtf/Logger.h:
113         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
114         a non-template function, LogSiteIdentifier::toString.
115
116         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
117         with function templates and used StringImpl::copyCharacters instead of
118         hand-written loops.
119
120 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
121
122         Web Inspector: Better categorize CPU usage per-thread / worker
123         https://bugs.webkit.org/show_bug.cgi?id=194564
124
125         Reviewed by Devin Rousso.
126
127         * wtf/Threading.h:
128         * wtf/Threading.cpp:
129         (WTF::Thread::allThreadsMutex):
130         (WTF::Thread::create):
131         (WTF::Thread::didExit):
132         Add a set of all WTF::Thread created threads.
133
134 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
135
136         Bytecode cache should a have a boot-specific validation
137         https://bugs.webkit.org/show_bug.cgi?id=194769
138         <rdar://problem/48149509>
139
140         Reviewed by Keith Miller.
141
142         Add helper to get kern.bootsessionuuid from sysctl
143
144         * wtf/UUID.cpp:
145         (WTF::bootSessionUUIDString):
146         * wtf/UUID.h:
147
148 2019-02-17  David Kilzer  <ddkilzer@apple.com>
149
150         Unreviewed, rolling out r241620.
151
152         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
153         (Requested by ddkilzer on #webkit.)
154
155         Reverted changeset:
156
157         "[WTF] Add environment variable helpers"
158         https://bugs.webkit.org/show_bug.cgi?id=192405
159         https://trac.webkit.org/changeset/241620
160
161 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
162
163         [WTF] Add environment variable helpers
164         https://bugs.webkit.org/show_bug.cgi?id=192405
165
166         Reviewed by Michael Catanzaro.
167
168         Create a new Environment API as a platform-independent, thread-safe(r)
169         way to get and set environment variables.
170
171         * WTF.xcodeproj/project.pbxproj:
172         * wtf/CMakeLists.txt:
173         * wtf/Environment.h: Added.
174         * wtf/PlatformGTK.cmake:
175         * wtf/PlatformJSCOnly.cmake:
176         * wtf/PlatformMac.cmake:
177         * wtf/PlatformPlayStation.cmake:
178         * wtf/PlatformWPE.cmake:
179         * wtf/PlatformWin.cmake:
180         * wtf/posix/EnvironmentPOSIX.cpp: Added.
181         * wtf/win/EnvironmentWin.cpp: Added.
182         Introduce WTF::Environment.
183
184         * wtf/Threading.cpp:
185         (WTF::threadingIsInitialized):
186         (WTF::initializeThreading):
187         * wtf/Threading.h:
188         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
189         false before setting an environment variable through the new API.
190
191         * wtf/DataLog.cpp:
192         (WTF::initializeLogFileOnce):
193         * wtf/NumberOfCores.cpp:
194         (WTF::numberOfProcessorCores):
195         * wtf/posix/FileSystemPOSIX.cpp:
196         (WTF::FileSystemImpl::openTemporaryFile):
197         Utilize WTF::Environment where possible.
198
199 2019-02-15  Brian Burg  <bburg@apple.com>
200
201         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
202         https://bugs.webkit.org/show_bug.cgi?id=194411
203         <rdar://problem/47787614>
204
205         Reviewed by Joseph Pecoraro.
206
207         * wtf/cocoa/SoftLinking.h:
208         Remove macro that now has no uses.
209
210 2019-02-15  Commit Queue  <commit-queue@webkit.org>
211
212         Unreviewed, rolling out r241559 and r241566.
213         https://bugs.webkit.org/show_bug.cgi?id=194710
214
215         Causes layout test crashes under GuardMalloc (Requested by
216         ryanhaddad on #webkit).
217
218         Reverted changesets:
219
220         "[WTF] Add environment variable helpers"
221         https://bugs.webkit.org/show_bug.cgi?id=192405
222         https://trac.webkit.org/changeset/241559
223
224         "Unreviewed build fix for WinCairo Debug after r241559."
225         https://trac.webkit.org/changeset/241566
226
227 2019-02-15  Truitt Savell  <tsavell@apple.com>
228
229         Unreviewed, rolling out r241564.
230
231         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
232
233         Reverted changeset:
234
235         "[Mac] WebInspectorUI.framework does not need to be soft-
236         linked anymore"
237         https://bugs.webkit.org/show_bug.cgi?id=194411
238         https://trac.webkit.org/changeset/241564
239
240 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
241
242         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
243         https://bugs.webkit.org/show_bug.cgi?id=194014
244
245         Reviewed by Michael Catanzaro.
246
247         Do not block SIGUSR1 when installing signal handlers, since this signal
248         is used to suspend/resume machine threads on Linux.
249
250         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
251         enabled watchdog and sampling.
252
253         Deadlock happened in the following situation:
254
255         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
256         and then tries to suspend the main thread.
257
258         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
259         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
260         SignalSender tries to lock codeBlockSet, but this is already locked by the
261         SamplingProfiler.
262
263         The SamplingProfiler can only give up the lock when it suspends
264         the thread. However since the VMTraps signal handler is active, all other signals blocked,
265         therefore the SamplingProfiler also waits until its signal handler is invoked.
266
267         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
268         it is used to suspend/resume threads on Linux.
269
270         * wtf/Threading.h:
271         * wtf/posix/ThreadingPOSIX.cpp:
272         * wtf/threads/Signals.cpp:
273         (WTF::installSignalHandler):
274
275 2019-02-15  Saam barati  <sbarati@apple.com>
276
277         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
278         https://bugs.webkit.org/show_bug.cgi?id=194036
279
280         Reviewed by Yusuke Suzuki.
281
282         * wtf/IndexMap.h:
283         (WTF::IndexMap::at):
284         (WTF::IndexMap::at const):
285         (WTF::IndexMap::operator[]):
286         (WTF::IndexMap::operator[] const):
287
288 2019-02-14  Brian Burg  <bburg@apple.com>
289
290         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
291         https://bugs.webkit.org/show_bug.cgi?id=194411
292         <rdar://problem/47787614>
293
294         Reviewed by Joseph Pecoraro.
295
296         * wtf/cocoa/SoftLinking.h:
297         Remove macro that now has no uses.
298
299 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
300
301         [WTF] Add environment variable helpers
302         https://bugs.webkit.org/show_bug.cgi?id=192405
303
304         Reviewed by Michael Catanzaro.
305
306         Create a new Environment API as a platform-independent, thread-safe(r)
307         way to get and set environment variables.
308
309         * WTF.xcodeproj/project.pbxproj:
310         * wtf/CMakeLists.txt:
311         * wtf/Environment.h: Added.
312         * wtf/PlatformGTK.cmake:
313         * wtf/PlatformJSCOnly.cmake:
314         * wtf/PlatformMac.cmake:
315         * wtf/PlatformPlayStation.cmake:
316         * wtf/PlatformWPE.cmake:
317         * wtf/PlatformWin.cmake:
318         * wtf/posix/EnvironmentPOSIX.cpp: Added.
319         * wtf/win/EnvironmentWin.cpp: Added.
320         Introduce WTF::Environment.
321
322         * wtf/Threading.cpp:
323         (WTF::threadingIsInitialized):
324         (WTF::initializeThreading):
325         * wtf/Threading.h:
326         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
327         false before setting an environment variable through the new API.
328
329         * wtf/DataLog.cpp:
330         (WTF::initializeLogFileOnce):
331         * wtf/NumberOfCores.cpp:
332         (WTF::numberOfProcessorCores):
333         * wtf/posix/FileSystemPOSIX.cpp:
334         (WTF::FileSystemImpl::openTemporaryFile):
335         Utilize WTF::Environment where possible.
336
337 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
338
339         We should only make rope strings when concatenating strings long enough.
340         https://bugs.webkit.org/show_bug.cgi?id=194465
341
342         Reviewed by Mark Lam.
343
344         * wtf/text/StringImpl.h:
345         (WTF::StringImpl::headerSize):
346
347 2019-02-12  Tim Horton  <timothy_horton@apple.com>
348
349         Remove WKLegacyPDFView
350         https://bugs.webkit.org/show_bug.cgi?id=194559
351
352         Reviewed by Andy Estes.
353
354         * wtf/FeatureDefines.h:
355
356 2019-02-12  David Kilzer  <ddkilzer@apple.com>
357
358         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
359         <https://webkit.org/b/194529>
360         <rdar://problem/47924449>
361
362         Reviewed by Eric Carlson.
363
364         * wtf/cocoa/SoftLinking.h:
365         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
366         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
367         and change `assertion` argument to `isOptional`.  Pass
368         `isOptional` to framework##Library() method to control assertion
369         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
370         that code should be optimized out by the compiler.  This fixes
371         the crash.
372         (NO_ASSERT): Remove macro since it's no longer used.
373         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
374         optional classes.
375         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
376         non-optional classes.
377         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
378         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
379         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
380         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
381         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
382
383 2019-02-12  Andy Estes  <aestes@apple.com>
384
385         [iOSMac] Enable Parental Controls Content Filtering
386         https://bugs.webkit.org/show_bug.cgi?id=194521
387         <rdar://39732376>
388
389         Reviewed by Tim Horton.
390
391         * wtf/Platform.h:
392
393 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
394
395         [Cocoa] Ask platform for generic font family mappings
396         https://bugs.webkit.org/show_bug.cgi?id=187723
397         <rdar://problem/41892438>
398
399         Reviewed by Brent Fulgham.
400
401         Add an ENABLE in Platform.
402
403         * wtf/Platform.h:
404
405 2019-02-11  Truitt Savell  <tsavell@apple.com>
406
407         Unreviewed, rolling out r241229.
408
409         Revision broke internal builds for watchOS.
410
411         Reverted changeset:
412
413         "[Cocoa] Ask platform for generic font family mappings"
414         https://bugs.webkit.org/show_bug.cgi?id=187723
415         https://trac.webkit.org/changeset/241229
416
417 2019-02-10  Darin Adler  <darin@apple.com>
418
419         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
420         https://bugs.webkit.org/show_bug.cgi?id=194485
421
422         Reviewed by Daniel Bates.
423
424         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
425         placeByteAsHex. Can always bring them back if someone needs them. Updated
426         appendUnsignedAsHex to be a template so we can use it on any integer type,
427         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
428         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
429         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
430
431         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
432
433         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
434
435         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
436         worked around in NSURLExtras.mm.
437         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
438         and Foundation.h.
439
440 2019-02-09  Darin Adler  <darin@apple.com>
441
442         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
443         https://bugs.webkit.org/show_bug.cgi?id=194021
444
445         Reviewed by Geoffrey Garen.
446
447         * wtf/URL.cpp:
448         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
449         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
450         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
451         and sometimes used for UTF-16 code units (UChar) and can be the same type.
452
453         * wtf/text/StringConcatenateNumbers.h:
454         Changed FormattedNumber::fixedPrecision to more closely match String::number and
455         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
456         a named enumeration for the truncation policy rather than a boolean.
457
458
459 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
460
461         Unreviewed, rolling in r241237 again
462         https://bugs.webkit.org/show_bug.cgi?id=194469
463
464         After the measurement, this patch was unrelated to recent regression.
465
466         * wtf/text/StringImpl.h:
467         (WTF::StringImpl::isSubString const):
468         (WTF::StringImpl::createSubstringSharingImpl):
469
470 2019-02-09  Commit Queue  <commit-queue@webkit.org>
471
472         Unreviewed, rolling out r241237.
473         https://bugs.webkit.org/show_bug.cgi?id=194474
474
475         Shows significant memory increase in WSL (Requested by
476         yusukesuzuki on #webkit).
477
478         Reverted changeset:
479
480         "[WTF] Use BufferInternal StringImpl if substring StringImpl
481         takes more memory"
482         https://bugs.webkit.org/show_bug.cgi?id=194469
483         https://trac.webkit.org/changeset/241237
484
485 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
486
487         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
488         https://bugs.webkit.org/show_bug.cgi?id=194469
489
490         Reviewed by Geoffrey Garen.
491
492         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
493         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
494         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
495         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
496
497         * wtf/text/StringImpl.h:
498         (WTF::StringImpl::isSubString const):
499         (WTF::StringImpl::createSubstringSharingImpl):
500
501 2019-02-08  Alex Christensen  <achristensen@webkit.org>
502
503         Add SPI to use networking daemon instead of XPC service
504         https://bugs.webkit.org/show_bug.cgi?id=194427
505
506         Reviewed by Geoffrey Garen.
507
508         * wtf/spi/darwin/XPCSPI.h:
509         Instead of using XPC bootstrap SPI, we just send a separate message.
510         xpc_copy_bootstrap does not seem to work in  daemons.
511
512 2019-02-08  Truitt Savell  <tsavell@apple.com>
513
514         Unreviewed, rolling out r241197.
515
516         Broke iOS Simulator Debug build and casued 1 API failure on
517         High Sierra
518
519         Reverted changeset:
520
521         "Add SPI to use networking daemon instead of XPC service"
522         https://bugs.webkit.org/show_bug.cgi?id=194427
523         https://trac.webkit.org/changeset/241197
524
525 2019-02-08  Alex Christensen  <achristensen@webkit.org>
526
527         Add SPI to use networking daemon instead of XPC service
528         https://bugs.webkit.org/show_bug.cgi?id=194427
529
530         Reviewed by Geoffrey Garen.
531
532         * wtf/spi/darwin/XPCSPI.h:
533         Instead of using XPC bootstrap SPI, we just send a separate message.
534         xpc_copy_bootstrap does not seem to work in  daemons.
535
536 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
537
538         clampTo(): do not convert the input to double when dealing with integers
539         https://bugs.webkit.org/show_bug.cgi?id=194263
540         <rdar://problem/47692312>
541
542         Reviewed by Darin Adler.
543
544         Previously, every use of clampTo() was converting the input to double,
545         doing the comparison in double, then casting back to whatever type was needed.
546
547         In many case, that was very wasteful. WebKit has many cases of clampTo() with
548         the same type as input/output, or with integer types of different size/sign.
549
550         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
551         In each case, I tried to minimize the amount of conversion needed at runtime.
552
553         * wtf/MathExtras.h:
554         (clampTo):
555
556 2019-02-07  Chris Dumez  <cdumez@apple.com>
557
558         Mark more heap-allocated classes as fast allocated
559         https://bugs.webkit.org/show_bug.cgi?id=194422
560
561         Reviewed by Ryosuke Niwa.
562
563         * wtf/Function.h:
564         (WTF::Function<Out):
565         * wtf/RefCounter.h:
566         * wtf/URL.h:
567         * wtf/text/StringView.cpp:
568
569 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
570
571         [macOS] Block coreservicesd in sandbox.
572         https://bugs.webkit.org/show_bug.cgi?id=192670
573
574         Reviewed by Alexey Proskuryakov.
575
576         Add HAVE_CSCHECKFIXDISABLE define.
577
578         * wtf/Platform.h:
579
580 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
581
582         [MSE] Convert debug-only logging to runtime logging
583         https://bugs.webkit.org/show_bug.cgi?id=194348
584         <rdar://problem/47566449>
585
586         Reviewed by Jer Noble.
587
588         * wtf/LoggerHelper.h:
589         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
590         object that is associated with another logging object.
591         * wtf/MediaTime.cpp:
592         (WTF::MediaTime::toJSONObject const):
593         (WTF::MediaTime::toJSONString const):
594         (WTF::MediaTimeRange::toJSONString const):
595         (WTF::toJSONStringInternal): Deleted.
596         * wtf/MediaTime.h:
597
598 2019-02-05  Keith Rollin  <krollin@apple.com>
599
600         Enable the automatic checking and regenerations of .xcfilelists during builds
601         https://bugs.webkit.org/show_bug.cgi?id=194124
602         <rdar://problem/47721277>
603
604         Reviewed by Tim Horton.
605
606         Bug 193790 add a facility for checking -- during build time -- that
607         any needed .xcfilelist files are up-to-date and for updating them if
608         they are not. This facility was initially opt-in by setting
609         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
610         the process seemed robust. Its now time to enable this facility and
611         make it opt-out. If there is a need to disable this facility, set and
612         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
613         running `make` or `build-webkit`, or before running Xcode from the
614         command line.
615
616         Additionally, remove the step that generates a list of source files
617         going into the UnifiedSources build step. It's only necessarily to
618         specify Sources.txt and SourcesCocoa.txt as inputs.
619
620         * Scripts/generate-unified-source-bundles.rb:
621
622 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
623
624         [JSC] Shrink sizeof(UnlinkedCodeBlock)
625         https://bugs.webkit.org/show_bug.cgi?id=194281
626
627         Reviewed by Michael Saboff.
628
629         * wtf/TriState.h:
630
631 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
632
633         [GLib] Stop URI-escaping file system representations
634         https://bugs.webkit.org/show_bug.cgi?id=194213
635
636         Reviewed by Carlos Garcia Campos.
637
638         Stop URI-escaping of file representation strings in
639         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
640         of strings in FileSystem::fileSystemRepresentation().
641
642         This behavior deviates from POSIX and CF implementations and is
643         currently breaking IndexedDB-specific calculation of database sizes due
644         to directory components used in that process that are URL-based and are
645         as such URI-escaped. When unescaped, those single directory components
646         explode into multiple directory components, leading to incorrect total
647         database size calculation when iterating the database directory.
648
649         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
650         filename charsets and in worst case converts the filesystem
651         representation to UTF-8 before String::fromUTF8() is used.
652         FileSystem::fileSystemRepresentation() reverses that process, taking
653         String's UTF-8 data and converting it to target charset if necessary.
654
655         Other FileSystem functions are adjusted to convert passed-in String
656         objects to filesystem representations.
657
658         * wtf/glib/FileSystemGlib.cpp:
659         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
660         (WTF::FileSystemImpl::fileSystemRepresentation):
661         (WTF::FileSystemImpl::validRepresentation):
662         (WTF::FileSystemImpl::filenameForDisplay):
663         (WTF::FileSystemImpl::fileExists):
664         (WTF::FileSystemImpl::deleteFile):
665         (WTF::FileSystemImpl::deleteEmptyDirectory):
666         (WTF::FileSystemImpl::getFileStat):
667         (WTF::FileSystemImpl::getFileLStat):
668         (WTF::FileSystemImpl::makeAllDirectories):
669         (WTF::FileSystemImpl::createSymbolicLink):
670         (WTF::FileSystemImpl::pathGetFileName):
671         (WTF::FileSystemImpl::getVolumeFreeSpace):
672         (WTF::FileSystemImpl::directoryName):
673         (WTF::FileSystemImpl::listDirectory):
674         (WTF::FileSystemImpl::openFile):
675         (WTF::FileSystemImpl::moveFile):
676         (WTF::FileSystemImpl::hardLinkOrCopyFile):
677         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
678         and treat input CString as an existing filesystem representation.
679         (WTF::FileSystemImpl::unescapedFilename): Deleted.
680
681 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
682
683         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
684         https://bugs.webkit.org/show_bug.cgi?id=174816
685
686         Reviewed by Michael Catanzaro.
687
688         Translate userVisibleString and dependent code into platform-neutral C++
689         in wtf/URLHelpers.{h,cpp}.
690
691         * WTF.xcodeproj/project.pbxproj:
692         * wtf/CMakeLists.txt:
693         * wtf/URLHelpers.cpp: Added.
694         (WTF::URLHelpers::loadIDNScriptWhiteList):
695         (WTF::URLHelpers::isArmenianLookalikeCharacter):
696         (WTF::URLHelpers::isArmenianScriptCharacter):
697         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
698         (WTF::URLHelpers::isLookalikeCharacter):
699         (WTF::URLHelpers::whiteListIDNScript):
700         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
701         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
702         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
703         (WTF::URLHelpers::isRussianDomainNameCharacter):
704         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
705         (WTF::URLHelpers::mapHostName):
706         (WTF::URLHelpers::collectRangesThatNeedMapping):
707         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
708         (WTF::URLHelpers::applyHostNameFunctionToURLString):
709         (WTF::URLHelpers::mapHostNames):
710         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
711         (WTF::URLHelpers::toNormalizationFormC):
712         (WTF::URLHelpers::userVisibleURL):
713         * wtf/URLHelpers.h: Added.
714         * wtf/cocoa/NSURLExtras.mm:
715         (WTF::URLHelpers::loadIDNScriptWhiteList):
716         (WTF::decodePercentEscapes):
717         (WTF::decodeHostName):
718         (WTF::encodeHostName):
719         (WTF::URLWithUserTypedString):
720         (WTF::userVisibleString):
721
722 2019-02-03  Commit Queue  <commit-queue@webkit.org>
723
724         Unreviewed, rolling out r240896.
725         https://bugs.webkit.org/show_bug.cgi?id=194202
726
727         "Fixes leaks, but is probably not the correct fix." (Requested
728         by ddkilzer on #webkit).
729
730         Reverted changeset:
731
732         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
733         (48 bytes) in com.apple.WebKit.WebContent running layout
734         tests"
735         https://bugs.webkit.org/show_bug.cgi?id=193291
736         https://trac.webkit.org/changeset/240896
737
738 2019-02-02  David Kilzer  <ddkilzer@apple.com>
739
740         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
741         <https://webkit.org/b/193291>
742         <rdar://problem/46655953>
743
744         Reviewed by Keith Miller.
745
746         * wtf/text/SymbolImpl.h:
747         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
748         class destructor that calls StringImpl::deref() on `m_owner`.
749         Two of the three constructors leak the StringImpl when setting
750         `m_owner`, so we need to balance that by manually calling
751         deref().
752
753 2018-12-16  Darin Adler  <darin@apple.com>
754
755         Convert additional String::format clients to alternative approaches
756         https://bugs.webkit.org/show_bug.cgi?id=192746
757
758         Reviewed by Alexey Proskuryakov.
759
760         * wtf/JSONValues.cpp:
761         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
762         escapeChar and reordered arguments to make sense as an append function.
763         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
764         reordered arguments to make sense as an append function, take a
765         StringView instead of a String, used early exit to make the code
766         a bit easier to read. Use the ASCIIHexDigit functions to construct
767         a hex number a nibble at a time rather than using String::format.
768         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
769         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
770
771 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
772
773         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
774
775         * wtf/Platform.h:
776
777 2019-01-29  Chris Dumez  <cdumez@apple.com>
778
779         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
780         https://bugs.webkit.org/show_bug.cgi?id=193848
781
782         Reviewed by Youenn Fablet.
783
784         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
785         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
786         identifiers such as Bug 193761.
787
788         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
789         when they have a typedef for the ObjectIdentifier<T> type.
790
791         * WTF.xcodeproj/project.pbxproj:
792         * wtf/CMakeLists.txt:
793         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
794         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
795         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
796         * wtf/ObjectIdentifier.h:
797         (WTF::ObjectIdentifier::generate):
798         (WTF::ObjectIdentifier::generateThreadSafe):
799
800 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
801
802         Move platform-specific files out of WTF root directory.
803         https://bugs.webkit.org/show_bug.cgi?id=193929
804
805         Reviewed by Alex Christensen.
806
807         * WTF.xcodeproj/project.pbxproj:
808         * wtf/CMakeLists.txt:
809         * wtf/PlatformGTK.cmake:
810         * wtf/PlatformJSCOnly.cmake:
811         * wtf/PlatformMac.cmake:
812         * wtf/PlatformPlayStation.cmake:
813         * wtf/PlatformWPE.cmake:
814         * wtf/PlatformWin.cmake:
815         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
816         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
817         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
818         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
819         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
820         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
821         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
822         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
823         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
824
825 2019-01-28  Andy Estes  <aestes@apple.com>
826
827         [watchOS] Enable Parental Controls content filtering
828         https://bugs.webkit.org/show_bug.cgi?id=193939
829         <rdar://problem/46641912>
830
831         Reviewed by Ryosuke Niwa.
832
833         * wtf/Platform.h:
834
835 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
836
837         [JSCOnly][WTF] Expose FileSystem.
838         https://bugs.webkit.org/show_bug.cgi?id=193789
839
840         Reviewed by Don Olmstead.
841
842         * wtf/FileSystem.h:
843         * wtf/PlatformJSCOnly.cmake:
844         * wtf/posix/FileSystemPOSIX.cpp:
845         (WTF::FileSystemImpl::getVolumeFreeSpace):
846         * wtf/win/FileSystemWin.cpp:
847         (WTF::FileSystemImpl::fileSystemRepresentation):
848
849 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
850
851         AVStreamSession isn't always available, make a HAVE compile flag for it
852         https://bugs.webkit.org/show_bug.cgi?id=193889
853         <rdar://problem/47452863>
854
855         Reviewed by Jer Noble.
856
857         * wtf/FeatureDefines.h:
858
859 2018-12-15  Darin Adler  <darin@apple.com>
860
861         Replace many uses of String::format with more type-safe alternatives
862         https://bugs.webkit.org/show_bug.cgi?id=192742
863
864         Reviewed by Mark Lam.
865
866         * wtf/WorkQueue.cpp:
867         (WTF::WorkQueue::concurrentApply): Use makeString.
868
869         * wtf/dtoa.cpp:
870         (WTF::dtoa): Use sprintf instead of String::format in the comments,
871         since these functions have nothing to do with WTF::String.
872
873 2019-01-25  Chris Dumez  <cdumez@apple.com>
874
875         [iOS] Add support for the download attribute
876         https://bugs.webkit.org/show_bug.cgi?id=167341
877         <rdar://problem/30296281>
878
879         Reviewed by Geoffrey Garen.
880
881         Turn on HTML download attribute support on iOS.
882
883         * wtf/FeatureDefines.h:
884
885 2019-01-25  David Kilzer  <ddkilzer@apple.com>
886
887         Move soft-linking of Lookup.framework out of LookupSPI.h
888         <https://webkit.org/b/193815>
889
890         Reviewed by Tim Horton.
891
892         * wtf/cocoa/SoftLinking.h:
893         (SOFT_LINK_CONSTANT_FOR_HEADER):
894         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
895         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
896         - Remove local declaration of constant.  This should be handled
897           by including *SPI.h or "real" headers.
898         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
899         - Remove local declaration of constant.
900         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
901           `export` argument to support exporting of functions.
902         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
903         - Redefine in terms of
904           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
905
906 2019-01-24  Youenn Fablet  <youenn@apple.com>
907
908         Use MonotonicTime in WorkerRunLoop
909         https://bugs.webkit.org/show_bug.cgi?id=193417
910
911         Reviewed by Saam Barati.
912
913         * wtf/MessageQueue.h:
914         (WTF::MessageQueue<DataType>::waitForMessage):
915         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
916
917 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
918
919         Move FileSystem to WTF
920         https://bugs.webkit.org/show_bug.cgi?id=193602
921
922         Reviewed by Yusuke Suzuki.
923
924         * WTF.xcodeproj/project.pbxproj:
925         * wtf/CMakeLists.txt:
926         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
927         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
928         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
929         * wtf/PlatformGTK.cmake:
930         * wtf/PlatformMac.cmake:
931         * wtf/PlatformPlayStation.cmake:
932         * wtf/PlatformWPE.cmake:
933         * wtf/PlatformWin.cmake:
934         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
935         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
936         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
937         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
938         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
939         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
940         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
941         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
942         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
943
944 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
945
946         [JSC] Reenable baseline JIT on mips
947         https://bugs.webkit.org/show_bug.cgi?id=192983
948
949         Reviewed by Mark Lam.
950
951         Use baseline JIT by default on MIPS.
952
953         * wtf/Platform.h:
954
955 2019-01-24  David Kilzer  <ddkilzer@apple.com>
956
957         Duplicate global variables: WTF::asciiCaseFoldTable
958         <https://webkit.org/b/193726>
959         <rdar://problem/47334622>
960
961         Reviewed by Michael Catanzaro.
962
963         * WTF.xcodeproj/project.pbxproj:
964         * wtf/CMakeLists.txt:
965         - Add ASCIICType.cpp to build systems.
966
967         * wtf/ASCIICType.cpp: Added.
968         (WTF::asciiCaseFoldTable): Move table to here so there is only
969         one copy.  Mark as exported for other frameworks to use.
970         * wtf/ASCIICType.h:
971         (WTF::asciiCaseFoldTable): Change to extern declaration, and
972         mark as exported for other frameworks to use.
973
974 2019-01-23  Mark Lam  <mark.lam@apple.com>
975
976         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
977         https://bugs.webkit.org/show_bug.cgi?id=193744
978         <rdar://problem/46262952>
979
980         Reviewed by Saam Barati.
981
982         * wtf/Platform.h:
983
984 2019-01-23  David Kilzer  <ddkilzer@apple.com>
985
986         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
987         <https://webkit.org/b/193694>
988         <rdar://problem/47464025>
989
990         Reviewed by Tim Horton.
991
992         * wtf/win/SoftLinking.h:
993         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
994         - Implement for Windows.
995         (SOFT_LINK_CONSTANT_FOR_SOURCE):
996         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
997
998 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
999
1000         Cache bytecode to disk
1001         https://bugs.webkit.org/show_bug.cgi?id=192782
1002         <rdar://problem/46084932>
1003
1004         Reviewed by Keith Miller.
1005
1006         BitVectors have to be friends with JSC::CacheBitVector to allow
1007         serializing its buffer as part of the bytecode cache encoding.
1008
1009         * wtf/BitVector.h:
1010
1011 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
1012
1013         [GTK] Speculative build fix for Ubuntu LTS
1014         https://bugs.webkit.org/show_bug.cgi?id=193651
1015
1016         Unreviewed build fix.
1017
1018         * wtf/Assertions.h: Add missing <cstdlib> include.
1019
1020 2019-01-20  Saam Barati  <sbarati@apple.com>
1021
1022         Rollout r240210: It broke tests on iOS
1023         https://bugs.webkit.org/show_bug.cgi?id=193640
1024
1025         Unreviewed.
1026
1027         * wtf/BitVector.h:
1028
1029 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
1030
1031         Cache bytecode to disk
1032         https://bugs.webkit.org/show_bug.cgi?id=192782
1033         <rdar://problem/46084932>
1034
1035         Reviewed by Keith Miller.
1036
1037         BitVectors have to be friends with JSC::CacheBitVector to allow
1038         serializing its buffer as part of the bytecode cache encoding.
1039
1040         * wtf/BitVector.h:
1041
1042 2019-01-18  Tim Horton  <timothy_horton@apple.com>
1043
1044         Get rid of ADVANCED_SPELL_CHECKING
1045         https://bugs.webkit.org/show_bug.cgi?id=193592
1046
1047         Reviewed by Wenson Hsieh.
1048
1049         * wtf/Platform.h:
1050
1051 2019-01-18  Jer Noble  <jer.noble@apple.com>
1052
1053         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1054         https://bugs.webkit.org/show_bug.cgi?id=189553
1055
1056         Reviewed by Tim Horton.
1057
1058         * Configurations/Base.xcconfig:
1059         * Configurations/SDKVariant.xcconfig: Added.
1060
1061 2019-01-18  Keith Miller  <keith_miller@apple.com>
1062
1063         Gigacages should start allocations from a slide
1064         https://bugs.webkit.org/show_bug.cgi?id=193523
1065
1066         Reviewed by Mark Lam.
1067
1068         This patch changes some macros into constants since macros are the
1069         devil.
1070
1071         * wtf/Gigacage.cpp:
1072         * wtf/Gigacage.h:
1073
1074 2019-01-18  Matt Lewis  <jlewis3@apple.com>
1075
1076         Unreviewed, rolling out r240160.
1077
1078         This broke multiple internal builds.
1079
1080         Reverted changeset:
1081
1082         "Gigacages should start allocations from a slide"
1083         https://bugs.webkit.org/show_bug.cgi?id=193523
1084         https://trac.webkit.org/changeset/240160
1085
1086 2019-01-18  Keith Miller  <keith_miller@apple.com>
1087
1088         Gigacages should start allocations from a slide
1089         https://bugs.webkit.org/show_bug.cgi?id=193523
1090
1091         Reviewed by Mark Lam.
1092
1093         This patch changes some macros into constants since macros are the
1094         devil.
1095
1096         * wtf/Gigacage.cpp:
1097         * wtf/Gigacage.h:
1098
1099 2019-01-17  Truitt Savell  <tsavell@apple.com>
1100
1101         Unreviewed, rolling out r240124.
1102
1103         This commit broke an internal build.
1104
1105         Reverted changeset:
1106
1107         "SDK_VARIANT build destinations should be separate from non-
1108         SDK_VARIANT builds"
1109         https://bugs.webkit.org/show_bug.cgi?id=189553
1110         https://trac.webkit.org/changeset/240124
1111
1112 2019-01-17  Jer Noble  <jer.noble@apple.com>
1113
1114         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1115         https://bugs.webkit.org/show_bug.cgi?id=189553
1116
1117         Reviewed by Tim Horton.
1118
1119         * Configurations/Base.xcconfig:
1120         * Configurations/SDKVariant.xcconfig: Added.
1121
1122 2019-01-16  Keith Miller  <keith_miller@apple.com>
1123
1124         bmalloc should use JSC VM tag for gigacage
1125         https://bugs.webkit.org/show_bug.cgi?id=193496
1126
1127         Reviewed by Mark Lam.
1128
1129         Move most of the macros for vm tagging to bmalloc.
1130
1131         * wtf/VMTags.h:
1132
1133 2019-01-16  Alberto Garcia  <berto@igalia.com>
1134
1135         [WTF] Compilation fails with system malloc
1136         https://bugs.webkit.org/show_bug.cgi?id=172445
1137
1138         Reviewed by Michael Catanzaro.
1139
1140         Follow-up to r217270. The sysinfo() system call is specific to
1141         Linux so update the #ifdef checks accordingly.
1142
1143         * wtf/RAMSize.cpp:
1144         (WTF::computeRAMSize):
1145
1146 2019-01-15  Chris Dumez  <cdumez@apple.com>
1147
1148         Unreviewed, revert part of r239997 as it is not needed to fix the build.
1149
1150         * wtf/RefCounter.h:
1151
1152 2019-01-15  Alex Christensen  <achristensen@webkit.org>
1153
1154         Fix iOS build after r239993
1155         https://bugs.webkit.org/show_bug.cgi?id=193361
1156
1157         * wtf/RefCounter.h:
1158
1159 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
1160
1161         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
1162         https://bugs.webkit.org/show_bug.cgi?id=192945
1163
1164         Reviewed by Alex Christensen.
1165
1166         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
1167         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
1168         course this is much worse than the preexisting code, but this is just a transitional
1169         measure and not the final state of the code. It wouldn't make sense to do this if the code
1170         were to remain Objective C++.
1171
1172         * wtf/cocoa/NSURLExtras.mm:
1173         (WTF::toNormalizationFormC):
1174         (WTF::userVisibleString):
1175
1176 2019-01-14  Alex Christensen  <achristensen@webkit.org>
1177
1178         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
1179         https://bugs.webkit.org/show_bug.cgi?id=193411
1180         <rdar://problem/47215929>
1181
1182         Reviewed by Alexey Proskuryakov.
1183
1184         * wtf/cocoa/NSURLExtras.mm:
1185         (WTF::allCharactersAllowedByTLDRules):
1186
1187 2019-01-12  Timothy Hatcher  <timothy@apple.com>
1188
1189         Have prefers-color-scheme: light always match on macOS versions before Mojave.
1190         https://bugs.webkit.org/show_bug.cgi?id=191655
1191         rdar://problem/46074680
1192
1193         Reviewed by Megan Gardner.
1194
1195         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
1196
1197 2019-01-11  David Kilzer  <ddkilzer@apple.com>
1198
1199         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1200         https://bugs.webkit.org/show_bug.cgi?id=191350
1201
1202         * wtf/WorkQueue.cpp:
1203         (WTF::WorkQueue::concurrentApply): Fix whitespace.
1204
1205 2019-01-11  Devin Rousso  <drousso@apple.com>
1206
1207         Fix style CFNetworkSPI style checker warnings from r239698
1208         https://bugs.webkit.org/show_bug.cgi?id=193369
1209
1210         Reviewed by Joseph Pecoraro.
1211
1212         * wtf/Platform.h:
1213
1214 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
1215
1216         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
1217         https://bugs.webkit.org/show_bug.cgi?id=191350
1218
1219         Reviewed by Brent Fulgham.
1220
1221         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
1222         String for the threadName and passes the raw pointer of this String to
1223         Thread::create(). After freeing this String, Thread::entryPoint() uses
1224         the raw char pointer to internally initialize the thread.
1225
1226         The fix is to use a single literal string for all the threads' names since
1227         they are created for a thread-pool.
1228
1229         * wtf/WorkQueue.cpp:
1230         (WTF::WorkQueue::concurrentApply):
1231
1232 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
1233
1234         Enable DFG on ARM/Linux again
1235         https://bugs.webkit.org/show_bug.cgi?id=192496
1236
1237         Reviewed by Yusuke Suzuki.
1238
1239         After changing the bytecode format DFG was disabled on all 32-bit
1240         architectures. Enable DFG now again on ARM/Linux.
1241
1242         * wtf/Platform.h:
1243
1244 2019-01-10  Commit Queue  <commit-queue@webkit.org>
1245
1246         Unreviewed, rolling out r239825.
1247         https://bugs.webkit.org/show_bug.cgi?id=193330
1248
1249         Broke tests on armv7/linux bots (Requested by guijemont on
1250         #webkit).
1251
1252         Reverted changeset:
1253
1254         "Enable DFG on ARM/Linux again"
1255         https://bugs.webkit.org/show_bug.cgi?id=192496
1256         https://trac.webkit.org/changeset/239825
1257
1258 2019-01-10  John Wilander  <wilander@apple.com>
1259
1260         Override the session configuration for cookieAcceptPolicy
1261         https://bugs.webkit.org/show_bug.cgi?id=190925
1262         <rdar://problem/45497382>
1263
1264         Reviewed by Alexey Proskuryakov and Alex Christensen.
1265
1266         * wtf/Platform.h:
1267             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
1268
1269 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
1270
1271         Enable DFG on ARM/Linux again
1272         https://bugs.webkit.org/show_bug.cgi?id=192496
1273
1274         Reviewed by Yusuke Suzuki.
1275
1276         After changing the bytecode format DFG was disabled on all 32-bit
1277         architectures. Enable DFG now again on ARM/Linux.
1278
1279         * wtf/Platform.h:
1280
1281 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1282
1283         [FreeType] Color emoji not properly supported
1284         https://bugs.webkit.org/show_bug.cgi?id=191976
1285
1286         Reviewed by Michael Catanzaro.
1287
1288         Add a name for combining enclosing keycap character.
1289
1290         * wtf/unicode/CharacterNames.h:
1291
1292 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
1293
1294         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
1295         https://bugs.webkit.org/show_bug.cgi?id=192391
1296
1297         Reviewed by Don Olmstead.
1298
1299         Unified Source Builds are using global sequential numbers for
1300         bundle filenames UnifiedSource{sequential-number}.cpp. As the
1301         result, every new source file added would shift the next ones and
1302         prevent compiler caches from speeding up consecutive builds e.g.
1303         in git-bisect sessions.
1304
1305         Changed it to directory local sequential numbers,
1306         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
1307
1308         This is affecting only CMake builds which is where no
1309         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
1310         are set. Xcode builds still use the old convention.
1311
1312         * Scripts/generate-unified-source-bundles.rb: Add new instance
1313         variables @currentDirectory and @extraFiles to BundleManager.
1314         Still use global sequential numbers if --max-cpp-bundle-count or
1315         --max-obj-c-bundle-count is given.
1316
1317 2019-01-09  Alex Christensen  <achristensen@webkit.org>
1318
1319         Expand use of sourceApplicationAuditData
1320         https://bugs.webkit.org/show_bug.cgi?id=192995
1321         <rdar://problem/46627875>
1322
1323         Reviewed by Brady Eidson.
1324
1325         * wtf/Platform.h:
1326
1327 2019-01-09  Mark Lam  <mark.lam@apple.com>
1328
1329         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
1330         https://bugs.webkit.org/show_bug.cgi?id=193292
1331         <rdar://problem/46485450>
1332
1333         Reviewed by Yusuke Suzuki.
1334
1335         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
1336
1337         * wtf/Gigacage.h:
1338
1339 2019-01-07  David Kilzer  <ddkilzer@apple.com>
1340
1341         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
1342         <https://webkit.org/b/193056>
1343
1344         Reviewed by Alex Christensen.
1345
1346         * wtf/RetainPtr.h:
1347         (WTF::RetainPtr<T>::HelperPtrType):
1348         - Use C++ template metaprogramming to define a shared return
1349           type for adoptNS() and retainPtr() that uses
1350           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
1351           non-Objective-C typedef is used with retainPtr() for CFTypeRef
1352           objects.
1353         (WTF::adoptNS):
1354         - Only make declarations available when compilng with
1355           Objective-C.  The inline implementation is only available for
1356           Objective-C, so this makes the declarations consistent.
1357         - Change return type to remove '*' from NS types using
1358           RetainPtr<T>::HelperPtrType.
1359         (WTF::retainPtr):
1360         - Change return type to remove '*' from NS types using
1361           RetainPtr<T>::HelperPtrType.
1362
1363         * wtf/SchedulePair.h:
1364         - Remove '*' from RetainPtr<> type.
1365
1366 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
1367
1368         A MediaTime timescale must never be zero
1369         https://bugs.webkit.org/show_bug.cgi?id=193156
1370         <rdar://problem/32504501>
1371
1372         Reviewed by Jer Noble.
1373
1374         * wtf/MediaTime.cpp:
1375         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
1376         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
1377         (WTF::MediaTime::createWithFloat): Ditto.
1378         (WTF::MediaTime::createWithDouble): Ditto.
1379         (WTF::MediaTime::setTimeScale): Ditto.
1380
1381 2019-01-02  Alex Christensen  <achristensen@webkit.org>
1382
1383         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
1384         https://bugs.webkit.org/show_bug.cgi?id=192944
1385
1386         Reviewed by Tim Horton.
1387
1388         * wtf/cocoa/NSURLExtras.mm:
1389         (WTF::isLookalikeCharacter):
1390
1391 2019-01-02  Commit Queue  <commit-queue@webkit.org>
1392
1393         Unreviewed, rolling out r239524.
1394         https://bugs.webkit.org/show_bug.cgi?id=193083
1395
1396         basic browsing seems not to work (Requested by thorton on
1397         #webkit).
1398
1399         Reverted changeset:
1400
1401         "Expand use of sourceApplicationAuditData"
1402         https://bugs.webkit.org/show_bug.cgi?id=192995
1403         https://trac.webkit.org/changeset/239524
1404
1405 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1406
1407         Add ENABLE_UNIFIED_BUILDS option to cmake ports
1408         https://bugs.webkit.org/show_bug.cgi?id=193045
1409
1410         Reviewed by Don Olmstead.
1411
1412         * Scripts/generate-unified-source-bundles.rb:
1413
1414 2018-12-27  Alex Christensen  <achristensen@webkit.org>
1415
1416         Resurrect Mac CMake build
1417         https://bugs.webkit.org/show_bug.cgi?id=192658
1418
1419         Reviewed by Yusuke Suzuki.
1420
1421         * wtf/PlatformMac.cmake:
1422         * wtf/cf/CFURLExtras.cpp:
1423         * wtf/cf/CFURLExtras.h:
1424         * wtf/cf/URLCF.cpp:
1425         * wtf/cocoa/NSURLExtras.h:
1426         * wtf/cocoa/NSURLExtras.mm:
1427         * wtf/cocoa/URLCocoa.mm:
1428
1429 2018-12-21  Dan Bernstein  <mitz@apple.com>
1430
1431         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
1432
1433         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
1434           deployment target, not the SDK.
1435
1436 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1437
1438         [JSC] Implement "well-formed JSON.stringify" proposal
1439         https://bugs.webkit.org/show_bug.cgi?id=191677
1440
1441         Reviewed by Darin Adler.
1442
1443         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
1444         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
1445         The proposal requires that broken surrogate pairs are unicode-escaped.
1446
1447         [1]: https://github.com/tc39/proposal-well-formed-stringify
1448
1449         * wtf/text/StringBuilderJSON.cpp:
1450         (WTF::appendQuotedJSONStringInternal):
1451
1452 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1453
1454         Expand use of sourceApplicationAuditData
1455         https://bugs.webkit.org/show_bug.cgi?id=192995
1456         <rdar://problem/46627875>
1457
1458         Reviewed by Brady Eidson.
1459
1460         * wtf/Platform.h:
1461
1462 2018-12-21  Alex Christensen  <achristensen@webkit.org>
1463
1464         Revert r239503.
1465         https://bugs.webkit.org/show_bug.cgi?id=192944
1466
1467         * wtf/cocoa/NSURLExtras.mm:
1468         (WTF::isLookalikeCharacter):
1469
1470 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
1471
1472         Show punycode if URL contains Latin small letter dotless i
1473         https://bugs.webkit.org/show_bug.cgi?id=192944
1474         <rdar://problem/46103047>
1475
1476         Reviewed by Andy Estes.
1477
1478         Revise our "lookalike character" logic to include the small Latin
1479         dotless i character.
1480
1481         Test: fast/url/host.html
1482
1483         * wtf/cocoa/NSURLExtras.mm:
1484         (WTF::isLookalikeCharacter):
1485
1486 2018-12-20  Chris Dumez  <cdumez@apple.com>
1487
1488         Use Optional::hasValue() instead of Optional::has_value()
1489         https://bugs.webkit.org/show_bug.cgi?id=192948
1490
1491         Reviewed by Tim Horton.
1492
1493         * wtf/Hasher.h:
1494         (WTF::add):
1495         * wtf/Optional.h:
1496
1497 2018-12-20  Chris Dumez  <cdumez@apple.com>
1498
1499         Use Optional::valueOr() instead of Optional::value_or()
1500         https://bugs.webkit.org/show_bug.cgi?id=192933
1501
1502         Reviewed by Geoffrey Garen.
1503
1504         * wtf/Optional.h:
1505         (WTF::Optional<T::valueOr const):
1506
1507 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
1508
1509         Consistently use MaxLength for all WTF strings
1510         https://bugs.webkit.org/show_bug.cgi?id=192853
1511         <rdar://problem/45726906>
1512
1513         Reviewed by Mark Lam.
1514
1515         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
1516         but all the assertions were still done using UINT_MAX. Change it to
1517         use MaxLength for all checks.
1518
1519         * wtf/text/StringImpl.cpp:
1520         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1521         (WTF::StringImpl::reallocateInternal):
1522         (WTF::StringImpl::create):
1523         (WTF::StringImpl::convertToLowercaseWithoutLocale):
1524         (WTF::StringImpl::convertToUppercaseWithoutLocale):
1525         (WTF::StringImpl::convertToLowercaseWithLocale):
1526         (WTF::StringImpl::convertToUppercaseWithLocale):
1527         (WTF::StringImpl::foldCase):
1528         (WTF::StringImpl::find):
1529         (WTF::StringImpl::replace):
1530         (WTF::StringImpl::utf8ForCharacters):
1531         (WTF::StringImpl::tryGetUtf8ForRange const):
1532         * wtf/text/StringImpl.h:
1533         (WTF::lengthOfNullTerminatedString):
1534         (WTF::StringImpl::tryCreateUninitialized):
1535         (WTF::StringImpl::adopt):
1536         (WTF::StringImpl::maxInternalLength):
1537         * wtf/text/WTFString.cpp:
1538         (WTF::String::append):
1539         (WTF::String::insert):
1540         (WTF::String::fromUTF8):
1541         * wtf/text/WTFString.h:
1542         (WTF::String::reverseFind const):
1543
1544 2018-12-19  Chris Dumez  <cdumez@apple.com>
1545
1546         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
1547         https://bugs.webkit.org/show_bug.cgi?id=192728
1548         <rdar://problem/46746779>
1549
1550         Reviewed by Geoff Garen.
1551
1552         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
1553         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
1554
1555         Based on patch by David Kilzer.
1556
1557         * wtf/*:
1558
1559 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
1560
1561         [MediaStream] Force system camera/microphone TCC prompt if necessary
1562         https://bugs.webkit.org/show_bug.cgi?id=192820
1563         <rdar://problem/42680098>
1564
1565         Reviewed by Jer Noble.
1566
1567         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
1568
1569 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
1570
1571         Some builds are broken after r239262
1572         https://bugs.webkit.org/show_bug.cgi?id=192777
1573
1574         Reviewed by Simon Fraser.
1575
1576         * wtf/Platform.h:
1577
1578 2018-12-17  Daniel Bates  <dabates@apple.com>
1579
1580         Support concatenating StringView with other string types
1581         https://bugs.webkit.org/show_bug.cgi?id=177566
1582
1583         Reviewed by Darin Adler.
1584
1585         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
1586         other string types (e.g. String). This lets a person write more naturally looking code:
1587
1588         stringView + string
1589
1590         Instead of:
1591
1592         makeString(stringView, string)
1593
1594         * wtf/text/StringOperators.h:
1595         (WTF::operator+): Added various operator+ overloads.
1596
1597 2018-12-17  Commit Queue  <commit-queue@webkit.org>
1598
1599         Unreviewed, rolling out r239265 and r239274.
1600         https://bugs.webkit.org/show_bug.cgi?id=192765
1601
1602         unorm_normalize is deprecated, and broke an internal build
1603         (Requested by Truitt on #webkit).
1604
1605         Reverted changesets:
1606
1607         "[GTK][WPE] Need a function to convert internal URI to display
1608         ("pretty") URI"
1609         https://bugs.webkit.org/show_bug.cgi?id=174816
1610         https://trac.webkit.org/changeset/239265
1611
1612         "Fix the Apple Internal Mac build with a newer SDK"
1613         https://trac.webkit.org/changeset/239274
1614
1615 2018-12-17  Daniel Bates  <dabates@apple.com>
1616
1617         Fix the Apple Internal Mac build with a newer SDK
1618
1619         * wtf/URLHelpers.cpp:
1620         (WTF::URLHelpers::userVisibleURL):
1621
1622 2018-12-17  Matt Lewis  <jlewis3@apple.com>
1623
1624         Unreviewed, rolling out r239254.
1625
1626         This broke the Windows 10 Debug build
1627
1628         Reverted changeset:
1629
1630         "Replace many uses of String::format with more type-safe
1631         alternatives"
1632         https://bugs.webkit.org/show_bug.cgi?id=192742
1633         https://trac.webkit.org/changeset/239254
1634
1635 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
1636
1637         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
1638         https://bugs.webkit.org/show_bug.cgi?id=174816
1639
1640         Reviewed by Michael Catanzaro.
1641
1642         Translate userVisibleString and dependent code into platform-neutral C++
1643         in wtf/URLHelpers.{h,cpp}.
1644
1645         * WTF.xcodeproj/project.pbxproj:
1646         * wtf/CMakeLists.txt:
1647         * wtf/URLHelpers.cpp: Added.
1648         (WTF::URLHelpers::loadIDNScriptWhiteList):
1649         (WTF::URLHelpers::isArmenianLookalikeCharacter):
1650         (WTF::URLHelpers::isArmenianScriptCharacter):
1651         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
1652         (WTF::URLHelpers::isLookalikeCharacter):
1653         (WTF::URLHelpers::whiteListIDNScript):
1654         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
1655         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
1656         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
1657         (WTF::URLHelpers::isRussianDomainNameCharacter):
1658         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
1659         (WTF::URLHelpers::mapHostName):
1660         (WTF::URLHelpers::collectRangesThatNeedMapping):
1661         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
1662         (WTF::URLHelpers::applyHostNameFunctionToURLString):
1663         (WTF::URLHelpers::mapHostNames):
1664         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
1665         (WTF::URLHelpers::userVisibleURL):
1666         * wtf/URLHelpers.h: Added.
1667         * wtf/cocoa/NSURLExtras.mm:
1668         (WTF::URLHelpers::loadIDNScriptWhiteList):
1669         (WTF::decodePercentEscapes):
1670         (WTF::decodeHostName):
1671         (WTF::encodeHostName):
1672         (WTF::URLWithUserTypedString):
1673         (WTF::userVisibleString):
1674
1675 2018-12-15  Darin Adler  <darin@apple.com>
1676
1677         Use warning-ignoring macros more consistently and simply
1678         https://bugs.webkit.org/show_bug.cgi?id=192743
1679
1680         Reviewed by Mark Lam.
1681
1682         * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
1683         IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
1684         non-clang compilers, in part since the code is already inside
1685         #if COMPILER(CLANG), but also because it would be harmless to ignore this
1686         warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.
1687
1688 2018-12-15  Darin Adler  <darin@apple.com>
1689
1690         Replace many uses of String::format with more type-safe alternatives
1691         https://bugs.webkit.org/show_bug.cgi?id=192742
1692
1693         Reviewed by Mark Lam.
1694
1695         * wtf/WorkQueue.cpp:
1696         (WTF::WorkQueue::concurrentApply): Use makeString.
1697
1698         * wtf/dtoa.cpp:
1699         (WTF::dtoa): Use sprintf instead of String::format in the comments,
1700         since these functions have nothing to do with WTF::String.
1701
1702 2018-12-14  Darin Adler  <darin@apple.com>
1703
1704         Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
1705         https://bugs.webkit.org/show_bug.cgi?id=192738
1706         rdar://problem/37502342
1707
1708         Reviewed by Mark Lam.
1709
1710         * wtf/Gigacage.cpp:
1711         (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
1712         like the one in tryLargeZeroedMemalignVirtual in bmalloc.
1713
1714 2018-12-14  David Kilzer  <ddkilzer@apple.com>
1715
1716         clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
1717         <https://webkit.org/b/192710>
1718         <rdar://problem/46738962>
1719
1720         Reviewed by Eric Carlson.
1721
1722         * wtf/Logger.h:
1723         (WTF::LogArgument::toString): Make argument a const reference to
1724         avoid the copy.
1725
1726 2018-12-14  Zan Dobersek  <zdobersek@igalia.com>
1727
1728         [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
1729         https://bugs.webkit.org/show_bug.cgi?id=192696
1730
1731         Reviewed by Michael Catanzaro.
1732
1733         The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
1734         should support microsecond-precision delays. Such delays are common in
1735         JSC's Watchdog implementation and missing support for them has been
1736         causing test failures in the `testapi` program as well as some JSC
1737         tests that depend on the termination determination functionality of the
1738         JSC::Watchdog class.
1739
1740         RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
1741         existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
1742         The GSource's ready time is set manually, now with the necessary
1743         microsecond precision.
1744
1745         * wtf/glib/RunLoopGLib.cpp:
1746         (WTF::RunLoop::dispatchAfter):
1747
1748 2018-12-13  Saam Barati  <sbarati@apple.com>
1749
1750         The JSC shell should listen for memory pressure events and respond to them
1751         https://bugs.webkit.org/show_bug.cgi?id=192647
1752
1753         Reviewed by Keith Miller.
1754
1755         * wtf/MemoryPressureHandler.cpp:
1756         (WTF::MemoryPressureHandler::MemoryPressureHandler):
1757         (WTF::MemoryPressureHandler::setDispatchQueue):
1758         Make it so that we can customize which dispatch queue memory pressure
1759         events get handled on.
1760
1761         * wtf/MemoryPressureHandler.h:
1762         (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
1763         Make it so that we can disable logging that happens on each memory
1764         pressure event.
1765
1766         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1767         (WTF::MemoryPressureHandler::install):
1768         (WTF::MemoryPressureHandler::uninstall):
1769         (WTF::MemoryPressureHandler::holdOff):
1770
1771 2018-12-13  David Kilzer  <ddkilzer@apple.com>
1772
1773         clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
1774         <https://webkit.org/b/192666>
1775         <rdar://problem/46697952>
1776
1777         Reviewed by Alex Christensen.
1778
1779         * wtf/ParallelHelperPool.cpp:
1780         (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
1781         reference and WTFMove().
1782         (WTF::ParallelHelperClient::setTask): Ditto.
1783         (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
1784         (WTF::ParallelHelperClient::runTask): Use const reference.
1785         * wtf/ParallelHelperPool.h: Update declarations to match
1786         implementations.
1787
1788 2018-12-12  Alex Christensen  <achristensen@webkit.org>
1789
1790         Implement safe browsing in WebKit on WatchOS
1791         https://bugs.webkit.org/show_bug.cgi?id=192641
1792         <rdar://problem/46376188>
1793
1794         Reviewed by Geoff Garen.
1795
1796         * wtf/Platform.h:
1797         WatchOS has safe browsing, too!
1798
1799 2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>
1800
1801         [Win][Clang] Fix compilation warnings of WTF
1802         https://bugs.webkit.org/show_bug.cgi?id=192583
1803
1804         Reviewed by Alex Christensen.
1805
1806         clang-cl reports the following warnings.
1807
1808         > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
1809         > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
1810         >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
1811         >                                                ^
1812         > 1 warning generated.
1813         > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
1814         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(34,54):  warning: ISO C++11 does not allow conversion from string literal to 'const LPWSTR' (aka 'wchar_t *const') [-Wwritable-strings]
1815         > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
1816         >                                                      ^
1817         > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
1818         >     WNDCLASS windowClass = { 0 };
1819         >                                ^
1820         > 2 warnings generated.
1821         > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
1822         > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
1823         > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
1824         >                    ^
1825         > 1 warning generated.
1826
1827         * wtf/DateMath.cpp:
1828         (WTF::getLocalTime): Defined only if used.
1829         * wtf/StackBounds.cpp:
1830         (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
1831         * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
1832         (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.
1833
1834 2018-12-11  Andy Estes  <aestes@apple.com>
1835
1836         Introduce makeBlockPtr for lambdas
1837         https://bugs.webkit.org/show_bug.cgi?id=192594
1838
1839         Reviewed by Alex Christensen.
1840
1841         BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
1842         signature as a class template argument. This patch introduces an overload of makeBlockPtr
1843         that deduces the correct BlockPtr instantiation from a lambda's operator() signature.
1844
1845         * wtf/BlockPtr.h:
1846         (WTF::makeBlockPtr):
1847
1848         Adopted makeBlockPtr.
1849
1850         * wtf/cocoa/WorkQueueCocoa.cpp:
1851         (WTF::WorkQueue::dispatch):
1852         (WTF::WorkQueue::dispatchAfter):
1853         (WTF::WorkQueue::concurrentApply):
1854
1855 2018-12-10  Don Olmstead  <don.olmstead@sony.com>
1856
1857         Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
1858         https://bugs.webkit.org/show_bug.cgi?id=192573
1859
1860         Reviewed by Simon Fraser.
1861
1862         Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
1863         on it being set in FeatureDefines.xcconfig.
1864
1865         * wtf/Platform.h:
1866
1867 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
1868
1869         Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
1870         https://bugs.webkit.org/show_bug.cgi?id=192428
1871
1872         Reviewed by Tim Horton.
1873
1874         * wtf/Platform.h:
1875
1876 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
1877
1878         Move more macros out of WebKit's config.h
1879         https://bugs.webkit.org/show_bug.cgi?id=192430
1880
1881         Reviewed by Tim Horton.
1882
1883         * wtf/Platform.h:
1884
1885 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1886
1887         Unreviewed, fix build failure on GCC 8.2, part 2
1888
1889         Add RefCountedArray::assign, and use it instead of operator= internally.
1890         We should have operator=(const RefCountedArray&) since it will be automatically generated
1891         if we do not have correct implementation here.
1892
1893         * wtf/RefCountedArray.h:
1894         (WTF::RefCountedArray::operator=):
1895         (WTF::RefCountedArray::assign):
1896
1897 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1898
1899         Unreviewed, fix build failure on GCC 8.2
1900
1901         We remove operator=<PtrTraits> call since it is not necessary.
1902         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
1903
1904         * wtf/RefCountedArray.h:
1905
1906 2018-12-08  Darin Adler  <darin@apple.com>
1907
1908         Fix stray-semicolon warning seen with a new version of clang in Xcode
1909         https://bugs.webkit.org/show_bug.cgi?id=192534
1910
1911         Reviewed by Alexey Proskuryakov.
1912
1913         * wtf/Lock.h: Removed an unneeded semicolon.
1914
1915 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
1916
1917         [WTF] Debug build fails due conflicting abort() method
1918         https://bugs.webkit.org/show_bug.cgi?id=192491
1919
1920         Reviewed by Michael Catanzaro.
1921
1922         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
1923         inside classes which have an ::abort() method, but only when __cplusplus is defined to
1924         allow inclusion of the header in plain C sources.
1925
1926 2018-12-07  Andy Estes  <aestes@apple.com>
1927
1928         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
1929         https://bugs.webkit.org/show_bug.cgi?id=192498
1930
1931         Reviewed by Tim Horton.
1932
1933         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
1934         which behave like their non-optional variants but do not require their classes to exist.
1935
1936         * wtf/cocoa/SoftLinking.h:
1937
1938 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
1939
1940         Move USE_NEW_THEME out of WebCore's config.h
1941         https://bugs.webkit.org/show_bug.cgi?id=192426
1942
1943         Reviewed by Tim Horton.
1944
1945         * wtf/Platform.h:
1946
1947 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
1948
1949         [SOUP] Move URLSoup back to WebCore after r238771
1950         https://bugs.webkit.org/show_bug.cgi?id=192306
1951
1952         Reviewed by Michael Catanzaro.
1953
1954         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
1955         libsoup as a new dependency of libjavascriptcoregtk.
1956
1957         * wtf/PlatformGTK.cmake:
1958         * wtf/PlatformWPE.cmake:
1959         * wtf/URL.h:
1960         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
1961
1962 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
1963
1964         Fix some unused parameter warnings
1965         https://bugs.webkit.org/show_bug.cgi?id=192336
1966
1967         Reviewed by Fujii Hironori.
1968
1969         * wtf/StackTrace.cpp:
1970         (WTFGetBacktrace):
1971         (WTF::StackTrace::demangle):
1972         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
1973         (WTF::MemoryPressureHandler::holdOff):
1974         (WTF::MemoryPressureHandler::respondToMemoryPressure):
1975
1976 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
1977
1978         Modernize version check for _suppressedAutoAddedHTTPHeaders
1979         https://bugs.webkit.org/show_bug.cgi?id=192175
1980
1981         Reviewed by Tim Horton.
1982
1983         * wtf/Platform.h:
1984
1985 2018-11-30  Alex Christensen  <achristensen@webkit.org>
1986
1987         Fix Windows build after r238771
1988         https://bugs.webkit.org/show_bug.cgi?id=190234
1989
1990         * wtf/URLParser.h:
1991         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
1992
1993 2018-11-30  Alex Christensen  <achristensen@webkit.org>
1994
1995         Move URL from WebCore to WTF
1996         https://bugs.webkit.org/show_bug.cgi?id=190234
1997
1998         Reviewed by Keith Miller.
1999
2000         * WTF.xcodeproj/project.pbxproj:
2001         * wtf/CMakeLists.txt:
2002         * wtf/Forward.h:
2003         * wtf/PlatformGTK.cmake:
2004         * wtf/PlatformMac.cmake:
2005         * wtf/PlatformWPE.cmake:
2006         * wtf/PlatformWin.cmake:
2007         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
2008         (WTF::URL::protocolIs):
2009         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
2010         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
2011         (WTF::URLHash::hash):
2012         (WTF::URLHash::equal):
2013         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
2014         (WTF::URLParser::isInUserInfoEncodeSet):
2015         (WTF::URLParser::parseAuthority):
2016         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
2017         (WTF::URLParser::URLParser):
2018         (WTF::URLParser::result):
2019         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
2020         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
2021         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
2022         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
2023         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
2024         (WTF::isArmenianLookalikeCharacter):
2025         (WTF::isArmenianScriptCharacter):
2026         (WTF::isASCIIDigitOrValidHostCharacter):
2027         (WTF::isLookalikeCharacter):
2028         (WTF::whiteListIDNScript):
2029         (WTF::readIDNScriptWhiteListFile):
2030         (WTF::allCharactersInIDNScriptWhiteList):
2031         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
2032         (WTF::isRussianDomainNameCharacter):
2033         (WTF::allCharactersAllowedByTLDRules):
2034         (WTF::mapHostNameWithRange):
2035         (WTF::hostNameNeedsDecodingWithRange):
2036         (WTF::hostNameNeedsEncodingWithRange):
2037         (WTF::decodeHostNameWithRange):
2038         (WTF::encodeHostNameWithRange):
2039         (WTF::decodeHostName):
2040         (WTF::encodeHostName):
2041         (WTF::collectRangesThatNeedMapping):
2042         (WTF::collectRangesThatNeedEncoding):
2043         (WTF::collectRangesThatNeedDecoding):
2044         (WTF::applyHostNameFunctionToMailToURLString):
2045         (WTF::applyHostNameFunctionToURLString):
2046         (WTF::mapHostNames):
2047         (WTF::stringByTrimmingWhitespace):
2048         (WTF::URLByTruncatingOneCharacterBeforeComponent):
2049         (WTF::URLByRemovingResourceSpecifier):
2050         (WTF::URLWithData):
2051         (WTF::dataWithUserTypedString):
2052         (WTF::URLWithUserTypedString):
2053         (WTF::URLWithUserTypedStringDeprecated):
2054         (WTF::hasQuestionMarkOnlyQueryString):
2055         (WTF::dataForURLComponentType):
2056         (WTF::URLByRemovingComponentAndSubsequentCharacter):
2057         (WTF::URLByRemovingUserInfo):
2058         (WTF::originalURLData):
2059         (WTF::createStringWithEscapedUnsafeCharacters):
2060         (WTF::userVisibleString):
2061         (WTF::isUserVisibleURL):
2062         (WTF::rangeOfURLScheme):
2063         (WTF::looksLikeAbsoluteURL):
2064         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
2065         (WTF::URL::URL):
2066         (WTF::URL::createCFURL const):
2067         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
2068         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
2069
2070 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
2071
2072         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
2073         https://bugs.webkit.org/show_bug.cgi?id=192173
2074
2075         Reviewed by Tim Horton.
2076
2077         * wtf/Platform.h: Also renamed it to better match other version checks.
2078
2079 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
2080
2081         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
2082         https://bugs.webkit.org/show_bug.cgi?id=192041
2083
2084         Reviewed by Tim Horton.
2085
2086         * wtf/Platform.h:
2087
2088 2018-11-28  Mark Lam  <mark.lam@apple.com>
2089
2090         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
2091         https://bugs.webkit.org/show_bug.cgi?id=192110
2092         <rdar://problem/46317746>
2093
2094         Reviewed by Saam Barati.
2095
2096         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
2097         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
2098         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
2099         (and other projects) as well as JSC.  Hence, there's no reason why
2100         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
2101
2102         * wtf/Platform.h:
2103
2104 2018-11-28  Keith Rollin  <krollin@apple.com>
2105
2106         Update generate-unified-source-bundles.rb to generate .xcfilelist files
2107         https://bugs.webkit.org/show_bug.cgi?id=192029
2108         <rdar://problem/46285918>
2109
2110         Reviewed by Alex Christensen.
2111
2112         Update generate-unified-source-bundles.rb to generate output for
2113         .xcfilelist files. These files are used to indicate the sets of input
2114         and output files to Run Script build phases in Xcode. By invoking
2115         generate-unified-source-bundles.rb with -generate-xcfilelists, the
2116         script generates these .xcfilelist files. These .xcfilelist files can
2117         then be used to specify the inputs and outputs of the Generate Unified
2118         Sources build phases.
2119
2120         * Scripts/generate-unified-source-bundles.rb:
2121
2122 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2123
2124         Remove another OS version check from NetworkDataTaskCocoa.mm
2125         https://bugs.webkit.org/show_bug.cgi?id=192046
2126
2127         Reviewed by Alex Christensen.
2128
2129         * wtf/Platform.h:
2130
2131 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
2132
2133         Modernize version checks for same site cookie support
2134         https://bugs.webkit.org/show_bug.cgi?id=192054
2135
2136         Reviewed by Tim Horton.
2137
2138         * wtf/Platform.h:
2139
2140 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
2141
2142         Modernize the check for async _saveCookies existence
2143         https://bugs.webkit.org/show_bug.cgi?id=191987
2144
2145         Reviewed by Dean Jackson.
2146
2147         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
2148         although it seems very likely that we want to do the same on other iOS family OSes.
2149
2150 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
2151
2152         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
2153         https://bugs.webkit.org/show_bug.cgi?id=191960
2154
2155         Reviewed by Alex Christensen.
2156
2157         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
2158         pointer argument of EncodePointer. Changed the type of stored
2159         function pointer returned by EncodePointer.
2160
2161 2018-11-26  Sam Weinig  <sam@webkit.org>
2162
2163         Streamline ListHashSet use in floating object code
2164         https://bugs.webkit.org/show_bug.cgi?id=191957
2165
2166         Reviewed by Alex Christensen.
2167
2168         * wtf/ListHashSet.h:
2169         Reverses the order of the template arguments for the find() and contains()
2170         overload that allow specifying a hash translator to allow the compiler to
2171         deduce type T. This simplifies call sites and matches other WTF containers.
2172
2173 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2174
2175         CRASH() should call abort() except on Darwin and in developer builds
2176         https://bugs.webkit.org/show_bug.cgi?id=184408
2177
2178         Reviewed by Daniel Bates.
2179
2180         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2181         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2182
2183         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2184         can't do that.
2185
2186         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2187         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2188
2189         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
2190         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
2191         is also non-constexpr.
2192
2193         * wtf/Assertions.h:
2194
2195 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
2196
2197         Unreviewed, rolling out r238469.
2198
2199         Broke the build
2200
2201         Reverted changeset:
2202
2203         "CRASH() should call abort() except on Darwin and in developer
2204         builds"
2205         https://bugs.webkit.org/show_bug.cgi?id=184408
2206         https://trac.webkit.org/changeset/238469
2207
2208 2018-11-24  Andy Estes  <aestes@apple.com>
2209
2210         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
2211         https://bugs.webkit.org/show_bug.cgi?id=191899
2212
2213         Reviewed by Dean Jackson.
2214
2215         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
2216         framework name. For example, NSView would have a class getter named
2217         namespace::get_AppKit_NSViewClass().
2218
2219         Including the framework name in the getter is unnecessary. Objective-C classes already exist
2220         in a global namespace, so there is no need to disambiguate class names by framework. This
2221         patch elides the framework name from the getter function. For example, NSView would now have
2222         a getter named namespace::getNSViewClass().
2223
2224         * wtf/cocoa/SoftLinking.h:
2225
2226 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
2227
2228         CRASH() should call abort() except on Darwin and in developer builds
2229         https://bugs.webkit.org/show_bug.cgi?id=184408
2230
2231         Reviewed by Daniel Bates.
2232
2233         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
2234         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
2235
2236         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
2237         can't do that.
2238
2239         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
2240         is reportedly useful in nightmare scenarios where core dumps are unavailable.
2241
2242         * wtf/Assertions.h:
2243
2244 2018-11-23  Sam Weinig  <sam@webkit.org>
2245
2246         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
2247         https://bugs.webkit.org/show_bug.cgi?id=191936
2248
2249         Reviewed by Zalan Bujtas.
2250
2251         Adds overloads for find, contains, insertBefore and remove that take raw pointers
2252         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
2253         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
2254         which already have this functionality. Like in the other collections, this is especially
2255         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
2256         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
2257         which is unique to ListHashSet. As would be expected, this specialization only changes the first
2258         parameter, the one that needs to be found, to support a raw pointer.  
2259
2260         * wtf/ListHashSet.h:
2261         (WTF::U>::find):
2262         (WTF::U>::find const):
2263         (WTF::U>::contains const):
2264         (WTF::U>::insertBefore):
2265         (WTF::U>::remove):
2266
2267 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
2268
2269         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
2270         https://bugs.webkit.org/show_bug.cgi?id=191675
2271
2272         Reviewed by Mark Lam.
2273
2274         * wtf/InlineASM.h:
2275         * wtf/Platform.h:
2276
2277 2018-11-21  Andy Estes  <aestes@apple.com>
2278
2279         [Cocoa] Create a soft-linking file for PassKit
2280         https://bugs.webkit.org/show_bug.cgi?id=191875
2281         <rdar://problem/46203215>
2282
2283         Reviewed by Myles Maxfield.
2284
2285         * wtf/Platform.h: Defined USE_PASSKIT.
2286         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
2287         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
2288         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
2289
2290 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
2291
2292         Enable JIT on ARM/Linux
2293         https://bugs.webkit.org/show_bug.cgi?id=191548
2294
2295         Reviewed by Yusuke Suzuki.
2296
2297         Enable JIT by default on ARMv7/Linux after it was disabled with
2298         recent bytcode format change.
2299
2300         * wtf/Platform.h:
2301
2302 2018-11-14  Keith Rollin  <krollin@apple.com>
2303
2304         Fix #end vs. #endif typo.
2305         https://bugs.webkit.org/show_bug.cgi?id=191668
2306         <rdar://problem/46081704>
2307
2308         Reviewed by Alexey Proskuryakov.
2309
2310         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
2311         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
2312         to detect similar typos.
2313
2314         * Scripts/generate-unified-source-bundles.rb:
2315
2316 2018-11-12  Mark Lam  <mark.lam@apple.com>
2317
2318         Add OOM detection to StringPrototype's substituteBackreferences().
2319         https://bugs.webkit.org/show_bug.cgi?id=191563
2320         <rdar://problem/45720428>
2321
2322         Reviewed by Saam Barati.
2323
2324         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
2325         the hasOverflowed() check if m_string is not null.  When m_string is not null,
2326         the StringBuilder either only has a single String in m_string (with m_buffer being 
2327         null), or reifyString() has already been called (resulting in a non-null m_string
2328         with a possibly non-null m_buffer).
2329
2330         We can skip the overflow check because:
2331         1. if the StringBuilder only has a single String, then there cannot be an overflow.
2332         2. if reifyString() has already been called, then the hasOverflowed() checked has
2333            already been done because every code path that calls reifyString() first does
2334            the hasOverflowed() check.
2335
2336         We can skip shrinkToFit() because it only applies to m_buffer.
2337         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
2338         2. if reifyString() has already been called, then we either came down
2339            a. the toString() path with a null m_string previously, where we would have
2340               already called shrinkToFit() before reifyString(), or
2341            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
2342
2343         We can skip reifyString() because:
2344         1. if the StringBuilder only has a single String, then the string is already reified.
2345         2. if reifyString() has been already called, then the string is already reified.
2346
2347         Note that if m_string is the null string and m_buffer is null, reifyString() will
2348         replace it with the empty string.  For this reason, we cannot solely check for
2349         !m_buffer because we need to reify the null string into the empty string.
2350
2351         Note also that if m_string is null and m_buffer is non-null, reifyString() will
2352         create a String and set m_string to it.  However, m_buffer remains non-null.
2353         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
2354         We add a m_isReified flag (only when assertions are enabled) to track the reified
2355         case where both m_buffer and m_string are non-null.
2356
2357         * wtf/text/StringBuilder.cpp:
2358         (WTF::StringBuilder::reifyString const):
2359         * wtf/text/StringBuilder.h:
2360         (WTF::StringBuilder::toString):
2361
2362 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
2363
2364         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
2365         https://bugs.webkit.org/show_bug.cgi?id=191492
2366
2367         Reviewed by Alex Christensen.
2368
2369         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
2370         the cases, some systems have issues with applying this patch.
2371
2372         To work around the problem, the change is made is two patches, first rename to
2373         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
2374
2375         * WTF.xcodeproj/project.pbxproj:
2376         * wtf/CMakeLists.txt:
2377         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
2378         (wtfObjCMsgSend):
2379
2380 2018-11-09  Keith Miller  <keith_miller@apple.com>
2381
2382         LLInt VectorSizeOffset should be based on offset extraction
2383         https://bugs.webkit.org/show_bug.cgi?id=191468
2384
2385         Reviewed by Yusuke Suzuki.
2386
2387         Make things friends with LLIntOffsetsExtractor.
2388
2389         * wtf/RefCountedArray.h:
2390         * wtf/Vector.h:
2391
2392 2018-11-09  Jim Mason  <jmason@ibinx.com>
2393
2394         [WTF] Changes in bug 188867 break non-Linux Unix builds
2395         https://bugs.webkit.org/show_bug.cgi?id=191380
2396
2397         The intention of 188867 was to split out platform-specific
2398         heap query/release code.  Any unsupported platform
2399         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
2400         ended up sending all non-Linux platforms through the Linux
2401         implementation, which breaks the build for those platforms.
2402         This includes any user of the GTK target which is not Linux,
2403         such as the *BSDs, Solaris, etc.
2404
2405         Reviewed by Yusuke Suzuki.
2406
2407         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
2408         code only for Linux; all other platforms use the generic stub.
2409
2410 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
2411
2412         Removed mbmalloc target from WTF
2413         https://bugs.webkit.org/show_bug.cgi?id=191313
2414
2415         Reviewed by Saam Barati.
2416
2417         For benchmarking, WTF::fastMalloc is no longer meaningfully different
2418         from bmalloc. (And bmalloc has its own mbmalloc target.)
2419
2420         * Configurations/mbmalloc.xcconfig: Removed.
2421         * WTF.xcodeproj/project.pbxproj:
2422         * wtf/mbmalloc.cpp: Removed.
2423
2424 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
2425
2426         Re-add PLATFORM(IOS), now with the strict meaning
2427         https://bugs.webkit.org/show_bug.cgi?id=191281
2428
2429         Reviewed by Tim Horton.
2430
2431         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
2432         when expanded, it might be that the values are incorrect for some flavors of iOS family.
2433
2434 2018-11-08  Dean Jackson  <dino@apple.com>
2435
2436         Add a String literal that returns a String
2437         https://bugs.webkit.org/show_bug.cgi?id=191425
2438         <rdar://problem/45914556>
2439
2440         Reviewed by Sam Weinig.
2441
2442         Add a new String literal, _str, that will return a String type.
2443         This is useful when ""_s won't work, such as for things that
2444         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
2445         or Variants.
2446
2447         * wtf/text/WTFString.h:
2448         (WTF::StringLiterals::operator _str): Added.
2449
2450 2018-11-06  Justin Fan  <justin_fan@apple.com>
2451
2452         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
2453         https://bugs.webkit.org/show_bug.cgi?id=191291
2454
2455         Reviewed by Myles Maxfield.
2456
2457         Properly disable WEBGPU on all non-Metal platforms for now.
2458
2459         * wtf/Platform.h:
2460
2461 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
2462
2463         Cache glyph paths and share underline skipping code between all the ports
2464         https://bugs.webkit.org/show_bug.cgi?id=191239
2465
2466         Reviewed by Alex Christensen.
2467
2468         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
2469
2470         * wtf/Platform.h:
2471
2472 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
2473
2474         Enable LLInt on ARMv7/Linux
2475         https://bugs.webkit.org/show_bug.cgi?id=191190
2476
2477         Reviewed by Yusuke Suzuki.
2478
2479         After enabling the new bytecode format in r237547, C_LOOP was
2480         forced on all 32-bit platforms. Now enable LLInt again on
2481         ARMv7-Thumb2/Linux by default.
2482
2483         * wtf/Platform.h:
2484
2485 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
2486
2487         [Win] Use C++14, not C++17
2488         https://bugs.webkit.org/show_bug.cgi?id=191101
2489
2490         Reviewed by Alex Christensen.
2491
2492         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
2493         instead of _MSC_FULL_VER.
2494
2495 2018-11-02  Justin Fan  <justin_fan@apple.com>
2496
2497         [WebGPU] Experimental prototype for MSL shaders
2498         https://bugs.webkit.org/show_bug.cgi?id=191084
2499
2500         Reviewed by Dean Jackson.
2501
2502         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
2503
2504         * wtf/Platform.h:
2505
2506 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
2507
2508         Replace CommonRandom SPI with API
2509         https://bugs.webkit.org/show_bug.cgi?id=191178
2510         <rdar://problem/45722391>
2511
2512         Reviewed by Brent Fulgham.
2513
2514         * WTF.xcodeproj/project.pbxproj:
2515         * wtf/CMakeLists.txt:
2516         * wtf/RandomDevice.cpp:
2517         (WTF::RandomDevice::cryptographicallyRandomValues):
2518         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
2519
2520 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
2521
2522         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
2523         https://bugs.webkit.org/show_bug.cgi?id=189693
2524
2525         Reviewed by Yusuke Suzuki.
2526
2527         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
2528         * wtf/CMakeLists.txt: Ditto.
2529         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
2530         * wtf/text/StringImpl.cpp: Ditto.
2531         * wtf/text/StringView.cpp: Ditto.
2532         * wtf/text/WTFString.cpp: Ditto.
2533         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
2534         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
2535
2536 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
2537
2538         [PlayStation] Enable JavaScriptCore
2539         https://bugs.webkit.org/show_bug.cgi?id=191072
2540
2541         Reviewed by Brent Fulgham.
2542
2543         Add platform files for the PlayStation port.
2544
2545         * wtf/PlatformPlayStation.cmake: Added.
2546
2547 2018-10-30  David Kilzer  <ddkilzer@apple.com>
2548
2549         XSLTProcessor should limit max transform depth
2550         <https://webkit.org/b/191075>
2551         <rdar://problem/45531453>
2552
2553         Reviewed by Alex Christensen.
2554
2555         * wtf/cocoa/SoftLinking.h:
2556         (SOFT_LINK_VARIABLE_FOR_HEADER):
2557         (SOFT_LINK_VARIABLE_FOR_SOURCE):
2558         - Add macros for non-constant global variables.
2559
2560 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
2561
2562         Clean up some obsolete MAX_ALLOWED macros
2563         https://bugs.webkit.org/show_bug.cgi?id=190916
2564
2565         Reviewed by Tim Horton.
2566
2567         * WTF.xcodeproj/project.pbxproj:
2568         * wtf/PlatformMac.cmake:
2569         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
2570
2571 2018-10-29  Mark Lam  <mark.lam@apple.com>
2572
2573         Correctly detect string overflow when using the 'Function' constructor.
2574         https://bugs.webkit.org/show_bug.cgi?id=184883
2575         <rdar://problem/36320331>
2576
2577         Reviewed by Saam Barati.
2578
2579         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
2580            a. StringBuilder::OverflowHandler::CrashOnOverflow.
2581            b. StringBuilder::OverflowHandler::RecordOverflow.
2582
2583            CrashOnOverflow will crash the moment an overflow or failure to allocate
2584            memory is detected.
2585
2586            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
2587            overflow or failure to allocate memory is detected.  However, if the user
2588            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
2589            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
2590            will crash regardless because these methods can only meaningfully do their
2591            work and return a result if and only if the builder has not overflowed.
2592
2593            By default, the StringBuilder crashes on overflow (the old behavior) unless it
2594            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
2595            enum.
2596
2597            Design note:
2598
2599            The StringBuilder can only be put in 1 of the 2 modes at the time of
2600            construction.  This means that we could have implemented it as a template
2601            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
2602            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
2603
2604            However, I was not able to get clang to export the explicitly instantiated
2605            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
2606            Since the StringBuilder is a transient object (not stored for a long time on
2607            the heap), and the runtime check of the boolean is not that costly compared
2608            to other work that StringBuilder routinely does (e.g. memcpy), using the
2609            new ConditionalCrashOnOverflow (which does a runtime check to determine to
2610            crash or not on overflow) is fine.
2611
2612            When clang is able to export explicitly instantiated template methods, we can
2613            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
2614            See https://bugs.webkit.org/show_bug.cgi?id=191050.
2615
2616         To support the above, we also did:
2617
2618         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
2619            fail without crashing.  This also meant that ...
2620
2621         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
2622            FastMalloc, and bmalloc (and related peers) to enable this.
2623
2624         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
2625            like CrashOnOverflow or RecordOverflow.
2626
2627         * wtf/CheckedArithmetic.h:
2628         (WTF::ConditionalCrashOnOverflow::overflowed):
2629         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
2630         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
2631         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
2632         (WTF::ConditionalCrashOnOverflow::clearOverflow):
2633         (WTF::ConditionalCrashOnOverflow::crash):
2634         (WTF::RecordOverflow::overflowed):
2635         (WTF::Checked::unsafeGet const):
2636         * wtf/FastMalloc.cpp:
2637         (WTF::tryFastRealloc):
2638         * wtf/FastMalloc.h:
2639         * wtf/text/StringBuilder.cpp:
2640         (WTF::expandedCapacity):
2641         (WTF::StringBuilder::reifyString const):
2642         (WTF::StringBuilder::resize):
2643         (WTF::StringBuilder::allocateBuffer):
2644         (WTF::StringBuilder::allocateBufferUpConvert):
2645         (WTF::StringBuilder::reallocateBuffer<LChar>):
2646         (WTF::StringBuilder::reallocateBuffer<UChar>):
2647         (WTF::StringBuilder::reserveCapacity):
2648         (WTF::StringBuilder::appendUninitialized):
2649         (WTF::StringBuilder::appendUninitializedSlow):
2650         (WTF::StringBuilder::append):
2651         (WTF::StringBuilder::canShrink const):
2652         (WTF::StringBuilder::shrinkToFit):
2653         * wtf/text/StringBuilder.h:
2654         (WTF::StringBuilder::StringBuilder):
2655         (WTF::StringBuilder::didOverflow):
2656         (WTF::StringBuilder::hasOverflowed const):
2657         (WTF::StringBuilder::crashesOnOverflow const):
2658         (WTF::StringBuilder::append):
2659         (WTF::StringBuilder::toString):
2660         (WTF::StringBuilder::toStringPreserveCapacity const):
2661         (WTF::StringBuilder::toAtomicString const):
2662         (WTF::StringBuilder::length const):
2663         (WTF::StringBuilder::capacity const):
2664         (WTF::StringBuilder::operator[] const):
2665         (WTF::StringBuilder::swap):
2666         (WTF::StringBuilder::getBufferCharacters<UChar>):
2667         * wtf/text/StringBuilderJSON.cpp:
2668         (WTF::StringBuilder::appendQuotedJSONString):
2669         * wtf/text/StringImpl.cpp:
2670         (WTF::StringImpl::reallocateInternal):
2671         (WTF::StringImpl::reallocate):
2672         (WTF::StringImpl::tryReallocate):
2673         * wtf/text/StringImpl.h:
2674
2675 2018-10-29  Tim Horton  <timothy_horton@apple.com>
2676
2677         Modernize WebKit nibs and lprojs for localization's sake
2678         https://bugs.webkit.org/show_bug.cgi?id=190911
2679         <rdar://problem/45349466>
2680
2681         Reviewed by Dan Bernstein.
2682
2683         * WTF.xcodeproj/project.pbxproj:
2684         English->en
2685
2686 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
2687
2688         New bytecode format for JSC
2689         https://bugs.webkit.org/show_bug.cgi?id=187373
2690         <rdar://problem/44186758>
2691
2692         Reviewed by Filip Pizlo.
2693
2694         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
2695         a macro was passed multiple arguments
2696         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
2697         * wtf/Vector.h:
2698         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
2699
2700 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
2701
2702         HashMap should support selecting a random entry
2703         https://bugs.webkit.org/show_bug.cgi?id=190814
2704
2705         Reviewed by Ryosuke Niwa.
2706
2707         * wtf/HashTable.h:
2708         (WTF::HashTable::random):
2709         (WTF::HashTable::random const): Merge the empty and deleted checks, and
2710         use more idiomatic addressing.
2711
2712 2018-10-26  Commit Queue  <commit-queue@webkit.org>
2713
2714         Unreviewed, rolling out r237479 and r237484.
2715         https://bugs.webkit.org/show_bug.cgi?id=190978
2716
2717         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
2718
2719         Reverted changesets:
2720
2721         "New bytecode format for JSC"
2722         https://bugs.webkit.org/show_bug.cgi?id=187373
2723         https://trac.webkit.org/changeset/237479
2724
2725         "Gardening: Build fix after r237479."
2726         https://bugs.webkit.org/show_bug.cgi?id=187373
2727         https://trac.webkit.org/changeset/237484
2728
2729 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
2730
2731         New bytecode format for JSC
2732         https://bugs.webkit.org/show_bug.cgi?id=187373
2733         <rdar://problem/44186758>
2734
2735         Reviewed by Filip Pizlo.
2736
2737         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
2738         a macro was passed multiple arguments
2739         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
2740         * wtf/Vector.h:
2741         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
2742
2743 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
2744
2745         HashMap should support selecting a random entry
2746         https://bugs.webkit.org/show_bug.cgi?id=190814
2747
2748         Reviewed by Antti Koivisto.
2749
2750         * wtf/HashTable.h:
2751         (WTF::HashTable::random):
2752         (WTF::HashTable::random const): Draw a new random bucket any time we
2753         have a miss, to avoid bias caused by lopsided tables.
2754
2755 2018-10-26  Antti Koivisto  <antti@apple.com>
2756
2757         hashSet.remove(hashSet.random()) doesn't build
2758         https://bugs.webkit.org/show_bug.cgi?id=190953
2759
2760         Reviewed by Chris Dumez.
2761
2762         * wtf/HashSet.h:
2763
2764         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
2765
2766         * wtf/HashTable.h:
2767         (WTF::HashTable::random const):
2768
2769         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
2770
2771 2018-10-26  Alicia Boya García  <aboya@igalia.com>
2772
2773         [MSE][WTF][Media] Invalid MediaTime should be falsy
2774         https://bugs.webkit.org/show_bug.cgi?id=190893
2775
2776         Reviewed by Jer Noble.
2777
2778         This patch modifies the definition of MediaTime so that invalid times
2779         are evaluated to false in the context of a boolean expression.
2780
2781         * wtf/MediaTime.cpp:
2782         (WTF::MediaTime::operator! const):
2783         (WTF::MediaTime::operator bool const):
2784
2785 2018-10-26  Keith Miller  <keith_miller@apple.com>
2786
2787         Some internal projects include wtf headers and build with C++11
2788         https://bugs.webkit.org/show_bug.cgi?id=190791
2789
2790         Reviewed by Alexey Proskuryakov.
2791
2792         C++11 doesn't support constexpr functions that contain
2793         statements. This patch removes getLSBSet set from builds before
2794         C++14 to avoid this for now.
2795
2796         * wtf/MathExtras.h:
2797         (getLSBSet):
2798
2799 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
2800
2801         Cleanup: inline constexpr is redundant as constexpr implies inline
2802         https://bugs.webkit.org/show_bug.cgi?id=190819
2803
2804         Reviewed by Mark Lam.
2805
2806         * wtf/Bitmap.h:
2807         (WTF::WordType>::Bitmap):
2808         * wtf/LEBDecoder.h:
2809         (WTF::LEBDecoder::maxByteLength):
2810         * wtf/MathExtras.h:
2811         (defaultMinimumForClamp):
2812         (defaultMaximumForClamp):
2813         (clampToAccepting64):
2814         (isLessThan):
2815         (isLessThanEqual):
2816         (isGreaterThan):
2817         (isGreaterThanEqual):
2818         (WTF::roundUpToPowerOfTwo):
2819         (WTF::maskForSize):
2820         * wtf/Optional.h:
2821         * wtf/PtrTag.h:
2822         (WTF::tagCodePtr):
2823         (WTF::untagCodePtr):
2824         (WTF::retagCodePtr):
2825         (WTF::removeCodePtrTag):
2826         * wtf/StdLibExtras.h:
2827         (WTF::roundUpToMultipleOf):
2828         * wtf/Variant.h:
2829         (WTF::operator==):
2830         (WTF::operator!=):
2831         (WTF::operator>=):
2832         (WTF::operator<=):
2833         (WTF::operator>):
2834         (WTF::operator<):
2835         * wtf/text/StringImpl.h:
2836         (WTF::StringImplShape::StringImplShape):
2837         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
2838
2839 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
2840
2841         HashMap should support selecting a random entry
2842         https://bugs.webkit.org/show_bug.cgi?id=190814
2843
2844         Reviewed by Antti Koivisto.
2845
2846         In some cases, remove(begin()) is not quite good enough as a random
2847         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
2848         So, let's support real random eviction.
2849
2850         (And by "real" I mean "pseudo".)
2851
2852         * wtf/HashCountedSet.h:
2853         * wtf/HashMap.h:
2854         * wtf/HashSet.h:
2855         * wtf/ListHashSet.h:
2856         (WTF::ListHashSet::random):
2857         (WTF::ListHashSet::random const):
2858         * wtf/LoggingHashMap.h:
2859         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
2860
2861         * wtf/HashTable.h:
2862         (WTF::HashTable::random):
2863         (WTF::HashTable::random const): Implement the random() iterator.
2864         makeIterator() already supports starting from any bucket, so this is
2865         pretty easy.
2866
2867         In the subtle case where we select end(), we choose to wrap around and
2868         return begin(). We expect that clients don't really think of the end()
2869         bucket as being in the domain of the random search. Also, we don't want
2870         to annoy clients who know their tables are non-empty with needless
2871         checks for end().
2872
2873         * wtf/RandomNumber.cpp:
2874         (WTF::weakRandomUint32):
2875         * wtf/RandomNumber.h: Added a free function for weak random numbers so
2876         that clients that want cheap random numbers aren't required to allocate
2877         storage for a WeakRandom generator.
2878
2879 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
2880
2881         Turn on Conic Gradients
2882         https://bugs.webkit.org/show_bug.cgi?id=190810
2883
2884         Reviewed by Tim Horton.
2885
2886         * wtf/FeatureDefines.h:
2887
2888 2018-10-24  Christopher Reid  <chris.reid@sony.com>
2889
2890         [Win] Add function call name information to stack traces
2891         https://bugs.webkit.org/show_bug.cgi?id=190761
2892
2893         Reviewed by Fujii Hironori.
2894
2895         Add symbol information to stack traces using dbghelp.dll
2896         This library will use symbols files from these sources:
2897             - The current working directory
2898             - The directory containing the application's executable
2899             - _NT_SYMBOL_PATH environment variable
2900             - _NT_ALTERNATE_SYMBOL_PATH environment variable
2901
2902         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
2903         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
2904         can still attempt to call the library at the same time as WebKit.
2905
2906         * wtf/CMakeLists.txt:
2907         * wtf/PlatformWin.cmake:
2908         * wtf/StackTrace.cpp:
2909         * wtf/win/DbgHelperWin.cpp: Added.
2910         * wtf/win/DbgHelperWin.h: Added.
2911
2912 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
2913
2914         Really prevent PLATFORM(IOS) from being used
2915         https://bugs.webkit.org/show_bug.cgi?id=190813
2916
2917         Reviewed by Tim Horton.
2918
2919         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
2920
2921 2018-10-22  Chris Dumez  <cdumez@apple.com>
2922
2923         Deque's contains() and findIf() should be const
2924         https://bugs.webkit.org/show_bug.cgi?id=190796
2925
2926         Reviewed by Antti Koivisto.
2927
2928         Deque's contains() and findIf() should be const as they do not modify the container.
2929
2930         * wtf/Deque.h:
2931         (WTF::inlineCapacity>::findIf):
2932         (WTF::inlineCapacity>::findIf const):
2933         (WTF::inlineCapacity>::contains const):
2934         (WTF::inlineCapacity>::contains): Deleted.
2935
2936 2018-10-18  Alicia Boya García  <aboya@igalia.com>
2937
2938         [Media] Use nanoseconds as MaximumTimeScale
2939         https://bugs.webkit.org/show_bug.cgi?id=190631
2940
2941         1e9 is a much more useful timescale than the previous one 2^31-1.
2942         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
2943         common among some formats like WebM and frameworks like GStreamer
2944         where base 10 timescale is common... and it's those big timescales the
2945         ones that are usually scaled up to MaximumTimeScale.
2946
2947         Reviewed by Jer Noble.
2948
2949         * wtf/MediaTime.cpp:
2950
2951 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
2952
2953         Remove PLATFORM(IOS) for now
2954         https://bugs.webkit.org/show_bug.cgi?id=190737
2955
2956         Reviewed by Tim Horton.
2957
2958         * wtf/Platform.h:
2959
2960 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
2961
2962         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
2963         https://bugs.webkit.org/show_bug.cgi?id=190729
2964
2965         Reviewed by Tim Horton.
2966
2967         * wtf/Assertions.h:
2968         * wtf/FeatureDefines.h:
2969         * wtf/InlineASM.h:
2970         * wtf/MemoryPressureHandler.cpp:
2971         (WTF::thresholdForPolicy):
2972         * wtf/Platform.h:
2973         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
2974         (WTF::MemoryPressureHandler::install):
2975         (WTF::MemoryPressureHandler::respondToMemoryPressure):
2976         * wtf/spi/cocoa/NSMapTableSPI.h:
2977         * wtf/spi/darwin/XPCSPI.h:
2978         * wtf/text/StringCommon.h:
2979         * wtf/text/TextBreakIterator.cpp:
2980         * wtf/text/TextBreakIterator.h:
2981         * wtf/unicode/icu/CollatorICU.cpp:
2982         (WTF::copyDefaultLocale):
2983
2984 2018-10-18  Alex Christensen  <achristensen@webkit.org>
2985
2986         Clean up FrameLoader two-state enums
2987         https://bugs.webkit.org/show_bug.cgi?id=190731
2988
2989         Reviewed by Chris Dumez.
2990
2991         * wtf/EnumTraits.h:
2992         (WTF::isValidEnum):
2993
2994 2018-10-17  Commit Queue  <commit-queue@webkit.org>
2995
2996         Unreviewed, rolling out r237208.
2997         https://bugs.webkit.org/show_bug.cgi?id=190691
2998
2999         Caused the API test that was changed to failure continuously
3000         (Requested by Truitt on #webkit).
3001
3002         Reverted changeset:
3003
3004         "[Media] Use nanoseconds as MaximumTimeScale"
3005         https://bugs.webkit.org/show_bug.cgi?id=190631
3006         https://trac.webkit.org/changeset/237208
3007
3008 2018-10-16  Alicia Boya García  <aboya@igalia.com>
3009
3010         [Media] Use nanoseconds as MaximumTimeScale
3011         https://bugs.webkit.org/show_bug.cgi?id=190631
3012
3013         1e9 is a much more useful timescale than the previous one 2^31-1.
3014         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
3015         common among some formats like WebM and frameworks like GStreamer
3016         where base 10 timescale is common... and it's those big timescales the
3017         ones that are usually scaled up to MaximumTimeScale.
3018
3019         Reviewed by Jer Noble.
3020
3021         * wtf/MediaTime.cpp:
3022
3023 2018-10-15  Keith Miller  <keith_miller@apple.com>
3024
3025         Support arm64 CPUs with a 32-bit address space
3026         https://bugs.webkit.org/show_bug.cgi?id=190273
3027
3028         Reviewed by Michael Saboff.
3029
3030         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
3031
3032         * wtf/MathExtras.h:
3033         (getLSBSet):
3034         * wtf/Platform.h:
3035
3036 2018-10-15  Timothy Hatcher  <timothy@apple.com>
3037
3038         Add support for prefers-color-scheme media query
3039         https://bugs.webkit.org/show_bug.cgi?id=190499
3040         rdar://problem/45212025
3041
3042         Reviewed by Dean Jackson.
3043
3044         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
3045
3046 2018-10-15  Saam barati  <sbarati@apple.com>
3047
3048         Emit fjcvtzs on ARM64E on Darwin
3049         https://bugs.webkit.org/show_bug.cgi?id=184023
3050
3051         Reviewed by Yusuke Suzuki and Filip Pizlo.
3052
3053         * wtf/Platform.h:
3054
3055 2018-10-15  Alex Christensen  <achristensen@webkit.org>
3056
3057         Use pragma once in WTF
3058         https://bugs.webkit.org/show_bug.cgi?id=190527
3059
3060         Reviewed by Chris Dumez.
3061
3062         We also need to consistently include wtf headers from within wtf so we can build wtf without
3063         symbol redefinition errors from including the copy in Source and the copy in the build directory.
3064
3065         * wtf/ASCIICType.h:
3066         * wtf/Assertions.cpp:
3067         * wtf/Assertions.h:
3068         * wtf/Atomics.h:
3069         * wtf/AutomaticThread.cpp:
3070         * wtf/AutomaticThread.h:
3071         * wtf/BackwardsGraph.h:
3072         * wtf/Bag.h:
3073         * wtf/BagToHashMap.h:
3074         * wtf/BitVector.cpp:
3075         * wtf/BitVector.h:
3076         * wtf/Bitmap.h:
3077         * wtf/BloomFilter.h:
3078         * wtf/Box.h:
3079         * wtf/BubbleSort.h:
3080         * wtf/BumpPointerAllocator.h:
3081         * wtf/ByteOrder.h:
3082         * wtf/CPUTime.cpp:
3083         * wtf/CallbackAggregator.h:
3084         * wtf/CheckedArithmetic.h:
3085         * wtf/CheckedBoolean.h:
3086         * wtf/ClockType.cpp:
3087         * wtf/ClockType.h:
3088         * wtf/CommaPrinter.h:
3089         * wtf/CompilationThread.cpp:
3090         * wtf/CompilationThread.h:
3091         * wtf/Compiler.h:
3092         * wtf/ConcurrentPtrHashSet.cpp:
3093         * wtf/ConcurrentVector.h:
3094         * wtf/Condition.h:
3095         * wtf/CountingLock.cpp:
3096         * wtf/CrossThreadTaskHandler.cpp:
3097         * wtf/CryptographicUtilities.cpp:
3098         * wtf/CryptographicUtilities.h:
3099         * wtf/CryptographicallyRandomNumber.cpp:
3100         * wtf/CryptographicallyRandomNumber.h:
3101         * wtf/CurrentTime.cpp:
3102         * wtf/DataLog.cpp:
3103         * wtf/DataLog.h:
3104         * wtf/DateMath.cpp:
3105         * wtf/DateMath.h:
3106         * wtf/DecimalNumber.cpp:
3107         * wtf/DecimalNumber.h:
3108         * wtf/Deque.h:
3109         * wtf/DisallowCType.h:
3110         * wtf/Dominators.h:
3111         * wtf/DoublyLinkedList.h:
3112         * wtf/FastBitVector.cpp:
3113         * wtf/FastMalloc.cpp:
3114         * wtf/FastMalloc.h:
3115         * wtf/FeatureDefines.h:
3116         * wtf/FilePrintStream.cpp:
3117         * wtf/FilePrintStream.h:
3118         * wtf/FlipBytes.h:
3119         * wtf/FunctionDispatcher.cpp:
3120         * wtf/FunctionDispatcher.h:
3121         * wtf/GetPtr.h:
3122         * wtf/Gigacage.cpp:
3123         * wtf/GlobalVersion.cpp:
3124         * wtf/GraphNodeWorklist.h:
3125         * wtf/GregorianDateTime.cpp:
3126         * wtf/GregorianDateTime.h:
3127         * wtf/HashFunctions.h:
3128         * wtf/HashMap.h:
3129         * wtf/HashMethod.h:
3130         * wtf/HashSet.h:
3131         * wtf/HashTable.cpp:
3132         * wtf/HashTraits.h:
3133         * wtf/Indenter.h:
3134         * wtf/IndexSparseSet.h:
3135         * wtf/InlineASM.h:
3136         * wtf/Insertion.h:
3137         * wtf/IteratorAdaptors.h:
3138         * wtf/IteratorRange.h:
3139         * wtf/JSONValues.cpp:
3140         * wtf/JSValueMalloc.cpp:
3141         * wtf/LEBDecoder.h:
3142         * wtf/Language.cpp:
3143         * wtf/ListDump.h:
3144         * wtf/Lock.cpp:
3145         * wtf/Lock.h:
3146         * wtf/LockAlgorithm.h:
3147         * wtf/LockedPrintStream.cpp:
3148         * wtf/Locker.h:
3149         * wtf/MD5.cpp:
3150         * wtf/MD5.h:
3151         * wtf/MainThread.cpp:
3152         * wtf/MainThread.h:
3153         * wtf/MallocPtr.h:
3154         * wtf/MathExtras.h:
3155         * wtf/MediaTime.cpp:
3156         * wtf/MediaTime.h:
3157         * wtf/MemoryPressureHandler.cpp:
3158         * wtf/MessageQueue.h:
3159         * wtf/MetaAllocator.cpp:
3160         * wtf/MetaAllocator.h:
3161         * wtf/MetaAllocatorHandle.h:
3162         * wtf/MonotonicTime.cpp:
3163         * wtf/MonotonicTime.h:
3164         * wtf/NakedPtr.h:
3165         * wtf/NoLock.h:
3166         * wtf/NoTailCalls.h:
3167         * wtf/Noncopyable.h:
3168         * wtf/NumberOfCores.cpp:
3169         * wtf/NumberOfCores.h:
3170         * wtf/OSAllocator.h:
3171         * wtf/OSAllocatorPosix.cpp:
3172         * wtf/OSRandomSource.cpp:
3173         * wtf/OSRandomSource.h:
3174         * wtf/ObjcRuntimeExtras.h:
3175         * wtf/OrderMaker.h:
3176         * wtf/PackedIntVector.h:
3177         * wtf/PageAllocation.h:
3178         * wtf/PageBlock.cpp:
3179         * wtf/PageBlock.h:
3180         * wtf/PageReservation.h:
3181         * wtf/ParallelHelperPool.cpp:
3182         * wtf/ParallelHelperPool.h:
3183         * wtf/ParallelJobs.h:
3184         * wtf/ParallelJobsLibdispatch.h:
3185         * wtf/ParallelVectorIterator.h:
3186         * wtf/ParkingLot.cpp:
3187         * wtf/ParkingLot.h:
3188         * wtf/Platform.h:
3189         * wtf/PointerComparison.h:
3190         * wtf/Poisoned.cpp:
3191         * wtf/PrintStream.cpp:
3192         * wtf/PrintStream.h:
3193         * wtf/ProcessID.h:
3194         * wtf/ProcessPrivilege.cpp:
3195         * wtf/RAMSize.cpp:
3196         * wtf/RAMSize.h:
3197         * wtf/RandomDevice.cpp:
3198         * wtf/RandomNumber.cpp:
3199         * wtf/RandomNumber.h:
3200         * wtf/RandomNumberSeed.h:
3201         * wtf/RangeSet.h:
3202         * wtf/RawPointer.h:
3203         * wtf/ReadWriteLock.cpp:
3204         * wtf/RedBlackTree.h:
3205         * wtf/Ref.h:
3206         * wtf/RefCountedArray.h:
3207         * wtf/RefCountedLeakCounter.cpp:
3208         * wtf/RefCountedLeakCounter.h:
3209         * wtf/RefCounter.h:
3210         * wtf/RefPtr.h:
3211         * wtf/RetainPtr.h:
3212         * wtf/RunLoop.cpp:
3213         * wtf/RunLoop.h:
3214         * wtf/RunLoopTimer.h:
3215         * wtf/RunLoopTimerCF.cpp:
3216         * wtf/SHA1.cpp:
3217         * wtf/SHA1.h:
3218         * wtf/SaturatedArithmetic.h:
3219         (saturatedSubtraction):
3220         * wtf/SchedulePair.h:
3221         * wtf/SchedulePairCF.cpp:
3222         * wtf/SchedulePairMac.mm:
3223         * wtf/ScopedLambda.h:
3224         * wtf/Seconds.cpp:
3225         * wtf/Seconds.h:
3226         * wtf/SegmentedVector.h:
3227         * wtf/SentinelLinkedList.h:
3228         * wtf/SharedTask.h:
3229         * wtf/SimpleStats.h:
3230         * wtf/SingleRootGraph.h:
3231         * wtf/SinglyLinkedList.h:
3232         * wtf/SixCharacterHash.cpp:
3233         * wtf/SixCharacterHash.h:
3234         * wtf/SmallPtrSet.h:
3235         * wtf/Spectrum.h:
3236         * wtf/StackBounds.cpp:
3237         * wtf/StackBounds.h:
3238         * wtf/StackStats.cpp:
3239         * wtf/StackStats.h:
3240         * wtf/StackTrace.cpp:
3241         * wtf/StdLibExtras.h:
3242         * wtf/StreamBuffer.h:
3243         * wtf/StringHashDumpContext.h:
3244         * wtf/StringPrintStream.cpp:
3245         * wtf/StringPrintStream.h:
3246         * wtf/ThreadGroup.cpp:
3247         * wtf/ThreadMessage.cpp:
3248         * wtf/ThreadSpecific.h:
3249         * wtf/Threading.cpp:
3250         * wtf/Threading.h:
3251         * wtf/ThreadingPrimitives.h:
3252         * wtf/ThreadingPthreads.cpp:
3253         * wtf/TimeWithDynamicClockType.cpp:
3254         * wtf/TimeWithDynamicClockType.h:
3255         * wtf/TimingScope.cpp:
3256         * wtf/TinyLRUCache.h:
3257         * wtf/TinyPtrSet.h:
3258         * wtf/TriState.h:
3259         * wtf/TypeCasts.h:
3260         * wtf/UUID.cpp:
3261         * wtf/UnionFind.h:
3262         * wtf/VMTags.h:
3263         * wtf/ValueCheck.h:
3264         * wtf/Vector.h:
3265         * wtf/VectorTraits.h:
3266         * wtf/WallTime.cpp:
3267         * wtf/WallTime.h:
3268         * wtf/WeakPtr.h:
3269         * wtf/WeakRandom.h:
3270         * wtf/WordLock.cpp:
3271         * wtf/WordLock.h:
3272         * wtf/WorkQueue.cpp:
3273         * wtf/WorkQueue.h:
3274         * wtf/WorkerPool.cpp:
3275         * wtf/cf/LanguageCF.cpp:
3276         * wtf/cf/RunLoopCF.cpp:
3277         * wtf/cocoa/Entitlements.mm:
3278         * wtf/cocoa/MachSendRight.cpp:
3279         * wtf/cocoa/MainThreadCocoa.mm:
3280         * wtf/cocoa/MemoryFootprintCocoa.cpp:
3281         * wtf/cocoa/WorkQueueCocoa.cpp:
3282         * wtf/dtoa.cpp:
3283         * wtf/dtoa.h:
3284         * wtf/ios/WebCoreThread.cpp:
3285         * wtf/ios/WebCoreThread.h:
3286         * wtf/mac/AppKitCompatibilityDeclarations.h:
3287         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
3288         * wtf/mbmalloc.cpp:
3289         * wtf/persistence/PersistentCoders.cpp:
3290         * wtf/persistence/PersistentDecoder.cpp:
3291         * wtf/persistence/PersistentEncoder.cpp:
3292         * wtf/spi/cf/CFBundleSPI.h:
3293         * wtf/spi/darwin/CommonCryptoSPI.h:
3294         * wtf/text/ASCIIFastPath.h:
3295         * wtf/text/ASCIILiteral.cpp:
3296         * wtf/text/AtomicString.cpp:
3297         * wtf/text/AtomicString.h:
3298         * wtf/text/AtomicStringHash.h:
3299         * wtf/text/AtomicStringImpl.cpp:
3300         * wtf/text/AtomicStringImpl.h:
3301         * wtf/text/AtomicStringTable.cpp:
3302         * wtf/text/AtomicStringTable.h:
3303         * wtf/text/Base64.cpp:
3304         * wtf/text/CString.cpp:
3305         * wtf/text/CString.h:
3306         * wtf/text/ConversionMode.h:
3307         * wtf/text/ExternalStringImpl.cpp:
3308         * wtf/text/IntegerToStringConversion.h:
3309         * wtf/text/LChar.h:
3310         * wtf/text/LineEnding.cpp:
3311         * wtf/text/StringBuffer.h:
3312         * wtf/text/StringBuilder.cpp:
3313         * wtf/text/StringBuilder.h:
3314         * wtf/text/StringBuilderJSON.cpp:
3315         * wtf/text/StringCommon.h:
3316         * wtf/text/StringConcatenate.h:
3317         * wtf/text/StringHash.h:
3318         * wtf/text/StringImpl.cpp:
3319         * wtf/text/StringImpl.h:
3320         * wtf/text/StringOperators.h:
3321         * wtf/text/StringView.cpp:
3322         * wtf/text/StringView.h:
3323         * wtf/text/SymbolImpl.cpp:
3324         * wtf/text/SymbolRegistry.cpp:
3325         * wtf/text/SymbolRegistry.h:
3326         * wtf/text/TextBreakIterator.cpp:
3327         * wtf/text/TextBreakIterator.h:
3328         * wtf/text/TextBreakIteratorInternalICU.h:
3329         * wtf/text/TextPosition.h:
3330         * wtf/text/TextStream.cpp:
3331         * wtf/text/UniquedStringImpl.h:
3332         * wtf/text/WTFString.cpp:
3333         * wtf/text/WTFString.h:
3334         * wtf/text/cocoa/StringCocoa.mm:
3335         * wtf/text/cocoa/StringViewCocoa.mm:
3336         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
3337         * wtf/text/icu/UTextProvider.cpp:
3338         * wtf/text/icu/UTextProvider.h:
3339         * wtf/text/icu/UTextProviderLatin1.cpp:
3340         * wtf/text/icu/UTextProviderLatin1.h:
3341         * wtf/text/icu/UTextProviderUTF16.cpp:
3342         * wtf/text/icu/UTextProviderUTF16.h:
3343         * wtf/threads/BinarySemaphore.cpp:
3344         * wtf/threads/BinarySemaphore.h:
3345         * wtf/threads/Signals.cpp:
3346         * wtf/unicode/CharacterNames.h:
3347         * wtf/unicode/Collator.h:
3348         * wtf/unicode/CollatorDefault.cpp:
3349         * wtf/unicode/UTF8.cpp:
3350         * wtf/unicode/UTF8.h:
3351
3352 2018-10-12  Alex Christensen  <achristensen@webkit.org>
3353
3354         Allow encoding of small enum classes
3355         https://bugs.webkit.org/show_bug.cgi?id=190531
3356
3357         Reviewed by Tim Horton.
3358
3359         * wtf/Forward.h:
3360
3361 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
3362
3363         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
3364         https://bugs.webkit.org/show_bug.cgi?id=190477
3365
3366         Reviewed by Tim Horton.
3367
3368         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
3369         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
3370         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
3371         because of dependencies in other source repositories.
3372
3373         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
3374         instances that actually target iOS only, having a version check.
3375
3376 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3377
3378         Use currentStackPointer more
3379         https://bugs.webkit.org/show_bug.cgi?id=190503
3380
3381         Reviewed by Saam Barati.
3382
3383         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
3384
3385         * wtf/StackBounds.cpp:
3386         (WTF::testStackDirection2):
3387         (WTF::testStackDirection):
3388         * wtf/ThreadingPthreads.cpp:
3389         (WTF::Thread::signalHandlerSuspendResume):
3390         (WTF::getApproximateStackPointer): Deleted.
3391
3392 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
3393
3394         [WTF] Semaphore.h conflicts with POSIX header
3395         https://bugs.webkit.org/show_bug.cgi?id=190486
3396
3397         Reviewed by Yusuke Suzuki.
3398
3399         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
3400
3401         * WTF.xcodeproj/project.pbxproj:
3402         * wtf/CMakeLists.txt:
3403         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
3404
3405 2018-10-10  Mark Lam  <mark.lam@apple.com>
3406
3407         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
3408         https://bugs.webkit.org/show_bug.cgi?id=190405
3409         <rdar://problem/45131464>
3410
3411         Reviewed by Michael Saboff.
3412
3413         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
3414
3415         * WTF.xcodeproj/project.pbxproj:
3416         * wtf/CMakeLists.txt:
3417         * wtf/StackBounds.h:
3418         (WTF::StackBounds::checkConsistency const):
3419         * wtf/StackPointer.cpp: Added.
3420         (WTF::currentStackPointer):
3421         * wtf/StackPointer.h: Added.
3422
3423 2018-10-09  Mark Lam  <mark.lam@apple.com>
3424
3425         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
3426         https://bugs.webkit.org/show_bug.cgi?id=190392
3427         <rdar://problem/45116210>
3428
3429         Reviewed by Saam Barati.
3430
3431         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
3432         unsigned length of the source string without an overflow check.  We now make that
3433         length a size_t which removes this issue, and assert that it's within
3434         String::MaxLength thereafter.
3435
3436         Also made the StringTypeAdapter constructor for a LChar* string behave in an
3437         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
3438         if the source string length exceeds String::MaxLength.
3439
3440         * wtf/text/StringConcatenate.h:
3441
3442 2018-10-09  Mark Lam  <mark.lam@apple.com>
3443
3444         Revert temporary asserts for debugging a mysterious ASAN bot crash.
3445         https://bugs.webkit.org/show_bug.cgi?id=190396
3446
3447         Reviewed by Yusuke Suzuki.
3448
3449         * wtf/StackBounds.cpp:
3450         (WTF::StackBounds::newThreadStackBounds):
3451         * wtf/StackBounds.h:
3452         (WTF::StackBounds::checkConsistency const):
3453
3454 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
3455
3456         Make <input type=color> a runtime enabled (on-by-default) feature
3457         https://bugs.webkit.org/show_bug.cgi?id=189162
3458
3459         Reviewed by Wenson Hsieh and Tim Horton.
3460
3461         * wtf/FeatureDefines.h:
3462
3463 2018-10-06  Mark Lam  <mark.lam@apple.com>
3464
3465         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
3466         https://bugs.webkit.org/show_bug.cgi?id=190334
3467         <rdar://problem/45071303>
3468
3469         Reviewed by Yusuke Suzuki.
3470
3471         These assertions are needed because we can't reproduce the issue locally.
3472         We'll remove these asserts after the needed data has been collected from the bot.
3473
3474         * wtf/StackBounds.cpp:
3475         (WTF::StackBounds::newThreadStackBounds):
3476         * wtf/StackBounds.h:
3477         (WTF::StackBounds::checkConsistency const):
3478
3479 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3480
3481         Name Heap threads
3482         https://bugs.webkit.org/show_bug.cgi?id=190337
3483
3484         Reviewed by Mark Lam.
3485
3486         Add a functionality naming threads of ParallelHelperPool.
3487
3488         * wtf/ParallelHelperPool.cpp:
3489         (WTF::ParallelHelperPool::ParallelHelperPool):
3490         * wtf/ParallelHelperPool.h:
3491
3492 2018-10-06  Mark Lam  <mark.lam@apple.com>
3493
3494         Adding some temporary asserts to debug a mysterious ASAN bot crash.
3495         https://bugs.webkit.org/show_bug.cgi?id=190331
3496
3497         Reviewed by Filip Pizlo.
3498
3499         These assertions are needed because we can't reproduce the issue locally.
3500         We'll remove these asserts after the needed data has been collected from the bot.
3501
3502         * wtf/StackBounds.h:
3503         (WTF::StackBounds::checkConsistency const):
3504
3505 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3506
3507         [JSC][Linux] Support Perf JITDump logging
3508         https://bugs.webkit.org/show_bug.cgi?id=189893
3509
3510         Reviewed by Mark Lam.
3511
3512         * wtf/PageReservation.h:
3513         (WTF::PageReservation::reserveAndCommitWithGuardPages):
3514
3515 2018-10-03  Dan Bernstein  <mitz@apple.com>
3516
3517         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
3518         https://bugs.webkit.org/show_bug.cgi?id=190250
3519
3520         Reviewed by Alex Christensen.
3521
3522         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
3523           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
3524
3525         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
3526
3527         * wtf/MathExtras.h:
3528         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
3529           expressions into individual statements.
3530
3531 2018-10-03  Mark Lam  <mark.lam@apple.com>
3532
3533         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
3534         https://bugs.webkit.org/show_bug.cgi?id=190187
3535         <rdar://problem/42512909>
3536
3537         Reviewed by Michael Saboff.
3538
3539         * wtf/text/StringConcatenate.h:
3540         (WTF::tryMakeStringFromAdapters):
3541         (WTF::sumWithOverflow): Deleted.
3542         * wtf/text/StringImpl.h:
3543         * wtf/text/WTFString.h:
3544
3545 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
3546
3547         -Wunused-variable in RenderLayer::updateScrollableAreaSet
3548         https://bugs.webkit.org/show_bug.cgi?id=190200
3549
3550         Reviewed by Yusuke Suzuki.
3551
3552         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
3553
3554         * wtf/Compiler.h:
3555
3556 2018-10-01  Dean Jackson  <dino@apple.com>
3557
3558         [macOS] Switching to discrete GPU should be done in the UI process
3559         https://bugs.webkit.org/show_bug.cgi?id=189361
3560         <rdar://problem/43949622>
3561
3562         Reviewed by Simon Fraser.
3563
3564         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
3565
3566         * wtf/Platform.h:
3567
3568 2018-10-02  Commit Queue  <commit-queue@webkit.org>
3569
3570         Unreviewed, rolling out r236624 and r236671.
3571         https://bugs.webkit.org/show_bug.cgi?id=190207
3572
3573         The change in r236624 introduced crashes on the bots
3574         (Requested by ryanhaddad on #webkit).
3575
3576         Reverted changesets:
3577
3578         "Refactoring: eliminate raw pointer usage in Fullscreen code"
3579         https://bugs.webkit.org/show_bug.cgi?id=188747
3580         https://trac.webkit.org/changeset/236624
3581
3582         "Unify implementation in VideoFullscreenInterfaceAVKit"
3583         https://bugs.webkit.org/show_bug.cgi?id=190091
3584         https://trac.webkit.org/changeset/236671
3585
3586 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
3587
3588         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
3589         https://bugs.webkit.org/show_bug.cgi?id=190033
3590
3591         Reviewed by Yusuke Suzuki.
3592
3593         * wtf/MathExtras.h:
3594         (WTF::ctz32):
3595
3596 2018-10-01  Andy Estes  <aestes@apple.com>
3597
3598         [watchOS] Adopt NSURLSessionCompanionProxyPreference
3599         https://bugs.webkit.org/show_bug.cgi?id=190177
3600         <rdar://problem/43402114>
3601
3602         Reviewed by Wenson Hsieh.
3603
3604         * wtf/FeatureDefines.h:
3605
3606 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
3607
3608         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
3609         https://bugs.webkit.org/show_bug.cgi?id=190121
3610
3611         Reviewed by Yusuke Suzuki.
3612
3613         This fixes JSCOnly build on Windows after r236617.
3614
3615         * wtf/PlatformJSCOnly.cmake:
3616
3617 2018-10-01  Commit Queue  <commit-queue@webkit.org>
3618
3619         Unreviewed, rolling out r236647.
3620         https://bugs.webkit.org/show_bug.cgi?id=190124
3621
3622         Breaking test stress/big-int-to-string.js (Requested by
3623         caiolima_ on #webkit).
3624
3625         Reverted changeset:
3626
3627         "[BigInt] BigInt.proptotype.toString is broken when radix is
3628         power of 2"
3629         https://bugs.webkit.org/show_bug.cgi?id=190033
3630         https://trac.webkit.org/changeset/236647
3631
3632 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
3633
3634         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
3635         https://bugs.webkit.org/show_bug.cgi?id=190033
3636
3637         Reviewed by Yusuke Suzuki.
3638
3639         * wtf/MathExtras.h:
3640         (WTF::ctz32):
3641
3642 2018-09-28  Jer Noble  <jer.noble@apple.com>
3643
3644         Refactoring: eliminate raw pointer usage in Fullscreen code
3645         https://bugs.webkit.org/show_bug.cgi?id=188747
3646         <rdar://problem/43541164>
3647
3648         Reviewed by Alex Christensen.
3649
3650         * WTF.xcodeproj/project.pbxproj:
3651         * wtf/WeakPtrContainer.h: Added.
3652
3653 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3654
3655         [WTF] Make isMainThread more reliable
3656         https://bugs.webkit.org/show_bug.cgi?id=189880
3657
3658         Reviewed by Mark Lam.
3659
3660         isMainThread() relied on Thread::current(). This API becomes broken in Windows
3661         when the Thread is about to be destroyed since TLS is already cleared. This causes
3662         a bug since `isMainThread()` is called in Thread::didExit in Windows.
3663
3664         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
3665         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
3666         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
3667         or `pthread_self` instead.
3668
3669         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
3670         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
3671         only happens in Windows since Windows calls TLS destructor for the main thread.
3672
3673         * WTF.xcodeproj/project.pbxproj:
3674         * wtf/MainThread.cpp:
3675         (WTF::initializeMainThread):
3676         (): Deleted.
3677         (WTF::isMainThread): Deleted.
3678         (WTF::isMainThreadIfInitialized): Deleted.
3679         * wtf/Platform.h:
3680         * wtf/PlatformMac.cmake:
3681         * wtf/Threading.cpp:
3682         (WTF::Thread::didExit):
3683         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
3684         * wtf/generic/MainThreadGeneric.cpp:
3685         (WTF::initializeMainThreadPlatform):
3686         (WTF::isMainThread):
3687         (WTF::isMainThreadIfInitialized):
3688         * wtf/win/MainThreadWin.cpp:
3689         (WTF::initializeMainThreadPlatform):
3690         (WTF::isMainThread):
3691         (WTF::isMainThreadIfInitialized):
3692
3693 2018-09-28  Commit Queue  <commit-queue@webkit.org>
3694
3695         Unreviewed, rolling out r236605.
3696         https://bugs.webkit.org/show_bug.cgi?id=190087
3697
3698         caused three API test timeouts (Requested by jernoble on
3699         #webkit).
3700
3701         Reverted changeset:
3702
3703         "Refactoring: eliminate raw pointer usage in Fullscreen code"
3704         https://bugs.webkit.org/show_bug.cgi?id=188747
3705         https://trac.webkit.org/changeset/236605
3706
3707 2018-09-28  Brian Burg  <bburg@apple.com>
3708
3709         Replace recently added line comments in Compiler.h
3710         https://bugs.webkit.org/show_bug.cgi?id=190062
3711         <rdar://problem/44838618>
3712
3713         Reviewed by Joseph Pecoraro.
3714
3715         This breaks some Apple-internal tooling. For now, work around it by
3716         changing the comment style. On the other side, the issue will be fixed
3717         more permanently by adopting the approach from r230213.
3718
3719         * wtf/Compiler.h: Use multiline comments.
3720
3721 2018-09-28  Jer Noble  <jer.noble@apple.com>
3722
3723         Refactoring: eliminate raw pointer usage in Fullscreen code
3724         https://bugs.webkit.org/show_bug.cgi?id=188747
3725         <rdar://problem/43541164>
3726
3727         Reviewed by Alex Christensen.
3728
3729         * WTF.xcodeproj/project.pbxproj:
3730         * wtf/WeakPtrContainer.h: Added.
3731
3732 2018-09-28  Koby Boyango  <koby.b@mce.systems>
3733
3734         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
3735         https://bugs.webkit.org/show_bug.cgi?id=189991
3736
3737         Reviewed by Yusuke Suzuki.
3738
3739         * WTF.xcodeproj/project.pbxproj:
3740         * wtf/CMakeLists.txt:
3741         * wtf/text/ExternalStringImpl.cpp: Added.
3742         * wtf/text/ExternalStringImpl.h: Added.
3743         * wtf/text/StringImpl.cpp:
3744         * wtf/text/StringImpl.h:
3745
3746 2018-09-27  Saam barati  <sbarati@apple.com>
3747
3748         Verify the contents of AssemblerBuffer on arm64e
3749         https://bugs.webkit.org/show_bug.cgi?id=190057
3750         <rdar://problem/38916630>
3751
3752         Reviewed by Mark Lam.
3753
3754         * wtf/PtrTag.h:
3755         (WTF::tagInt):
3756
3757 2018-09-27  Jer Noble  <jer.noble@apple.com>
3758
3759         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
3760         https://bugs.webkit.org/show_bug.cgi?id=189951
3761
3762         Reviewed by Eric Carlson.
3763
3764         Templated functions should take r-value references, as they have perfect type deduction for
3765         all parameter types; references, l-value references, and r-value references in template function
3766         parameters have special type deduction semantics.
3767         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
3768
3769         Previously, const reference parameters would be copied when passed into anyOf(), and containers
3770         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
3771         with r-value reference types in template parameters, a const reference is mapped to a const reference,
3772         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
3773         an r-value reference.
3774
3775         * wtf/Algorithms.h:
3776         (WTF::forEach):
3777         (WTF::anyOf):
3778         (WTF::allOf):
3779
3780 2018-09-25  John Wilander  <wilander@apple.com>
3781
3782         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
3783         https://bugs.webkit.org/show_bug.cgi?id=189959
3784         <rdar://problem/44767642>
3785
3786         Reviewed by Chris Dumez.
3787
3788         * wtf/Platform.h:
3789             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
3790
3791 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
3792
3793         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
3794         https://bugs.webkit.org/show_bug.cgi?id=189733
3795
3796         Reviewed by Michael Catanzaro.
3797
3798         Clang for Windows build enables WTF_COMPILER_CLANG and
3799         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
3800         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
3801         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
3802         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
3803         least at the moment, it is not feasible to define
3804         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
3805
3806         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
3807         to WTF_COMPILER_GCC_COMPATIBLE.
3808
3809         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
3810         Clang for Windows builds.
3811
3812         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
3813         * wtf/Assertions.h: Ditto.
3814         * wtf/Atomics.h: Ditto.
3815         * wtf/CheckedArithmetic.h: Ditto.
3816         * wtf/FastMalloc.h: Ditto.
3817         * wtf/MathExtras.h: Ditto.
3818         * wtf/Platform.h: Ditto.
3819         * wtf/StdLibExtras.h: Ditto.
3820         * wtf/Vector.h: Ditto.
3821         * wtf/text/ASCIIFastPath.h: Ditto.
3822         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
3823
3824 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3825
3826         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
3827         https://bugs.webkit.org/show_bug.cgi?id=189778
3828
3829         Reviewed by Keith Miller.
3830
3831         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
3832         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
3833         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
3834
3835         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
3836         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
3837         information which is used for LLInt and SamplingProfiler.
3838
3839         * wtf/Platform.h:
3840
3841 2018-09-21  Keith Miller  <keith_miller@apple.com>
3842
3843         Add Promise SPI
3844         https://bugs.webkit.org/show_bug.cgi?id=189809
3845
3846         Reviewed by Saam Barati.
3847
3848         Fix issue where creating a JSContextRef off the main thread before
3849         creating initializing the main thread would cause an assertion
3850         failure.
3851
3852         * wtf/MainThread.cpp:
3853         (WTF::isMainThreadIfInitialized):
3854         * wtf/MainThread.h:
3855         * wtf/mac/MainThreadMac.mm:
3856         (WTF::isMainThreadIfInitialized):
3857         * wtf/text/cf/StringImplCF.cpp:
3858         (WTF::StringImpl::createCFString):
3859
3860 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
3861
3862         Unreviewed, rolling out r236359.
3863
3864         Broke the Windows build.
3865
3866         Reverted changeset:
3867
3868         "Add Promise SPI"
3869         https://bugs.webkit.org/show_bug.cgi?id=189809
3870         https://trac.webkit.org/changeset/236359
3871
3872 2018-09-21  Keith Miller  <keith_miller@apple.com>
3873
3874         Add Promise SPI
3875         https://bugs.webkit.org/show_bug.cgi?id=189809
3876
3877         Reviewed by Saam Barati.
3878
3879         Fix issue where creating a JSContextRef off the main thread before
3880         creating initializing the main thread would cause an assertion
3881         failure.
3882
3883         * wtf/MainThread.cpp:
3884         (WTF::isMainThreadIfInitialized):
3885         * wtf/MainThread.h:
3886         * wtf/mac/MainThreadMac.mm:
3887         (WTF::isMainThreadIfInitialized):
3888         * wtf/text/cf/StringImplCF.cpp:
3889         (WTF::StringImpl::createCFString):
3890
3891 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
3892
3893         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
3894         https://bugs.webkit.org/show_bug.cgi?id=189732
3895
3896         Reviewed by Per Arne Vollan.
3897
3898         Clang for Windows can't compile the MSVC workaround of
3899         UNUSED_PARAM which has been introduced for Windows CE and Visual
3900         Studio 10. I think it's safe just to remove it.
3901
3902         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
3903
3904 2018-09-20  Alex Christensen  <achristensen@webkit.org>
3905
3906         Unreviewed, rolling out r235976.
3907
3908         Broke ARM
3909
3910         Reverted changeset:
3911
3912         "Use a Variant instead of a union in CSSSelector"
3913         https://bugs.webkit.org/show_bug.cgi?id=188559
3914         https://trac.webkit.org/changeset/235976
3915
3916 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
3917
3918         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
3919         https://bugs.webkit.org/show_bug.cgi?id=185339
3920
3921         Reviewed by Mark Lam.
3922
3923         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
3924
3925         * WTF.xcodeproj/project.pbxproj:
3926         * wtf/CMakeLists.txt:
3927         * wtf/Semaphore.h: Added.
3928         (WTF::Semaphore::Semaphore):
3929         (WTF::Semaphore::signal):
3930         (WTF::Semaphore::waitUntil):
3931         (WTF::Semaphore::waitFor):
3932         (WTF::Semaphore::wait):
3933         * wtf/generic/WorkQueueGeneric.cpp:
3934         (WorkQueue::platformInitialize):
3935         * wtf/threads/BinarySemaphore.cpp:
3936         (WTF::BinarySemaphore::waitUntil):
3937         (WTF::BinarySemaphore::wait): Deleted.
3938         * wtf/threads/BinarySemaphore.h:
3939         (WTF::BinarySemaphore::waitFor):
3940         (WTF::BinarySemaphore::wait):
3941         Align the names of the functions to WTF::Condition.
3942         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
3943
3944 2018-09-17  Jer Noble  <jer.noble@apple.com>
3945
3946         Add support for HEVC codec types in Media Capabilities
3947         https://bugs.webkit.org/show_bug.cgi?id=189565
3948
3949         Reviewed by Eric Carlson.
3950
3951         Extract the toIntegralType template into its own header.
3952
3953         * wtf/CMakeLists.txt:
3954         * wtf/text/StringConversion.h: Added.
3955         (isCharacterAllowedInBase):
3956         (toIntegralType):
3957         * wtf/text/WTFString.cpp:
3958
3959 2018-09-17  Jer Noble  <jer.noble@apple.com>
3960
3961         Enable USE_MEDIAREMOTE on iOS
3962         https://bugs.webkit.org/show_bug.cgi?id=189096
3963
3964         Reviewed by Eric Carlson.
3965
3966         * wtf/Platform.h:
3967
3968 2018-09-17  Frederic Wang  <fwang@igalia.com>
3969
3970         Build error in ImageBufferCG when compiled with IOSurfacePool
3971         https://bugs.webkit.org/show_bug.cgi?id=189579
3972
3973         Reviewed by Tim Horton.
3974
3975         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
3976         compilation errors when files in the same unified source do not agree on the definition.
3977         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
3978         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
3979         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
3980         to prevent future issues with Unified build rotating.
3981
3982         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
3983
3984 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
3985
3986         Unreviewed, rolling out r235990.
3987
3988         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
3989
3990         Reverted changeset:
3991
3992         "Enable USE_MEDIAREMOTE on iOS"
3993         https://bugs.webkit.org/show_bug.cgi?id=189096
3994         https://trac.webkit.org/changeset/235990
3995
3996 2018-09-13  Jer Noble  <jer.noble@apple.com>
3997
3998         Enable USE_MEDIAREMOTE on iOS
3999         https://bugs.webkit.org/show_bug.cgi?id=189096
4000
4001         Reviewed by Eric Carlson.
4002
4003         * wtf/Platform.h:
4004
4005 2018-09-13  Alex Christensen  <achristensen@webkit.org>
4006
4007         Use a Variant instead of a union in CSSSelector
4008         https://bugs.webkit.org/show_bug.cgi?id=188559
4009
4010         Reviewed by Antti Koivisto.
4011
4012         * wtf/Variant.h:
4013         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
4014
4015 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
4016
4017         Add IGNORE_WARNING_.* macros
4018         https://bugs.webkit.org/show_bug.cgi?id=188996
4019
4020         Reviewed by Michael Catanzaro.
4021
4022         * wtf/Assertions.cpp:
4023         * wtf/Assertions.h:
4024         * wtf/Compiler.h:
4025         * wtf/MD5.cpp:
4026         (WTF::MD5::MD5):
4027         (WTF::MD5::addBytes):
4028         (WTF::MD5::checksum):
4029         * wtf/PrintStream.cpp:
4030         (WTF::PrintStream::printfVariableFormat):
4031         * wtf/SHA1.cpp:
4032         (WTF::SHA1::SHA1):
4033         (WTF::SHA1::addBytes):
4034         (WTF::SHA1::computeHash):
4035         * wtf/ThreadingPthreads.cpp:
4036         * wtf/Vector.h:
4037         (WTF::VectorBuffer::endOfBuffer):
4038         * wtf/text/WTFString.cpp:
4039         (WTF::createWithFormatAndArguments):
4040
4041 == Rolled over to ChangeLog-2018-09-11 ==