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