Move more macros out of WebKit's config.h
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-12-10  Alexey Proskuryakov  <ap@apple.com>
2
3         Move more macros out of WebKit's config.h
4         https://bugs.webkit.org/show_bug.cgi?id=192430
5
6         Reviewed by Tim Horton.
7
8         * wtf/Platform.h:
9
10 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
11
12         Unreviewed, fix build failure on GCC 8.2, part 2
13
14         Add RefCountedArray::assign, and use it instead of operator= internally.
15         We should have operator=(const RefCountedArray&) since it will be automatically generated
16         if we do not have correct implementation here.
17
18         * wtf/RefCountedArray.h:
19         (WTF::RefCountedArray::operator=):
20         (WTF::RefCountedArray::assign):
21
22 2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
23
24         Unreviewed, fix build failure on GCC 8.2
25
26         We remove operator=<PtrTraits> call since it is not necessary.
27         This is a workaround. It seems that GCC 8.2 fails to parse this specialization.
28
29         * wtf/RefCountedArray.h:
30
31 2018-12-08  Darin Adler  <darin@apple.com>
32
33         Fix stray-semicolon warning seen with a new version of clang in Xcode
34         https://bugs.webkit.org/show_bug.cgi?id=192534
35
36         Reviewed by Alexey Proskuryakov.
37
38         * wtf/Lock.h: Removed an unneeded semicolon.
39
40 2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>
41
42         [WTF] Debug build fails due conflicting abort() method
43         https://bugs.webkit.org/show_bug.cgi?id=192491
44
45         Reviewed by Michael Catanzaro.
46
47         * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
48         inside classes which have an ::abort() method, but only when __cplusplus is defined to
49         allow inclusion of the header in plain C sources.
50
51 2018-12-07  Andy Estes  <aestes@apple.com>
52
53         [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
54         https://bugs.webkit.org/show_bug.cgi?id=192498
55
56         Reviewed by Tim Horton.
57
58         Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
59         which behave like their non-optional variants but do not require their classes to exist.
60
61         * wtf/cocoa/SoftLinking.h:
62
63 2018-12-06  Alexey Proskuryakov  <ap@apple.com>
64
65         Move USE_NEW_THEME out of WebCore's config.h
66         https://bugs.webkit.org/show_bug.cgi?id=192426
67
68         Reviewed by Tim Horton.
69
70         * wtf/Platform.h:
71
72 2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
73
74         [SOUP] Move URLSoup back to WebCore after r238771
75         https://bugs.webkit.org/show_bug.cgi?id=192306
76
77         Reviewed by Michael Catanzaro.
78
79         In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
80         libsoup as a new dependency of libjavascriptcoregtk.
81
82         * wtf/PlatformGTK.cmake:
83         * wtf/PlatformWPE.cmake:
84         * wtf/URL.h:
85         * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.
86
87 2018-12-03  Don Olmstead  <don.olmstead@sony.com>
88
89         Fix some unused parameter warnings
90         https://bugs.webkit.org/show_bug.cgi?id=192336
91
92         Reviewed by Fujii Hironori.
93
94         * wtf/StackTrace.cpp:
95         (WTFGetBacktrace):
96         (WTF::StackTrace::demangle):
97         * wtf/generic/MemoryPressureHandlerGeneric.cpp:
98         (WTF::MemoryPressureHandler::holdOff):
99         (WTF::MemoryPressureHandler::respondToMemoryPressure):
100
101 2018-12-01  Alexey Proskuryakov  <ap@apple.com>
102
103         Modernize version check for _suppressedAutoAddedHTTPHeaders
104         https://bugs.webkit.org/show_bug.cgi?id=192175
105
106         Reviewed by Tim Horton.
107
108         * wtf/Platform.h:
109
110 2018-11-30  Alex Christensen  <achristensen@webkit.org>
111
112         Fix Windows build after r238771
113         https://bugs.webkit.org/show_bug.cgi?id=190234
114
115         * wtf/URLParser.h:
116         Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.
117
118 2018-11-30  Alex Christensen  <achristensen@webkit.org>
119
120         Move URL from WebCore to WTF
121         https://bugs.webkit.org/show_bug.cgi?id=190234
122
123         Reviewed by Keith Miller.
124
125         * WTF.xcodeproj/project.pbxproj:
126         * wtf/CMakeLists.txt:
127         * wtf/Forward.h:
128         * wtf/PlatformGTK.cmake:
129         * wtf/PlatformMac.cmake:
130         * wtf/PlatformWPE.cmake:
131         * wtf/PlatformWin.cmake:
132         * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
133         (WTF::URL::protocolIs):
134         * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
135         * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
136         (WTF::URLHash::hash):
137         (WTF::URLHash::equal):
138         * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
139         (WTF::URLParser::isInUserInfoEncodeSet):
140         (WTF::URLParser::parseAuthority):
141         * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
142         (WTF::URLParser::URLParser):
143         (WTF::URLParser::result):
144         * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
145         * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
146         * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
147         * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
148         * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
149         (WTF::isArmenianLookalikeCharacter):
150         (WTF::isArmenianScriptCharacter):
151         (WTF::isASCIIDigitOrValidHostCharacter):
152         (WTF::isLookalikeCharacter):
153         (WTF::whiteListIDNScript):
154         (WTF::readIDNScriptWhiteListFile):
155         (WTF::allCharactersInIDNScriptWhiteList):
156         (WTF::isSecondLevelDomainNameAllowedByTLDRules):
157         (WTF::isRussianDomainNameCharacter):
158         (WTF::allCharactersAllowedByTLDRules):
159         (WTF::mapHostNameWithRange):
160         (WTF::hostNameNeedsDecodingWithRange):
161         (WTF::hostNameNeedsEncodingWithRange):
162         (WTF::decodeHostNameWithRange):
163         (WTF::encodeHostNameWithRange):
164         (WTF::decodeHostName):
165         (WTF::encodeHostName):
166         (WTF::collectRangesThatNeedMapping):
167         (WTF::collectRangesThatNeedEncoding):
168         (WTF::collectRangesThatNeedDecoding):
169         (WTF::applyHostNameFunctionToMailToURLString):
170         (WTF::applyHostNameFunctionToURLString):
171         (WTF::mapHostNames):
172         (WTF::stringByTrimmingWhitespace):
173         (WTF::URLByTruncatingOneCharacterBeforeComponent):
174         (WTF::URLByRemovingResourceSpecifier):
175         (WTF::URLWithData):
176         (WTF::dataWithUserTypedString):
177         (WTF::URLWithUserTypedString):
178         (WTF::URLWithUserTypedStringDeprecated):
179         (WTF::hasQuestionMarkOnlyQueryString):
180         (WTF::dataForURLComponentType):
181         (WTF::URLByRemovingComponentAndSubsequentCharacter):
182         (WTF::URLByRemovingUserInfo):
183         (WTF::originalURLData):
184         (WTF::createStringWithEscapedUnsafeCharacters):
185         (WTF::userVisibleString):
186         (WTF::isUserVisibleURL):
187         (WTF::rangeOfURLScheme):
188         (WTF::looksLikeAbsoluteURL):
189         * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
190         (WTF::URL::URL):
191         (WTF::URL::createCFURL const):
192         * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
193         * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.
194
195 2018-11-30  Alexey Proskuryakov  <ap@apple.com>
196
197         Move USE_CFNETWORK_IGNORE_HSTS to its proper place
198         https://bugs.webkit.org/show_bug.cgi?id=192173
199
200         Reviewed by Tim Horton.
201
202         * wtf/Platform.h: Also renamed it to better match other version checks.
203
204 2018-11-29  Alexey Proskuryakov  <ap@apple.com>
205
206         Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
207         https://bugs.webkit.org/show_bug.cgi?id=192041
208
209         Reviewed by Tim Horton.
210
211         * wtf/Platform.h:
212
213 2018-11-28  Mark Lam  <mark.lam@apple.com>
214
215         ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
216         https://bugs.webkit.org/show_bug.cgi?id=192110
217         <rdar://problem/46317746>
218
219         Reviewed by Saam Barati.
220
221         Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
222         defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
223         contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
224         (and other projects) as well as JSC.  Hence, there's no reason why
225         ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.
226
227         * wtf/Platform.h:
228
229 2018-11-28  Keith Rollin  <krollin@apple.com>
230
231         Update generate-unified-source-bundles.rb to generate .xcfilelist files
232         https://bugs.webkit.org/show_bug.cgi?id=192029
233         <rdar://problem/46285918>
234
235         Reviewed by Alex Christensen.
236
237         Update generate-unified-source-bundles.rb to generate output for
238         .xcfilelist files. These files are used to indicate the sets of input
239         and output files to Run Script build phases in Xcode. By invoking
240         generate-unified-source-bundles.rb with -generate-xcfilelists, the
241         script generates these .xcfilelist files. These .xcfilelist files can
242         then be used to specify the inputs and outputs of the Generate Unified
243         Sources build phases.
244
245         * Scripts/generate-unified-source-bundles.rb:
246
247 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
248
249         Remove another OS version check from NetworkDataTaskCocoa.mm
250         https://bugs.webkit.org/show_bug.cgi?id=192046
251
252         Reviewed by Alex Christensen.
253
254         * wtf/Platform.h:
255
256 2018-11-28  Alexey Proskuryakov  <ap@apple.com>
257
258         Modernize version checks for same site cookie support
259         https://bugs.webkit.org/show_bug.cgi?id=192054
260
261         Reviewed by Tim Horton.
262
263         * wtf/Platform.h:
264
265 2018-11-27  Alexey Proskuryakov  <ap@apple.com>
266
267         Modernize the check for async _saveCookies existence
268         https://bugs.webkit.org/show_bug.cgi?id=191987
269
270         Reviewed by Dean Jackson.
271
272         * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
273         although it seems very likely that we want to do the same on other iOS family OSes.
274
275 2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>
276
277         [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
278         https://bugs.webkit.org/show_bug.cgi?id=191960
279
280         Reviewed by Alex Christensen.
281
282         * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
283         pointer argument of EncodePointer. Changed the type of stored
284         function pointer returned by EncodePointer.
285
286 2018-11-26  Sam Weinig  <sam@webkit.org>
287
288         Streamline ListHashSet use in floating object code
289         https://bugs.webkit.org/show_bug.cgi?id=191957
290
291         Reviewed by Alex Christensen.
292
293         * wtf/ListHashSet.h:
294         Reverses the order of the template arguments for the find() and contains()
295         overload that allow specifying a hash translator to allow the compiler to
296         deduce type T. This simplifies call sites and matches other WTF containers.
297
298 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
299
300         CRASH() should call abort() except on Darwin and in developer builds
301         https://bugs.webkit.org/show_bug.cgi?id=184408
302
303         Reviewed by Daniel Bates.
304
305         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
306         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
307
308         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
309         can't do that.
310
311         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
312         is reportedly useful in nightmare scenarios where core dumps are unavailable.
313
314         We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
315         use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
316         is also non-constexpr.
317
318         * wtf/Assertions.h:
319
320 2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>
321
322         Unreviewed, rolling out r238469.
323
324         Broke the build
325
326         Reverted changeset:
327
328         "CRASH() should call abort() except on Darwin and in developer
329         builds"
330         https://bugs.webkit.org/show_bug.cgi?id=184408
331         https://trac.webkit.org/changeset/238469
332
333 2018-11-24  Andy Estes  <aestes@apple.com>
334
335         [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
336         https://bugs.webkit.org/show_bug.cgi?id=191899
337
338         Reviewed by Dean Jackson.
339
340         Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
341         framework name. For example, NSView would have a class getter named
342         namespace::get_AppKit_NSViewClass().
343
344         Including the framework name in the getter is unnecessary. Objective-C classes already exist
345         in a global namespace, so there is no need to disambiguate class names by framework. This
346         patch elides the framework name from the getter function. For example, NSView would now have
347         a getter named namespace::getNSViewClass().
348
349         * wtf/cocoa/SoftLinking.h:
350
351 2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>
352
353         CRASH() should call abort() except on Darwin and in developer builds
354         https://bugs.webkit.org/show_bug.cgi?id=184408
355
356         Reviewed by Daniel Bates.
357
358         CRASH() should call abort() except on Darwin and in developer builds, as discussed on
359         webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.
360
361         On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
362         can't do that.
363
364         Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
365         is reportedly useful in nightmare scenarios where core dumps are unavailable.
366
367         * wtf/Assertions.h:
368
369 2018-11-23  Sam Weinig  <sam@webkit.org>
370
371         Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
372         https://bugs.webkit.org/show_bug.cgi?id=191936
373
374         Reviewed by Zalan Bujtas.
375
376         Adds overloads for find, contains, insertBefore and remove that take raw pointers
377         when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
378         This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
379         which already have this functionality. Like in the other collections, this is especially
380         useful when using std::unique_ptr<> as the value, since there would be no way to pass it
381         to these functions. One difference between this set of overloads is the inclusion of insertBefore,
382         which is unique to ListHashSet. As would be expected, this specialization only changes the first
383         parameter, the one that needs to be found, to support a raw pointer.  
384
385         * wtf/ListHashSet.h:
386         (WTF::U>::find):
387         (WTF::U>::find const):
388         (WTF::U>::contains const):
389         (WTF::U>::insertBefore):
390         (WTF::U>::remove):
391
392 2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
393
394         [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
395         https://bugs.webkit.org/show_bug.cgi?id=191675
396
397         Reviewed by Mark Lam.
398
399         * wtf/InlineASM.h:
400         * wtf/Platform.h:
401
402 2018-11-21  Andy Estes  <aestes@apple.com>
403
404         [Cocoa] Create a soft-linking file for PassKit
405         https://bugs.webkit.org/show_bug.cgi?id=191875
406         <rdar://problem/46203215>
407
408         Reviewed by Myles Maxfield.
409
410         * wtf/Platform.h: Defined USE_PASSKIT.
411         * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
412         SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
413         SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.
414
415 2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>
416
417         Enable JIT on ARM/Linux
418         https://bugs.webkit.org/show_bug.cgi?id=191548
419
420         Reviewed by Yusuke Suzuki.
421
422         Enable JIT by default on ARMv7/Linux after it was disabled with
423         recent bytcode format change.
424
425         * wtf/Platform.h:
426
427 2018-11-14  Keith Rollin  <krollin@apple.com>
428
429         Fix #end vs. #endif typo.
430         https://bugs.webkit.org/show_bug.cgi?id=191668
431         <rdar://problem/46081704>
432
433         Reviewed by Alexey Proskuryakov.
434
435         Source/WebCore/SourcesCocoa.txt had a #end that should have been a
436         #endif. Fix this, an add a check to generate-unified-source-bundles.rb
437         to detect similar typos.
438
439         * Scripts/generate-unified-source-bundles.rb:
440
441 2018-11-12  Mark Lam  <mark.lam@apple.com>
442
443         Add OOM detection to StringPrototype's substituteBackreferences().
444         https://bugs.webkit.org/show_bug.cgi?id=191563
445         <rdar://problem/45720428>
446
447         Reviewed by Saam Barati.
448
449         Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
450         the hasOverflowed() check if m_string is not null.  When m_string is not null,
451         the StringBuilder either only has a single String in m_string (with m_buffer being 
452         null), or reifyString() has already been called (resulting in a non-null m_string
453         with a possibly non-null m_buffer).
454
455         We can skip the overflow check because:
456         1. if the StringBuilder only has a single String, then there cannot be an overflow.
457         2. if reifyString() has already been called, then the hasOverflowed() checked has
458            already been done because every code path that calls reifyString() first does
459            the hasOverflowed() check.
460
461         We can skip shrinkToFit() because it only applies to m_buffer.
462         1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
463         2. if reifyString() has already been called, then we either came down
464            a. the toString() path with a null m_string previously, where we would have
465               already called shrinkToFit() before reifyString(), or
466            b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().
467
468         We can skip reifyString() because:
469         1. if the StringBuilder only has a single String, then the string is already reified.
470         2. if reifyString() has been already called, then the string is already reified.
471
472         Note that if m_string is the null string and m_buffer is null, reifyString() will
473         replace it with the empty string.  For this reason, we cannot solely check for
474         !m_buffer because we need to reify the null string into the empty string.
475
476         Note also that if m_string is null and m_buffer is non-null, reifyString() will
477         create a String and set m_string to it.  However, m_buffer remains non-null.
478         For this reason, we cannot assert !m_buffer alone when m_string is non-null.
479         We add a m_isReified flag (only when assertions are enabled) to track the reified
480         case where both m_buffer and m_string are non-null.
481
482         * wtf/text/StringBuilder.cpp:
483         (WTF::StringBuilder::reifyString const):
484         * wtf/text/StringBuilder.h:
485         (WTF::StringBuilder::toString):
486
487 2018-11-10  Benjamin Poulain  <benjamin@webkit.org>
488
489         Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
490         https://bugs.webkit.org/show_bug.cgi?id=191492
491
492         Reviewed by Alex Christensen.
493
494         Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
495         the cases, some systems have issues with applying this patch.
496
497         To work around the problem, the change is made is two patches, first rename to
498         WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.
499
500         * WTF.xcodeproj/project.pbxproj:
501         * wtf/CMakeLists.txt:
502         * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
503         (wtfObjCMsgSend):
504
505 2018-11-09  Keith Miller  <keith_miller@apple.com>
506
507         LLInt VectorSizeOffset should be based on offset extraction
508         https://bugs.webkit.org/show_bug.cgi?id=191468
509
510         Reviewed by Yusuke Suzuki.
511
512         Make things friends with LLIntOffsetsExtractor.
513
514         * wtf/RefCountedArray.h:
515         * wtf/Vector.h:
516
517 2018-11-09  Jim Mason  <jmason@ibinx.com>
518
519         [WTF] Changes in bug 188867 break non-Linux Unix builds
520         https://bugs.webkit.org/show_bug.cgi?id=191380
521
522         The intention of 188867 was to split out platform-specific
523         heap query/release code.  Any unsupported platform
524         would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
525         ended up sending all non-Linux platforms through the Linux
526         implementation, which breaks the build for those platforms.
527         This includes any user of the GTK target which is not Linux,
528         such as the *BSDs, Solaris, etc.
529
530         Reviewed by Yusuke Suzuki.
531
532         * wtf/PlatformGTK.cmake: Updated to include Linux-specific
533         code only for Linux; all other platforms use the generic stub.
534
535 2018-11-06  Geoffrey Garen  <ggaren@apple.com>
536
537         Removed mbmalloc target from WTF
538         https://bugs.webkit.org/show_bug.cgi?id=191313
539
540         Reviewed by Saam Barati.
541
542         For benchmarking, WTF::fastMalloc is no longer meaningfully different
543         from bmalloc. (And bmalloc has its own mbmalloc target.)
544
545         * Configurations/mbmalloc.xcconfig: Removed.
546         * WTF.xcodeproj/project.pbxproj:
547         * wtf/mbmalloc.cpp: Removed.
548
549 2018-11-08  Alexey Proskuryakov  <ap@apple.com>
550
551         Re-add PLATFORM(IOS), now with the strict meaning
552         https://bugs.webkit.org/show_bug.cgi?id=191281
553
554         Reviewed by Tim Horton.
555
556         * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
557         when expanded, it might be that the values are incorrect for some flavors of iOS family.
558
559 2018-11-08  Dean Jackson  <dino@apple.com>
560
561         Add a String literal that returns a String
562         https://bugs.webkit.org/show_bug.cgi?id=191425
563         <rdar://problem/45914556>
564
565         Reviewed by Sam Weinig.
566
567         Add a new String literal, _str, that will return a String type.
568         This is useful when ""_s won't work, such as for things that
569         don't take an ASCIILiteral directly e.g. ExceptionOr<String>
570         or Variants.
571
572         * wtf/text/WTFString.h:
573         (WTF::StringLiterals::operator _str): Added.
574
575 2018-11-06  Justin Fan  <justin_fan@apple.com>
576
577         [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
578         https://bugs.webkit.org/show_bug.cgi?id=191291
579
580         Reviewed by Myles Maxfield.
581
582         Properly disable WEBGPU on all non-Metal platforms for now.
583
584         * wtf/Platform.h:
585
586 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
587
588         Cache glyph paths and share underline skipping code between all the ports
589         https://bugs.webkit.org/show_bug.cgi?id=191239
590
591         Reviewed by Alex Christensen.
592
593         Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.
594
595         * wtf/Platform.h:
596
597 2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>
598
599         Enable LLInt on ARMv7/Linux
600         https://bugs.webkit.org/show_bug.cgi?id=191190
601
602         Reviewed by Yusuke Suzuki.
603
604         After enabling the new bytecode format in r237547, C_LOOP was
605         forced on all 32-bit platforms. Now enable LLInt again on
606         ARMv7-Thumb2/Linux by default.
607
608         * wtf/Platform.h:
609
610 2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>
611
612         [Win] Use C++14, not C++17
613         https://bugs.webkit.org/show_bug.cgi?id=191101
614
615         Reviewed by Alex Christensen.
616
617         * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
618         instead of _MSC_FULL_VER.
619
620 2018-11-02  Justin Fan  <justin_fan@apple.com>
621
622         [WebGPU] Experimental prototype for MSL shaders
623         https://bugs.webkit.org/show_bug.cgi?id=191084
624
625         Reviewed by Dean Jackson.
626
627         Disabling WebGPU on non-Cocoa platforms and iOS Simulator.
628
629         * wtf/Platform.h:
630
631 2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>
632
633         Replace CommonRandom SPI with API
634         https://bugs.webkit.org/show_bug.cgi?id=191178
635         <rdar://problem/45722391>
636
637         Reviewed by Brent Fulgham.
638
639         * WTF.xcodeproj/project.pbxproj:
640         * wtf/CMakeLists.txt:
641         * wtf/RandomDevice.cpp:
642         (WTF::RandomDevice::cryptographicallyRandomValues):
643         * wtf/spi/darwin/CommonCryptoSPI.h: Removed.
644
645 2018-11-01  Fujii Hironori  <Hironori.Fujii@sony.com>
646
647         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
648         https://bugs.webkit.org/show_bug.cgi?id=189693
649
650         Reviewed by Yusuke Suzuki.
651
652         * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
653         * wtf/CMakeLists.txt: Ditto.
654         * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
655         * wtf/text/StringImpl.cpp: Ditto.
656         * wtf/text/StringView.cpp: Ditto.
657         * wtf/text/WTFString.cpp: Ditto.
658         * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
659         * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.
660
661 2018-10-30  Don Olmstead  <don.olmstead@sony.com>
662
663         [PlayStation] Enable JavaScriptCore
664         https://bugs.webkit.org/show_bug.cgi?id=191072
665
666         Reviewed by Brent Fulgham.
667
668         Add platform files for the PlayStation port.
669
670         * wtf/PlatformPlayStation.cmake: Added.
671
672 2018-10-30  David Kilzer  <ddkilzer@apple.com>
673
674         XSLTProcessor should limit max transform depth
675         <https://webkit.org/b/191075>
676         <rdar://problem/45531453>
677
678         Reviewed by Alex Christensen.
679
680         * wtf/cocoa/SoftLinking.h:
681         (SOFT_LINK_VARIABLE_FOR_HEADER):
682         (SOFT_LINK_VARIABLE_FOR_SOURCE):
683         - Add macros for non-constant global variables.
684
685 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
686
687         Clean up some obsolete MAX_ALLOWED macros
688         https://bugs.webkit.org/show_bug.cgi?id=190916
689
690         Reviewed by Tim Horton.
691
692         * WTF.xcodeproj/project.pbxproj:
693         * wtf/PlatformMac.cmake:
694         * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.
695
696 2018-10-29  Mark Lam  <mark.lam@apple.com>
697
698         Correctly detect string overflow when using the 'Function' constructor.
699         https://bugs.webkit.org/show_bug.cgi?id=184883
700         <rdar://problem/36320331>
701
702         Reviewed by Saam Barati.
703
704         1. Enhanced StringBuilder so that it supports 2 modes of behavior:
705            a. StringBuilder::OverflowHandler::CrashOnOverflow.
706            b. StringBuilder::OverflowHandler::RecordOverflow.
707
708            CrashOnOverflow will crash the moment an overflow or failure to allocate
709            memory is detected.
710
711            RecordOverflow will make StringBuilder::hasOverflowed() return true when an
712            overflow or failure to allocate memory is detected.  However, if the user
713            invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
714            capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
715            will crash regardless because these methods can only meaningfully do their
716            work and return a result if and only if the builder has not overflowed.
717
718            By default, the StringBuilder crashes on overflow (the old behavior) unless it
719            is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
720            enum.
721
722            Design note:
723
724            The StringBuilder can only be put in 1 of the 2 modes at the time of
725            construction.  This means that we could have implemented it as a template
726            that is parameterized on an OverflowHandler class (like CheckedArithmetic)
727            instead of using a runtime check in the ConditionalCrashOnOverflow handler.
728
729            However, I was not able to get clang to export the explicitly instantiated
730            instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
731            Since the StringBuilder is a transient object (not stored for a long time on
732            the heap), and the runtime check of the boolean is not that costly compared
733            to other work that StringBuilder routinely does (e.g. memcpy), using the
734            new ConditionalCrashOnOverflow (which does a runtime check to determine to
735            crash or not on overflow) is fine.
736
737            When clang is able to export explicitly instantiated template methods, we can
738            templatize StringBuilder and do away with ConditionalCrashOnOverflow.
739            See https://bugs.webkit.org/show_bug.cgi?id=191050.
740
741         To support the above, we also did:
742
743         2. Enhanced all StringBuilder append and buffer allocation methods to be able to
744            fail without crashing.  This also meant that ...
745
746         3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
747            FastMalloc, and bmalloc (and related peers) to enable this.
748
749         4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
750            like CrashOnOverflow or RecordOverflow.
751
752         * wtf/CheckedArithmetic.h:
753         (WTF::ConditionalCrashOnOverflow::overflowed):
754         (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
755         (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
756         (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
757         (WTF::ConditionalCrashOnOverflow::clearOverflow):
758         (WTF::ConditionalCrashOnOverflow::crash):
759         (WTF::RecordOverflow::overflowed):
760         (WTF::Checked::unsafeGet const):
761         * wtf/FastMalloc.cpp:
762         (WTF::tryFastRealloc):
763         * wtf/FastMalloc.h:
764         * wtf/text/StringBuilder.cpp:
765         (WTF::expandedCapacity):
766         (WTF::StringBuilder::reifyString const):
767         (WTF::StringBuilder::resize):
768         (WTF::StringBuilder::allocateBuffer):
769         (WTF::StringBuilder::allocateBufferUpConvert):
770         (WTF::StringBuilder::reallocateBuffer<LChar>):
771         (WTF::StringBuilder::reallocateBuffer<UChar>):
772         (WTF::StringBuilder::reserveCapacity):
773         (WTF::StringBuilder::appendUninitialized):
774         (WTF::StringBuilder::appendUninitializedSlow):
775         (WTF::StringBuilder::append):
776         (WTF::StringBuilder::canShrink const):
777         (WTF::StringBuilder::shrinkToFit):
778         * wtf/text/StringBuilder.h:
779         (WTF::StringBuilder::StringBuilder):
780         (WTF::StringBuilder::didOverflow):
781         (WTF::StringBuilder::hasOverflowed const):
782         (WTF::StringBuilder::crashesOnOverflow const):
783         (WTF::StringBuilder::append):
784         (WTF::StringBuilder::toString):
785         (WTF::StringBuilder::toStringPreserveCapacity const):
786         (WTF::StringBuilder::toAtomicString const):
787         (WTF::StringBuilder::length const):
788         (WTF::StringBuilder::capacity const):
789         (WTF::StringBuilder::operator[] const):
790         (WTF::StringBuilder::swap):
791         (WTF::StringBuilder::getBufferCharacters<UChar>):
792         * wtf/text/StringBuilderJSON.cpp:
793         (WTF::StringBuilder::appendQuotedJSONString):
794         * wtf/text/StringImpl.cpp:
795         (WTF::StringImpl::reallocateInternal):
796         (WTF::StringImpl::reallocate):
797         (WTF::StringImpl::tryReallocate):
798         * wtf/text/StringImpl.h:
799
800 2018-10-29  Tim Horton  <timothy_horton@apple.com>
801
802         Modernize WebKit nibs and lprojs for localization's sake
803         https://bugs.webkit.org/show_bug.cgi?id=190911
804         <rdar://problem/45349466>
805
806         Reviewed by Dan Bernstein.
807
808         * WTF.xcodeproj/project.pbxproj:
809         English->en
810
811 2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>
812
813         New bytecode format for JSC
814         https://bugs.webkit.org/show_bug.cgi?id=187373
815         <rdar://problem/44186758>
816
817         Reviewed by Filip Pizlo.
818
819         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
820         a macro was passed multiple arguments
821         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
822         * wtf/Vector.h:
823         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
824
825 2018-10-28  Geoffrey Garen  <ggaren@apple.com>
826
827         HashMap should support selecting a random entry
828         https://bugs.webkit.org/show_bug.cgi?id=190814
829
830         Reviewed by Ryosuke Niwa.
831
832         * wtf/HashTable.h:
833         (WTF::HashTable::random):
834         (WTF::HashTable::random const): Merge the empty and deleted checks, and
835         use more idiomatic addressing.
836
837 2018-10-26  Commit Queue  <commit-queue@webkit.org>
838
839         Unreviewed, rolling out r237479 and r237484.
840         https://bugs.webkit.org/show_bug.cgi?id=190978
841
842         broke JSC on iOS (Requested by tadeuzagallo on #webkit).
843
844         Reverted changesets:
845
846         "New bytecode format for JSC"
847         https://bugs.webkit.org/show_bug.cgi?id=187373
848         https://trac.webkit.org/changeset/237479
849
850         "Gardening: Build fix after r237479."
851         https://bugs.webkit.org/show_bug.cgi?id=187373
852         https://trac.webkit.org/changeset/237484
853
854 2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>
855
856         New bytecode format for JSC
857         https://bugs.webkit.org/show_bug.cgi?id=187373
858         <rdar://problem/44186758>
859
860         Reviewed by Filip Pizlo.
861
862         * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
863         a macro was passed multiple arguments
864         * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
865         * wtf/Vector.h:
866         (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector
867
868 2018-10-26  Geoffrey Garen  <ggaren@apple.com>
869
870         HashMap should support selecting a random entry
871         https://bugs.webkit.org/show_bug.cgi?id=190814
872
873         Reviewed by Antti Koivisto.
874
875         * wtf/HashTable.h:
876         (WTF::HashTable::random):
877         (WTF::HashTable::random const): Draw a new random bucket any time we
878         have a miss, to avoid bias caused by lopsided tables.
879
880 2018-10-26  Antti Koivisto  <antti@apple.com>
881
882         hashSet.remove(hashSet.random()) doesn't build
883         https://bugs.webkit.org/show_bug.cgi?id=190953
884
885         Reviewed by Chris Dumez.
886
887         * wtf/HashSet.h:
888
889         Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).
890
891         * wtf/HashTable.h:
892         (WTF::HashTable::random const):
893
894         Invoke const_iterator() by using static_cast<> instead of trying to do it directly.
895
896 2018-10-26  Alicia Boya García  <aboya@igalia.com>
897
898         [MSE][WTF][Media] Invalid MediaTime should be falsy
899         https://bugs.webkit.org/show_bug.cgi?id=190893
900
901         Reviewed by Jer Noble.
902
903         This patch modifies the definition of MediaTime so that invalid times
904         are evaluated to false in the context of a boolean expression.
905
906         * wtf/MediaTime.cpp:
907         (WTF::MediaTime::operator! const):
908         (WTF::MediaTime::operator bool const):
909
910 2018-10-26  Keith Miller  <keith_miller@apple.com>
911
912         Some internal projects include wtf headers and build with C++11
913         https://bugs.webkit.org/show_bug.cgi?id=190791
914
915         Reviewed by Alexey Proskuryakov.
916
917         C++11 doesn't support constexpr functions that contain
918         statements. This patch removes getLSBSet set from builds before
919         C++14 to avoid this for now.
920
921         * wtf/MathExtras.h:
922         (getLSBSet):
923
924 2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>
925
926         Cleanup: inline constexpr is redundant as constexpr implies inline
927         https://bugs.webkit.org/show_bug.cgi?id=190819
928
929         Reviewed by Mark Lam.
930
931         * wtf/Bitmap.h:
932         (WTF::WordType>::Bitmap):
933         * wtf/LEBDecoder.h:
934         (WTF::LEBDecoder::maxByteLength):
935         * wtf/MathExtras.h:
936         (defaultMinimumForClamp):
937         (defaultMaximumForClamp):
938         (clampToAccepting64):
939         (isLessThan):
940         (isLessThanEqual):
941         (isGreaterThan):
942         (isGreaterThanEqual):
943         (WTF::roundUpToPowerOfTwo):
944         (WTF::maskForSize):
945         * wtf/Optional.h:
946         * wtf/PtrTag.h:
947         (WTF::tagCodePtr):
948         (WTF::untagCodePtr):
949         (WTF::retagCodePtr):
950         (WTF::removeCodePtrTag):
951         * wtf/StdLibExtras.h:
952         (WTF::roundUpToMultipleOf):
953         * wtf/Variant.h:
954         (WTF::operator==):
955         (WTF::operator!=):
956         (WTF::operator>=):
957         (WTF::operator<=):
958         (WTF::operator>):
959         (WTF::operator<):
960         * wtf/text/StringImpl.h:
961         (WTF::StringImplShape::StringImplShape):
962         (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
963
964 2018-10-25  Geoffrey Garen  <ggaren@apple.com>
965
966         HashMap should support selecting a random entry
967         https://bugs.webkit.org/show_bug.cgi?id=190814
968
969         Reviewed by Antti Koivisto.
970
971         In some cases, remove(begin()) is not quite good enough as a random
972         eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
973         So, let's support real random eviction.
974
975         (And by "real" I mean "pseudo".)
976
977         * wtf/HashCountedSet.h:
978         * wtf/HashMap.h:
979         * wtf/HashSet.h:
980         * wtf/ListHashSet.h:
981         (WTF::ListHashSet::random):
982         (WTF::ListHashSet::random const):
983         * wtf/LoggingHashMap.h:
984         * wtf/LoggingHashSet.h: Plumb through the random() iterator.
985
986         * wtf/HashTable.h:
987         (WTF::HashTable::random):
988         (WTF::HashTable::random const): Implement the random() iterator.
989         makeIterator() already supports starting from any bucket, so this is
990         pretty easy.
991
992         In the subtle case where we select end(), we choose to wrap around and
993         return begin(). We expect that clients don't really think of the end()
994         bucket as being in the domain of the random search. Also, we don't want
995         to annoy clients who know their tables are non-empty with needless
996         checks for end().
997
998         * wtf/RandomNumber.cpp:
999         (WTF::weakRandomUint32):
1000         * wtf/RandomNumber.h: Added a free function for weak random numbers so
1001         that clients that want cheap random numbers aren't required to allocate
1002         storage for a WeakRandom generator.
1003
1004 2018-10-24  Megan Gardner  <megan_gardner@apple.com>
1005
1006         Turn on Conic Gradients
1007         https://bugs.webkit.org/show_bug.cgi?id=190810
1008
1009         Reviewed by Tim Horton.
1010
1011         * wtf/FeatureDefines.h:
1012
1013 2018-10-24  Christopher Reid  <chris.reid@sony.com>
1014
1015         [Win] Add function call name information to stack traces
1016         https://bugs.webkit.org/show_bug.cgi?id=190761
1017
1018         Reviewed by Fujii Hironori.
1019
1020         Add symbol information to stack traces using dbghelp.dll
1021         This library will use symbols files from these sources:
1022             - The current working directory
1023             - The directory containing the application's executable
1024             - _NT_SYMBOL_PATH environment variable
1025             - _NT_ALTERNATE_SYMBOL_PATH environment variable
1026
1027         This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
1028         The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
1029         can still attempt to call the library at the same time as WebKit.
1030
1031         * wtf/CMakeLists.txt:
1032         * wtf/PlatformWin.cmake:
1033         * wtf/StackTrace.cpp:
1034         * wtf/win/DbgHelperWin.cpp: Added.
1035         * wtf/win/DbgHelperWin.h: Added.
1036
1037 2018-10-22  Alexey Proskuryakov  <ap@apple.com>
1038
1039         Really prevent PLATFORM(IOS) from being used
1040         https://bugs.webkit.org/show_bug.cgi?id=190813
1041
1042         Reviewed by Tim Horton.
1043
1044         * wtf/Platform.h: This relies on -Wundef, which we have enabled.
1045
1046 2018-10-22  Chris Dumez  <cdumez@apple.com>
1047
1048         Deque's contains() and findIf() should be const
1049         https://bugs.webkit.org/show_bug.cgi?id=190796
1050
1051         Reviewed by Antti Koivisto.
1052
1053         Deque's contains() and findIf() should be const as they do not modify the container.
1054
1055         * wtf/Deque.h:
1056         (WTF::inlineCapacity>::findIf):
1057         (WTF::inlineCapacity>::findIf const):
1058         (WTF::inlineCapacity>::contains const):
1059         (WTF::inlineCapacity>::contains): Deleted.
1060
1061 2018-10-18  Alicia Boya García  <aboya@igalia.com>
1062
1063         [Media] Use nanoseconds as MaximumTimeScale
1064         https://bugs.webkit.org/show_bug.cgi?id=190631
1065
1066         1e9 is a much more useful timescale than the previous one 2^31-1.
1067         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1068         common among some formats like WebM and frameworks like GStreamer
1069         where base 10 timescale is common... and it's those big timescales the
1070         ones that are usually scaled up to MaximumTimeScale.
1071
1072         Reviewed by Jer Noble.
1073
1074         * wtf/MediaTime.cpp:
1075
1076 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1077
1078         Remove PLATFORM(IOS) for now
1079         https://bugs.webkit.org/show_bug.cgi?id=190737
1080
1081         Reviewed by Tim Horton.
1082
1083         * wtf/Platform.h:
1084
1085 2018-10-18  Alexey Proskuryakov  <ap@apple.com>
1086
1087         Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
1088         https://bugs.webkit.org/show_bug.cgi?id=190729
1089
1090         Reviewed by Tim Horton.
1091
1092         * wtf/Assertions.h:
1093         * wtf/FeatureDefines.h:
1094         * wtf/InlineASM.h:
1095         * wtf/MemoryPressureHandler.cpp:
1096         (WTF::thresholdForPolicy):
1097         * wtf/Platform.h:
1098         * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
1099         (WTF::MemoryPressureHandler::install):
1100         (WTF::MemoryPressureHandler::respondToMemoryPressure):
1101         * wtf/spi/cocoa/NSMapTableSPI.h:
1102         * wtf/spi/darwin/XPCSPI.h:
1103         * wtf/text/StringCommon.h:
1104         * wtf/text/TextBreakIterator.cpp:
1105         * wtf/text/TextBreakIterator.h:
1106         * wtf/unicode/icu/CollatorICU.cpp:
1107         (WTF::copyDefaultLocale):
1108
1109 2018-10-18  Alex Christensen  <achristensen@webkit.org>
1110
1111         Clean up FrameLoader two-state enums
1112         https://bugs.webkit.org/show_bug.cgi?id=190731
1113
1114         Reviewed by Chris Dumez.
1115
1116         * wtf/EnumTraits.h:
1117         (WTF::isValidEnum):
1118
1119 2018-10-17  Commit Queue  <commit-queue@webkit.org>
1120
1121         Unreviewed, rolling out r237208.
1122         https://bugs.webkit.org/show_bug.cgi?id=190691
1123
1124         Caused the API test that was changed to failure continuously
1125         (Requested by Truitt on #webkit).
1126
1127         Reverted changeset:
1128
1129         "[Media] Use nanoseconds as MaximumTimeScale"
1130         https://bugs.webkit.org/show_bug.cgi?id=190631
1131         https://trac.webkit.org/changeset/237208
1132
1133 2018-10-16  Alicia Boya García  <aboya@igalia.com>
1134
1135         [Media] Use nanoseconds as MaximumTimeScale
1136         https://bugs.webkit.org/show_bug.cgi?id=190631
1137
1138         1e9 is a much more useful timescale than the previous one 2^31-1.
1139         Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
1140         common among some formats like WebM and frameworks like GStreamer
1141         where base 10 timescale is common... and it's those big timescales the
1142         ones that are usually scaled up to MaximumTimeScale.
1143
1144         Reviewed by Jer Noble.
1145
1146         * wtf/MediaTime.cpp:
1147
1148 2018-10-15  Keith Miller  <keith_miller@apple.com>
1149
1150         Support arm64 CPUs with a 32-bit address space
1151         https://bugs.webkit.org/show_bug.cgi?id=190273
1152
1153         Reviewed by Michael Saboff.
1154
1155         Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.
1156
1157         * wtf/MathExtras.h:
1158         (getLSBSet):
1159         * wtf/Platform.h:
1160
1161 2018-10-15  Timothy Hatcher  <timothy@apple.com>
1162
1163         Add support for prefers-color-scheme media query
1164         https://bugs.webkit.org/show_bug.cgi?id=190499
1165         rdar://problem/45212025
1166
1167         Reviewed by Dean Jackson.
1168
1169         * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.
1170
1171 2018-10-15  Saam barati  <sbarati@apple.com>
1172
1173         Emit fjcvtzs on ARM64E on Darwin
1174         https://bugs.webkit.org/show_bug.cgi?id=184023
1175
1176         Reviewed by Yusuke Suzuki and Filip Pizlo.
1177
1178         * wtf/Platform.h:
1179
1180 2018-10-15  Alex Christensen  <achristensen@webkit.org>
1181
1182         Use pragma once in WTF
1183         https://bugs.webkit.org/show_bug.cgi?id=190527
1184
1185         Reviewed by Chris Dumez.
1186
1187         We also need to consistently include wtf headers from within wtf so we can build wtf without
1188         symbol redefinition errors from including the copy in Source and the copy in the build directory.
1189
1190         * wtf/ASCIICType.h:
1191         * wtf/Assertions.cpp:
1192         * wtf/Assertions.h:
1193         * wtf/Atomics.h:
1194         * wtf/AutomaticThread.cpp:
1195         * wtf/AutomaticThread.h:
1196         * wtf/BackwardsGraph.h:
1197         * wtf/Bag.h:
1198         * wtf/BagToHashMap.h:
1199         * wtf/BitVector.cpp:
1200         * wtf/BitVector.h:
1201         * wtf/Bitmap.h:
1202         * wtf/BloomFilter.h:
1203         * wtf/Box.h:
1204         * wtf/BubbleSort.h:
1205         * wtf/BumpPointerAllocator.h:
1206         * wtf/ByteOrder.h:
1207         * wtf/CPUTime.cpp:
1208         * wtf/CallbackAggregator.h:
1209         * wtf/CheckedArithmetic.h:
1210         * wtf/CheckedBoolean.h:
1211         * wtf/ClockType.cpp:
1212         * wtf/ClockType.h:
1213         * wtf/CommaPrinter.h:
1214         * wtf/CompilationThread.cpp:
1215         * wtf/CompilationThread.h:
1216         * wtf/Compiler.h:
1217         * wtf/ConcurrentPtrHashSet.cpp:
1218         * wtf/ConcurrentVector.h:
1219         * wtf/Condition.h:
1220         * wtf/CountingLock.cpp:
1221         * wtf/CrossThreadTaskHandler.cpp:
1222         * wtf/CryptographicUtilities.cpp:
1223         * wtf/CryptographicUtilities.h:
1224         * wtf/CryptographicallyRandomNumber.cpp:
1225         * wtf/CryptographicallyRandomNumber.h:
1226         * wtf/CurrentTime.cpp:
1227         * wtf/DataLog.cpp:
1228         * wtf/DataLog.h:
1229         * wtf/DateMath.cpp:
1230         * wtf/DateMath.h:
1231         * wtf/DecimalNumber.cpp:
1232         * wtf/DecimalNumber.h:
1233         * wtf/Deque.h:
1234         * wtf/DisallowCType.h:
1235         * wtf/Dominators.h:
1236         * wtf/DoublyLinkedList.h:
1237         * wtf/FastBitVector.cpp:
1238         * wtf/FastMalloc.cpp:
1239         * wtf/FastMalloc.h:
1240         * wtf/FeatureDefines.h:
1241         * wtf/FilePrintStream.cpp:
1242         * wtf/FilePrintStream.h:
1243         * wtf/FlipBytes.h:
1244         * wtf/FunctionDispatcher.cpp:
1245         * wtf/FunctionDispatcher.h:
1246         * wtf/GetPtr.h:
1247         * wtf/Gigacage.cpp:
1248         * wtf/GlobalVersion.cpp:
1249         * wtf/GraphNodeWorklist.h:
1250         * wtf/GregorianDateTime.cpp:
1251         * wtf/GregorianDateTime.h:
1252         * wtf/HashFunctions.h:
1253         * wtf/HashMap.h:
1254         * wtf/HashMethod.h:
1255         * wtf/HashSet.h:
1256         * wtf/HashTable.cpp:
1257         * wtf/HashTraits.h:
1258         * wtf/Indenter.h:
1259         * wtf/IndexSparseSet.h:
1260         * wtf/InlineASM.h:
1261         * wtf/Insertion.h:
1262         * wtf/IteratorAdaptors.h:
1263         * wtf/IteratorRange.h:
1264         * wtf/JSONValues.cpp:
1265         * wtf/JSValueMalloc.cpp:
1266         * wtf/LEBDecoder.h:
1267         * wtf/Language.cpp:
1268         * wtf/ListDump.h:
1269         * wtf/Lock.cpp:
1270         * wtf/Lock.h:
1271         * wtf/LockAlgorithm.h:
1272         * wtf/LockedPrintStream.cpp:
1273         * wtf/Locker.h:
1274         * wtf/MD5.cpp:
1275         * wtf/MD5.h:
1276         * wtf/MainThread.cpp:
1277         * wtf/MainThread.h:
1278         * wtf/MallocPtr.h:
1279         * wtf/MathExtras.h:
1280         * wtf/MediaTime.cpp:
1281         * wtf/MediaTime.h:
1282         * wtf/MemoryPressureHandler.cpp:
1283         * wtf/MessageQueue.h:
1284         * wtf/MetaAllocator.cpp:
1285         * wtf/MetaAllocator.h:
1286         * wtf/MetaAllocatorHandle.h:
1287         * wtf/MonotonicTime.cpp:
1288         * wtf/MonotonicTime.h:
1289         * wtf/NakedPtr.h:
1290         * wtf/NoLock.h:
1291         * wtf/NoTailCalls.h:
1292         * wtf/Noncopyable.h:
1293         * wtf/NumberOfCores.cpp:
1294         * wtf/NumberOfCores.h:
1295         * wtf/OSAllocator.h:
1296         * wtf/OSAllocatorPosix.cpp:
1297         * wtf/OSRandomSource.cpp:
1298         * wtf/OSRandomSource.h:
1299         * wtf/ObjcRuntimeExtras.h:
1300         * wtf/OrderMaker.h:
1301         * wtf/PackedIntVector.h:
1302         * wtf/PageAllocation.h:
1303         * wtf/PageBlock.cpp:
1304         * wtf/PageBlock.h:
1305         * wtf/PageReservation.h:
1306         * wtf/ParallelHelperPool.cpp:
1307         * wtf/ParallelHelperPool.h:
1308         * wtf/ParallelJobs.h:
1309         * wtf/ParallelJobsLibdispatch.h:
1310         * wtf/ParallelVectorIterator.h:
1311         * wtf/ParkingLot.cpp:
1312         * wtf/ParkingLot.h:
1313         * wtf/Platform.h:
1314         * wtf/PointerComparison.h:
1315         * wtf/Poisoned.cpp:
1316         * wtf/PrintStream.cpp:
1317         * wtf/PrintStream.h:
1318         * wtf/ProcessID.h:
1319         * wtf/ProcessPrivilege.cpp:
1320         * wtf/RAMSize.cpp:
1321         * wtf/RAMSize.h:
1322         * wtf/RandomDevice.cpp:
1323         * wtf/RandomNumber.cpp:
1324         * wtf/RandomNumber.h:
1325         * wtf/RandomNumberSeed.h:
1326         * wtf/RangeSet.h:
1327         * wtf/RawPointer.h:
1328         * wtf/ReadWriteLock.cpp:
1329         * wtf/RedBlackTree.h:
1330         * wtf/Ref.h:
1331         * wtf/RefCountedArray.h:
1332         * wtf/RefCountedLeakCounter.cpp:
1333         * wtf/RefCountedLeakCounter.h:
1334         * wtf/RefCounter.h:
1335         * wtf/RefPtr.h:
1336         * wtf/RetainPtr.h:
1337         * wtf/RunLoop.cpp:
1338         * wtf/RunLoop.h:
1339         * wtf/RunLoopTimer.h:
1340         * wtf/RunLoopTimerCF.cpp:
1341         * wtf/SHA1.cpp:
1342         * wtf/SHA1.h:
1343         * wtf/SaturatedArithmetic.h:
1344         (saturatedSubtraction):
1345         * wtf/SchedulePair.h:
1346         * wtf/SchedulePairCF.cpp:
1347         * wtf/SchedulePairMac.mm:
1348         * wtf/ScopedLambda.h:
1349         * wtf/Seconds.cpp:
1350         * wtf/Seconds.h:
1351         * wtf/SegmentedVector.h:
1352         * wtf/SentinelLinkedList.h:
1353         * wtf/SharedTask.h:
1354         * wtf/SimpleStats.h:
1355         * wtf/SingleRootGraph.h:
1356         * wtf/SinglyLinkedList.h:
1357         * wtf/SixCharacterHash.cpp:
1358         * wtf/SixCharacterHash.h:
1359         * wtf/SmallPtrSet.h:
1360         * wtf/Spectrum.h:
1361         * wtf/StackBounds.cpp:
1362         * wtf/StackBounds.h:
1363         * wtf/StackStats.cpp:
1364         * wtf/StackStats.h:
1365         * wtf/StackTrace.cpp:
1366         * wtf/StdLibExtras.h:
1367         * wtf/StreamBuffer.h:
1368         * wtf/StringHashDumpContext.h:
1369         * wtf/StringPrintStream.cpp:
1370         * wtf/StringPrintStream.h:
1371         * wtf/ThreadGroup.cpp:
1372         * wtf/ThreadMessage.cpp:
1373         * wtf/ThreadSpecific.h:
1374         * wtf/Threading.cpp:
1375         * wtf/Threading.h:
1376         * wtf/ThreadingPrimitives.h:
1377         * wtf/ThreadingPthreads.cpp:
1378         * wtf/TimeWithDynamicClockType.cpp:
1379         * wtf/TimeWithDynamicClockType.h:
1380         * wtf/TimingScope.cpp:
1381         * wtf/TinyLRUCache.h:
1382         * wtf/TinyPtrSet.h:
1383         * wtf/TriState.h:
1384         * wtf/TypeCasts.h:
1385         * wtf/UUID.cpp:
1386         * wtf/UnionFind.h:
1387         * wtf/VMTags.h:
1388         * wtf/ValueCheck.h:
1389         * wtf/Vector.h:
1390         * wtf/VectorTraits.h:
1391         * wtf/WallTime.cpp:
1392         * wtf/WallTime.h:
1393         * wtf/WeakPtr.h:
1394         * wtf/WeakRandom.h:
1395         * wtf/WordLock.cpp:
1396         * wtf/WordLock.h:
1397         * wtf/WorkQueue.cpp:
1398         * wtf/WorkQueue.h:
1399         * wtf/WorkerPool.cpp:
1400         * wtf/cf/LanguageCF.cpp:
1401         * wtf/cf/RunLoopCF.cpp:
1402         * wtf/cocoa/Entitlements.mm:
1403         * wtf/cocoa/MachSendRight.cpp:
1404         * wtf/cocoa/MainThreadCocoa.mm:
1405         * wtf/cocoa/MemoryFootprintCocoa.cpp:
1406         * wtf/cocoa/WorkQueueCocoa.cpp:
1407         * wtf/dtoa.cpp:
1408         * wtf/dtoa.h:
1409         * wtf/ios/WebCoreThread.cpp:
1410         * wtf/ios/WebCoreThread.h:
1411         * wtf/mac/AppKitCompatibilityDeclarations.h:
1412         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
1413         * wtf/mbmalloc.cpp:
1414         * wtf/persistence/PersistentCoders.cpp:
1415         * wtf/persistence/PersistentDecoder.cpp:
1416         * wtf/persistence/PersistentEncoder.cpp:
1417         * wtf/spi/cf/CFBundleSPI.h:
1418         * wtf/spi/darwin/CommonCryptoSPI.h:
1419         * wtf/text/ASCIIFastPath.h:
1420         * wtf/text/ASCIILiteral.cpp:
1421         * wtf/text/AtomicString.cpp:
1422         * wtf/text/AtomicString.h:
1423         * wtf/text/AtomicStringHash.h:
1424         * wtf/text/AtomicStringImpl.cpp:
1425         * wtf/text/AtomicStringImpl.h:
1426         * wtf/text/AtomicStringTable.cpp:
1427         * wtf/text/AtomicStringTable.h:
1428         * wtf/text/Base64.cpp:
1429         * wtf/text/CString.cpp:
1430         * wtf/text/CString.h:
1431         * wtf/text/ConversionMode.h:
1432         * wtf/text/ExternalStringImpl.cpp:
1433         * wtf/text/IntegerToStringConversion.h:
1434         * wtf/text/LChar.h:
1435         * wtf/text/LineEnding.cpp:
1436         * wtf/text/StringBuffer.h:
1437         * wtf/text/StringBuilder.cpp:
1438         * wtf/text/StringBuilder.h:
1439         * wtf/text/StringBuilderJSON.cpp:
1440         * wtf/text/StringCommon.h:
1441         * wtf/text/StringConcatenate.h:
1442         * wtf/text/StringHash.h:
1443         * wtf/text/StringImpl.cpp:
1444         * wtf/text/StringImpl.h:
1445         * wtf/text/StringOperators.h:
1446         * wtf/text/StringView.cpp:
1447         * wtf/text/StringView.h:
1448         * wtf/text/SymbolImpl.cpp:
1449         * wtf/text/SymbolRegistry.cpp:
1450         * wtf/text/SymbolRegistry.h:
1451         * wtf/text/TextBreakIterator.cpp:
1452         * wtf/text/TextBreakIterator.h:
1453         * wtf/text/TextBreakIteratorInternalICU.h:
1454         * wtf/text/TextPosition.h:
1455         * wtf/text/TextStream.cpp:
1456         * wtf/text/UniquedStringImpl.h:
1457         * wtf/text/WTFString.cpp:
1458         * wtf/text/WTFString.h:
1459         * wtf/text/cocoa/StringCocoa.mm:
1460         * wtf/text/cocoa/StringViewCocoa.mm:
1461         * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
1462         * wtf/text/icu/UTextProvider.cpp:
1463         * wtf/text/icu/UTextProvider.h:
1464         * wtf/text/icu/UTextProviderLatin1.cpp:
1465         * wtf/text/icu/UTextProviderLatin1.h:
1466         * wtf/text/icu/UTextProviderUTF16.cpp:
1467         * wtf/text/icu/UTextProviderUTF16.h:
1468         * wtf/threads/BinarySemaphore.cpp:
1469         * wtf/threads/BinarySemaphore.h:
1470         * wtf/threads/Signals.cpp:
1471         * wtf/unicode/CharacterNames.h:
1472         * wtf/unicode/Collator.h:
1473         * wtf/unicode/CollatorDefault.cpp:
1474         * wtf/unicode/UTF8.cpp:
1475         * wtf/unicode/UTF8.h:
1476
1477 2018-10-12  Alex Christensen  <achristensen@webkit.org>
1478
1479         Allow encoding of small enum classes
1480         https://bugs.webkit.org/show_bug.cgi?id=190531
1481
1482         Reviewed by Tim Horton.
1483
1484         * wtf/Forward.h:
1485
1486 2018-10-11  Alexey Proskuryakov  <ap@apple.com>
1487
1488         Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
1489         https://bugs.webkit.org/show_bug.cgi?id=190477
1490
1491         Reviewed by Tim Horton.
1492
1493         Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
1494         TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
1495         as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
1496         because of dependencies in other source repositories.
1497
1498         * wtf/Platform.h: Changed to the new name in this file though. Kept a few
1499         instances that actually target iOS only, having a version check.
1500
1501 2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1502
1503         Use currentStackPointer more
1504         https://bugs.webkit.org/show_bug.cgi?id=190503
1505
1506         Reviewed by Saam Barati.
1507
1508         Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.
1509
1510         * wtf/StackBounds.cpp:
1511         (WTF::testStackDirection2):
1512         (WTF::testStackDirection):
1513         * wtf/ThreadingPthreads.cpp:
1514         (WTF::Thread::signalHandlerSuspendResume):
1515         (WTF::getApproximateStackPointer): Deleted.
1516
1517 2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>
1518
1519         [WTF] Semaphore.h conflicts with POSIX header
1520         https://bugs.webkit.org/show_bug.cgi?id=190486
1521
1522         Reviewed by Yusuke Suzuki.
1523
1524         Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.
1525
1526         * WTF.xcodeproj/project.pbxproj:
1527         * wtf/CMakeLists.txt:
1528         * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.
1529
1530 2018-10-10  Mark Lam  <mark.lam@apple.com>
1531
1532         Changes towards allowing use of the ASAN detect_stack_use_after_return option.
1533         https://bugs.webkit.org/show_bug.cgi?id=190405
1534         <rdar://problem/45131464>
1535
1536         Reviewed by Michael Saboff.
1537
1538         Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.
1539
1540         * WTF.xcodeproj/project.pbxproj:
1541         * wtf/CMakeLists.txt:
1542         * wtf/StackBounds.h:
1543         (WTF::StackBounds::checkConsistency const):
1544         * wtf/StackPointer.cpp: Added.
1545         (WTF::currentStackPointer):
1546         * wtf/StackPointer.h: Added.
1547
1548 2018-10-09  Mark Lam  <mark.lam@apple.com>
1549
1550         StringTypeAdapter constructor is not properly enforcing String::MaxLength.
1551         https://bugs.webkit.org/show_bug.cgi?id=190392
1552         <rdar://problem/45116210>
1553
1554         Reviewed by Saam Barati.
1555
1556         Previously, the StringTypeAdapter constructor for a UChar* string was summing the
1557         unsigned length of the source string without an overflow check.  We now make that
1558         length a size_t which removes this issue, and assert that it's within
1559         String::MaxLength thereafter.
1560
1561         Also made the StringTypeAdapter constructor for a LChar* string behave in an
1562         equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
1563         if the source string length exceeds String::MaxLength.
1564
1565         * wtf/text/StringConcatenate.h:
1566
1567 2018-10-09  Mark Lam  <mark.lam@apple.com>
1568
1569         Revert temporary asserts for debugging a mysterious ASAN bot crash.
1570         https://bugs.webkit.org/show_bug.cgi?id=190396
1571
1572         Reviewed by Yusuke Suzuki.
1573
1574         * wtf/StackBounds.cpp:
1575         (WTF::StackBounds::newThreadStackBounds):
1576         * wtf/StackBounds.h:
1577         (WTF::StackBounds::checkConsistency const):
1578
1579 2018-10-08  Aditya Keerthi  <akeerthi@apple.com>
1580
1581         Make <input type=color> a runtime enabled (on-by-default) feature
1582         https://bugs.webkit.org/show_bug.cgi?id=189162
1583
1584         Reviewed by Wenson Hsieh and Tim Horton.
1585
1586         * wtf/FeatureDefines.h:
1587
1588 2018-10-06  Mark Lam  <mark.lam@apple.com>
1589
1590         Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
1591         https://bugs.webkit.org/show_bug.cgi?id=190334
1592         <rdar://problem/45071303>
1593
1594         Reviewed by Yusuke Suzuki.
1595
1596         These assertions are needed because we can't reproduce the issue locally.
1597         We'll remove these asserts after the needed data has been collected from the bot.
1598
1599         * wtf/StackBounds.cpp:
1600         (WTF::StackBounds::newThreadStackBounds):
1601         * wtf/StackBounds.h:
1602         (WTF::StackBounds::checkConsistency const):
1603
1604 2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1605
1606         Name Heap threads
1607         https://bugs.webkit.org/show_bug.cgi?id=190337
1608
1609         Reviewed by Mark Lam.
1610
1611         Add a functionality naming threads of ParallelHelperPool.
1612
1613         * wtf/ParallelHelperPool.cpp:
1614         (WTF::ParallelHelperPool::ParallelHelperPool):
1615         * wtf/ParallelHelperPool.h:
1616
1617 2018-10-06  Mark Lam  <mark.lam@apple.com>
1618
1619         Adding some temporary asserts to debug a mysterious ASAN bot crash.
1620         https://bugs.webkit.org/show_bug.cgi?id=190331
1621
1622         Reviewed by Filip Pizlo.
1623
1624         These assertions are needed because we can't reproduce the issue locally.
1625         We'll remove these asserts after the needed data has been collected from the bot.
1626
1627         * wtf/StackBounds.h:
1628         (WTF::StackBounds::checkConsistency const):
1629
1630 2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1631
1632         [JSC][Linux] Support Perf JITDump logging
1633         https://bugs.webkit.org/show_bug.cgi?id=189893
1634
1635         Reviewed by Mark Lam.
1636
1637         * wtf/PageReservation.h:
1638         (WTF::PageReservation::reserveAndCommitWithGuardPages):
1639
1640 2018-10-03  Dan Bernstein  <mitz@apple.com>
1641
1642         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
1643         https://bugs.webkit.org/show_bug.cgi?id=190250
1644
1645         Reviewed by Alex Christensen.
1646
1647         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
1648           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
1649
1650         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
1651
1652         * wtf/MathExtras.h:
1653         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
1654           expressions into individual statements.
1655
1656 2018-10-03  Mark Lam  <mark.lam@apple.com>
1657
1658         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
1659         https://bugs.webkit.org/show_bug.cgi?id=190187
1660         <rdar://problem/42512909>
1661
1662         Reviewed by Michael Saboff.
1663
1664         * wtf/text/StringConcatenate.h:
1665         (WTF::tryMakeStringFromAdapters):
1666         (WTF::sumWithOverflow): Deleted.
1667         * wtf/text/StringImpl.h:
1668         * wtf/text/WTFString.h:
1669
1670 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
1671
1672         -Wunused-variable in RenderLayer::updateScrollableAreaSet
1673         https://bugs.webkit.org/show_bug.cgi?id=190200
1674
1675         Reviewed by Yusuke Suzuki.
1676
1677         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
1678
1679         * wtf/Compiler.h:
1680
1681 2018-10-01  Dean Jackson  <dino@apple.com>
1682
1683         [macOS] Switching to discrete GPU should be done in the UI process
1684         https://bugs.webkit.org/show_bug.cgi?id=189361
1685         <rdar://problem/43949622>
1686
1687         Reviewed by Simon Fraser.
1688
1689         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
1690
1691         * wtf/Platform.h:
1692
1693 2018-10-02  Commit Queue  <commit-queue@webkit.org>
1694
1695         Unreviewed, rolling out r236624 and r236671.
1696         https://bugs.webkit.org/show_bug.cgi?id=190207
1697
1698         The change in r236624 introduced crashes on the bots
1699         (Requested by ryanhaddad on #webkit).
1700
1701         Reverted changesets:
1702
1703         "Refactoring: eliminate raw pointer usage in Fullscreen code"
1704         https://bugs.webkit.org/show_bug.cgi?id=188747
1705         https://trac.webkit.org/changeset/236624
1706
1707         "Unify implementation in VideoFullscreenInterfaceAVKit"
1708         https://bugs.webkit.org/show_bug.cgi?id=190091
1709         https://trac.webkit.org/changeset/236671
1710
1711 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
1712
1713         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
1714         https://bugs.webkit.org/show_bug.cgi?id=190033
1715
1716         Reviewed by Yusuke Suzuki.
1717
1718         * wtf/MathExtras.h:
1719         (WTF::ctz32):
1720
1721 2018-10-01  Andy Estes  <aestes@apple.com>
1722
1723         [watchOS] Adopt NSURLSessionCompanionProxyPreference
1724         https://bugs.webkit.org/show_bug.cgi?id=190177
1725         <rdar://problem/43402114>
1726
1727         Reviewed by Wenson Hsieh.
1728
1729         * wtf/FeatureDefines.h:
1730
1731 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
1732
1733         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
1734         https://bugs.webkit.org/show_bug.cgi?id=190121
1735
1736         Reviewed by Yusuke Suzuki.
1737
1738         This fixes JSCOnly build on Windows after r236617.
1739
1740         * wtf/PlatformJSCOnly.cmake:
1741
1742 2018-10-01  Commit Queue  <commit-queue@webkit.org>
1743
1744         Unreviewed, rolling out r236647.
1745         https://bugs.webkit.org/show_bug.cgi?id=190124
1746
1747         Breaking test stress/big-int-to-string.js (Requested by
1748         caiolima_ on #webkit).
1749
1750         Reverted changeset:
1751
1752         "[BigInt] BigInt.proptotype.toString is broken when radix is
1753         power of 2"
1754         https://bugs.webkit.org/show_bug.cgi?id=190033
1755         https://trac.webkit.org/changeset/236647
1756
1757 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
1758
1759         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
1760         https://bugs.webkit.org/show_bug.cgi?id=190033
1761
1762         Reviewed by Yusuke Suzuki.
1763
1764         * wtf/MathExtras.h:
1765         (WTF::ctz32):
1766
1767 2018-09-28  Jer Noble  <jer.noble@apple.com>
1768
1769         Refactoring: eliminate raw pointer usage in Fullscreen code
1770         https://bugs.webkit.org/show_bug.cgi?id=188747
1771         <rdar://problem/43541164>
1772
1773         Reviewed by Alex Christensen.
1774
1775         * WTF.xcodeproj/project.pbxproj:
1776         * wtf/WeakPtrContainer.h: Added.
1777
1778 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1779
1780         [WTF] Make isMainThread more reliable
1781         https://bugs.webkit.org/show_bug.cgi?id=189880
1782
1783         Reviewed by Mark Lam.
1784
1785         isMainThread() relied on Thread::current(). This API becomes broken in Windows
1786         when the Thread is about to be destroyed since TLS is already cleared. This causes
1787         a bug since `isMainThread()` is called in Thread::didExit in Windows.
1788
1789         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
1790         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
1791         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
1792         or `pthread_self` instead.
1793
1794         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
1795         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
1796         only happens in Windows since Windows calls TLS destructor for the main thread.
1797
1798         * WTF.xcodeproj/project.pbxproj:
1799         * wtf/MainThread.cpp:
1800         (WTF::initializeMainThread):
1801         (): Deleted.
1802         (WTF::isMainThread): Deleted.
1803         (WTF::isMainThreadIfInitialized): Deleted.
1804         * wtf/Platform.h:
1805         * wtf/PlatformMac.cmake:
1806         * wtf/Threading.cpp:
1807         (WTF::Thread::didExit):
1808         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
1809         * wtf/generic/MainThreadGeneric.cpp:
1810         (WTF::initializeMainThreadPlatform):
1811         (WTF::isMainThread):
1812         (WTF::isMainThreadIfInitialized):
1813         * wtf/win/MainThreadWin.cpp:
1814         (WTF::initializeMainThreadPlatform):
1815         (WTF::isMainThread):
1816         (WTF::isMainThreadIfInitialized):
1817
1818 2018-09-28  Commit Queue  <commit-queue@webkit.org>
1819
1820         Unreviewed, rolling out r236605.
1821         https://bugs.webkit.org/show_bug.cgi?id=190087
1822
1823         caused three API test timeouts (Requested by jernoble on
1824         #webkit).
1825
1826         Reverted changeset:
1827
1828         "Refactoring: eliminate raw pointer usage in Fullscreen code"
1829         https://bugs.webkit.org/show_bug.cgi?id=188747
1830         https://trac.webkit.org/changeset/236605
1831
1832 2018-09-28  Brian Burg  <bburg@apple.com>
1833
1834         Replace recently added line comments in Compiler.h
1835         https://bugs.webkit.org/show_bug.cgi?id=190062
1836         <rdar://problem/44838618>
1837
1838         Reviewed by Joseph Pecoraro.
1839
1840         This breaks some Apple-internal tooling. For now, work around it by
1841         changing the comment style. On the other side, the issue will be fixed
1842         more permanently by adopting the approach from r230213.
1843
1844         * wtf/Compiler.h: Use multiline comments.
1845
1846 2018-09-28  Jer Noble  <jer.noble@apple.com>
1847
1848         Refactoring: eliminate raw pointer usage in Fullscreen code
1849         https://bugs.webkit.org/show_bug.cgi?id=188747
1850         <rdar://problem/43541164>
1851
1852         Reviewed by Alex Christensen.
1853
1854         * WTF.xcodeproj/project.pbxproj:
1855         * wtf/WeakPtrContainer.h: Added.
1856
1857 2018-09-28  Koby Boyango  <koby.b@mce.systems>
1858
1859         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
1860         https://bugs.webkit.org/show_bug.cgi?id=189991
1861
1862         Reviewed by Yusuke Suzuki.
1863
1864         * WTF.xcodeproj/project.pbxproj:
1865         * wtf/CMakeLists.txt:
1866         * wtf/text/ExternalStringImpl.cpp: Added.
1867         * wtf/text/ExternalStringImpl.h: Added.
1868         * wtf/text/StringImpl.cpp:
1869         * wtf/text/StringImpl.h:
1870
1871 2018-09-27  Saam barati  <sbarati@apple.com>
1872
1873         Verify the contents of AssemblerBuffer on arm64e
1874         https://bugs.webkit.org/show_bug.cgi?id=190057
1875         <rdar://problem/38916630>
1876
1877         Reviewed by Mark Lam.
1878
1879         * wtf/PtrTag.h:
1880         (WTF::tagInt):
1881
1882 2018-09-27  Jer Noble  <jer.noble@apple.com>
1883
1884         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
1885         https://bugs.webkit.org/show_bug.cgi?id=189951
1886
1887         Reviewed by Eric Carlson.
1888
1889         Templated functions should take r-value references, as they have perfect type deduction for
1890         all parameter types; references, l-value references, and r-value references in template function
1891         parameters have special type deduction semantics.
1892         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
1893
1894         Previously, const reference parameters would be copied when passed into anyOf(), and containers
1895         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
1896         with r-value reference types in template parameters, a const reference is mapped to a const reference,
1897         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
1898         an r-value reference.
1899
1900         * wtf/Algorithms.h:
1901         (WTF::forEach):
1902         (WTF::anyOf):
1903         (WTF::allOf):
1904
1905 2018-09-25  John Wilander  <wilander@apple.com>
1906
1907         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
1908         https://bugs.webkit.org/show_bug.cgi?id=189959
1909         <rdar://problem/44767642>
1910
1911         Reviewed by Chris Dumez.
1912
1913         * wtf/Platform.h:
1914             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
1915
1916 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
1917
1918         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
1919         https://bugs.webkit.org/show_bug.cgi?id=189733
1920
1921         Reviewed by Michael Catanzaro.
1922
1923         Clang for Windows build enables WTF_COMPILER_CLANG and
1924         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
1925         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
1926         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
1927         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
1928         least at the moment, it is not feasible to define
1929         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
1930
1931         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
1932         to WTF_COMPILER_GCC_COMPATIBLE.
1933
1934         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
1935         Clang for Windows builds.
1936
1937         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
1938         * wtf/Assertions.h: Ditto.
1939         * wtf/Atomics.h: Ditto.
1940         * wtf/CheckedArithmetic.h: Ditto.
1941         * wtf/FastMalloc.h: Ditto.
1942         * wtf/MathExtras.h: Ditto.
1943         * wtf/Platform.h: Ditto.
1944         * wtf/StdLibExtras.h: Ditto.
1945         * wtf/Vector.h: Ditto.
1946         * wtf/text/ASCIIFastPath.h: Ditto.
1947         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
1948
1949 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
1950
1951         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
1952         https://bugs.webkit.org/show_bug.cgi?id=189778
1953
1954         Reviewed by Keith Miller.
1955
1956         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
1957         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
1958         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
1959
1960         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
1961         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
1962         information which is used for LLInt and SamplingProfiler.
1963
1964         * wtf/Platform.h:
1965
1966 2018-09-21  Keith Miller  <keith_miller@apple.com>
1967
1968         Add Promise SPI
1969         https://bugs.webkit.org/show_bug.cgi?id=189809
1970
1971         Reviewed by Saam Barati.
1972
1973         Fix issue where creating a JSContextRef off the main thread before
1974         creating initializing the main thread would cause an assertion
1975         failure.
1976
1977         * wtf/MainThread.cpp:
1978         (WTF::isMainThreadIfInitialized):
1979         * wtf/MainThread.h:
1980         * wtf/mac/MainThreadMac.mm:
1981         (WTF::isMainThreadIfInitialized):
1982         * wtf/text/cf/StringImplCF.cpp:
1983         (WTF::StringImpl::createCFString):
1984
1985 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
1986
1987         Unreviewed, rolling out r236359.
1988
1989         Broke the Windows build.
1990
1991         Reverted changeset:
1992
1993         "Add Promise SPI"
1994         https://bugs.webkit.org/show_bug.cgi?id=189809
1995         https://trac.webkit.org/changeset/236359
1996
1997 2018-09-21  Keith Miller  <keith_miller@apple.com>
1998
1999         Add Promise SPI
2000         https://bugs.webkit.org/show_bug.cgi?id=189809
2001
2002         Reviewed by Saam Barati.
2003
2004         Fix issue where creating a JSContextRef off the main thread before
2005         creating initializing the main thread would cause an assertion
2006         failure.
2007
2008         * wtf/MainThread.cpp:
2009         (WTF::isMainThreadIfInitialized):
2010         * wtf/MainThread.h:
2011         * wtf/mac/MainThreadMac.mm:
2012         (WTF::isMainThreadIfInitialized):
2013         * wtf/text/cf/StringImplCF.cpp:
2014         (WTF::StringImpl::createCFString):
2015
2016 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
2017
2018         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
2019         https://bugs.webkit.org/show_bug.cgi?id=189732
2020
2021         Reviewed by Per Arne Vollan.
2022
2023         Clang for Windows can't compile the MSVC workaround of
2024         UNUSED_PARAM which has been introduced for Windows CE and Visual
2025         Studio 10. I think it's safe just to remove it.
2026
2027         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
2028
2029 2018-09-20  Alex Christensen  <achristensen@webkit.org>
2030
2031         Unreviewed, rolling out r235976.
2032
2033         Broke ARM
2034
2035         Reverted changeset:
2036
2037         "Use a Variant instead of a union in CSSSelector"
2038         https://bugs.webkit.org/show_bug.cgi?id=188559
2039         https://trac.webkit.org/changeset/235976
2040
2041 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
2042
2043         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
2044         https://bugs.webkit.org/show_bug.cgi?id=185339
2045
2046         Reviewed by Mark Lam.
2047
2048         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
2049
2050         * WTF.xcodeproj/project.pbxproj:
2051         * wtf/CMakeLists.txt:
2052         * wtf/Semaphore.h: Added.
2053         (WTF::Semaphore::Semaphore):
2054         (WTF::Semaphore::signal):
2055         (WTF::Semaphore::waitUntil):
2056         (WTF::Semaphore::waitFor):
2057         (WTF::Semaphore::wait):
2058         * wtf/generic/WorkQueueGeneric.cpp:
2059         (WorkQueue::platformInitialize):
2060         * wtf/threads/BinarySemaphore.cpp:
2061         (WTF::BinarySemaphore::waitUntil):
2062         (WTF::BinarySemaphore::wait): Deleted.
2063         * wtf/threads/BinarySemaphore.h:
2064         (WTF::BinarySemaphore::waitFor):
2065         (WTF::BinarySemaphore::wait):
2066         Align the names of the functions to WTF::Condition.
2067         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
2068
2069 2018-09-17  Jer Noble  <jer.noble@apple.com>
2070
2071         Add support for HEVC codec types in Media Capabilities
2072         https://bugs.webkit.org/show_bug.cgi?id=189565
2073
2074         Reviewed by Eric Carlson.
2075
2076         Extract the toIntegralType template into its own header.
2077
2078         * wtf/CMakeLists.txt:
2079         * wtf/text/StringConversion.h: Added.
2080         (isCharacterAllowedInBase):
2081         (toIntegralType):
2082         * wtf/text/WTFString.cpp:
2083
2084 2018-09-17  Jer Noble  <jer.noble@apple.com>
2085
2086         Enable USE_MEDIAREMOTE on iOS
2087         https://bugs.webkit.org/show_bug.cgi?id=189096
2088
2089         Reviewed by Eric Carlson.
2090
2091         * wtf/Platform.h:
2092
2093 2018-09-17  Frederic Wang  <fwang@igalia.com>
2094
2095         Build error in ImageBufferCG when compiled with IOSurfacePool
2096         https://bugs.webkit.org/show_bug.cgi?id=189579
2097
2098         Reviewed by Tim Horton.
2099
2100         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
2101         compilation errors when files in the same unified source do not agree on the definition.
2102         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
2103         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
2104         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
2105         to prevent future issues with Unified build rotating.
2106
2107         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
2108
2109 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
2110
2111         Unreviewed, rolling out r235990.
2112
2113         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
2114
2115         Reverted changeset:
2116
2117         "Enable USE_MEDIAREMOTE on iOS"
2118         https://bugs.webkit.org/show_bug.cgi?id=189096
2119         https://trac.webkit.org/changeset/235990
2120
2121 2018-09-13  Jer Noble  <jer.noble@apple.com>
2122
2123         Enable USE_MEDIAREMOTE on iOS
2124         https://bugs.webkit.org/show_bug.cgi?id=189096
2125
2126         Reviewed by Eric Carlson.
2127
2128         * wtf/Platform.h:
2129
2130 2018-09-13  Alex Christensen  <achristensen@webkit.org>
2131
2132         Use a Variant instead of a union in CSSSelector
2133         https://bugs.webkit.org/show_bug.cgi?id=188559
2134
2135         Reviewed by Antti Koivisto.
2136
2137         * wtf/Variant.h:
2138         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
2139
2140 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
2141
2142         Add IGNORE_WARNING_.* macros
2143         https://bugs.webkit.org/show_bug.cgi?id=188996
2144
2145         Reviewed by Michael Catanzaro.
2146
2147         * wtf/Assertions.cpp:
2148         * wtf/Assertions.h:
2149         * wtf/Compiler.h:
2150         * wtf/MD5.cpp:
2151         (WTF::MD5::MD5):
2152         (WTF::MD5::addBytes):
2153         (WTF::MD5::checksum):
2154         * wtf/PrintStream.cpp:
2155         (WTF::PrintStream::printfVariableFormat):
2156         * wtf/SHA1.cpp:
2157         (WTF::SHA1::SHA1):
2158         (WTF::SHA1::addBytes):
2159         (WTF::SHA1::computeHash):
2160         * wtf/ThreadingPthreads.cpp:
2161         * wtf/Vector.h:
2162         (WTF::VectorBuffer::endOfBuffer):
2163         * wtf/text/WTFString.cpp:
2164         (WTF::createWithFormatAndArguments):
2165
2166 == Rolled over to ChangeLog-2018-09-11 ==