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