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