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