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