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