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