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