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