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