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