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