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