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