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