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