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