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