Unreviewed, rolling out r234489.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-08-02  David Fenton  <david_fenton@apple.com>
2
3         Unreviewed, rolling out r234489.
4
5         Caused 50+ crashes and 60+ API failures on iOS
6
7         Reverted changeset:
8
9         "[WTF] Rename String::format to String::deprecatedFormat"
10         https://bugs.webkit.org/show_bug.cgi?id=188191
11         https://trac.webkit.org/changeset/234489
12
13 2018-08-01  Tomas Popela  <tpopela@redhat.com>
14
15         [WTF] Rename String::format to String::deprecatedFormat
16         https://bugs.webkit.org/show_bug.cgi?id=188191
17
18         Reviewed by Darin Adler.
19
20         It should be replaced with string concatenation.
21
22         * wtf/Assertions.cpp:
23         * wtf/JSONValues.cpp:
24         * wtf/WorkQueue.cpp:
25         (WTF::WorkQueue::concurrentApply):
26         * wtf/dtoa.cpp:
27         (WTF::dtoa):
28         * wtf/text/WTFString.cpp:
29         (WTF::String::deprecatedFormat):
30         (WTF::String::format): Deleted.
31         * wtf/text/WTFString.h:
32
33 2018-07-31  Tomas Popela  <tpopela@redhat.com>
34
35         [WTF] String::formatWithArguments() is unused
36         https://bugs.webkit.org/show_bug.cgi?id=187955
37
38         Reviewed by Darin Adler.
39
40         This method is unused, remove it.
41
42         * wtf/text/WTFString.cpp:
43         (WTF::String::formatWithArguments): Deleted.
44         * wtf/text/WTFString.h:
45
46 2018-07-28  Mark Lam  <mark.lam@apple.com>
47
48         Gardening: build fix for internal builds.
49         https://bugs.webkit.org/show_bug.cgi?id=188123
50         <rdar://problem/42672268>
51
52         Not reviewed.
53
54         Some code is relying on RELEASE_ASSERT (without extra crash info arguments)
55         being purely inlined and not require linkage to an external symbol.  This patch
56         restores this property of the original RELEASE_ASSERT.
57
58         This means moving the variant of WTFCrashWithInfo that does not take extra args
59         to Assertions.h and making it an "inline" function.  When compiling with clang,
60         we also specify __attribute__((optnone)) to force the function out of being an
61         inline function (each linkage unit will get a copy of the function).  This causes
62         the 1st 4 arguments of WTFCrashWithInfo (e.g. line number) to still be captured
63         in the argument registers for crash diagnostics.
64
65         * wtf/Assertions.cpp:
66         (WTFCrashWithInfo):
67         * wtf/Assertions.h:
68
69 2018-07-27  Mark Lam  <mark.lam@apple.com>
70
71         Add some crash info to Heap::checkConn() RELEASE_ASSERTs.
72         https://bugs.webkit.org/show_bug.cgi?id=188123
73         <rdar://problem/42672268>
74
75         Reviewed by Keith Miller.
76
77         1. Rename STUFF_FOR_CRASH_REGISTERx to CRASH_GPRx.  These are only used in
78            locally in Assertions.cpp.  There is little to no chance of a name collision,
79            and the shorter names will be much easier to read and grok in the code.
80
81         2. Added an additional 2 registers so that we can pass more info.
82
83         3. Change the WTFCrashWithInfo() implementations to issue only a single asm
84            statement so that the compiler does not inadvertently move values out of the
85            CRASH_GPRs that we want them to be in.
86
87         4. Use register targeting for local variables to get the compiler to put our
88            desired values in specific registers.  For how this works, see
89            https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html#Local-Register-Variables
90
91            "The only supported use for this feature is to specify registers for input and
92            output operands when calling Extended asm (see Extended Asm).  This may be
93            necessary if the constraints for a particular machine don’t provide sufficient
94            control to select the desired register."
95
96         5. Enhance ASSERT, ASSERT_UNUSED, RELEASE_ASSERT, RELEASE_ASSERT_NOT_REACHED to
97            accept crash info arguments.  We no longer need to use an if statement with a
98            call to CRASH_WITH_INFO instead of these assertions.  The only case not handled
99            yet is one where we might want to dataLog some info before the crash.  I'll
100            add that functionality in a subsequent patch.
101
102         6. Move UNREACHABLE_FOR_PLATFORM to the bottom of Assertions.h because it depends
103            on the definition of RELEASE_ASSERT_NOT_REACHED, which now depends on the
104            definiton of CRASH_WITH_INFO.
105
106         * wtf/Assertions.cpp:
107         (WTFCrashWithInfo):
108         * wtf/Assertions.h:
109
110 2018-07-27  Alex Christensen  <achristensen@webkit.org>
111
112         Make CompletionHandler more const correct
113         https://bugs.webkit.org/show_bug.cgi?id=186543
114
115         Reviewed by Saam Barati.
116
117         * wtf/CompletionHandler.h:
118         (WTF::CompletionHandler<Out):
119         Calling a CompletionHandler mutates it. Make the code reflect that.
120
121 2018-07-27  Simon Fraser  <simon.fraser@apple.com>
122
123         Be more conservative with compositing layer creation when memory is low
124         https://bugs.webkit.org/show_bug.cgi?id=187866
125         rdar://problem/42366345
126
127         Reviewed by Zalan Bujtas.
128         
129         When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
130         compositing layers. We avoid compositing for these situations:
131         1. Layers with 3D transforms which are affine (like translateZ(0)).
132         2. Layers with will-change
133         3. Layers for canvases (other than WebGL/WebGPU)
134         
135         We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
136         falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
137         Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.
138         
139         Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
140         flakily falling into a different mode, and so that we can impose the conservative
141         mode for testing.
142
143         * wtf/MemoryPressureHandler.cpp:
144         (WTF::thresholdForPolicy):
145         (WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
146         * wtf/MemoryPressureHandler.h:
147
148 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
149
150         [INTL] Remove INTL sub-feature compile flags
151         https://bugs.webkit.org/show_bug.cgi?id=188081
152
153         Reviewed by Michael Catanzaro.
154
155         Removed INTL sub-feature compile flags, and an old unused i18n flag.
156
157         * wtf/FeatureDefines.h:
158
159 2018-07-26  Chris Dumez  <cdumez@apple.com>
160
161         It should be possible to use WTF::CallbackAggregator from a background thread
162         https://bugs.webkit.org/show_bug.cgi?id=188084
163
164         Reviewed by Alex Christensen.
165
166         Make WTF::CallbackAggregator usable on background threads by updating its destructor to call the
167         completion handler on whatever thread it is destroyed on, instead of always dispatching to the
168         main thread before calling the completion handler.
169
170         Existing CallbackAggregator users that deal with threads have been updated to make sure they
171         destroy the CallbackAggregator on the expected thread.
172
173         This will allow us to use CallbackAggregator in the ResourceLoadStatisticsMemoryStore, which lives
174         on a background WorkQueue.
175
176         * wtf/CallbackAggregator.h:
177         (WTF::CallbackAggregator::~CallbackAggregator):
178         (WTF::CallbackAggregator::CallbackAggregator):
179
180 2018-07-26  Ross Kirsling  <ross.kirsling@sony.com>
181
182         String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter
183         https://bugs.webkit.org/show_bug.cgi?id=187963
184
185         Reviewed by Alex Christensen.
186
187         * wtf/Assertions.cpp:
188         Update split/splitAllowingEmptyEntries usage.
189
190         * wtf/text/StringView.h:
191         (WTF::StringView::splitAllowingEmptyEntries const):
192         * wtf/text/WTFString.cpp:
193         (WTF::String::splitInternal const):
194         (WTF::String::split const):
195         (WTF::String::splitAllowingEmptyEntries const):
196         * wtf/text/WTFString.h:
197         (WTF::String::split const):
198         Introduce splitAllowingEmptyEntries instead of boolean or enum parameter.
199
200 2018-07-26  Sam Weinig  <sam@webkit.org>
201
202         Remove unused/undefined String::appendInternal
203         https://bugs.webkit.org/show_bug.cgi?id=188063
204
205         Reviewed by Daniel Bates.
206
207         * wtf/text/WTFString.h:
208         String::appendInternal is declared in WTFString.h, but is never used
209         and and never even defined. Remove it.
210
211 2018-07-26  Commit Queue  <commit-queue@webkit.org>
212
213         Unreviewed, rolling out r234181 and r234189.
214         https://bugs.webkit.org/show_bug.cgi?id=188075
215
216         These are not needed right now (Requested by thorton on
217         #webkit).
218
219         Reverted changesets:
220
221         "Enable Web Content Filtering on watchOS"
222         https://bugs.webkit.org/show_bug.cgi?id=187979
223         https://trac.webkit.org/changeset/234181
224
225         "HAVE(PARENTAL_CONTROLS) should be true on watchOS"
226         https://bugs.webkit.org/show_bug.cgi?id=187985
227         https://trac.webkit.org/changeset/234189
228
229 2018-07-04  Darin Adler  <darin@apple.com>
230
231         Improve WebGPU implementation, including using Metal Objective-C protocols more simply and correctly
232         https://bugs.webkit.org/show_bug.cgi?id=187333
233
234         Reviewed by Sam Weinig.
235
236         * wtf/Compiler.h: Added OBJC_PROTOCOL, a macro for convieniently treating an
237         Objective-C protocol in a way that lets it be mentioned in a C++ source file.
238         This is the rough equivalent of OBJC_CLASS, but for protocols.
239
240         * wtf/Platform.h: Added USE(METAL), alongside USE(OPENGL) and the like.
241         Now used in the WebGPU platform layer to guard the Metal-specific code.
242
243 2018-07-26  Tomas Popela  <tpopela@redhat.com>
244
245         [WTF] Coverity scan issues
246         https://bugs.webkit.org/show_bug.cgi?id=186800
247
248         Reviewed by Brent Fulgham.
249
250         * wtf/CheckedArithmetic.h: Swap the operands to multiply().
251         * wtf/ThreadSpecific.h: Initialize the m_key variable.
252         * wtf/dtoa.cpp: Initialize the next variable.
253
254 2018-07-25  Tomas Popela  <tpopela@redhat.com>
255
256         Correctly close the variable argument list
257         https://bugs.webkit.org/show_bug.cgi?id=186758
258
259         Reviewed by Michael Catanzaro.
260
261         The argcCopy is not ended when we early return. Also don't call
262         va_end() on args because it's closed in caller.
263
264         * wtf/text/WTFString.cpp:
265         (WTF::createWithFormatAndArguments):
266
267 2018-07-24  Tim Horton  <timothy_horton@apple.com>
268
269         HAVE(PARENTAL_CONTROLS) should be true on watchOS
270         https://bugs.webkit.org/show_bug.cgi?id=187985
271         <rdar://problem/42559346>
272
273         Reviewed by Andy Estes.
274
275         * wtf/Platform.h:
276
277 2018-07-24  Daniel Bates  <dabates@apple.com>
278
279         Move-constructing NeverDestroyed should move construct underlying object instead of copy constructing it
280         https://bugs.webkit.org/show_bug.cgi?id=187971
281
282         Reviewed by Saam Barati.
283
284         Fixes an issue where move constructing a NeverDestroyed<T> would always copy construct T into
285         the destination storage buffer regardless of whether T is move constructable. For example:
286
287         {
288             static NeverDestroyed<T> x;
289             static NeverDestroyed<T> y { WTFMove(x) }; // currently makes a copy of x's T even if T is move constructable
290         }
291
292         Currently the NeverDestroyed<T> instantiates T into the destination storage buffer by WTFMove()ing
293         the NeverDestroyed<T> into it, implicitly converting it to const T& by way of const T& conversion
294         operator. As a result the compiler picks the copy constructor for T to invoke instead of evaluating
295         whether T can be move constructed. Instead we should explicitly WTFMove() the underlying T so that
296         the compiler can choose to either move-construct T or copy construct it.
297
298         A side benefit of this change it is now possible to invoke makeNeverDestroyed() with the result
299         of a function that returns a move-only type (e.g. RenderStyle):
300
301         static auto sharedStyle = makeNeverDestroyed([] {
302             auto style = RenderStyle::create();
303             ...
304             return style;
305         }());
306
307         * wtf/NeverDestroyed.h:
308         (WTF::NeverDestroyed::NeverDestroyed):
309
310 2018-07-24  Ryan Haddad  <ryanhaddad@apple.com>
311
312         Unreviewed, rolling out r234121.
313
314         Caused perf test failures.
315
316         Reverted changeset:
317
318         "We should cache the compiled sandbox profile in a data vault"
319         https://bugs.webkit.org/show_bug.cgi?id=184991
320         https://trac.webkit.org/changeset/234121
321
322 2018-07-24  Thibault Saunier  <tsaunier@igalia.com>
323
324         [GStreamer] Implement bitrate modulation support in GStreamer based libwebrtc Encoders
325         https://bugs.webkit.org/show_bug.cgi?id=187643
326
327         Reviewed by Philippe Normand.
328
329         Added support for GRegex in GRefPtr.
330
331         Source/WTF:
332         * wtf/glib/GRefPtr.cpp:
333         (WTF::refGPtr):
334         (WTF::derefGPtr):
335         * wtf/glib/GRefPtr.h:
336
337 2018-07-23  Ross Kirsling  <ross.kirsling@sony.com>
338
339         WTF::StringView::split should have an allowEmptyEntries flag
340         https://bugs.webkit.org/show_bug.cgi?id=187864
341
342         Reviewed by Konstantin Tokarev.
343
344         * wtf/text/StringView.cpp:
345         (WTF::StringView::SplitResult::Iterator::findNextSubstring):
346         (WTF::StringView::SplitResult::Iterator::operator++):
347         * wtf/text/StringView.h:
348         (WTF::StringView::split const):
349         (WTF::StringView::SplitResult::SplitResult):
350         (WTF::StringView::SplitResult::Iterator::operator== const):
351         We can't mimic String::split completely, because this one's iterator-based --
352         achieve desired behavior by adding m_allowEmptyEntries to SplitResult and m_isDone to its Iterator.
353         (The latter keeps us from hitting begin() == end() prematurely on a final empty entry.)
354
355 2018-07-23  Ben Richards  <benton_richards@apple.com>
356
357         We should cache the compiled sandbox profile in a data vault
358         https://bugs.webkit.org/show_bug.cgi?id=184991
359
360         Reviewed by Ryosuke Niwa.
361
362         Added trace points for sandbox initialization and exposed functions needed for sandbox caching
363
364         * wtf/SystemTracing.h:
365         * wtf/spi/darwin/SandboxSPI.h:
366
367 2018-06-06  Filip Pizlo  <fpizlo@apple.com>
368
369         We should support CreateThis in the FTL
370         https://bugs.webkit.org/show_bug.cgi?id=164904
371
372         Reviewed by Yusuke Suzuki.
373
374         * wtf/TinyPtrSet.h:
375         (WTF::TinyPtrSet::operator!= const):
376
377 2018-07-21  Yusuke Suzuki  <utatane.tea@gmail.com>
378
379         [JSC] Use Function / ScopedLambda / RecursableLambda instead of std::function
380         https://bugs.webkit.org/show_bug.cgi?id=187472
381
382         Reviewed by Mark Lam.
383
384         * wtf/ScopedLambda.h:
385         (WTF::ScopedLambda<ResultType):
386
387 2018-07-18  Michael Catanzaro  <mcatanzaro@igalia.com>
388
389         Switch CMake ports back to C++ 14
390         https://bugs.webkit.org/show_bug.cgi?id=187744
391
392         Reviewed by Ryosuke Niwa.
393
394         Always use WTF's internal std::optional implementation, since std::optional is not part of
395         C++ 14.
396
397         * wtf/Optional.h:
398
399 2018-07-17  Keith Miller  <keith_miller@apple.com>
400
401         Revert r233630 since it broke internal wasm benchmarks
402         https://bugs.webkit.org/show_bug.cgi?id=187746
403
404         Unreviewed revert.
405
406         * wtf/TriState.h:
407
408 2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>
409
410         Ensure WebKit stack is ad-hoc signed
411         https://bugs.webkit.org/show_bug.cgi?id=187667
412
413         Reviewed by Alexey Proskuryakov.
414
415         * Configurations/Base.xcconfig:
416
417 2018-07-14  David Kilzer  <ddkilzer@apple.com>
418
419         Replace TR2_OPTIONAL_ASSERTED_EXPRESSION macro in <wtf/Optional.h>
420         <https://webkit.org/b/187672>
421
422         Reviewed by Frédéric Wang.
423
424         * wtf/Optional.h:
425         (std::optional::operator -> const):
426         (std::optional::operator * const):
427         (std::optional<T::operator-> const):
428         (std::optional<T::operator* const):
429         - Replace TR2_OPTIONAL_ASSERTED_EXPRESSION macro with
430           ASSERT_UNDER_CONSTEXPR_CONTEXT macro and return statement.
431
432 2018-07-13  Mark Lam  <mark.lam@apple.com>
433
434         Signal.cpp's activeThreads() should only create its ThreadGroup once.
435         https://bugs.webkit.org/show_bug.cgi?id=187634
436         <rdar://problem/40662311>
437
438         Reviewed by Yusuke Suzuki.
439
440         registerThreadForMachExceptionHandling() is relying on the activeThreads()
441         ThreadGroup being a singleton.
442
443         * wtf/threads/Signals.cpp:
444         (WTF::activeThreads):
445
446 2018-07-12  David Kilzer  <ddkilzer@apple.com>
447
448         Revert: iOS port should define HAVE_RUNLOOP_TIMER
449         <https://webkit.org/b/187370>
450
451         * wtf/Platform.h: This is only needed on macOS when using
452         -[WebView scheduleInRunLoop:forMode:] and
453         -[WebView unscheduleFromRunLoop:forMode:] to make WK1 WebViews
454         load synchronously using -loadHTMLString: or -loadData:.
455
456 2018-07-12  Per Arne Vollan  <pvollan@apple.com>
457
458         Add compile guard for enabling NSRunLoop in the WebContent process.
459         https://bugs.webkit.org/show_bug.cgi?id=187563
460
461         Reviewed by Chris Dumez.
462
463         * wtf/FeatureDefines.h:
464
465 2018-07-09  Zan Dobersek  <zdobersek@igalia.com>
466
467         Unreviewed follow-up to r233660.
468
469         * wtf/linux/MemoryFootprintLinux.cpp:
470         (WTF::memoryFootprint): Revert accidental change of logical OR into a bitwise OR.
471
472 2018-07-09  Youenn Fablet  <youenn@apple.com>
473
474         StringView operator==(char*) should check the length of the string
475         https://bugs.webkit.org/show_bug.cgi?id=187422
476
477         Reviewed by Chris Dumez.
478
479         Update StringView operator== to ensure that any character raw pointer comparison actually check the length of the raw pointer string.
480         This patch mimicks the behavior of String.
481         For instance, comparing a StringView with "he\0llo" and "he" will give the same result.
482
483         * wtf/linux/MemoryFootprintLinux.cpp:
484         (WTF::memoryFootprint):
485         * wtf/text/StringView.h:
486         (WTF::operator==):
487         (WTF::operator!=):
488         (WTF::equal):
489         (WTF::StringView::stripLeadingAndTrailingMatchedCharacters):
490
491 2018-07-09  Yusuke Suzuki  <utatane.tea@gmail.com>
492
493         [WTF] Annotate RunLoop::Timer fast-allocated
494         https://bugs.webkit.org/show_bug.cgi?id=187473
495
496         Reviewed by Saam Barati.
497
498         It is allocated by std::unique_ptr for MemoryPressureHandler. And it uses system malloc now.
499
500         * wtf/RunLoop.h:
501
502 2018-07-08  Yusuke Suzuki  <utatane.tea@gmail.com>
503
504         [JSC] Optimize padding of UnlinkedCodeBlock to shrink
505         https://bugs.webkit.org/show_bug.cgi?id=187448
506
507         Reviewed by Saam Barati.
508
509         * wtf/TriState.h:
510
511 2018-07-07  David Kilzer  <ddkilzer@apple.com>
512
513         iOS port should define HAVE_RUNLOOP_TIMER
514         <https://webkit.org/b/187370>
515
516         Reviewed by Simon Fraser.
517
518         * wtf/Platform.h:
519         (HAVE_DTRACE): Remove unused macro since r200568.
520         (HAVE_RUNLOOP_TIMER): Define for PLATFORM(COCOA), not just
521         PLATFORM(MAC).  Alphabetize macros.
522
523 2018-07-07  Yusuke Suzuki  <utatane.tea@gmail.com>
524
525         [linux] ASSERT: Using an alternative signal stack is not supported. Consider disabling the concurrent GC.
526         https://bugs.webkit.org/show_bug.cgi?id=187297
527
528         Reviewed by Mark Lam.
529
530         This patch relaxes the JSC's limitation: accepting an alternative signal stack mechanism.
531
532         * wtf/ThreadingPthreads.cpp:
533         (WTF::getApproximateStackPointer):
534         Fix approximate stack pointer function to make it valid.
535
536         (WTF::Thread::signalHandlerSuspendResume):
537         Use StackBounds::contains to check whether the given stack pointer is in range of StackBounds.
538         If it is out of range, it seems that this stack pointer is pointing an alternative signal stack.
539
540         (WTF::Thread::suspend):
541         Repeatedly retry suspension by using Thread::yield().
542
543         (WTF::isOnAlternativeSignalStack): Deleted.
544
545 2018-07-06  Frederic Wang  <fwang@igalia.com>
546
547         WTF's internal std::optional implementation should abort() on bad optional access
548         https://bugs.webkit.org/show_bug.cgi?id=186536
549
550         Reviewed by Michael Catanzaro.
551
552         Currently, some ports built with recent compilers will cause the program to abort when one
553         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
554         However, most ports still use WTF's internal std::optional implementation, which does not
555         verify illegal access. Hence it's not possible for developers working on these ports to
556         detect issues like bugs #186189, #186535, #186752, #186753, #187139, #187145, #187243 or
557         #187382.
558         WTF's version of std::optional was introduced in bug #164199 but it was not possible to
559         verify the availability of the value inside constexpr member functions because the assert
560         might involve asm declarations. This commit introduces a new ASSERT_UNDER_CONSTEXPR_CONTEXT
561         macro (a simplified version of ASSERT that can be used in constexpr context) and uses it in
562         WTF's implementation of std::optional.
563
564         * wtf/Assertions.h: Define ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of ASSERT that can be
565         used in constexpr context (in particular avoids asm declarations).
566         * wtf/Optional.h:
567         (std::optional::operator ->): Add an assert to ensure the optional value is available.
568         (std::optional::operator *): Ditto.
569         (std::optional::value const): Ditto.
570         (std::optional::value): Ditto.
571         (std::optional<T::value const): Ditto.
572
573 2018-07-05  Commit Queue  <commit-queue@webkit.org>
574
575         Unreviewed, rolling out r233417 and r233418.
576         https://bugs.webkit.org/show_bug.cgi?id=187364
577
578         Introduced an occasional crash on Google Drive (Requested by
579         rniwa on #webkit).
580
581         Reverted changesets:
582
583         "WTF's internal std::optional implementation should abort() on
584         bad optional access"
585         https://bugs.webkit.org/show_bug.cgi?id=186536
586         https://trac.webkit.org/changeset/233417
587
588         "WTF's internal std::optional implementation should abort() on
589         bad optional access"
590         https://bugs.webkit.org/show_bug.cgi?id=186536
591         https://trac.webkit.org/changeset/233418
592
593 2018-07-04  Guillaume Emont  <guijemont@igalia.com>
594
595         FunctionTraits: Make cCallArity() constant on 32-bits.
596         https://bugs.webkit.org/show_bug.cgi?id=187292
597
598         Reviewed by Yusuke Suzuki.
599
600         On X86, in Source/JavaScriptCore/jit/CCallHelpers.h we have a
601         static_assert that uses cCallArity(), so it needs to be constant to
602         avoid a compilation error. This is achieved by changing an ASSERT into
603         a static_assert.
604
605
606         * wtf/FunctionTraits.h:
607         (WTF::slotsForCCallArgument):
608
609 2018-07-04  Tim Horton  <timothy_horton@apple.com>
610
611         Introduce PLATFORM(IOSMAC)
612         https://bugs.webkit.org/show_bug.cgi?id=187315
613
614         Reviewed by Dan Bernstein.
615
616         * Configurations/Base.xcconfig:
617         * wtf/FeatureDefines.h:
618         * wtf/Platform.h:
619
620 2018-07-02  Alicia Boya García  <aboya@igalia.com>
621
622         [Linux] Fix memory leak in WTF::forEachLine()
623         https://bugs.webkit.org/show_bug.cgi?id=187174
624
625         Reviewed by Žan Doberšek.
626
627         * wtf/linux/MemoryFootprintLinux.cpp:
628         (WTF::forEachLine):
629
630 2018-07-02  Frederic Wang  <fwang@igalia.com>
631
632         WTF's internal std::optional implementation should abort() on bad optional access
633         https://bugs.webkit.org/show_bug.cgi?id=186536
634
635         Reviewed by Michael Catanzaro.
636
637         Currently, some ports built with recent compilers will cause the program to abort when one
638         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
639         However, most ports still use WTF's internal std::optional implementation, which does not
640         verify illegal access. Hence it's not possible for developers working on these ports to
641         detect issues like bugs #186189, #186535, #186752, #186753, #187139, #187145 or #187243.
642         WTF's version of std::optional was introduced in bug #164199 but it was not possible to
643         verify the availability of the value inside constexpr member functions because the assert
644         might involve asm declarations. This commit introduces a new
645         RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT macro (a simplified version of RELEASE_ASSERT that can
646         be used in constexpr context) and uses it in WTF's implementation of std::optional.
647
648         * wtf/Assertions.h: Define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of
649         RELEASE_ASSERT that can be used in constexpr context (in particular avoids asm declarations).
650         * wtf/Optional.h:
651         (std::optional::operator ->): Add an assert to ensure the optional value is available.
652         (std::optional::operator *): Ditto.
653         (std::optional::value const): Ditto.
654         (std::optional::value): Ditto.
655         (std::optional<T::value const): Ditto.
656
657 2018-07-01  Yusuke Suzuki  <utatane.tea@gmail.com>
658
659         [WTF] RandomDevice should be initialized inside std::call_once
660         https://bugs.webkit.org/show_bug.cgi?id=186017
661
662         Reviewed by Darin Adler.
663
664         While Linux ports uses mutex-guarded static variables, Mac ports do not.
665         So we should guard static variables' initialization by using std::call_once.
666         This patch does it for RandomDevice.
667
668         * wtf/OSRandomSource.cpp:
669         (WTF::cryptographicallyRandomValuesFromOS):
670         * wtf/RandomDevice.h: Small fix for OS(FUCHSIA).
671
672 2018-07-01  Myles C. Maxfield  <mmaxfield@apple.com>
673
674         [Cocoa] LastResort in the font family list causes emoji with joiners to be rendered as multiple .notdef characters
675         https://bugs.webkit.org/show_bug.cgi?id=187209
676         <rdar://problem/40920785>
677
678         Reviewed by Darin Adler.
679
680         * wtf/unicode/CharacterNames.h:
681
682 2018-06-23  Darin Adler  <darin@apple.com>
683
684         [Cocoa] Improve ARC compatibility of more code in JavaScriptCore
685         https://bugs.webkit.org/show_bug.cgi?id=186973
686
687         Reviewed by Dan Bernstein.
688
689         * WTF.xcodeproj/project.pbxproj: Added CFXPCBridgeSPI.h, fixed a few
690         other small problems in the project file, and let Xcode fix a few too.
691
692         * wtf/cocoa/Entitlements.h: Added hasEntitlement function with overloads
693         for an audit token and an XPC connection.
694         * wtf/cocoa/Entitlements.mm:
695         (WTF::hasEntitlement): Added, with overloads for a SecTask, an audit token,
696         and an XPC connection.
697         (WTF::processHasEntitlement): Refactored to use the function above.
698
699         * wtf/spi/cocoa/CFXPCBridgeSPI.h: Added.
700
701 2018-06-30  Adam Barth  <abarth@webkit.org>
702
703         Port JavaScriptCore to OS(FUCHSIA)
704         https://bugs.webkit.org/show_bug.cgi?id=187223
705
706         Reviewed by Daniel Bates.
707
708         * wtf/Platform.h: Fuchsia uses mcontext_t to provide machine context.
709
710 2018-06-30  Adam Barth  <abarth@webkit.org>
711
712         Port WTF to OS(FUCHSIA)
713         https://bugs.webkit.org/show_bug.cgi?id=187221
714
715         Reviewed by Yusuke Suzuki.
716
717         * wtf/FastMalloc.cpp: Fuchsia does not have resource.h
718         (WTF::fastMallocStatistics): Skip collecting stats without resource.h
719         * wtf/InlineASM.h: Fuchsia uses ELF
720         * wtf/Platform.h: Define OS(FUCHSIA) as an OS(UNIX) variant
721         * wtf/RandomDevice.cpp: Call zx_cprng_draw for crypographic randomness
722         (WTF::RandomDevice::cryptographicallyRandomValues):
723         * wtf/ThreadingPthreads.cpp: Fuchsia does not have pthread_setschedparam
724         (WTF::Thread::changePriority):
725         * wtf/unix/CPUTimeFuchsia.cpp: Added.
726
727 2018-06-30  Commit Queue  <commit-queue@webkit.org>
728
729         Unreviewed, rolling out r233391.
730         https://bugs.webkit.org/show_bug.cgi?id=187217
731
732         This patch broke Windows ports (Requested by fredw on
733         #webkit).
734
735         Reverted changeset:
736
737         "WTF's internal std::optional implementation should abort() on
738         bad optional access"
739         https://bugs.webkit.org/show_bug.cgi?id=186536
740         https://trac.webkit.org/changeset/233391
741
742 2018-06-29  Frederic Wang  <fwang@igalia.com>
743
744         WTF's internal std::optional implementation should abort() on bad optional access
745         https://bugs.webkit.org/show_bug.cgi?id=186536
746
747         Reviewed by Michael Catanzaro.
748
749         Currently, some ports built with recent compilers will cause the program to abort when one
750         tries to access the value of an unset std:optional (i.e. std::nullopt) as specified by C++17.
751         However, most ports still use WTF's internal std::optional implementation, which does not
752         verify illegal access. Hence it's not possible for developers working on these ports to
753         detect issues like bugs #186189, #186535, #186752, #186753, #187139 or #187145. WTF's version
754         of std::optional was introduced in bug #164199 but it was not possible to verify the
755         availability of the value inside constexpr member functions because the assert might involve
756         asm declarations. This commit introduces a new RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT macro
757         (a simplified version of RELEASE_ASSERT that can be used in constexpr context) and uses it in
758         WTF's implementation of std::optional.
759
760         * wtf/Assertions.h: Define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT as a version of
761         RELEASE_ASSERT that can be used in constexpr context (in particular avoids asm declarations).
762         * wtf/Optional.h:
763         (std::optional::operator ->): Add an assert to ensure the optional value is available.
764         (std::optional::operator *): Ditto.
765         (std::optional::value const): Ditto. 
766         (std::optional::value): Ditto.
767         (std::optional<T::value const): Ditto.
768
769 2018-06-29  Darin Adler  <darin@apple.com>
770
771         [Cocoa] reduce unnecessary use of .mm source files in WTF, spruce up some implementation details
772         https://bugs.webkit.org/show_bug.cgi?id=186924
773
774         Reviewed by Anders Carlsson.
775
776         * WTF.xcodeproj/project.pbxproj: Update for file and directory renames, file type changes,
777         and deletions.
778
779         * wtf/MemoryPressureHandler.cpp:
780         (WTF::MemoryPressureHandler::holdOff): Deleted empty placeholder; this one is not needed.
781
782         * wtf/PlatformMac.cmake: Update for file and directory renames, file type changes,
783         and deletions.
784
785         * wtf/cocoa/CPUTimeCocoa.cpp: Renamed from Source/WTF/wtf/cocoa/CPUTimeCocoa.mm.
786
787         * wtf/text/cocoa/StringImplCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringImplMac.mm.
788         Also removed an unneeded include.
789
790         * wtf/text/cocoa/StringViewCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringViewObjC.mm.
791
792         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: Renamed from
793         Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm.
794
795 2018-06-28  Olivia Barnett  <obarnett@apple.com>
796
797         Find in page for typographic quotes does not find low (German) quotes
798         https://bugs.webkit.org/show_bug.cgi?id=187164
799         <rdar://problem/29612785>
800
801         Reviewed by Tim Horton.
802
803         Added Unicode definitions for German quotation marks.
804
805         * wtf/unicode/CharacterNames.h:
806
807 2018-06-27  Jonathan Bedard  <jbedard@apple.com>
808
809         Enable WebKit iOS 12 build
810         https://bugs.webkit.org/show_bug.cgi?id=187024
811         <rdar://problem/39759057>
812
813         Reviewed by David Kilzer.
814
815         * wtf/spi/darwin/XPCSPI.h: Add endpoint and connection declarations.
816
817 2018-06-25  David Fenton  <david_fenton@apple.com>
818
819         Unreviewed, rolling out r233120.
820
821         caused regression in ios API tests
822
823         Reverted changeset:
824
825         "[Cocoa] reduce unnecessary use of .mm source files in WTF,
826         spruce up some implementation details"
827         https://bugs.webkit.org/show_bug.cgi?id=186924
828         https://trac.webkit.org/changeset/233120
829
830 2018-06-25  Alicia Boya García  <aboya@igalia.com>
831
832         Fix ASAN_ENABLED in GCC
833         https://bugs.webkit.org/show_bug.cgi?id=186957
834
835         Reviewed by Michael Catanzaro.
836
837         ASAN_ENABLED used to rely on Clang-specific features for detection.
838         This patch enables ASAN_ENABLED to work on GCC too.
839
840         It also fixes compilation errors and warnings that were triggered when
841         compiling code guarded by ASAN_ENABLED in gcc.
842
843         * wtf/Compiler.h:
844         * wtf/Vector.h:
845         (WTF::VectorBuffer::endOfBuffer):
846
847 2018-06-22  Darin Adler  <darin@apple.com>
848
849         [Cocoa] Convert the small bit of Objective-C++ code in WTF to ARC
850         https://bugs.webkit.org/show_bug.cgi?id=186961
851
852         Reviewed by Anders Carlsson.
853
854         * Configurations/Base.xcconfig: Turn on ARC.
855
856         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
857         (WTF::MemoryPressureHandler::uninstall): Remove calls to dispatch_release.
858         (WTF::MemoryPressureHandler::holdOff): Ditto.
859
860         * wtf/mac/MainThreadMac.mm:
861         (WTF::initializeMainThreadPlatform): Remove call to retain.
862         (WTF::initializeWebThreadPlatform): Ditto.
863
864 2018-06-22  Yusuke Suzuki  <utatane.tea@gmail.com>
865
866         [WTF] Use Ref<> for the result type of non-failing factory functions
867         https://bugs.webkit.org/show_bug.cgi?id=186920
868
869         Reviewed by Darin Adler.
870
871         Use Ref<> instead of RefPtr<> if the `create` function do not return nullptr.
872
873         * wtf/AutomaticThread.cpp:
874         (WTF::AutomaticThreadCondition::create):
875         (WTF::AutomaticThread::AutomaticThread):
876         * wtf/AutomaticThread.h:
877         * wtf/ParallelHelperPool.cpp:
878         (WTF::ParallelHelperPool::Thread::Thread):
879         * wtf/ParallelHelperPool.h:
880         * wtf/WorkerPool.cpp:
881         (WTF::WorkerPool::WorkerPool):
882         * wtf/WorkerPool.h:
883         * wtf/win/WorkQueueWin.cpp:
884         (WTF::TimerContext::create):
885         (WTF::WorkQueue::dispatchAfter):
886
887 2018-06-23  Yusuke Suzuki  <utatane.tea@gmail.com>
888
889         [WTF] Add user-defined literal for ASCIILiteral
890         https://bugs.webkit.org/show_bug.cgi?id=186839
891
892         Reviewed by Darin Adler.
893
894         This patch adds user-defined literal for ASCIILiteral. We can create ASCIILiteral in the form of `"Hello World"_s`.
895         And we remove public ASCIILiteral constructor. This change ensures that ASCIILiteral is created from literal.
896
897         * WTF.xcodeproj/project.pbxproj:
898         * wtf/CMakeLists.txt:
899         * wtf/Indenter.h:
900         (WTF::Indenter::Indenter):
901         * wtf/Logger.h:
902         (WTF::LogArgument::toString):
903         * wtf/MediaTime.cpp:
904         (WTF::toJSONStringInternal):
905         (WTF::MediaTimeRange::toJSONString const):
906         * wtf/linux/MemoryFootprintLinux.cpp:
907         (WTF::memoryFootprint):
908         * wtf/text/ASCIILiteral.cpp: Copied from Source/WebCore/css/CSSUnsetValue.cpp.
909         (WTF::ASCIILiteral::dump const):
910         * wtf/text/ASCIILiteral.h: Copied from Source/WTF/wtf/Indenter.h.
911         (WTF::ASCIILiteral::operator const char* const):
912         (WTF::ASCIILiteral::fromLiteralUnsafe):
913         (WTF::ASCIILiteral::null):
914         (WTF::ASCIILiteral::characters const):
915         (WTF::ASCIILiteral::ASCIILiteral):
916         (WTF::StringLiterals::operator _s):
917         * wtf/text/WTFString.cpp:
918         (asciiDebug):
919         * wtf/text/WTFString.h:
920         (WTF::operator==):
921         (WTF::operator!=):
922         (WTF::ASCIILiteral::ASCIILiteral): Deleted.
923         (WTF::ASCIILiteral::operator const char*): Deleted.
924         * wtf/unix/LanguageUnix.cpp:
925         (WTF::platformLanguage):
926
927 2018-06-22  Darin Adler  <darin@apple.com>
928
929         [Cocoa] reduce unnecessary use of .mm source files in WTF, spruce up some implementation details
930         https://bugs.webkit.org/show_bug.cgi?id=186924
931
932         Reviewed by Anders Carlsson.
933
934         * WTF.xcodeproj/project.pbxproj: Update for file and directory renames, file type changes,
935         and deletions.
936
937         * wtf/MemoryPressureHandler.cpp:
938         (WTF::MemoryPressureHandler::holdOff): Deleted empty placeholder; this one is not needed.
939
940         * wtf/PlatformMac.cmake: Update for file and directory renames, file type changes,
941         and deletions.
942
943         * wtf/cocoa/CPUTimeCocoa.cpp: Renamed from Source/WTF/wtf/cocoa/CPUTimeCocoa.mm.
944         Reworked math to make better use of the Seconds class.
945
946         * wtf/text/WTFString.h: Added a new inline version of the constructor that takes an NSString.
947         This is identical to the one that takes a CFStringRef, so no need to keep both.
948
949         * wtf/text/cocoa/StringImplCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringImplMac.mm.
950         Also removed an unneeded include.
951
952         * wtf/text/cocoa/StringViewCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringViewObjC.mm.
953
954         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: Renamed from
955         Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm.
956
957         * wtf/text/mac/StringMac.mm: Removed.
958
959 2018-06-21  Carlos Garcia Campos  <cgarcia@igalia.com>
960
961         [GLIB] improve get_type() fast path in WEBKIT_DEFINE_TYPE
962         https://bugs.webkit.org/show_bug.cgi?id=186885
963
964         Reviewed by Anders Carlsson.
965
966         This is a backport of glib commit
967         https://gitlab.gnome.org/GNOME/glib/commit/e924f777369710221c3e0a9d7bf40392a27d1fa4
968
969         "The -fstack-protector-strong used in many distributions by default has a
970         rather drastic slowdown of the fast path in generated _get_type()
971         functions using G_DEFINE_* macros. The amount can vary by architecture,
972         GCC version, and compiler flags.
973
974         To work around this, and ensure a higher probability that our fast-path
975         will match what we had previously, we need to break out the slow-path
976         (registering the type) into a secondary function that is not a candidate
977         for inlining.
978
979         This ensures that the common case (type registered, return the GType id)
980         is the hot path and handled in the prologue of the generated assembly even
981         when -fstack-protector-strong is enabled."
982
983         * wtf/glib/WTFGType.h:
984
985 2018-06-20  Yusuke Suzuki  <utatane.tea@gmail.com>
986
987         [GTK][WPE][Nicosia] Add name for Nicosia Painting Threads
988         https://bugs.webkit.org/show_bug.cgi?id=186836
989
990         Reviewed by Carlos Garcia Campos.
991
992         AutomaticThread can take a name for the generated threads now.
993         This patch adds the above ability to WorkerPool.
994
995         * wtf/WorkerPool.cpp:
996         (WTF::WorkerPool::WorkerPool):
997         * wtf/WorkerPool.h:
998         (WTF::WorkerPool::create):
999         (WTF::WorkerPool::name const):
1000
1001 2018-06-18  Jiewen Tan  <jiewen_tan@apple.com>
1002
1003         Add a graceful exit for AuthenticationManager::initializeConnection
1004         https://bugs.webkit.org/show_bug.cgi?id=186632
1005         <rdar://problem/41041033>
1006
1007         Reviewed by Brent Fulgham.
1008
1009         * wtf/spi/darwin/XPCSPI.h:
1010
1011 2018-06-18  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1012
1013         [WTF] Remove workarounds needed to support libstdc++-4
1014         https://bugs.webkit.org/show_bug.cgi?id=186762
1015
1016         Reviewed by Michael Catanzaro.
1017
1018         Revert r226299, r226300 r226301 and r226302-
1019
1020         * wtf/StdLibExtras.h:
1021
1022 2018-06-12  Darin Adler  <darin@apple.com>
1023
1024         [Cocoa] Make some RetainPtr refinements to get more ready for ARC
1025         https://bugs.webkit.org/show_bug.cgi?id=186526
1026
1027         Reviewed by Anders Carlsson.
1028
1029         * wtf/RetainPtr.h: Improved the definition of autorelease so it does
1030         the right thing for both Objective-C types and non-Objective-C types.
1031         Also added bridgingAutorelease for when we want to autorelease as
1032         part of converting from a CF type to an Objective-C type. The two
1033         advantages of bridgingAutorelease are that it does not require an
1034         additional explicit __bridge cast and that it does not prevent the
1035         ARC objc_autoreleaseReturnValue optimization the way that doing an
1036         autorelease on the CF type would.
1037
1038         * wtf/text/mac/StringImplMac.mm:
1039         (WTF::StringImpl::operator NSString *): Use bridgingAutorelease.
1040
1041 2018-06-15  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1042
1043         [WinCairo] Move unrelated features of WorkQueueWin into IPC::Connection
1044         https://bugs.webkit.org/show_bug.cgi?id=186582
1045
1046         Remove unrelated feature from WorkQueueWin.
1047
1048         Reviewed by Brent Fulgham.
1049
1050         * wtf/PlatformWin.cmake: Remove WorkItemContext.*
1051         * wtf/WorkQueue.cpp:
1052         * wtf/WorkQueue.h:
1053         * wtf/win/Win32Handle.h:
1054         * wtf/win/WorkItemContext.cpp: Removed.
1055         * wtf/win/WorkItemContext.h: Removed.
1056         * wtf/win/WorkQueueWin.cpp:
1057         (WTF::WorkQueue::handleCallback): Deleted.
1058         (WTF::WorkQueue::registerHandle): Deleted.
1059         (WTF::WorkQueue::unregisterAndCloseHandle): Deleted.
1060         (WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted.
1061         (WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted.
1062
1063 2018-06-13  Keith Miller  <keith_miller@apple.com>
1064
1065         AutomaticThread should have a way to provide a thread name
1066         https://bugs.webkit.org/show_bug.cgi?id=186604
1067
1068         Reviewed by Filip Pizlo.
1069
1070         AutomaticThread now has a virtual method to get a name, which can be
1071         overridden to provide a custom name to the thread.
1072
1073         * wtf/AutomaticThread.cpp:
1074         (WTF::AutomaticThread::start):
1075         * wtf/AutomaticThread.h:
1076         * wtf/WorkerPool.cpp:
1077
1078 2018-06-11  Saam Barati  <sbarati@apple.com>
1079
1080         The NaturalLoops algorithm only works when the list of blocks in a loop is de-duplicated
1081         https://bugs.webkit.org/show_bug.cgi?id=184829
1082
1083         Reviewed by Michael Saboff.
1084
1085         This patch switches NaturalLoops to walking over a block's predecessors
1086         instead of successors when building the initial list of loops and their
1087         headers. The algorithm broke down when we had a footer block with multiple
1088         control flow edges pointing to the same header. This made the loop data
1089         structure contain multiple entries for the same basic block. The algorithm
1090         breaks down when we end up in this state, since it means our way of detecting
1091         what loop is more inner is broken, since that check uses a loop's size.
1092
1093         * wtf/NaturalLoops.h:
1094         (WTF::NaturalLoop::addBlock):
1095         (WTF::NaturalLoops::NaturalLoops):
1096
1097 2018-06-11  Keith Rollin  <krollin@apple.com>
1098
1099         Add logging around internalError(const URL&)
1100         https://bugs.webkit.org/show_bug.cgi?id=186369
1101         <rdar://problem/40872046>
1102
1103         Reviewed by Brent Fulgham.
1104
1105         There are times when we receive bug reports where the user says that
1106         they are simply shown a page saying an internal error occurred. To
1107         help understand the circumstances of that error, add some logging to
1108         internalError() in WebErrors.cpp. This logging logs at the Error level
1109         that internalError() was called and then logs a backtrace.
1110
1111         * wtf/Assertions.cpp:
1112         * wtf/Assertions.h:
1113
1114 2018-06-11  Michael Saboff  <msaboff@apple.com>
1115
1116         JavaScriptCore: Disable 32-bit JIT on Windows
1117         https://bugs.webkit.org/show_bug.cgi?id=185989
1118
1119         Reviewed by Mark Lam.
1120
1121         Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.
1122
1123         * wtf/Platform.h:
1124
1125 2018-06-09  Dan Bernstein  <mitz@apple.com>
1126
1127         [Xcode] Clean up and modernize some build setting definitions
1128         https://bugs.webkit.org/show_bug.cgi?id=186463
1129
1130         Reviewed by Sam Weinig.
1131
1132         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
1133         * Configurations/DebugRelease.xcconfig: Ditto.
1134
1135 2018-06-08  Darin Adler  <darin@apple.com>
1136
1137         [Cocoa] Remove all uses of NSAutoreleasePool as part of preparation for ARC
1138         https://bugs.webkit.org/show_bug.cgi?id=186436
1139
1140         Reviewed by Anders Carlsson.
1141
1142         * WTF.xcodeproj/project.pbxproj: Added FoundationSPI.h.
1143
1144         * wtf/AutodrainedPool.h: Streamlined header a bit, added some comments.
1145
1146         * wtf/PlatformMac.cmake: Added FoundationSPI.h.
1147
1148         * wtf/cocoa/AutodrainedPool.cpp: Moved here from AutodrainedPoolMac.mm.
1149         (WTF::AutodrainedPool::AutodrainedPool): Use objc_autoreleasePoolPush/Pop instead of
1150         the NSAutoreleasePool class.
1151         (WTF::AutodrainedPool::~AutodrainedPool): Ditto.
1152
1153          * wtf/spi/cocoa/FoundationSPI.h: Moved from Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h.
1154          Changed both include and declarations so it's the objc_autoreleasePoolPush/Pop instead
1155          of the higher level NS functions that call them.
1156
1157 2018-06-08  Brian Burg  <bburg@apple.com>
1158
1159         [Cocoa] Web Automation: include browser name and version in listing for automation targets
1160         https://bugs.webkit.org/show_bug.cgi?id=186204
1161         <rdar://problem/36950423>
1162
1163         Reviewed by Darin Adler.
1164
1165         * wtf/spi/cf/CFBundleSPI.h: Add needed infoDictionary key values.
1166
1167 2018-06-07  Yusuke Suzuki  <utatane.tea@gmail.com>
1168
1169         [WTF] Add WorkerPool
1170         https://bugs.webkit.org/show_bug.cgi?id=174569
1171
1172         Reviewed by Carlos Garcia Campos.
1173
1174         This patch adds WorkerPool, which is a thread pool that consists of AutomaticThread.
1175         Since it is based on AutomaticThread, this WorkerPool can take `timeout`: once `timeout`
1176         passes without any tasks, threads in WorkerPool will be destroyed.
1177
1178         We add shouldSleep handler to AutomaticThread to make destruction of threads in WorkerPool moderate.
1179         Without this, all threads are destroyed at once after `timeout` passes.
1180
1181         * WTF.xcodeproj/project.pbxproj:
1182         * wtf/AutomaticThread.cpp:
1183         (WTF::AutomaticThread::AutomaticThread):
1184         (WTF::AutomaticThread::start):
1185         * wtf/AutomaticThread.h:
1186         * wtf/CMakeLists.txt:
1187         * wtf/WorkerPool.cpp: Added.
1188         (WTF::WorkerPool::WorkerPool):
1189         (WTF::WorkerPool::~WorkerPool):
1190         (WTF::WorkerPool::shouldSleep):
1191         (WTF::WorkerPool::postTask):
1192         * wtf/WorkerPool.h: Added.
1193         (WTF::WorkerPool::create):
1194
1195 2018-06-07  Chris Dumez  <cdumez@apple.com>
1196
1197         Add base class to get WeakPtrFactory member and avoid some boilerplate code
1198         https://bugs.webkit.org/show_bug.cgi?id=186407
1199
1200         Reviewed by Brent Fulgham.
1201
1202         Add CanMakeWeakPtr base class to get WeakPtrFactory member and its getter, in
1203         order to avoid some boilerplate code in every class needing a WeakPtrFactory.
1204         This also gets rid of old-style createWeakPtr() methods in favor of the newer
1205         makeWeakPtr().
1206
1207         * wtf/WeakPtr.h:
1208         (WTF::CanMakeWeakPtr::weakPtrFactory const):
1209         (WTF::CanMakeWeakPtr::weakPtrFactory):
1210
1211 2018-06-07  Tadeu Zagallo  <tzagallo@apple.com>
1212
1213         Don't try to allocate JIT memory if we don't have the JIT entitlement
1214         https://bugs.webkit.org/show_bug.cgi?id=182605
1215         <rdar://problem/38271229>
1216
1217         Reviewed by Mark Lam.
1218
1219         Move processHasEntitlement from Source/WebKit/Shared/mac/SandboxUtilities.h
1220         into WTF so JavaScriptCore can also use it.
1221
1222         * WTF.xcodeproj/project.pbxproj:
1223         * wtf/PlatformMac.cmake:
1224         * wtf/cocoa/Entitlements.cpp:
1225         (WTF::processHasEntitlement):
1226         * wtf/cocoa/Entitlements.h:
1227         * wtf/spi/cocoa/SecuritySPI.h:
1228
1229 2018-06-05  Darin Adler  <darin@apple.com>
1230
1231         [Cocoa] Retire DispatchPtr, and add more move semantics and simpler #ifs to other smart pointers
1232         https://bugs.webkit.org/show_bug.cgi?id=186324
1233
1234         Reviewed by Anders Carlsson.
1235
1236         * WTF.xcodeproj/project.pbxproj: Removed DispatchPtr.h.
1237         * wtf/BlockPtr.h: Remove unneeded checks for __OBJC__. Added some use
1238         of WTFMove.
1239         * wtf/CMakeLists.txt: Removed DispatchPtr.h.
1240         * wtf/DispatchPtr.h: Removed. We no longer need to support Mavericks.
1241         * wtf/OSObjectPtr.h: Remove unneeded checks for __OBJC__. Added some use
1242         of WTFMove.
1243
1244 2018-06-05  Darin Adler  <darin@apple.com>
1245
1246         [Cocoa] More preparation for ARC, focusing on WebKit and smart pointers
1247         https://bugs.webkit.org/show_bug.cgi?id=186314
1248
1249         Reviewed by Anders Carlsson.
1250
1251         * wtf/BlockPtr.h: Put Block_copy/release calls into #if since they are
1252         not needed under ARC.
1253
1254         * wtf/OSObjectPtr.h: Added constructor and assignment operator so we can
1255         work with OS objects without adopting them.
1256
1257 2018-06-05  Darin Adler  <darin@apple.com>
1258
1259         [Cocoa] Improve some soft linking compatibility with ARC
1260         https://bugs.webkit.org/show_bug.cgi?id=186309
1261
1262         Reviewed by Anders Carlsson.
1263
1264         * wtf/cocoa/SoftLinking.h: Updated the SOFT_LINK_CONSTANT family of
1265         macros to use a const type. This increases the chance that they will
1266         work without triggering ARC compilation errors since it's easier to
1267         get the type right for read-only access than for read/write.
1268
1269 2018-06-05  Youenn Fablet  <youenn@apple.com>
1270
1271         ServiceWorker registration should store any script fetched through importScripts
1272         https://bugs.webkit.org/show_bug.cgi?id=182444
1273         <rdar://problem/37164835>
1274
1275         Reviewed by Chris Dumez.
1276
1277         * wtf/persistence/PersistentCoders.h:
1278
1279 2018-06-04  Darin Adler  <darin@apple.com>
1280
1281         [Cocoa] Improve smart pointer support for ARC (OSObjectPtr/DispatchPtr)
1282         https://bugs.webkit.org/show_bug.cgi?id=186300
1283
1284         Reviewed by Daniel Bates.
1285
1286         * wtf/DispatchPtr.h: Don't call dispatch_retain or dispatch_release
1287         since ARC will automatically do it for us in the same places we are
1288         doing it here.
1289
1290         * wtf/OSObjectPtr.h:
1291         (WTF::retainOSObject): Don't call os_retain since ARC will do it.
1292         (WTF::releaseOSObject): Don't call os_release since ARC will do it.
1293
1294 2018-05-31  Commit Queue  <commit-queue@webkit.org>
1295
1296         Unreviewed, rolling out r232212.
1297         https://bugs.webkit.org/show_bug.cgi?id=186153
1298
1299         broke build (Requested by alexchristensen on #webkit).
1300
1301         Reverted changeset:
1302
1303         "JavaScriptCore: Disable 32-bit JIT on Windows"
1304         https://bugs.webkit.org/show_bug.cgi?id=185989
1305         https://trac.webkit.org/changeset/232212
1306
1307 2018-05-30  Keith Miller  <keith_miller@apple.com>
1308
1309         LLInt get_by_id prototype caching doesn't properly handle changes
1310         https://bugs.webkit.org/show_bug.cgi?id=186112
1311
1312         Reviewed by Filip Pizlo.
1313
1314         Mark some methods const.
1315
1316         * wtf/Bag.h:
1317         (WTF::Bag::begin const):
1318         (WTF::Bag::end const):
1319         (WTF::Bag::unwrappedHead const):
1320         (WTF::Bag::end): Deleted.
1321         (WTF::Bag::unwrappedHead): Deleted.
1322
1323 2018-05-30  Alex Christensen  <achristensen@webkit.org>
1324
1325         Reduce String allocations
1326         https://bugs.webkit.org/show_bug.cgi?id=186059
1327
1328         Reviewed by Darin Adler.
1329
1330         * wtf/text/StringView.cpp:
1331         (WTF::convertASCIICase):
1332         (WTF::StringView::convertToASCIILowercase const):
1333         (WTF::StringView::convertToASCIIUppercase const):
1334         * wtf/text/StringView.h:
1335         * wtf/text/cf/StringViewCF.cpp:
1336         (WTF::StringView::createCFString const):
1337
1338 2018-05-30  Dominik Infuehr  <dinfuehr@igalia.com>
1339
1340         [MIPS] Fix build on MIPS32r1
1341         https://bugs.webkit.org/show_bug.cgi?id=185944
1342
1343         Reviewed by Yusuke Suzuki.
1344
1345         Added WTF_MIPS_ISA_REV_AT_LEAST to test for certain release or later.
1346
1347         * wtf/Platform.h:
1348
1349 2018-05-29  Tim Horton  <timothy_horton@apple.com>
1350
1351         Fix the build
1352         https://bugs.webkit.org/show_bug.cgi?id=186078
1353
1354         Unreviewed build fix.
1355
1356         * wtf/Platform.h:
1357
1358 2018-05-29  Saam Barati  <sbarati@apple.com>
1359
1360         JSC should put bmalloc's scavenger into mini mode
1361         https://bugs.webkit.org/show_bug.cgi?id=185988
1362
1363         Reviewed by Michael Saboff.
1364
1365         * wtf/FastMalloc.cpp:
1366         (WTF::fastEnableMiniMode):
1367         * wtf/FastMalloc.h:
1368
1369 2018-05-29  Yusuke Suzuki  <utatane.tea@gmail.com>
1370
1371         Unreviewed, follow-up after r232244
1372         https://bugs.webkit.org/show_bug.cgi?id=186023
1373
1374         _BitScanReverse64 is available only in X86_64 and ARM.
1375
1376         * wtf/MathExtras.h:
1377         (WTF::clz64):
1378
1379 2018-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
1380
1381         [WTF] Add clz32 / clz64 for MSVC
1382         https://bugs.webkit.org/show_bug.cgi?id=186023
1383
1384         Reviewed by Daniel Bates.
1385
1386         This patch adds efficient implementations of clz32 and clz64 for MSVC.
1387         While MSVC has _lzcnt intrinsic, it is only valid if the CPU has lzcnt instruction.
1388         Instead of checking cpuid here, we just use _BitScanReverse and _BitScanReverse64.
1389
1390         * wtf/MathExtras.h:
1391         (WTF::clz32):
1392         (WTF::clz64):
1393
1394 2018-05-26  Filip Pizlo  <fpizlo@apple.com>
1395
1396         testair sometimes crashes due to races in initialization of ARC4RandomNumberGenerator
1397         https://bugs.webkit.org/show_bug.cgi?id=186014
1398
1399         Reviewed by Yusuke Suzuki.
1400         
1401         testair launches a bunch of threads and the threads do B3 things that use random numbers.
1402         Sometimes two threads will initialize the random number generator at the same time, because
1403         that's what happens when you use static NeverDestroyed<>.
1404         
1405         This changes that code to use std::call_once to initialize the shared
1406         ARC4RandomNumberGenerator.
1407         
1408         Also, this adds a diagnostic message to the lock's assertion. This assertion was the symptom
1409         of the race, and knowing the state of the lock when the assertion fired gave a darn good clue
1410         about what was going on: the lock's value was 0 at time of unlock, implying that another
1411         thread reinitialized the lock to zero by rerunning the constructor.
1412
1413         * wtf/CryptographicallyRandomNumber.cpp:
1414         * wtf/LockAlgorithmInlines.h:
1415         (WTF::Hooks>::unlockSlow):
1416
1417 2018-05-25  Michael Saboff  <msaboff@apple.com>
1418
1419         JavaScriptCore: Disable 32-bit JIT on Windows
1420         https://bugs.webkit.org/show_bug.cgi?id=185989
1421
1422         Reviewed by Saam Barati.
1423
1424         * wtf/Platform.h:
1425
1426 2018-05-24  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1427
1428         [GTK][WPE] Memory pressure monitor doesn't reliable notify all the subprocesses
1429         https://bugs.webkit.org/show_bug.cgi?id=184261
1430
1431         Reviewed by Carlos Garcia Campos.
1432
1433         Receive the memory pressure notifications from the UIProcess memory monitor via WebKit IPC.
1434
1435         * wtf/MemoryPressureHandler.h:
1436         * wtf/linux/MemoryPressureHandlerLinux.cpp:
1437         (WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
1438         (WTF::MemoryPressureHandler::install):
1439         (WTF::MemoryPressureHandler::uninstall):
1440
1441 2018-05-24  Jiewen Tan  <jiewen_tan@apple.com>
1442
1443         Adopt SecKeyProxy SPI in certificate based challenge response code
1444         https://bugs.webkit.org/show_bug.cgi?id=185848
1445         <rdar://problem/34586181>
1446
1447         Reviewed by Alex Christensen.
1448
1449         Add a condition macro to determine if SecKeyProxy SPI exists.
1450
1451         * wtf/Platform.h:
1452
1453 2018-05-23  Eric Carlson  <eric.carlson@apple.com>
1454
1455         Avoid loading AVFoundation to check supported MIME types if possible
1456         https://bugs.webkit.org/show_bug.cgi?id=185839
1457         <rdar://problem/40182010>
1458
1459         Reviewed by Jer Noble.
1460
1461         * wtf/cocoa/SoftLinking.h: Add SOFT_LINK_FRAMEWORK_OPTIONAL_PREFLIGHT.
1462
1463 2018-05-23  Filip Pizlo  <fpizlo@apple.com>
1464
1465         Speed up JetStream/base64
1466         https://bugs.webkit.org/show_bug.cgi?id=185914
1467
1468         Reviewed by Michael Saboff.
1469         
1470         Make Vector<>::append ALWAYS_INLINE.
1471
1472         * wtf/Vector.h:
1473         (WTF::Vector::append):
1474         (WTF::minCapacity>::expandCapacity):
1475         (WTF::minCapacity>::append):
1476         (WTF::minCapacity>::tryAppend):
1477
1478 2018-05-23  Michael Saboff  <msaboff@apple.com>
1479
1480         Date.parse() doesn't properly handle input outside of ES Spec limits
1481         https://bugs.webkit.org/show_bug.cgi?id=185868
1482
1483         Reviewed by Mark Lam.
1484
1485         Clamped date creation to +/-100,000,000 days relative to midnight at the beginning
1486         of 01 January, 1970 UTC as per ecma262/#sec-time-values-and-time-range and
1487         ecma262/#sec-date-time-string-format.
1488
1489         * wtf/DateMath.cpp:
1490         (WTF::ymdhmsToSeconds):
1491         (WTF::parseES5DateFromNullTerminatedCharacters):
1492
1493 2018-05-22  Michael Catanzaro  <mcatanzaro@igalia.com>
1494
1495         Prohibit shrinking the FastBitVector
1496         https://bugs.webkit.org/show_bug.cgi?id=181020
1497
1498         Reviewed by Oliver Hunt.
1499
1500         Prohibit shrinking the FastBitVector. It's not prepared for this and the current usage does
1501         not require it.
1502
1503         * wtf/FastBitVector.cpp:
1504         (WTF::FastBitVectorWordOwner::resizeSlow):
1505
1506 2018-05-22  Mark Lam  <mark.lam@apple.com>
1507
1508         StringImpl utf8 conversion should not fail silently.
1509         https://bugs.webkit.org/show_bug.cgi?id=185888
1510         <rdar://problem/40464506>
1511
1512         Reviewed by Filip Pizlo.
1513
1514         * WTF.xcodeproj/project.pbxproj:
1515         * wtf/CMakeLists.txt:
1516         * wtf/PrintStream.cpp:
1517         (WTF::printExpectedCStringHelper):
1518         (WTF::printInternal):
1519         * wtf/text/StringImpl.cpp:
1520         (WTF::StringImpl::utf8Impl):
1521         (WTF::StringImpl::utf8ForCharacters):
1522         (WTF::StringImpl::tryUtf8ForRange const):
1523         (WTF::StringImpl::tryUtf8 const):
1524         (WTF::StringImpl::utf8 const):
1525         (WTF::StringImpl::utf8ForRange const): Deleted.
1526         * wtf/text/StringImpl.h:
1527         * wtf/text/StringView.cpp:
1528         (WTF::StringView::tryUtf8 const):
1529         (WTF::StringView::utf8 const):
1530         * wtf/text/StringView.h:
1531         * wtf/text/UTF8ConversionError.h: Added.
1532         * wtf/text/WTFString.cpp:
1533         (WTF::String::tryUtf8 const):
1534         (WTF::String::utf8 const):
1535         * wtf/text/WTFString.h:
1536
1537 2018-05-22  Chris Dumez  <cdumez@apple.com>
1538
1539         Regression(AsyncPolicyDelegates): Box.app login Window is blank
1540         https://bugs.webkit.org/show_bug.cgi?id=185832
1541         <rdar://problem/40307871>
1542
1543         Reviewed by Geoffrey Garen.
1544
1545         Moved WeakObjCPtr.h from WebKit2 to WTF with RetainPtr.h, so that it can be used
1546         in WebKitLegacy code.
1547
1548         * WTF.xcodeproj/project.pbxproj:
1549         * wtf/WeakObjCPtr.h: Renamed from Source/WebKit/Shared/mac/WeakObjCPtr.h.
1550
1551 2018-05-22  Filip Pizlo  <fpizlo@apple.com>
1552
1553         Get rid of TLCs
1554         https://bugs.webkit.org/show_bug.cgi?id=185846
1555
1556         Rubber stamped by Geoffrey Garen.
1557
1558         * wtf/Platform.h:
1559
1560 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
1561
1562         Unreviewed, rolling out r232052.
1563
1564         Breaks internal builds.
1565
1566         Reverted changeset:
1567
1568         "Use more C++17"
1569         https://bugs.webkit.org/show_bug.cgi?id=185176
1570         https://trac.webkit.org/changeset/232052
1571
1572 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1573
1574         Use more C++17
1575         https://bugs.webkit.org/show_bug.cgi?id=185176
1576
1577         Reviewed by JF Bastien.
1578
1579         * Configurations/Base.xcconfig:
1580         * wtf/StdLibExtras.h:
1581
1582 2018-05-18  Filip Pizlo  <fpizlo@apple.com>
1583
1584         DFG should inline InstanceOf ICs
1585         https://bugs.webkit.org/show_bug.cgi?id=185695
1586
1587         Reviewed by Yusuke Suzuki.
1588         
1589         I found myself needing a way to represent bottom/false/true/top, so I created it.
1590
1591         * WTF.xcodeproj/project.pbxproj:
1592         * wtf/BooleanLattice.h: Added.
1593         (WTF::lubBooleanLattice):
1594         (WTF::printInternal):
1595         * wtf/CMakeLists.txt:
1596
1597 2018-05-17  Jiewen Tan  <jiewen_tan@apple.com>
1598
1599         Convert CertificateInfo into Credential in UI Process instead of Networking Process
1600         https://bugs.webkit.org/show_bug.cgi?id=185662
1601         <rdar://problem/40275561>
1602
1603         Reviewed by Alex Christensen.
1604
1605         Remove marco HAVE_SEC_IDENTITY since it is no longer useful.
1606
1607         * wtf/Platform.h:
1608
1609 2018-05-17  Zalan Bujtas  <zalan@apple.com>
1610
1611         Add ASSERT_NOT_IMPLEMENTED_YET() macro
1612         https://bugs.webkit.org/show_bug.cgi?id=185713
1613
1614         Reviewed by Antti Koivisto.
1615
1616         To mark unimplemented code paths.
1617
1618         * wtf/Assertions.cpp:
1619         * wtf/Assertions.h:
1620
1621 2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
1622
1623         Add support for Intl NumberFormat formatToParts
1624         https://bugs.webkit.org/show_bug.cgi?id=185375
1625
1626         Reviewed by Yusuke Suzuki.
1627
1628         Add flag for NumberFormat formatToParts.
1629
1630         * wtf/FeatureDefines.h:
1631
1632 2018-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1633
1634         Unreviewed, follow-up after r231762
1635         https://bugs.webkit.org/show_bug.cgi?id=185589
1636
1637         Addresses darin's suggestions to improve timeClip.
1638
1639         * wtf/DateMath.cpp:
1640         (WTF::timeClip):
1641
1642 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
1643
1644         [Win] Use C++17 in MSVC
1645         https://bugs.webkit.org/show_bug.cgi?id=185232
1646
1647         Reviewed by Alex Christensen.
1648
1649         Disable some WebKit defined C++17 features for MSVC.
1650
1651         * wtf/StdLibExtras.h:
1652
1653 2018-05-14  Yusuke Suzuki  <utatane.tea@gmail.com>
1654
1655         [JSC] timeClip(-0) should produce +0
1656         https://bugs.webkit.org/show_bug.cgi?id=185589
1657
1658         Reviewed by Saam Barati.
1659
1660         According to the spec[1], timeClip(-0) should produce +0.
1661         We achieve this by adding 0.0 to the result of trunc(t).
1662
1663         [1]: https://tc39.github.io/ecma262/#sec-timeclip
1664
1665         * wtf/DateMath.cpp:
1666         (WTF::timeClip):
1667
1668 2018-05-13  Geoffrey Garen  <ggaren@apple.com>
1669
1670         Simplified Mach exception handling
1671         https://bugs.webkit.org/show_bug.cgi?id=185595
1672
1673         Reviewed by Keith Miller.
1674
1675         * wtf/threads/Signals.cpp:
1676         (WTF::startMachExceptionHandlerThread): Use mach_msg_server_once instead
1677         of duplicating its functionality. Separate error handling logic from
1678         program logic to help program logic stand out. Use
1679         DISPATCH_TARGET_QUEUE_* instead of explicitly fetching a queue.
1680
1681         Also, we don't need the high priority queue. The kernel donates a
1682         priority voucher from the exception thread to the receiver thread, and
1683         mach_msg_server_once takes care to forward that voucher.
1684
1685 2018-05-14  Zan Dobersek  <zdobersek@igalia.com>
1686
1687         [GTK] REGRESSION(r231170) Build broken with Clang 5.0
1688         https://bugs.webkit.org/show_bug.cgi?id=185198
1689
1690         Reviewed by Michael Catanzaro.
1691
1692         * wtf/Compiler.h:
1693         * wtf/Forward.h: Delete the std::optional forward declaration that is
1694         potentially incompatible with definition provided by the standard library.
1695         * wtf/Hasher.h:
1696         * wtf/StdLibExtras.h: In addition to the remaining C++14 configurations,
1697         also use custom std::in_place_t implementation when compiling with
1698         libstdc++ 6.x, which doesn't provide its own.
1699
1700 2018-05-13  Filip Pizlo  <fpizlo@apple.com>
1701
1702         Disable pointer poisoning
1703         https://bugs.webkit.org/show_bug.cgi?id=185586
1704
1705         Reviewed by Yusuke Suzuki.
1706         
1707         This seems like a 0.3% speed-up on microbenchmarks. It seems like it may be a small speed-up on
1708         other tests, too.
1709
1710         * wtf/Platform.h:
1711
1712 2018-05-11  Chris Dumez  <cdumez@apple.com>
1713
1714         REGRESSION (async policy delegate): Revoking an object URL immediately after triggering download breaks file download
1715         https://bugs.webkit.org/show_bug.cgi?id=185531
1716         <rdar://problem/39909589>
1717
1718         Reviewed by Geoffrey Garen.
1719
1720         Add a default constructor for CompletionHandlerCallingScope, for convenience.
1721
1722         * wtf/CompletionHandler.h:
1723
1724 2018-05-11  Saam Barati  <sbarati@apple.com>
1725
1726         Don't allocate value profiles when the JIT is disabled
1727         https://bugs.webkit.org/show_bug.cgi?id=185525
1728
1729         Reviewed by Michael Saboff.
1730
1731         * wtf/RefCountedArray.h:
1732         (WTF::RefCountedArray::RefCountedArray):
1733
1734 2018-05-10  Tim Horton  <timothy_horton@apple.com>
1735
1736         Fix the build after r231393
1737         https://bugs.webkit.org/show_bug.cgi?id=185519
1738         <rdar://problem/40131741>
1739
1740         Reviewed by Simon Fraser.
1741
1742         * wtf/Platform.h:
1743
1744 2018-05-09  Michael Catanzaro  <mcatanzaro@igalia.com>
1745
1746         [WPE] Build cleanly with GCC 8 and ICU 60
1747         https://bugs.webkit.org/show_bug.cgi?id=185462
1748
1749         Reviewed by Carlos Alberto Lopez Perez.
1750
1751         * wtf/HashTable.h:
1752         (WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
1753         is probably safe enough, since it's for an empty bucket.
1754         * wtf/StdLibExtras.h:
1755         (WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.
1756         * wtf/Vector.h: Ditto, all uses are safe.
1757         * wtf/glib/WTFGType.h: Silence -Wcast-function-type.
1758
1759 2018-05-09  Yusuke Suzuki  <utatane.tea@gmail.com>
1760
1761         [ARMv7] Drop ARMv7 disassembler in favor of capstone
1762         https://bugs.webkit.org/show_bug.cgi?id=185423
1763
1764         Reviewed by Michael Catanzaro.
1765
1766         Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.
1767
1768         * wtf/Platform.h:
1769
1770 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
1771
1772         [JSC][GTK][JSCONLY] Use capstone disassembler
1773         https://bugs.webkit.org/show_bug.cgi?id=185283
1774
1775         Reviewed by Michael Catanzaro.
1776
1777         Add USE_CAPSTONE used for MIPS and ARM.
1778
1779         * wtf/Platform.h:
1780
1781 2018-05-09  Antti Koivisto  <antti@apple.com>
1782
1783         Add OptionSet::operator& and operator bool
1784         https://bugs.webkit.org/show_bug.cgi?id=185306
1785
1786         Reviewed by Anders Carlsson.
1787
1788         This is primarily to allow writing
1789
1790             if (options & Option:A)
1791
1792         instead of
1793
1794             if (options.contains(Option:A))
1795
1796         This is consistent with other OptionSet operators.
1797
1798         * wtf/OptionSet.h:
1799         (WTF::OptionSet::operator bool):
1800         (WTF::OptionSet::operator&):
1801
1802         Also remove T versions of operator| and operator-, they are not needed due to
1803         implicit conversion from T to OptionSet<T>.
1804
1805 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
1806
1807         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
1808         https://bugs.webkit.org/show_bug.cgi?id=185365
1809
1810         Reviewed by Saam Barati.
1811         
1812         Fix some inlining goof-ups.
1813         
1814         Rolling back in after fixing cloop build.
1815
1816         * wtf/TinyPtrSet.h:
1817         (WTF::TinyPtrSet::add):
1818         (WTF::TinyPtrSet::merge):
1819         (WTF::TinyPtrSet::addOutOfLine):
1820         (WTF::TinyPtrSet::mergeOtherOutOfLine):
1821
1822 2018-05-08  Dean Jackson  <dino@apple.com>
1823
1824         Use thumbnails in System Previews
1825         https://bugs.webkit.org/show_bug.cgi?id=185397
1826         <rdar://problem/40039376>
1827
1828         Reviewed by Jon Lee.
1829
1830         SYSTEM_PREVIEW is only available on some platforms.
1831
1832         * wtf/Platform.h:
1833
1834 2018-05-08  Ryan Haddad  <ryanhaddad@apple.com>
1835
1836         Unreviewed, rolling out r231468.
1837
1838         Broke the CLoop build
1839
1840         Reverted changeset:
1841
1842         "InPlaceAbstractState::beginBasicBlock shouldn't have to clear
1843         any abstract values"
1844         https://bugs.webkit.org/show_bug.cgi?id=185365
1845         https://trac.webkit.org/changeset/231468
1846
1847 2018-05-07  Yusuke Suzuki  <utatane.tea@gmail.com>
1848
1849         [JSCONLY] Enable ARMv7 DFG
1850         https://bugs.webkit.org/show_bug.cgi?id=185415
1851
1852         Reviewed by Mark Lam.
1853
1854         Enable ARMv7 DFG JIT by default on Linux and FreeBSD.
1855
1856         * wtf/Platform.h:
1857
1858 2018-05-06  Filip Pizlo  <fpizlo@apple.com>
1859
1860         InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
1861         https://bugs.webkit.org/show_bug.cgi?id=185365
1862
1863         Reviewed by Saam Barati.
1864         
1865         Fix some inlining goof-ups.
1866
1867         * wtf/TinyPtrSet.h:
1868         (WTF::TinyPtrSet::add):
1869         (WTF::TinyPtrSet::merge):
1870         (WTF::TinyPtrSet::addOutOfLine):
1871         (WTF::TinyPtrSet::mergeOtherOutOfLine):
1872
1873 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
1874
1875         [WTF] Embed default atomic string table in Thread
1876         https://bugs.webkit.org/show_bug.cgi?id=185349
1877
1878         Reviewed by Darin Adler.
1879
1880         Do not need to allocate AtomicStringTable separate from Thread
1881         since the table's lifetime is completely the same as Thread.
1882
1883         This patch just embeds it as a data member of Thread.
1884
1885         * wtf/Threading.cpp:
1886         (WTF::Thread::initializeInThread):
1887         (WTF::Thread::didExit):
1888         * wtf/Threading.h:
1889         * wtf/text/AtomicStringTable.cpp:
1890         (WTF::AtomicStringTable::create): Deleted.
1891         (WTF::AtomicStringTable::destroy): Deleted.
1892         * wtf/text/AtomicStringTable.h:
1893
1894 2018-05-06  Yusuke Suzuki  <utatane.tea@gmail.com>
1895
1896         [WTF] Use static initializers for WTF::Mutex and WTF::ThreadCondition
1897         https://bugs.webkit.org/show_bug.cgi?id=185361
1898
1899         Reviewed by Sam Weinig.
1900
1901         Use static initializers for WTF::Mutex and WTF::ThreadCondition to make
1902         constructors of them simple and constexpr.
1903
1904         * wtf/ThreadingPrimitives.h:
1905         * wtf/ThreadingPthreads.cpp:
1906         (WTF::Mutex::Mutex): Deleted.
1907         (WTF::ThreadCondition::ThreadCondition): Deleted.
1908         * wtf/ThreadingWin.cpp:
1909         (WTF::Mutex::Mutex): Deleted.
1910         (WTF::ThreadCondition::ThreadCondition): Deleted.
1911
1912 2018-05-04  Tim Horton  <timothy_horton@apple.com>
1913
1914         Shift to a lower-level framework for simplifying URLs
1915         https://bugs.webkit.org/show_bug.cgi?id=185334
1916
1917         Reviewed by Dan Bernstein.
1918
1919         * wtf/Platform.h:
1920
1921 2018-05-04  Eric Carlson  <eric.carlson@apple.com>
1922
1923         Log media time range as JSON
1924         https://bugs.webkit.org/show_bug.cgi?id=185321
1925         <rdar://problem/39986746>
1926
1927         Reviewed by Youenn Fablet.
1928
1929         * wtf/MediaTime.cpp:
1930         (WTF::toJSONStringInternal): Extract guts of MediaTime::toJSONString to this static function
1931         so it can be used by MediaTimeRange::toJSONString as well.
1932         (WTF::MediaTime::toJSONString const):
1933         (WTF::MediaTimeRange::toJSONString const):
1934         * wtf/MediaTime.h:
1935
1936 2018-05-04  Antti Koivisto  <antti@apple.com>
1937
1938         OptionsSet initializer list constructor should be constexpr
1939         https://bugs.webkit.org/show_bug.cgi?id=185298
1940
1941         Reviewed by Anders Carlsson.
1942
1943         * wtf/OptionSet.h:
1944         (WTF::OptionSet::OptionSet):
1945
1946 2018-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>
1947
1948         Use default std::optional if it is provided
1949         https://bugs.webkit.org/show_bug.cgi?id=185159
1950
1951         Reviewed by Michael Catanzaro.
1952
1953         * wtf/Expected.h:
1954         * wtf/Optional.h:
1955         Do not use <optional> for clang currently.
1956         (WTF::valueOrCompute):
1957
1958 2018-05-03  Filip Pizlo  <fpizlo@apple.com>
1959
1960         Strings should not be allocated in a gigacage
1961         https://bugs.webkit.org/show_bug.cgi?id=185218
1962
1963         Reviewed by Saam Barati.
1964         
1965         * WTF.xcodeproj/project.pbxproj:
1966         * wtf/Deque.h:
1967         * wtf/Forward.h:
1968         * wtf/Gigacage.h:
1969         (Gigacage::name):
1970         (Gigacage::basePtr):
1971         * wtf/Vector.h:
1972         (WTF::VectorBufferBase::allocateBuffer):
1973         (WTF::VectorBufferBase::tryAllocateBuffer):
1974         (WTF::VectorBufferBase::reallocateBuffer):
1975         (WTF::VectorBufferBase::deallocateBuffer):
1976         (WTF::minCapacity>::Vector):
1977         (WTF::=):
1978         (WTF::minCapacity>::contains const):
1979         (WTF::minCapacity>::findMatching const):
1980         (WTF::minCapacity>::find const):
1981         (WTF::minCapacity>::reverseFind const):
1982         (WTF::minCapacity>::appendIfNotContains):
1983         (WTF::minCapacity>::fill):
1984         (WTF::minCapacity>::appendRange):
1985         (WTF::minCapacity>::expandCapacity):
1986         (WTF::minCapacity>::tryExpandCapacity):
1987         (WTF::minCapacity>::resize):
1988         (WTF::minCapacity>::resizeToFit):
1989         (WTF::minCapacity>::shrink):
1990         (WTF::minCapacity>::grow):
1991         (WTF::minCapacity>::asanSetInitialBufferSizeTo):
1992         (WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
1993         (WTF::minCapacity>::asanBufferSizeWillChangeTo):
1994         (WTF::minCapacity>::reserveCapacity):
1995         (WTF::minCapacity>::tryReserveCapacity):
1996         (WTF::minCapacity>::reserveInitialCapacity):
1997         (WTF::minCapacity>::shrinkCapacity):
1998         (WTF::minCapacity>::append):
1999         (WTF::minCapacity>::tryAppend):
2000         (WTF::minCapacity>::constructAndAppend):
2001         (WTF::minCapacity>::tryConstructAndAppend):
2002         (WTF::minCapacity>::appendSlowCase):
2003         (WTF::minCapacity>::constructAndAppendSlowCase):
2004         (WTF::minCapacity>::tryConstructAndAppendSlowCase):
2005         (WTF::minCapacity>::uncheckedAppend):
2006         (WTF::minCapacity>::appendVector):
2007         (WTF::minCapacity>::insert):
2008         (WTF::minCapacity>::insertVector):
2009         (WTF::minCapacity>::remove):
2010         (WTF::minCapacity>::removeFirst):
2011         (WTF::minCapacity>::removeFirstMatching):
2012         (WTF::minCapacity>::removeAll):
2013         (WTF::minCapacity>::removeAllMatching):
2014         (WTF::minCapacity>::reverse):
2015         (WTF::minCapacity>::map const):
2016         (WTF::minCapacity>::releaseBuffer):
2017         (WTF::minCapacity>::checkConsistency):
2018         (WTF::swap):
2019         (WTF::operator==):
2020         (WTF::operator!=):
2021         (WTF::removeRepeatedElements):
2022         (WTF::Malloc>::Vector): Deleted.
2023         (WTF::Malloc>::contains const): Deleted.
2024         (WTF::Malloc>::findMatching const): Deleted.
2025         (WTF::Malloc>::find const): Deleted.
2026         (WTF::Malloc>::reverseFind const): Deleted.
2027         (WTF::Malloc>::appendIfNotContains): Deleted.
2028         (WTF::Malloc>::fill): Deleted.
2029         (WTF::Malloc>::appendRange): Deleted.
2030         (WTF::Malloc>::expandCapacity): Deleted.
2031         (WTF::Malloc>::tryExpandCapacity): Deleted.
2032         (WTF::Malloc>::resize): Deleted.
2033         (WTF::Malloc>::resizeToFit): Deleted.
2034         (WTF::Malloc>::shrink): Deleted.
2035         (WTF::Malloc>::grow): Deleted.
2036         (WTF::Malloc>::asanSetInitialBufferSizeTo): Deleted.
2037         (WTF::Malloc>::asanSetBufferSizeToFullCapacity): Deleted.
2038         (WTF::Malloc>::asanBufferSizeWillChangeTo): Deleted.
2039         (WTF::Malloc>::reserveCapacity): Deleted.
2040         (WTF::Malloc>::tryReserveCapacity): Deleted.
2041         (WTF::Malloc>::reserveInitialCapacity): Deleted.
2042         (WTF::Malloc>::shrinkCapacity): Deleted.
2043         (WTF::Malloc>::append): Deleted.
2044         (WTF::Malloc>::tryAppend): Deleted.
2045         (WTF::Malloc>::constructAndAppend): Deleted.
2046         (WTF::Malloc>::tryConstructAndAppend): Deleted.
2047         (WTF::Malloc>::appendSlowCase): Deleted.
2048         (WTF::Malloc>::constructAndAppendSlowCase): Deleted.
2049         (WTF::Malloc>::tryConstructAndAppendSlowCase): Deleted.
2050         (WTF::Malloc>::uncheckedAppend): Deleted.
2051         (WTF::Malloc>::appendVector): Deleted.
2052         (WTF::Malloc>::insert): Deleted.
2053         (WTF::Malloc>::insertVector): Deleted.
2054         (WTF::Malloc>::remove): Deleted.
2055         (WTF::Malloc>::removeFirst): Deleted.
2056         (WTF::Malloc>::removeFirstMatching): Deleted.
2057         (WTF::Malloc>::removeAll): Deleted.
2058         (WTF::Malloc>::removeAllMatching): Deleted.
2059         (WTF::Malloc>::reverse): Deleted.
2060         (WTF::Malloc>::map const): Deleted.
2061         (WTF::Malloc>::releaseBuffer): Deleted.
2062         (WTF::Malloc>::checkConsistency): Deleted.
2063         * wtf/text/AtomicStringImpl.h:
2064         * wtf/text/CString.cpp:
2065         (WTF::CStringBuffer::createUninitialized):
2066         * wtf/text/CString.h:
2067         * wtf/text/StringBuffer.h:
2068         (WTF::StringBuffer::StringBuffer):
2069         (WTF::StringBuffer::~StringBuffer):
2070         (WTF::StringBuffer::resize):
2071         * wtf/text/StringImpl.cpp:
2072         (WTF::StringImpl::~StringImpl):
2073         (WTF::StringImpl::destroy):
2074         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2075         (WTF::StringImpl::reallocateInternal):
2076         (WTF::StringImpl::releaseAssertCaged const): Deleted.
2077         * wtf/text/StringImpl.h:
2078         (WTF::StringImpl::createSubstringSharingImpl):
2079         (WTF::StringImpl::tryCreateUninitialized):
2080         (WTF::StringImpl::adopt):
2081         (WTF::StringImpl::assertCaged const): Deleted.
2082         * wtf/text/StringMalloc.cpp: Removed.
2083         * wtf/text/StringMalloc.h: Removed.
2084         * wtf/text/StringVector.h: Removed.
2085         * wtf/text/SymbolImpl.h:
2086         * wtf/text/UniquedStringImpl.h:
2087         * wtf/text/WTFString.h:
2088         (WTF::String::adopt):
2089         (WTF::String::assertCaged const): Deleted.
2090         (WTF::String::releaseAssertCaged const): Deleted.
2091
2092 2018-05-03  Wenson Hsieh  <wenson_hsieh@apple.com>
2093
2094         Ads in NYTimes app are shifted downwards by the scroll view's top content inset
2095         https://bugs.webkit.org/show_bug.cgi?id=185251
2096         <rdar://problem/39062357>
2097
2098         Reviewed by Tim Horton.
2099
2100         Add a new DYLD_IOS_VERSION macro definition for previous or non-internal SDKs.
2101
2102         * wtf/spi/darwin/dyldSPI.h:
2103
2104 2018-05-03  Ryan Haddad  <ryanhaddad@apple.com>
2105
2106         Unreviewed, rolling out r231197.
2107
2108         The test added with this change crashes on the 32-bit JSC bot.
2109
2110         Reverted changeset:
2111
2112         "Correctly detect string overflow when using the 'Function'
2113         constructor"
2114         https://bugs.webkit.org/show_bug.cgi?id=184883
2115         https://trac.webkit.org/changeset/231197
2116
2117 2018-05-03  Commit Queue  <commit-queue@webkit.org>
2118
2119         Unreviewed, rolling out r231223 and r231288.
2120         https://bugs.webkit.org/show_bug.cgi?id=185256
2121
2122         The change in r231223 breaks internal builds, and r231288 is a
2123         dependent change. (Requested by ryanhaddad on #webkit).
2124
2125         Reverted changesets:
2126
2127         "Use default std::optional if it is provided"
2128         https://bugs.webkit.org/show_bug.cgi?id=185159
2129         https://trac.webkit.org/changeset/231223
2130
2131         "Use pointer instead of
2132         std::optional<std::reference_wrapper<>>"
2133         https://bugs.webkit.org/show_bug.cgi?id=185186
2134         https://trac.webkit.org/changeset/231288
2135
2136 2018-05-02  Commit Queue  <commit-queue@webkit.org>
2137
2138         Unreviewed, rolling out r231251.
2139         https://bugs.webkit.org/show_bug.cgi?id=185229
2140
2141         __cpp_lib_optional should be used after including <optional>
2142         since it is defined in <optional> (Requested by yusukesuzuki
2143         on #webkit).
2144
2145         Reverted changeset:
2146
2147         "Follow-up build fix for r231223"
2148         https://bugs.webkit.org/show_bug.cgi?id=185159
2149         https://trac.webkit.org/changeset/231251
2150
2151 2018-05-02  Jonathan Bedard  <jbedard@apple.com>
2152
2153         Follow-up build fix for r231223
2154         https://bugs.webkit.org/show_bug.cgi?id=185159
2155         <rdar://problem/39891074>
2156
2157         Unreviewed build fix.
2158
2159         We should be consistent about when we include <optional> vs define our own.
2160
2161         * wtf/Optional.h:
2162
2163 2018-05-02  Jer Noble  <jer.noble@apple.com>
2164
2165         Enable HAVE_AVKIT for the MINIMAL_SIMULATOR
2166         https://bugs.webkit.org/show_bug.cgi?id=185183
2167
2168         Reviewed by Daniel Bates.
2169
2170         * wtf/Platform.h:
2171
2172 2018-05-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2173
2174         Use default std::optional if it is provided
2175         https://bugs.webkit.org/show_bug.cgi?id=185159
2176
2177         Reviewed by JF Bastien.
2178
2179         Now C++17 flag is enabled. It means that any standard libraries can use <optional> internally.
2180         If we define std::optional regardless of the existence of the standard library's <optional>,
2181         it causes compile errors. For example, in GCC 7 (specifically GCC 7.3.0) environment,
2182         <optional> is included in <unordered_map>.
2183         We do not define std::optional in WebKit side if <optional> is offered.
2184
2185         And we also remove std::optional<T&> use since this is not accepted in C++17. Use
2186         std::optional<std::reference_wrapper<T>> instead.
2187
2188         * wtf/Expected.h:
2189         constexpr does not mean const in C++17.
2190
2191         * wtf/Optional.h:
2192         Do not define std::optional if <optional> is provided.
2193
2194         (WTF::valueOrCompute):
2195
2196 2018-05-01  Robin Morisset  <rmorisset@apple.com>
2197
2198         Correctly detect string overflow when using the 'Function' constructor
2199         https://bugs.webkit.org/show_bug.cgi?id=184883
2200         <rdar://problem/36320331>
2201
2202         Reviewed by Filip Pizlo.
2203
2204         I added new tryAppend methods alongside the old append methods in StringBuilder, that return a boolean (true means success, false means an overflow happened).
2205         I made new methods instead of just adapting the existing ones (and reverted such a change on appendQuotedJSONString) so that callers that rely on the old behaviour (a hard CRASH() on overflow) don't silently start failing.
2206
2207         * wtf/text/StringBuilder.cpp:
2208         (WTF::StringBuilder::allocateBufferUpConvert):
2209         (WTF::StringBuilder::tryAllocateBufferUpConvert):
2210         (WTF::StringBuilder::appendUninitialized):
2211         (WTF::StringBuilder::append):
2212         (WTF::StringBuilder::tryAppend):
2213         * wtf/text/StringBuilder.h:
2214         (WTF::StringBuilder::tryAppend):
2215         (WTF::StringBuilder::append):
2216         (WTF::StringBuilder::tryAppendLiteral):
2217         * wtf/text/StringBuilderJSON.cpp:
2218         (WTF::StringBuilder::appendQuotedJSONString):
2219         (WTF::StringBuilder::tryAppendQuotedJSONString):
2220
2221 2018-04-30  Mark Lam  <mark.lam@apple.com>
2222
2223         Apply PtrTags to the MetaAllocator and friends.
2224         https://bugs.webkit.org/show_bug.cgi?id=185110
2225         <rdar://problem/39533895>
2226
2227         Reviewed by Saam Barati.
2228
2229         1. Introduce a MetaAllocatorPtr smart pointer to do pointer tagging.
2230         2. Use MetaAllocatorPtr in MetaAllocator and MetaAllocatorHandle.
2231
2232         * WTF.xcodeproj/project.pbxproj:
2233         * wtf/CMakeLists.txt:
2234         * wtf/MetaAllocator.cpp:
2235         (WTF::MetaAllocator::release):
2236         (WTF::MetaAllocatorHandle::MetaAllocatorHandle):
2237         (WTF::MetaAllocatorHandle::shrink):
2238         (WTF::MetaAllocatorHandle::dump const):
2239         (WTF::MetaAllocator::allocate):
2240         (WTF::MetaAllocator::findAndRemoveFreeSpace):
2241         (WTF::MetaAllocator::addFreeSpaceFromReleasedHandle):
2242         (WTF::MetaAllocator::addFreshFreeSpace):
2243         (WTF::MetaAllocator::debugFreeSpaceSize):
2244         (WTF::MetaAllocator::addFreeSpace):
2245         (WTF::MetaAllocator::allocFreeSpaceNode):
2246         * wtf/MetaAllocator.h:
2247         (WTF::MetaAllocatorTracker::find):
2248         (WTF::MetaAllocator::FreeSpaceNode::FreeSpaceNode):
2249         (WTF::MetaAllocator::FreeSpaceNode::sizeInBytes):
2250         (WTF::MetaAllocator::FreeSpaceNode::key):
2251         * wtf/MetaAllocatorHandle.h:
2252         (WTF::MetaAllocatorHandle::start const):
2253         (WTF::MetaAllocatorHandle::end const):
2254         (WTF::MetaAllocatorHandle::startAsInteger const):
2255         (WTF::MetaAllocatorHandle::endAsInteger const):
2256         (WTF::MetaAllocatorHandle::sizeInBytes const):
2257         (WTF::MetaAllocatorHandle::containsIntegerAddress const):
2258         (WTF::MetaAllocatorHandle::key):
2259         * wtf/MetaAllocatorPtr.h: Added.
2260         (WTF::MetaAllocatorPtr::MetaAllocatorPtr):
2261         (WTF::MetaAllocatorPtr:: const):
2262         (WTF::MetaAllocatorPtr::operator bool const):
2263         (WTF::MetaAllocatorPtr::operator! const):
2264         (WTF::MetaAllocatorPtr::operator== const):
2265         (WTF::MetaAllocatorPtr::operator!= const):
2266         (WTF::MetaAllocatorPtr::operator+ const):
2267         (WTF::MetaAllocatorPtr::operator- const):
2268         (WTF::MetaAllocatorPtr::operator+=):
2269         (WTF::MetaAllocatorPtr::operator-=):
2270         (WTF::MetaAllocatorPtr::isEmptyValue const):
2271         (WTF::MetaAllocatorPtr::isDeletedValue const):
2272         (WTF::MetaAllocatorPtr::hash const):
2273         (WTF::MetaAllocatorPtr::emptyValue):
2274         (WTF::MetaAllocatorPtr::deletedValue):
2275         (WTF::MetaAllocatorPtrHash::hash):
2276         (WTF::MetaAllocatorPtrHash::equal):
2277         * wtf/PtrTag.h:
2278
2279 2018-04-30  JF Bastien  <jfbastien@apple.com>
2280
2281         Use some C++17 features
2282         https://bugs.webkit.org/show_bug.cgi?id=185135
2283
2284         Reviewed by Alex Christensen.
2285
2286         * wtf/StdLibExtras.h: libstdc++ doesn't say it's C++17 when it
2287         defines std::conjunction. Use the feature test macro instead.
2288
2289 2018-04-30  Yusuke Suzuki  <utatane.tea@gmail.com>
2290
2291         Use WordLock instead of std::mutex for Threading
2292         https://bugs.webkit.org/show_bug.cgi?id=185121
2293
2294         Reviewed by Geoffrey Garen.
2295
2296         Before r231151, WordLock depends on ThreadSpecific. It means that our Threading implementation
2297         cannot use this lock since Threading primitives could touch these locks after ThreadSpecific
2298         for that WordLock is destroyed.
2299
2300         Now WordLock is changed not to use ThreadSpecific. So it does not depend on our Threading
2301         mechanism and our Threading can start using WordLock internally.
2302
2303         This patch changes WTF::Thread and WTF::ThreadGroup to use WordLock instead of std::mutex.
2304
2305         And add constexpr to explicitly describe that Lock, Condition, and WordLock constructors are constexpr.
2306
2307         * wtf/Condition.h:
2308         * wtf/Lock.h:
2309         * wtf/ThreadGroup.h:
2310         (WTF::ThreadGroup::getLock):
2311         * wtf/Threading.cpp:
2312         (WTF::Thread::didExit):
2313         (WTF::Thread::addToThreadGroup):
2314         (WTF::Thread::removeFromThreadGroup):
2315         * wtf/Threading.h:
2316         * wtf/ThreadingPthreads.cpp:
2317         (WTF::Thread::changePriority):
2318         (WTF::Thread::waitForCompletion):
2319         (WTF::Thread::detach):
2320         (WTF::Thread::signal):
2321         (WTF::Thread::establishPlatformSpecificHandle):
2322         * wtf/ThreadingWin.cpp:
2323         (WTF::Thread::changePriority):
2324         (WTF::Thread::waitForCompletion):
2325         (WTF::Thread::detach):
2326         (WTF::Thread::establishPlatformSpecificHandle):
2327         (WTF::Thread::initializeTLSKey):
2328         (WTF::Thread::currentDying):
2329         (WTF::Thread::get):
2330         (WTF::Thread::initializeTLS):
2331         (WTF::Thread::destructTLS):
2332         (WTF::threadMapMutex): Deleted.
2333         * wtf/WordLock.h:
2334
2335 2018-04-29  Michael Catanzaro  <mcatanzaro@igalia.com>
2336
2337         [CMake] Require GCC 6
2338         https://bugs.webkit.org/show_bug.cgi?id=184985
2339
2340         Reviewed by Alex Christensen.
2341
2342         Stop enforcing GCC version in Compiler.h. It's better to do this in the build system. And I
2343         don't like having the same check in two different places.
2344
2345         * wtf/Compiler.h:
2346
2347 2018-04-29  Geoffrey Garen  <ggaren@apple.com>
2348
2349         WordLock doesn't need per-thread data
2350         https://bugs.webkit.org/show_bug.cgi?id=185119
2351
2352         Reviewed by Yusuke Suzuki.
2353
2354         The stack is per-thread data, so we can stack-allocate our ThreadData.
2355
2356         This eliminates malloc() and high-level WTF threading primitives from
2357         WordLock, making WordLock more portable to non-WTF code, including
2358         bmalloc.
2359
2360         (NOTE: This patch makes the bug fixed in r231148 100% reproducible.)
2361
2362         * wtf/WordLock.cpp:
2363         (WTF::WordLock::lockSlow): Allocate ThreadData on the stack.
2364
2365 2018-04-28  Geoffrey Garen  <ggaren@apple.com>
2366
2367         Fixed a very unlikely race condition in WTF::WordLock
2368         https://bugs.webkit.org/show_bug.cgi?id=185117
2369
2370         Reviewed by Saam Barati.
2371
2372         The race goes like this:
2373
2374         Thread L is in lockSlowCase() and thread U is in unlockSlowCase();
2375
2376         - U acquires queueHead->parkingLock.
2377         - U sets queueHead->shouldPark = false
2378         - U releases queueHead->parkingLock.
2379         - L spuriously wakes up from queueHead->parkingLock.wait()
2380         - L acquires queueHead->parkingLock.
2381         - L notices that queueHead->shouldPark = false, and acquires the WordLock
2382         - L finishes all its work and exits, freeing queueHead
2383         - U notifies queueHead->parkingLock (after free) and crashes or deadlocks
2384
2385         These conditions are currently so unlikely that I don't know how to test
2386         them. I noticed this race because I changed WordLock's allocation pattern
2387         to allow queueHead to be freed more often, and I crashed / deadlocked 100%.
2388
2389         Shout out to <http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one>
2390         for explaining this.
2391
2392         * benchmarks/ToyLocks.h: Fixed build.
2393
2394         * wtf/WordLock.cpp:
2395         (WTF::WordLock::unlockSlow): Hold the lock a little longer to avoid
2396         this race.
2397
2398 2018-04-27  David Kilzer  <ddkilzer@apple.com>
2399
2400         Add logging when SpringBoard enables WebThread
2401         <https://webkit.org/b/185100>
2402         <rdar://problem/39746542>
2403
2404         Reviewed by Daniel Bates.
2405
2406         * wtf/Assertions.h:
2407         (RELEASE_LOG_FAULT): Add macro to call os_log_fault().
2408         * wtf/Platform.h: Drive-by fix to enable USE(OS_LOG) on
2409         public iOS SDKs since <rdar://problem/27758343> was
2410         fixed in iOS 11.0.
2411
2412 2018-04-26  Mark Lam  <mark.lam@apple.com>
2413
2414         Gardening: Speculative build fix for Windows.
2415         https://bugs.webkit.org/show_bug.cgi?id=184976
2416         <rdar://problem/39723901>
2417
2418         Not reviewed.
2419
2420         * wtf/PtrTag.h:
2421         (WTF::makePtrTagHash): Undo last speculative build fix that did not work for 64-bit.
2422
2423 2018-04-26  Andy VanWagoner  <thetalecrafter@gmail.com>
2424
2425         [INTL] Implement Intl.PluralRules
2426         https://bugs.webkit.org/show_bug.cgi?id=184312
2427
2428         Reviewed by JF Bastien.
2429
2430         Added Intl.PluralRules feature flag.
2431
2432         * wtf/FeatureDefines.h:
2433
2434 2018-04-25  Mark Lam  <mark.lam@apple.com>
2435
2436         Gardening: Speculative build fix for Windows 32-bit to compensate for MSVC's lack of smarts.
2437         https://bugs.webkit.org/show_bug.cgi?id=184976
2438         <rdar://problem/39723901>
2439
2440         Not reviewed.
2441
2442         According to https://stackoverflow.com/questions/37658794/integer-constant-overflow-warning-in-constexpr,
2443         disabling the warning around the definition of the function will not disable it
2444         for all clients of the function.
2445
2446         * wtf/PtrTag.h:
2447         (WTF::makePtrTagHash):
2448
2449 2018-04-25  Mark Lam  <mark.lam@apple.com>
2450
2451         Push the definition of PtrTag down to the WTF layer.
2452         https://bugs.webkit.org/show_bug.cgi?id=184976
2453         <rdar://problem/39723901>
2454
2455         Reviewed by Saam Barati.
2456
2457         This is in preparation for doing pointer profiling at the WTF layer as well.
2458         Also deleted an unused ptrTag() function.
2459
2460         * WTF.xcodeproj/project.pbxproj:
2461         * wtf/CMakeLists.txt:
2462         * wtf/PtrTag.h: Copied from Source/JavaScriptCore/runtime/PtrTag.h.
2463         (WTF::makePtrTagHash):
2464         (JSC::ptrTagName): Deleted.
2465         (JSC::tagForPtr): Deleted.
2466         (JSC::ptrTag): Deleted.
2467         (JSC::tagCodePtr): Deleted.
2468         (JSC::untagCodePtr): Deleted.
2469         (JSC::retagCodePtr): Deleted.
2470         (JSC::removeCodePtrTag): Deleted.
2471         (JSC::tagCFunctionPtr): Deleted.
2472         (JSC::untagCFunctionPtr): Deleted.
2473         (JSC::assertIsCFunctionPtr): Deleted.
2474         (JSC::assertIsNullOrCFunctionPtr): Deleted.
2475         (JSC::assertIsNotTagged): Deleted.
2476         (JSC::assertIsTagged): Deleted.
2477         (JSC::assertIsNullOrTagged): Deleted.
2478         (JSC::assertIsTaggedWith): Deleted.
2479         (JSC::assertIsNullOrTaggedWith): Deleted.
2480
2481 2018-04-25  Dean Jackson  <dino@apple.com>
2482
2483         Make a better flag for system preview, and disable it where necessary
2484         https://bugs.webkit.org/show_bug.cgi?id=184968
2485         <rdar://problem/39686506>
2486
2487         Reviewed by Eric Carlson.
2488
2489         Add a new USE(SYSTEM_PREVIEW).
2490
2491         * wtf/Platform.h:
2492
2493 2018-04-24  Commit Queue  <commit-queue@webkit.org>
2494
2495         Unreviewed, rolling out r230971.
2496         https://bugs.webkit.org/show_bug.cgi?id=184939
2497
2498         This fix was not appropriate (Requested by n_wang on #webkit).
2499
2500         Reverted changeset:
2501
2502         "AX: soft link libAccessibility.dylb"
2503         https://bugs.webkit.org/show_bug.cgi?id=184919
2504         https://trac.webkit.org/changeset/230971
2505
2506 2018-04-24  Nan Wang  <n_wang@apple.com>
2507
2508         AX: soft link libAccessibility.dylb
2509         https://bugs.webkit.org/show_bug.cgi?id=184919
2510
2511         Reviewed by Chris Fleizach.
2512
2513         * wtf/cocoa/SoftLinking.h:
2514
2515 2018-04-23  Zalan Bujtas  <zalan@apple.com>
2516
2517         [LayoutFormattingContext] Initial commit.
2518         https://bugs.webkit.org/show_bug.cgi?id=184896
2519
2520         Reviewed by Antti Koivisto.
2521
2522         * wtf/FeatureDefines.h:
2523
2524 2018-04-23  Per Arne Vollan  <pvollan@apple.com>
2525
2526         Deactivate the WindowServer connection for the WebContent process.
2527         https://bugs.webkit.org/show_bug.cgi?id=184451
2528         <rdar://problem/38313938>
2529
2530         Reviewed by Brent Fulgham.
2531
2532         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
2533         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
2534         process startup. After calling this function, every attempt to establish a connection to the
2535         WindowServer from the WebContent process will fail, except for CA render server connections.
2536
2537         * wtf/FeatureDefines.h:
2538
2539 2018-04-20  JF Bastien  <jfbastien@apple.com>
2540
2541         Handle more JSON stringify OOM
2542         https://bugs.webkit.org/show_bug.cgi?id=184846
2543         <rdar://problem/39390672>
2544
2545         Reviewed by Mark Lam.
2546
2547         JSON stringification can OOM easily. Here's another case.
2548
2549         * wtf/text/StringBuilderJSON.cpp:
2550         (WTF::StringBuilder::appendQuotedJSONString):
2551
2552 2018-04-18  Jer Noble  <jer.noble@apple.com>
2553
2554         Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds
2555         https://bugs.webkit.org/show_bug.cgi?id=184762
2556
2557         Reviewed by Dan Bernstein.
2558
2559         * Configurations/Base.xcconfig:
2560
2561 2018-04-20  Daniel Bates  <dabates@apple.com>
2562
2563         Remove code for compilers that did not support NSDMI for aggregates
2564         https://bugs.webkit.org/show_bug.cgi?id=184599
2565
2566         Reviewed by Per Arne Vollan.
2567
2568         Remove workaround for earlier Visual Studio versions that did not support non-static data
2569         member initializers (NSDMI) for aggregates. We have since updated all the build.webkit.org
2570         and EWS bots to a newer version that supports this feature.
2571
2572         * wtf/Compiler.h:
2573
2574 2018-04-19  David Kilzer  <ddkilzer@apple.com>
2575
2576         Enable Objective-C weak references
2577         <https://webkit.org/b/184789>
2578         <rdar://problem/39571716>
2579
2580         Reviewed by Dan Bernstein.
2581
2582         * Configurations/Base.xcconfig:
2583         (CLANG_ENABLE_OBJC_WEAK): Enable.
2584
2585 2018-04-19  Brady Eidson  <beidson@apple.com>
2586
2587         Add globally-unique HistoryItem identifiers (and have WebKit2 adopt them).
2588         <rdar://problem/39533949> and https://bugs.webkit.org/show_bug.cgi?id=184750
2589
2590         Reviewed by Ryosuke Niwa.
2591
2592         * wtf/DebugUtilities.h:
2593         (WTF::debugString):
2594
2595 2018-04-19  Per Arne Vollan  <pvollan@apple.com>
2596
2597         Unreviewed, rolling out r230677.
2598
2599         Introduced Netflix problems.
2600
2601         Reverted changeset:
2602
2603         "Deactivate the WindowServer connection for the WebContent process."
2604         https://bugs.webkit.org/show_bug.cgi?id=184451
2605         https://trac.webkit.org/changeset/230677
2606
2607 2018-04-19  Nan Wang  <n_wang@apple.com>
2608
2609         AX: AOM: respect the accessibility setting for dispatching the accessible events
2610         https://bugs.webkit.org/show_bug.cgi?id=184619
2611
2612         Reviewed by Ryosuke Niwa.
2613
2614         * wtf/Platform.h:
2615
2616 2018-04-18  Ross Kirsling  <ross.kirsling@sony.com>
2617
2618         [Win] Layout Test js/date-constructor.html is failing
2619         https://bugs.webkit.org/show_bug.cgi?id=140945
2620
2621         Reviewed by Per Arne Vollan.
2622
2623         * wtf/DateMath.cpp:
2624         (WTF::calculateDSTOffset):
2625         Move all shared calculations outside of the #if -- including the "jump forward a day" case that had been overlooked.
2626
2627 2018-04-17  Saam Barati  <sbarati@apple.com>
2628
2629         Add system trace points for process launch and for initializeWebProcess
2630         https://bugs.webkit.org/show_bug.cgi?id=184669
2631
2632         Reviewed by Simon Fraser.
2633
2634         This patch adds TracePointCodes to measure process launch time and
2635         WebProcess::initializeWebProcess time.
2636         
2637         It also renames the TracePoint function to tracePoint since WebKit style
2638         does not capitalize the first letter in function names.
2639
2640         * wtf/SystemTracing.h:
2641         (WTF::tracePoint):
2642         (WTF::TraceScope::TraceScope):
2643         (WTF::TraceScope::~TraceScope):
2644         (WTF::TracePoint): Deleted.
2645
2646 2018-04-16  Andy Estes  <aestes@apple.com>
2647
2648         [iOS] Enable WKPDFView by default
2649         https://bugs.webkit.org/show_bug.cgi?id=184675
2650         <rdar://problem/27885452>
2651
2652         Reviewed by Darin Adler.
2653
2654         * wtf/FeatureDefines.h:
2655
2656 2018-04-16  Per Arne Vollan  <pvollan@apple.com>
2657
2658         Deactivate the WindowServer connection for the WebContent process.
2659         https://bugs.webkit.org/show_bug.cgi?id=184451
2660         <rdar://problem/38313938>
2661
2662         Reviewed by Brent Fulgham.
2663
2664         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
2665         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
2666         process startup. After calling this function, every attempt to establish a connection to the
2667         WindowServer from the WebContent process will fail, except for CA render server connections.
2668
2669         * wtf/FeatureDefines.h:
2670
2671 2018-04-14  Commit Queue  <commit-queue@webkit.org>
2672
2673         Unreviewed, rolling out r230659.
2674         https://bugs.webkit.org/show_bug.cgi?id=184633
2675
2676         Landed prematurely (Requested by ap on #webkit).
2677
2678         Reverted changeset:
2679
2680         "Deactivate the WindowServer connection for the WebContent
2681         process."
2682         https://bugs.webkit.org/show_bug.cgi?id=184451
2683         https://trac.webkit.org/changeset/230659
2684
2685 2018-04-14  Per Arne Vollan  <pvollan@apple.com>
2686
2687         Deactivate the WindowServer connection for the WebContent process.
2688         https://bugs.webkit.org/show_bug.cgi?id=184451
2689         <rdar://problem/38313938>
2690
2691         Reviewed by Brent Fulgham.
2692
2693         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
2694         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
2695         process startup. After calling this function, every attempt to establish a connection to the
2696         WindowServer from the WebContent process will fail, except for CA render server connections.
2697
2698         * wtf/FeatureDefines.h:
2699
2700 2018-04-13  Chris Dumez  <cdumez@apple.com>
2701
2702         Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame
2703         https://bugs.webkit.org/show_bug.cgi?id=184591
2704
2705         Reviewed by Sam Weinig.
2706
2707         Add isEmpty() convenience method to SizedIteratorRange.
2708
2709         * wtf/IteratorRange.h:
2710         (WTF::SizedIteratorRange::isEmpty const):
2711
2712 2018-04-13  Brady Eidson  <beidson@apple.com>
2713
2714         Introduce SuspendedPageProxy to keep old web processes around after their WebPageProxy has been swapped to a new one.
2715         https://bugs.webkit.org/show_bug.cgi?id=184559
2716
2717         Reviewed by Alex Christensen.
2718
2719         * wtf/DebugUtilities.h:
2720         (WTF::debugString): Add a debug utility to easily construct a "const char*" that is released after a spin of the run loop.
2721           This greatly eases uses our String classes and functions inside of "%s" style environments like printf and LOG.
2722
2723 2018-04-12  Michael Catanzaro  <mcatanzaro@igalia.com>
2724
2725         Remove unused crash hook functionality
2726         https://bugs.webkit.org/show_bug.cgi?id=183369
2727
2728         Reviewed by Alexey Proskuryakov.
2729
2730         WTFSetCrashHook and WTFInstallReportBacktraceOnCrashHook are not used on any platforms and
2731         can be removed.
2732
2733         * wtf/Assertions.cpp:
2734         * wtf/Assertions.h:
2735
2736 2018-04-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
2737
2738         Unreviewed, rolling out r230523.
2739
2740         Introduced MotionMark regression
2741
2742         Reverted changeset:
2743
2744         "Deactivate the WindowServer connection for the WebContent
2745         process."
2746         https://bugs.webkit.org/show_bug.cgi?id=184451
2747         https://trac.webkit.org/changeset/230523
2748
2749 2018-04-11  Per Arne Vollan  <pvollan@apple.com>
2750
2751         Deactivate the WindowServer connection for the WebContent process.
2752         https://bugs.webkit.org/show_bug.cgi?id=184451
2753         <rdar://problem/38313938>
2754
2755         Reviewed by Brent Fulgham.
2756
2757         Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
2758         for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
2759         process startup. After calling this function, every attempt to establish a connection to the
2760         WindowServer from the WebContent process will fail, except for CA render server connections.
2761
2762         * wtf/FeatureDefines.h:
2763
2764 2018-04-10  Andy Estes  <aestes@apple.com>
2765
2766         [iOS] Use PDFKit to render PDFs in WKWebView
2767         https://bugs.webkit.org/show_bug.cgi?id=184387
2768
2769         Reviewed by Beth Dakin.
2770
2771         * wtf/FeatureDefines.h: Defined ENABLE_WKLEGACYPDFVIEW and ENABLE_WKPDFVIEW.
2772
2773 2018-04-09  Mark Lam  <mark.lam@apple.com>
2774
2775         Decorate method table entries to support pointer profiling.
2776         https://bugs.webkit.org/show_bug.cgi?id=184430
2777         <rdar://problem/39296190>
2778
2779         Reviewed by Saam Barati.
2780
2781         * wtf/PointerPreparations.h:
2782
2783 2018-04-08  Yusuke Suzuki  <utatane.tea@gmail.com>
2784
2785         Unreviewed, use alignas(void*)
2786         https://bugs.webkit.org/show_bug.cgi?id=183508
2787
2788         Very large alignment is not supported in MSVC.
2789
2790         * wtf/Gigacage.cpp:
2791         * wtf/Gigacage.h:
2792
2793 2018-04-08  Yusuke Suzuki  <utatane.tea@gmail.com>
2794
2795         Use alignas instead of compiler-specific attributes
2796         https://bugs.webkit.org/show_bug.cgi?id=183508
2797
2798         Reviewed by Mark Lam.
2799
2800         Use alignas for g_gigacageBasePtr. We also add reinterpret_cast to fix
2801         compile errors in ARMv7 and MIPS JSCOnly ports.
2802
2803         * wtf/Gigacage.cpp:
2804         * wtf/Gigacage.h:
2805         (Gigacage::basePtrs):
2806
2807 2018-04-06  Saam Barati  <sbarati@apple.com>
2808
2809         bmalloc's tryLargeZeroedMemalignVirtual shouldn't treat the entire virtual size as dirty towards its footprint
2810         https://bugs.webkit.org/show_bug.cgi?id=184207
2811
2812         Reviewed by Mark Lam.
2813
2814         * wtf/Gigacage.cpp:
2815         (Gigacage::freeVirtualPages):
2816
2817 2018-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>
2818
2819         [WTF] Remove StaticLock
2820         https://bugs.webkit.org/show_bug.cgi?id=184332
2821
2822         Reviewed by Mark Lam.
2823
2824         Now, WTF::StaticLock is `using StaticLock = Lock`. Lock just works
2825         in either static storage and dynamic storage. Remove StaticLock and
2826         always use Lock.
2827
2828         We also remove StaticWordLock and StaticReadWriteLock. And we add
2829         WTF::RecursiveLock, which is RecursiveLockAdapter<Lock>.
2830
2831         * wtf/HashTable.cpp:
2832         (WTF::HashTableStats::recordCollisionAtCount):
2833         (WTF::HashTableStats::dumpStats):
2834         * wtf/Language.cpp:
2835         (WTF::userPreferredLanguages):
2836         * wtf/Lock.h:
2837         * wtf/MainThread.cpp:
2838         (WTF::dispatchFunctionsFromMainThread):
2839         (WTF::callOnMainThread):
2840         * wtf/ParkingLot.cpp:
2841         * wtf/ReadWriteLock.h:
2842         * wtf/RecursiveLockAdapter.h:
2843         * wtf/StackStats.cpp:
2844         (WTF::StackStats::CheckPoint::CheckPoint):
2845         (WTF::StackStats::CheckPoint::~CheckPoint):
2846         (WTF::StackStats::probe):
2847         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2848         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
2849         * wtf/StackStats.h:
2850         * wtf/ThreadMessage.cpp:
2851         (WTF::sendMessageScoped):
2852         * wtf/ThreadingPthreads.cpp:
2853         * wtf/ThreadingWin.cpp:
2854         * wtf/WordLock.h:
2855         * wtf/cf/LanguageCF.cpp:
2856         (WTF::languagePreferencesDidChange):
2857         (WTF::platformUserPreferredLanguages):
2858         * wtf/dtoa.cpp:
2859         * wtf/text/AtomicStringImpl.cpp:
2860         * wtf/text/StringView.cpp:
2861         (WTF::StringView::invalidate):
2862         (WTF::StringView::adoptUnderlyingString):
2863         (WTF::StringView::setUnderlyingString):
2864         * wtf/unicode/icu/CollatorICU.cpp:
2865         (WTF::Collator::Collator):
2866         (WTF::Collator::~Collator):
2867         * wtf/win/LanguageWin.cpp:
2868         (WTF::platformLanguage):
2869
2870 2018-04-04  Brent Fulgham  <bfulgham@apple.com>
2871
2872         Failures from mach port reference handling should be fatal
2873         https://bugs.webkit.org/show_bug.cgi?id=184202
2874         <rdar://problem/37771114>
2875
2876         Reviewed by Anders Carlsson.
2877
2878         * WTF.xcodeproj/project.pbxproj:
2879         * wtf/MachSendRight.h: Copied from WebCore/platform/cocoa/MachSendRight.h.
2880         (WebCore::MachSendRight::operator bool const): Deleted.
2881         (WebCore::MachSendRight::sendRight const): Deleted.
2882         * wtf/PlatformMac.cmake:
2883         * wtf/cocoa/CPUTimeCocoa.mm:
2884         (WTF::CPUTime::forCurrentThread): Do proper cleanup if the port is invalid.
2885         * wtf/cocoa/MachSendRight.cpp: Copied from WebCore/platform/cocoa/MachSendRight.cpp.
2886         (WTF::retainSendRight):
2887         (WTF::releaseSendRight):
2888         (WTF::deallocateSendRightSafely):
2889         (WebCore::retainSendRight): Deleted.
2890         (WebCore::releaseSendRight): Deleted.
2891         (WebCore::MachSendRight::adopt): Deleted.
2892         (WebCore::MachSendRight::create): Deleted.
2893         (WebCore::MachSendRight::MachSendRight): Deleted.
2894         (WebCore::MachSendRight::~MachSendRight): Deleted.
2895         (WebCore::MachSendRight::operator=): Deleted.
2896         (WebCore::MachSendRight::copySendRight const): Deleted.
2897         (WebCore::MachSendRight::leakSendRight): Deleted.
2898
2899 2018-04-04  Youenn Fablet  <youenn@apple.com>
2900
2901         Introduce a ThreadSafeRefCounted parameter to ensure being destroyed on the main thread
2902         https://bugs.webkit.org/show_bug.cgi?id=183988
2903
2904         Reviewed by Darin Adler.
2905
2906         * wtf/ThreadSafeRefCounted.h:
2907         (WTF::ThreadSafeRefCounted::deref const):
2908
2909 2018-04-04  Yusuke Suzuki  <utatane.tea@gmail.com>
2910
2911         [WTF] Remove Atomics.cpp
2912         https://bugs.webkit.org/show_bug.cgi?id=184300
2913
2914         Reviewed by Konstantin Tokarev.
2915
2916         This Atomics.cpp is a workaround for GCC which version is < 4.8.
2917         Our compiler requirement is now 5.0.0. This workaround is no
2918         longer necessary.
2919
2920         * wtf/Atomics.cpp: Removed.
2921         * wtf/CMakeLists.txt:
2922
2923 2018-04-03  Tomas Popela  <tpopela@redhat.com>
2924
2925         Unreviewed, mute the unused parameter compilation warning
2926
2927         Triggered on the PPC64 machine.
2928
2929         * wtf/ThreadingPthreads.cpp:
2930         (WTF::Thread::signalHandlerSuspendResume):
2931
2932 2018-04-03  Tomas Popela  <tpopela@redhat.com>
2933
2934         Unreviewed, fix the unused variable compilation warning
2935
2936         Move the ucontext_t code under the HAVE(MACHINE_CONTEXT). Triggered
2937         on the PPC64 machine.
2938
2939         * wtf/ThreadingPthreads.cpp:
2940         (WTF::Thread::signalHandlerSuspendResume):
2941
2942 2018-04-02  Saam Barati  <sbarati@apple.com>
2943
2944         bmalloc should compute its own estimate of its footprint
2945         https://bugs.webkit.org/show_bug.cgi?id=184121
2946
2947         Reviewed by Filip Pizlo.
2948
2949         * wtf/FastMalloc.cpp:
2950         (WTF::fastCommitAlignedMemory):
2951         (WTF::fastDecommitAlignedMemory):
2952         * wtf/FastMalloc.h:
2953
2954 2018-03-30  Filip Pizlo  <fpizlo@apple.com>
2955
2956         Strings and Vectors shouldn't do index masking
2957         https://bugs.webkit.org/show_bug.cgi?id=184193
2958
2959         Reviewed by Mark Lam.
2960
2961         * wtf/SizeLimits.cpp:
2962         * wtf/Vector.h:
2963         (WTF::VectorBufferBase::allocateBuffer):
2964         (WTF::VectorBufferBase::tryAllocateBuffer):
2965         (WTF::VectorBufferBase::reallocateBuffer):
2966         (WTF::VectorBufferBase::deallocateBuffer):
2967         (WTF::VectorBufferBase::releaseBuffer):
2968         (WTF::VectorBufferBase::VectorBufferBase):
2969         (WTF::VectorBuffer::allocateBuffer):
2970         (WTF::VectorBuffer::tryAllocateBuffer):
2971         (WTF::VectorBuffer::swap):
2972         (WTF::VectorBuffer::restoreInlineBufferIfNeeded):
2973         (WTF::Vector::at):
2974         (WTF::Vector::at const):
2975         (WTF::VectorBufferBase::updateMask): Deleted.
2976         * wtf/text/StringImpl.h:
2977         (WTF::StringImpl::flagIsSymbol):
2978         (WTF::StringImpl::length const):
2979         (WTF::StringImplShape::StringImplShape):
2980         (WTF::StringImpl::at const):
2981         (WTF::StringImpl::tailOffset):
2982         (WTF::StringImpl::maskOffset): Deleted.
2983         (WTF::StringImpl::mask const): Deleted.
2984         * wtf/text/StringView.h:
2985         (WTF::StringView::StringView):
2986         (WTF::StringView::operator=):
2987         (WTF::StringView::initialize):
2988         (WTF::StringView::clear):
2989         (WTF::StringView::operator[] const):
2990         * wtf/text/WTFString.h:
2991         (WTF::String::length const):
2992         (WTF::String::mask const): Deleted.
2993
2994 2018-03-30  Mark Lam  <mark.lam@apple.com>
2995
2996         Add pointer profiling support in baseline JIT and supporting files.
2997         https://bugs.webkit.org/show_bug.cgi?id=184200
2998         <rdar://problem/39057300>
2999
3000         Reviewed by Filip Pizlo.
3001
3002         * wtf/PointerPreparations.h:
3003         - Remove WTF_PREPARE_FUNCTION_POINTER_FOR_EXECUTION.  It is no longer needed.
3004
3005 2018-03-30  JF Bastien  <jfbastien@apple.com>
3006
3007         WorkQueueWin: don't move rvalues
3008         https://bugs.webkit.org/show_bug.cgi?id=184190
3009         <rdar://problem/39049850>
3010
3011         Reviewed by Mark Lam.
3012
3013         As part of #184167 optional is now more frequently an rvalue
3014         reference, and moving its .value() is not a thing that should be
3015         done anymore.
3016
3017         * wtf/win/WorkQueueWin.cpp:
3018         (WTF::WorkQueue::unregisterAndCloseHandle):
3019
3020 2018-03-30  JF Bastien  <jfbastien@apple.com>
3021
3022         Remove CXX_REFERENCE_QUALIFIED_FUNCTIONS and optional's equivalent
3023         https://bugs.webkit.org/show_bug.cgi?id=184167
3024         <rdar://problem/39023130>
3025
3026         Reviewed by Yusuke Suzuki.
3027
3028         Remove COMPILER_SUPPORTS(CXX_REFERENCE_QUALIFIED_FUNCTIONS), it's
3029         supported by all compilers WebKit supports (it's a C++11 feature,
3030         *detection* of it with __has_extension was added to clang on May
3031         13th 2011, and VS2015 / GCC support it).
3032
3033         Optional.h had a similar thing, ditch it too.
3034
3035         * wtf/Compiler.h:
3036         * wtf/Optional.h:
3037         (std::optional::contained_val const):
3038         (std::optional::contained_val):
3039         * wtf/Ref.h:
3040         * wtf/RefPtr.h:
3041         * wtf/text/WTFString.cpp:
3042         * wtf/text/WTFString.h:
3043
3044 2018-03-30  JF Bastien  <jfbastien@apple.com>
3045
3046         Introduce WTF_LAZY_INSTANTIATE
3047         https://bugs.webkit.org/show_bug.cgi?id=184169
3048         <rdar://problem/39023385>
3049
3050         Reviewed by Mark Lam.
3051
3052         As part of #184164 I'm adding some forwarding methods to
3053         WTF::String. These need to forward RetainPtr and CString, and
3054         usually that would require #include'ing RetainPtr.h and CString.h
3055         to WTFString.h which isn't really something we should do.
3056
3057         Introduce WTF_LAZY_INSTANTIATE to forward-declare functions which
3058         just pass parameters to another function, and return whatever that
3059         other function returned, without having to include the return's /
3060         parameters' type header.
3061
3062         Try it out here: godbolt.org/g/oV8G5Q
3063
3064         * wtf/Forward.h:
3065
3066 2018-03-29  JF Bastien  <jfbastien@apple.com>
3067
3068         Use Forward.h instead of forward-declaring WTF::String
3069         https://bugs.webkit.org/show_bug.cgi?id=184172
3070         <rdar://problem/39026146>
3071
3072         Reviewed by Yusuke Suzuki.
3073
3074         As part of #184164 I'm changing WTF::String, and the forward
3075         declarations are just wrong because I'm making it templated. We
3076         should use Forward.h anyways, so do that instead.
3077
3078         * wtf/Forward.h:
3079         * wtf/HashTraits.h:
3080         * wtf/PrintStream.h:
3081
3082 2018-03-29  Yusuke Suzuki  <utatane.tea@gmail.com>
3083
3084         Remove WTF_EXPORTDATA and JS_EXPORTDATA
3085         https://bugs.webkit.org/show_bug.cgi?id=184170
3086
3087         Reviewed by JF Bastien.
3088
3089         Replace WTF_EXPORTDATA and JS_EXPORTDATA with
3090         WTF_EXPORT_PRIVATE and JS_EXPORT_PRIVATE respectively.
3091
3092         * wtf/ExportMacros.h:
3093         * wtf/Gigacage.h:
3094         * wtf/HashTable.h:
3095         * wtf/Threading.h:
3096         * wtf/text/AtomicString.cpp:
3097         * wtf/text/AtomicString.h:
3098         * wtf/text/StringImpl.h:
3099
3100 2018-03-29  Ross Kirsling  <ross.kirsling@sony.com>
3101
3102         MSVC __forceinline slows down JSC release build fivefold after r229391
3103         https://bugs.webkit.org/show_bug.cgi?id=184062
3104
3105         Reviewed by Alex Christensen.
3106
3107         * wtf/Compiler.h:
3108         Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.
3109
3110 2018-03-29  JF Bastien  <jfbastien@apple.com>
3111
3112         Remove WTF_EXPORT_STRING_API
3113         https://bugs.webkit.org/show_bug.cgi?id=184168
3114         <rdar://problem/39023253>
3115
3116         Reviewed by Yusuke Suzuki.
3117
3118         Remove WTF_EXPORT_STRING_API as requested by a FIXME, and use
3119         WTF_EXPORT_PRIVATE instead.
3120
3121         * wtf/ExportMacros.h:
3122         * wtf/text/AtomicString.h:
3123         * wtf/text/AtomicStringImpl.h:
3124         * wtf/text/StringImpl.h:
3125         * wtf/text/StringView.h:
3126         * wtf/text/SymbolImpl.h:
3127         * wtf/text/WTFString.h:
3128
3129 2018-03-29  Commit Queue  <commit-queue@webkit.org>
3130
3131         Unreviewed, rolling out r230062.
3132         https://bugs.webkit.org/show_bug.cgi?id=184128
3133
3134         Broke mac port. web content process crashes while loading any
3135         web page (Requested by rniwa on #webkit).
3136
3137         Reverted changeset:
3138
3139         "MSVC __forceinline slows down JSC release build fivefold
3140         after r229391"
3141         https://bugs.webkit.org/show_bug.cgi?id=184062
3142         https://trac.webkit.org/changeset/230062
3143
3144 2018-03-28  Ross Kirsling  <ross.kirsling@sony.com>
3145
3146         MSVC __forceinline slows down JSC release build fivefold after r229391
3147         https://bugs.webkit.org/show_bug.cgi?id=184062
3148
3149         Reviewed by Alex Christensen.
3150
3151         * wtf/Compiler.h:
3152         Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.
3153
3154 2018-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>
3155
3156         [Win] Assertions.h: VC doesn't support GCC extension ##__VA_ARGS__
3157         https://bugs.webkit.org/show_bug.cgi?id=184076
3158
3159         Reviewed by Alex Christensen.
3160
3161         ##__VA_ARGS__ is used to define RELEASE_LOG, RELEASE_LOG_ERROR,
3162         RELEASE_LOG_IF, RELEASE_LOG_ERROR_IF, RELEASE_LOG_WITH_LEVEL,
3163         RELEASE_LOG_WITH_LEVEL_IF and RELEASE_LOG_INFO_IF.
3164
3165         A macro using ##__VA_ARGS__,
3166
3167           #define foo(format, ...) bar(format, ##__VA_ARGS__)
3168
3169         can be defined without ##__VA_ARGS__:
3170
3171           #define foo(...) bar(__VA_ARGS__)
3172
3173         * wtf/Assertions.h: Use __VA_ARGS__ instead of ##__VA_ARGS__.
3174
3175 2018-03-28  Brent Fulgham  <bfulgham@apple.com>
3176
3177         Avoid uninitialized mach ports
3178         https://bugs.webkit.org/show_bug.cgi?id=184090
3179         <rdar://problem/37261129>
3180
3181         Reviewed by Chris Dumez.
3182
3183         It is possible for mach_port_allocate to return an error, but we rarely check its return value. The value
3184         of the argument passed to mach_port_allocate is not guaranteed to be valid when it returns an error, so
3185         there is a potential for us to try to use invalid ports.
3186
3187         We should always check return values, and ensure that the mach port variables we seek to initialize are
3188         kept in a valid state.
3189
3190         Reviewed by Chris Dumez.
3191
3192         * wtf/Threading.h: Initialize mach port.
3193
3194 2018-03-28  Robin Morisset  <rmorisset@apple.com>
3195
3196         appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards
3197         https://bugs.webkit.org/show_bug.cgi?id=183894
3198
3199         Reviewed by Saam Barati.
3200
3201         appendQuotedJSONString now returns a bool indicating whether it succeeded, instead of silently failing when given a string too large
3202         to fit in 4GB.
3203
3204         * wtf/text/StringBuilder.h:
3205         * wtf/text/StringBuilderJSON.cpp:
3206         (WTF::StringBuilder::appendQuotedJSONString):
3207
3208 2018-03-27  Per Arne Vollan  <pvollan@apple.com>
3209
3210         The layout test fast/canvas/webgl/read-pixels-test.html is timing out.
3211         https://bugs.webkit.org/show_bug.cgi?id=183923
3212         <rdar://problem/38756869>
3213
3214         Reviewed by Brent Fulgham.
3215
3216         Add compile guard for blocking of the WindowServer in the WebProcess.
3217
3218         * wtf/FeatureDefines.h:
3219
3220 2018-03-26  Tim Horton  <timothy_horton@apple.com>
3221
3222         Add and adopt HAVE(CORE_ANIMATION_RENDER_SERVER)
3223         https://bugs.webkit.org/show_bug.cgi?id=184026
3224         <rdar://problem/38883321>
3225
3226         Reviewed by Sam Weinig.
3227
3228         * wtf/Platform.h:
3229
3230 2018-03-26  Yusuke Suzuki  <utatane.tea@gmail.com>
3231
3232         We should have SSE4 detection in the X86 MacroAssembler.
3233         https://bugs.webkit.org/show_bug.cgi?id=165363
3234
3235         Reviewed by JF Bastien.
3236
3237         GCC 5 supports clobbering PIC registers in inline ASM [1,2].
3238
3239         [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47602
3240         [2]: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=216154
3241
3242         * wtf/Atomics.h:
3243         (WTF::x86_cpuid):
3244
3245 2018-03-26  Antoine Quint  <graouts@apple.com>
3246
3247         [ASan] Allow Ref<> to be swapped
3248         https://bugs.webkit.org/show_bug.cgi?id=184017
3249         <rdar://problem/36336787>
3250
3251         Reviewed by JF Bastien.
3252
3253         Unpoison a Ref in various calls just like in ~Ref so that sorting a Vector<Ref<>> works with ASan on.
3254
3255         * wtf/Ref.h:
3256         (WTF::Ref::assignToHashTableEmptyValue):
3257         (WTF::=):
3258         (WTF::U>::replace):
3259
3260 2018-03-26  Brent Fulgham  <bfulgham@apple.com>
3261
3262         Warn against cookie access in the WebContent process using ProcessPrivilege assertions
3263         https://bugs.webkit.org/show_bug.cgi?id=183911
3264         <rdar://problem/38762306>
3265
3266         Reviewed by Youenn Fablet.
3267
3268         Extend the ProcessPrivilege API with the ability to add and remove individual
3269         privileges.
3270
3271         * wtf/ProcessPrivilege.cpp:
3272         (WTF::addProcessPrivilege):
3273         (WTF::removeProcessPrivilege):
3274         * wtf/ProcessPrivilege.h:
3275
3276 2018-03-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3277
3278         WebProcess memory monitor: use %zu format specifier for size_t
3279         https://bugs.webkit.org/show_bug.cgi?id=183997
3280
3281         Reviewed by Michael Catanzaro.
3282
3283         usse %zu format specifier for size_t instead of %lu.
3284
3285         * wtf/MemoryPressureHandler.cpp:
3286         (WTF::MemoryPressureHandler::shrinkOrDie):
3287         (WTF::MemoryPressureHandler::measurementTimerFired):
3288
3289 2018-03-25  Tim Horton  <timothy_horton@apple.com>
3290
3291         Add and adopt ENABLE(AIRPLAY_PICKER)
3292         https://bugs.webkit.org/show_bug.cgi?id=183992
3293
3294         Reviewed by Daniel Bates.
3295
3296         * wtf/FeatureDefines.h:
3297
3298 2018-03-23  Tim Horton  <timothy_horton@apple.com>
3299
3300         Introduce and adopt HAVE(AUDIO_TOOLBOX_AUDIO_SESSION)
3301         https://bugs.webkit.org/show_bug.cgi?id=183954
3302         <rdar://problem/38808858>
3303
3304         Reviewed by Dan Bernstein.
3305
3306         * wtf/Platform.h:
3307
3308 2018-03-23  David Kilzer  <ddkilzer@apple.com>
3309
3310         Stop using dispatch_set_target_queue()
3311         <https://webkit.org/b/183908>
3312         <rdar://problem/33553533>
3313
3314         Reviewed by Daniel Bates.
3315
3316         * wtf/cocoa/WorkQueueCocoa.cpp:
3317         (WTF::WorkQueue::platformInitialize): Remove !HAVE(QOS_CLASSES)
3318         code path since it's never used now that HAVE(QOS_CLASSES) is
3319         equivalent to PLATFORM(COCOA) in <wtf/Platform.h>.
3320
3321 2018-03-23  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3322
3323         WebProcess memory monitor thresholds should be better tuned for embedded systems.
3324         https://bugs.webkit.org/show_bug.cgi?id=183773
3325
3326         Reviewed by Yusuke Suzuki.
3327
3328         Take into account the total system RAM for the thresholds calculation.
3329
3330         For systems with more than 3GB the conservative and strict thresholds remain as they are,
3331         but for systems with less RAM the thresholds are dynamically configured as follows:
3332
3333         - Conservative threshold (release non critical memory) if WebProcess using more than 33% of the total RAM.
3334         - Strict threshold (release all possible memory) if WebProcess using more than 50% of the total RAM.
3335
3336         The Kill threshold is also modified. Now it is capped at 90% of the total RAM.
3337
3338         * wtf/MemoryPressureHandler.cpp:
3339         (WTF::thresholdForMemoryKillWithProcessState):
3340         (WTF::thresholdForPolicy):
3341         (WTF::MemoryPressureHandler::shrinkOrDie):
3342
3343 2018-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
3344
3345         [WTF] Add standard containers with FastAllocator specialization
3346         https://bugs.webkit.org/show_bug.cgi?id=183789
3347
3348         Reviewed by Darin Adler.
3349
3350         Sometimes we want standard containers due to various reasons.
3351         For example, WTF::HashMap lacks the ability to hold all the
3352         integer keys since it uses 0 for empty value and -1 for deleted
3353         value. However, using std::containers use std::allocator without
3354         specialization.
3355
3356         This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
3357         They are standard containers with FastAllocator specialization.
3358
3359         * WTF.xcodeproj/project.pbxproj:
3360         * wtf/CMakeLists.txt:
3361         * wtf/StdList.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
3362         * wtf/StdMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
3363         * wtf/StdSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
3364         * wtf/StdUnorderedMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
3365         * wtf/StdUnorderedSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
3366
3367 2018-03-22  Tim Horton  <timothy_horton@apple.com>
3368
3369         Adopt USE(OPENGL[_ES]) in more places
3370         https://bugs.webkit.org/show_bug.cgi?id=183882
3371         <rdar://problem/37912195>
3372
3373         Reviewed by Dan Bernstein.
3374
3375         * wtf/Platform.h:
3376
3377 2018-03-20  Brent Fulgham  <bfulgham@apple.com>
3378
3379         Create an assertion mechanism to ensure proper WebCore use in each WebKit Process
3380         https://bugs.webkit.org/show_bug.cgi?id=183806
3381         <rdar://problem/38694251>
3382
3383         Reviewed by Ryosuke Niwa.
3384
3385         Part of our security improvements involve better isolation between the different WebKit
3386         processes (UIProcess, WebContent, Networking, Storage, etc.).
3387
3388         We need an assertion language we can use to protect certain critical APIs and code paths
3389         against accidental misuse.
3390
3391         This patch adds a new enum type meant to represent different categories of program logic
3392         that we do not want used in the wrong process.
3393
3394         This first patch just creates these types and makes them available. New assertions using
3395         these values will be added as we complete our work ensuring proper process isolation.
3396
3397         In a method we want to protect, we can add an assertion describing the process privileges
3398         needed to execute the code. For example, for cookie access we might use this:
3399
3400             ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies);
3401
3402         At the launch of the UIProcess we would use this method to ensure all privileges are available:
3403
3404             setProcessPrivileges(allPrivileges());
3405
3406         In the network process, during platform initialization, we would use something like this:
3407
3408             setProcessPrivileges({ ProcessPrivilege::CanAccessRawCookies, ProcessPrivilege::CanAccessCredentials });
3409
3410         In the WebContent process, we would not set any privileges. We could just leave it as the
3411         default initialization, or use this:
3412
3413             setProcessPrivileges({ });
3414
3415         Later, when we attempt to execute the initial code, we would expect an assertion for the
3416         WebContent process, while Network and UIProcess pass the assertion.
3417
3418         * WTF.xcodeproj/project.pbxproj: Add new files.
3419         * wtf/CMakeLists.txt: Ditto.
3420         * wtf/ProcessPrivilege.cpp: Added.
3421         (WTF::processPrivileges):
3422         (WTF::setProcessPrivileges):
3423         (WTF::hasProcessPrivilege):
3424         * wtf/ProcessPrivilege.h: Added.
3425
3426 2018-03-20  Tim Horton  <timothy_horton@apple.com>
3427
3428         Introduce HAVE_MEDIA_PLAYER and HAVE_CORE_VIDEO
3429         https://bugs.webkit.org/show_bug.cgi?id=183803
3430         <rdar://problem/38690487>
3431
3432         Reviewed by Sam Weinig.
3433
3434         * wtf/Platform.h:
3435
3436 2018-03-20  Brian Burg  <bburg@apple.com>
3437
3438         SLEEP_THREAD_FOR_DEBUGGER should not use fancy number literals
3439         https://bugs.webkit.org/show_bug.cgi?id=183792
3440
3441         Reviewed by Timothy Hatcher.
3442
3443         * wtf/DebugUtilities.h: Remove the '_s' since this won't
3444         compile when included by files compiled as Objective-C++.
3445
3446 2018-03-20  Tim Horton  <timothy_horton@apple.com>
3447
3448         Add and adopt WK_PLATFORM_NAME and adjust default feature defines
3449         https://bugs.webkit.org/show_bug.cgi?id=183758
3450         <rdar://problem/38017644>
3451
3452         Reviewed by Dan Bernstein.
3453
3454         * wtf/FeatureDefines.h:
3455
3456 2018-03-19  Eric Carlson  <eric.carlson@apple.com>
3457
3458         [Extra zoom mode] Require fullscreen for video playback
3459         https://bugs.webkit.org/show_bug.cgi?id=183742
3460         <rdar://problem/38235862>
3461
3462         Reviewed by Jer Noble.
3463
3464         * wtf/Platform.h:
3465
3466 2018-03-15  Tim Horton  <timothy_horton@apple.com>
3467
3468         Avoid defining commonly-named system macros on all Cocoa platforms
3469         https://bugs.webkit.org/show_bug.cgi?id=183687
3470
3471         Reviewed by Dan Bernstein.
3472
3473         * wtf/Platform.h:
3474
3475 2018-03-14  Tim Horton  <timothy_horton@apple.com>
3476
3477         Fix the build after r229387
3478         https://bugs.webkit.org/show_bug.cgi?id=183639
3479         <rdar://problem/38448568>
3480
3481         Reviewed by Dean Jackson.
3482
3483         * wtf/Platform.h:
3484
3485 2018-03-13  Tim Horton  <timothy_horton@apple.com>
3486
3487         Add and adopt WK_ALTERNATE_FRAMEWORKS_DIR in WTF and bmalloc
3488         https://bugs.webkit.org/show_bug.cgi?id=183576
3489         <rdar://problem/38396766>
3490
3491         Reviewed by Dan Bernstein.
3492
3493         * Configurations/Base.xcconfig:
3494         * Configurations/CopyWTFHeaders.xcconfig:
3495         * Configurations/WTF.xcconfig:
3496         * Configurations/mbmalloc.xcconfig:
3497
3498 2018-03-13  Michael Catanzaro  <mcatanzaro@igalia.com>
3499
3500         Unreviewed, fix typo in a comment
3501
3502         * wtf/Platform.h:
3503
3504 2018-03-12  Don Olmstead  <don.olmstead@sony.com>
3505
3506         [CMake][Win] Forwarding headers of WTF and PAL are copied twice in Visual Studio builds
3507         https://bugs.webkit.org/show_bug.cgi?id=183240
3508
3509         Reviewed by Alex Christensen.
3510
3511         * wtf/CMakeLists.txt:
3512         * wtf/PlatformGTK.cmake:
3513         * wtf/PlatformJSCOnly.cmake:
3514         * wtf/PlatformMac.cmake:
3515         * wtf/PlatformWPE.cmake:
3516         * wtf/PlatformWin.cmake:
3517
3518 2018-03-12  Yusuke Suzuki  <utatane.tea@gmail.com>
3519
3520         Unreviewed, include time.h
3521         https://bugs.webkit.org/show_bug.cgi?id=183312
3522
3523         Attempt to fix oss-fuzz build.
3524
3525         * wtf/CurrentTime.cpp:
3526         * wtf/unix/CPUTimeUnix.cpp:
3527
3528 2018-03-12  Yoav Weiss  <yoav@yoav.ws>
3529
3530         Runtime flag for link prefetch and remove link subresource.
3531         https://bugs.webkit.org/show_bug.cgi?id=183540
3532
3533         Reviewed by Chris Dumez.
3534
3535         Remove the LINK_PREFETCH build time flag.
3536
3537         * wtf/FeatureDefines.h:
3538
3539 2018-03-12  Mark Lam  <mark.lam@apple.com>
3540
3541         Make a NativeFunction into a class to support pointer profiling.
3542         https://bugs.webkit.org/show_bug.cgi?id=183573
3543         <rdar://problem/38384697>
3544
3545         Reviewed by Filip Pizlo.
3546
3547         Changed Poisoned so that it can be used on tagged pointers as well.
3548
3549         * wtf/Poisoned.h:
3550
3551 2018-03-11  Filip Pizlo  <fpizlo@apple.com>
3552
3553         Split DirectArguments into JSValueOOB and JSValueStrict parts
3554         https://bugs.webkit.org/show_bug.cgi?id=183458
3555
3556         Reviewed by Yusuke Suzuki.
3557
3558         * wtf/MathExtras.h:
3559         (WTF::dynamicPoison): Deleted.
3560
3561 2018-03-11  Yusuke Suzuki  <utatane.tea@gmail.com>
3562
3563         [Win] Use SRWLOCK and CONDITION_VARIABLE to simplify implementation
3564         https://bugs.webkit.org/show_bug.cgi?id=183541
3565
3566         Reviewed by Darin Adler.
3567
3568         After Windows Vista, Windows offers SRWLOCK and CONDITION_VARIABLE.
3569         They can simplify the implementation of our WTF::Mutex and WTF::ThreadCondition.
3570
3571         C++ std::mutex and std::condition_variable uses std::chrono for their timed
3572         functions. Since std::chrono is not overflow-aware, we cannot reliably use
3573         this functionalities. This is why we still keep WTF::Mutex and WTF::ThreadCondition.
3574         They are used for ParkingLot.
3575
3576         * wtf/ThreadingPrimitives.h:
3577         * wtf/ThreadingWin.cpp:
3578         (WTF::Mutex::Mutex):
3579         (WTF::Mutex::~Mutex):
3580         (WTF::Mutex::lock):
3581         (WTF::Mutex::tryLock):
3582         (WTF::Mutex::unlock):
3583         (WTF::absoluteTimeToWaitTimeoutInterval):
3584         (WTF::ThreadCondition::ThreadCondition):
3585         (WTF::ThreadCondition::~ThreadCondition):
3586         (WTF::ThreadCondition::wait):
3587         (WTF::ThreadCondition::timedWait):
3588         (WTF::ThreadCondition::signal):
3589         (WTF::ThreadCondition::broadcast):
3590         (WTF::PlatformCondition::timedWait): Deleted.
3591         (WTF::PlatformCondition::signal): Deleted.
3592
3593 2018-03-10  Commit Queue  <commit-queue@webkit.org>
3594
3595         Unreviewed, rolling out r229436.
3596         https://bugs.webkit.org/show_bug.cgi?id=183542
3597
3598         seems to have regressed wasm compile times by 10% (Requested
3599         by pizlo-mbp on #webkit).
3600
3601         Reverted changeset:
3602
3603         "bmalloc mutex should be adaptive"
3604         https://bugs.webkit.org/show_bug.cgi?id=177839
3605         https://trac.webkit.org/changeset/229436
3606
3607 2018-03-09  Mark Lam  <mark.lam@apple.com>
3608
3609         [Re-landing] Prepare LLInt code to support pointer profiling.
3610         https://bugs.webkit.org/show_bug.cgi?id=183387
3611         <rdar://problem/38199678>
3612
3613         Reviewed by JF Bastien.
3614
3615         * wtf/Platform.h:
3616
3617 2018-03-08  Commit Queue  <commit-queue@webkit.org>
3618
3619         Unreviewed, rolling out r229354 and r229364.
3620         https://bugs.webkit.org/show_bug.cgi?id=183492
3621
3622         Breaks internal builds (Requested by ryanhaddad on #webkit).
3623
3624         Reverted changesets:
3625
3626         "Prepare LLInt code to support pointer profiling."
3627         https://bugs.webkit.org/show_bug.cgi?id=183387
3628         https://trac.webkit.org/changeset/229354
3629
3630         "Add support for ARM64E."
3631         https://bugs.webkit.org/show_bug.cgi?id=183398
3632         https://trac.webkit.org/changeset/229364
3633
3634 2018-03-08  Filip Pizlo  <fpizlo@apple.com>
3635
3636         bmalloc mutex should be adaptive
3637         https://bugs.webkit.org/show_bug.cgi?id=177839
3638
3639         Reviewed by Michael Saboff.
3640         
3641         Add some comments that I thought of while copy-pasting this code.
3642
3643         Reland after failing to reproduce the WasmBench crash that caused it to get rolled out. Maybe that fixed
3644         itself somehow?
3645
3646         * wtf/LockAlgorithmInlines.h:
3647         * wtf/WordLock.cpp:
3648         (WTF::WordLock::unlockSlow):
3649
3650 2018-03-08  Keith Miller  <keith_miller@apple.com>
3651
3652         Disable JIT on Cocoa 32-bit ARM.
3653         https://bugs.webkit.org/show_bug.cgi?id=183426
3654
3655         Reviewed by Michael Saboff.
3656
3657         * wtf/Platform.h:
3658
3659 2018-03-08  Keith Miller  <keith_miller@apple.com>