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