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