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