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