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