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