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