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