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