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