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