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