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