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