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