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