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