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