a5f9d9680c22ef14505b2dee8f5dbf15d6cc49a6
[WebKit-https.git] / Source / WTF / ChangeLog
1 2019-05-10  Saam barati  <sbarati@apple.com>
2
3         Bag's move operator= leaks memory
4         https://bugs.webkit.org/show_bug.cgi?id=197757
5
6         Reviewed by Keith Miller.
7
8         It was unused. So I'm just removing it. We can implement it properly
9         if we ever need it.
10
11         * wtf/Bag.h:
12         (WTF::Bag::operator=): Deleted.
13
14 2019-05-10  Fujii Hironori  <Hironori.Fujii@sony.com>
15
16         [WinCairo] storage/indexeddb tests are timing out
17         https://bugs.webkit.org/show_bug.cgi?id=196289
18
19         Reviewed by Alex Christensen.
20
21         * wtf/FileSystem.h: Added hardLink.
22         * wtf/glib/FileSystemGlib.cpp:
23         (WTF::FileSystemImpl::hardLink):
24         (WTF::FileSystemImpl::hardLinkOrCopyFile):
25         * wtf/posix/FileSystemPOSIX.cpp:
26         (WTF::FileSystemImpl::hardLink):
27         (WTF::FileSystemImpl::hardLinkOrCopyFile):
28         * wtf/win/FileSystemWin.cpp:
29         (WTF::FileSystemImpl::hardLink):
30         (WTF::FileSystemImpl::hardLinkOrCopyFile):
31         Added hardLink. Let hardLinkOrCopyFile use the hardLink.
32
33 2019-05-10  Yusuke Suzuki  <ysuzuki@apple.com>
34
35         [WTF] Remove "private:" from Noncopyable and Nonmovable macros
36         https://bugs.webkit.org/show_bug.cgi?id=197767
37
38         Reviewed by Saam Barati.
39
40         We no longer need "private:".
41
42         * wtf/Noncopyable.h:
43         * wtf/Nonmovable.h:
44
45 2019-05-08  Zan Dobersek  <zdobersek@igalia.com>
46
47         [GLib] Rework WPE RunLoopSourcePriority values
48         https://bugs.webkit.org/show_bug.cgi?id=197167
49
50         Reviewed by Carlos Garcia Campos.
51
52         The GLib priorities for the WPE port were initially aligned on the -70
53         value, theory being that this would help avoid any default-priority
54         GSources spawned in different dependency libraries affecting our
55         scheduling. Today it seems that extra caution might not be really
56         necessary.
57
58         This change aligns the base priority value with GLib's default priority
59         value of 0. We maintain the relativity of priority values by effectively
60         increasing each priority by 70.
61
62         * wtf/glib/RunLoopSourcePriority.h:
63
64 2019-05-08  Alex Christensen  <achristensen@webkit.org>
65
66         Add SPI to set HSTS storage directory
67         https://bugs.webkit.org/show_bug.cgi?id=197259
68
69         Reviewed by Brady Eidson.
70
71         * wtf/Platform.h:
72
73 2019-05-08  Keith Miller  <keith_miller@apple.com>
74
75         Remove Gigacage from arm64 and use PAC for arm64e instead
76         https://bugs.webkit.org/show_bug.cgi?id=197110
77
78         Reviewed by Saam Barati.
79
80         This patch changes the Gigacage to use PAC on arm64e. As part of
81         this process all platforms must provide their length when
82         materializing the caged pointer. Since it would be somewhat
83         confusing to have two parameters for an operator [] those methods
84         have been removed. Lastly, this patch removes the specializations
85         for void* caged pointers, instead opting to use enable_if on the
86         methods that would normally fail on void* e.g. anything that
87         returns a T&.
88
89         * WTF.xcodeproj/project.pbxproj:
90         * wtf/CMakeLists.txt:
91         * wtf/CagedPtr.h:
92         (WTF::CagedPtr::CagedPtr):
93         (WTF::CagedPtr::get const):
94         (WTF::CagedPtr::getMayBeNull const):
95         (WTF::CagedPtr::getUnsafe const):
96         (WTF::CagedPtr::at const):
97         (WTF::CagedPtr::reauthenticate):
98         (WTF::CagedPtr::operator=):
99         (WTF::CagedPtr::operator== const):
100         (WTF::CagedPtr::operator bool const):
101         (WTF::CagedPtr::operator* const): Deleted.
102         (WTF::CagedPtr::operator-> const): Deleted.
103         (WTF::CagedPtr::operator[] const): Deleted.
104         (): Deleted.
105         * wtf/CagedUniquePtr.h:
106         (WTF::CagedUniquePtr::CagedUniquePtr):
107         (WTF::CagedUniquePtr::create):
108         (WTF::CagedUniquePtr::~CagedUniquePtr):
109         (WTF::CagedUniquePtr::destroy):
110         (): Deleted.
111         * wtf/Gigacage.h:
112         (Gigacage::cagedMayBeNull):
113         * wtf/PtrTag.h:
114         (WTF::tagArrayPtr):
115         (WTF::untagArrayPtr):
116         (WTF::removeArrayPtrTag):
117         (WTF::retagArrayPtr):
118         * wtf/TaggedArrayStoragePtr.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferView.cpp.
119         (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr):
120         (WTF::TaggedArrayStoragePtr::get const):
121         (WTF::TaggedArrayStoragePtr::getUnsafe const):
122         (WTF::TaggedArrayStoragePtr::resize):
123         (WTF::TaggedArrayStoragePtr::operator bool const):
124
125 2019-05-08  Robin Morisset  <rmorisset@apple.com>
126
127         WTF::TimingScope should show the total duration and not just the mean
128         https://bugs.webkit.org/show_bug.cgi?id=197672
129
130         Reviewed by Alex Christensen.
131
132         * wtf/TimingScope.cpp:
133         (WTF::TimingScope::scopeDidEnd):
134
135 2019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
136
137         [JSC] LLIntPrototypeLoadAdaptiveStructureWatchpoint does not require Bag<>
138         https://bugs.webkit.org/show_bug.cgi?id=197645
139
140         Reviewed by Saam Barati.
141
142         * WTF.xcodeproj/project.pbxproj:
143         * wtf/CMakeLists.txt:
144         * wtf/Nonmovable.h: Copied from Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h.
145         * wtf/Vector.h:
146         (WTF::minCapacity>::uncheckedConstructAndAppend):
147
148 2019-05-07  Eric Carlson  <eric.carlson@apple.com>
149
150         Define media buffering policy
151         https://bugs.webkit.org/show_bug.cgi?id=196979
152         <rdar://problem/28383861>
153
154         Reviewed by Jer Noble.
155
156         * wtf/Platform.h:
157
158 2019-05-07  Robin Morisset  <rmorisset@apple.com>
159
160         WTF::BitVector should have an isEmpty() method
161         https://bugs.webkit.org/show_bug.cgi?id=197637
162
163         Reviewed by Keith Miller.
164
165         * wtf/BitVector.cpp:
166         (WTF::BitVector::isEmptySlow const):
167         * wtf/BitVector.h:
168         (WTF::BitVector::isEmpty const):
169
170 2019-05-07  Brent Fulgham  <bfulgham@apple.com>
171
172         Correct JSON parser to address unterminated escape character
173         https://bugs.webkit.org/show_bug.cgi?id=197582
174         <rdar://problem/50459177>
175
176         Reviewed by Alex Christensen.
177
178         Correct JSON parser code to properly deal with unterminated escape
179         characters.
180
181         * wtf/JSONValues.cpp:
182         (WTF::JSONImpl::decodeString):
183         (WTF::JSONImpl::parseStringToken):
184
185 2019-05-07  Alex Christensen  <achristensen@webkit.org>
186
187         Add a release assertion that Functions can only be constructed from non-null CompletionHandlers
188         https://bugs.webkit.org/show_bug.cgi?id=197641
189
190         Reviewed by Chris Dumez.
191
192         This will help us find the cause of rdar://problem/48679972 by seeing the crash when the Function is dispatched,
193         not when it's called with no interesting stack trace.  I manually verified this assertion is hit in such a case.
194         We should also have no legitimate use of creating a Function out of a null CompletionHandler then never calling it.
195
196         * wtf/CompletionHandler.h:
197         (WTF::Detail::CallableWrapper<CompletionHandler<Out):
198         * wtf/Function.h:
199         (WTF::Detail::CallableWrapperBase::~CallableWrapperBase):
200         (WTF::Detail::CallableWrapper::CallableWrapper):
201         (WTF::Function<Out):
202
203 2019-05-06  Christopher Reid  <chris.reid@sony.com>
204
205         [JSC] Respect already defined USE_LLINT_EMBEDDED_OPCODE_ID compiler variable.
206         https://bugs.webkit.org/show_bug.cgi?id=197633
207
208         Reviewed by Don Olmstead.
209
210         When the variable `USE_LLINT_EMBEDDED_OPCODE_ID` is defined, stop defining
211         its value with platform default one.
212
213         * wtf/Platform.h:
214
215 2019-05-03  Sihui Liu  <sihui_liu@apple.com>
216
217         Add assertion to check whether shm files have maximum FileProtection of CompleteUnlessOpen
218         https://bugs.webkit.org/show_bug.cgi?id=197390
219         <rdar://problem/42685773>
220
221         Reviewed by Geoffrey Garen.
222
223         * wtf/FileSystem.cpp:
224         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
225         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
226         * wtf/FileSystem.h:
227         * wtf/cocoa/FileSystemCocoa.mm:
228         (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
229         (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
230
231 2019-05-03  Commit Queue  <commit-queue@webkit.org>
232
233         Unreviewed, rolling out r244881.
234         https://bugs.webkit.org/show_bug.cgi?id=197559
235
236         Breaks compilation of jsconly on linux, breaking compilation
237         for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
238         guijemont on #webkit).
239
240         Reverted changeset:
241
242         "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
243         WEBKIT_COPY_FILES"
244         https://bugs.webkit.org/show_bug.cgi?id=197174
245         https://trac.webkit.org/changeset/244881
246
247 2019-05-02  Alex Christensen  <achristensen@webkit.org>
248
249         Mark U+01C0 as a homograph of U+006C
250         https://bugs.webkit.org/show_bug.cgi?id=197526
251         <rdar://problem/50301904>
252
253         Reviewed by Tim Horton.
254
255         * wtf/URLHelpers.cpp:
256         (WTF::URLHelpers::isLookalikeCharacter):
257
258 2019-05-02  Don Olmstead  <don.olmstead@sony.com>
259
260         [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
261         https://bugs.webkit.org/show_bug.cgi?id=197174
262
263         Reviewed by Alex Christensen.
264
265         Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES.
266
267         * wtf/CMakeLists.txt:
268
269 2019-05-01  Darin Adler  <darin@apple.com>
270
271         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
272         https://bugs.webkit.org/show_bug.cgi?id=195535
273
274         Reviewed by Alexey Proskuryakov.
275
276         * wtf/text/AtomicString.cpp:
277         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
278         end is nullptr; this behavior used to be implemented inside the
279         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
280
281         * wtf/text/AtomicStringImpl.cpp:
282         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
283         convertUTF8ToUTF16.
284
285         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
286         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
287         the AtomicString class and its behavior changed subtly in this patch; it's helpful
288         to document that it's not exported.
289
290         * wtf/text/StringImpl.cpp:
291         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
292         since strict is the default. Also updated for changes to ConversionResult.
293         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
294         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
295
296         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
297
298         * wtf/text/WTFString.cpp:
299         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
300
301         * wtf/unicode/UTF8Conversion.cpp:
302         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
303         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
304         (WTF::Unicode::UTF8SequenceLength): Deleted.
305         (WTF::Unicode::decodeUTF8Sequence): Deleted.
306         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
307         almost everything in the function. Also changed resturn value to be a boolean
308         to indicate success since there is only one possible failure (target exhausted).
309         There is room for further simplification, since most callers have lengths rather
310         than end pointers for the source buffer, and all but one caller supplies a buffer
311         size known to be sufficient, so those don't need a return value, nor do they need
312         to pass an end of buffer pointer.
313         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
314         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
315         for non-strict mode so that unpaired surrogates will be turned into the
316         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
317         won't create an invalid UTF-8 sequence, and because we don't need to do that
318         for any good reason at any call site.
319         (WTF::Unicode::isLegalUTF8): Deleted.
320         (WTF::Unicode::readUTF8Sequence): Deleted.
321         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
322         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
323         U16_APPEND instead of lots of code that does the same thing. There is
324         room for further simplification since most callers don't need the "all ASCII"
325         feature and could probably pass the arguments in a more natural way.
326         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
327         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
328         error handling checks for things that are handled by U8_NEXT. Also removed
329         support for passing nullptr for end to specify a null-terminated string.
330         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
331
332         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
333         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
334         style, with an eye toward perhaps removing it in the future. Changed
335         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
336         argument since no caller was passing false. Changed the convertLatin1ToUTF8
337         return value to a boolean. Tweaked comments.
338
339 2019-05-01  Shawn Roberts  <sroberts@apple.com>
340
341         Unreviewed, rolling out r244821.
342
343         Causing
344
345         Reverted changeset:
346
347         "WebKit has too much of its own UTF-8 code and should rely
348         more on ICU's UTF-8 support"
349         https://bugs.webkit.org/show_bug.cgi?id=195535
350         https://trac.webkit.org/changeset/244821
351
352 2019-05-01  Shawn Roberts  <sroberts@apple.com>
353
354         Unreviewed, rolling out r244822.
355
356         Causing 4 Test262 failures on JSC Release and Debug
357
358         Reverted changeset:
359
360         https://trac.webkit.org/changeset/244822 https://trac.webkit.org/changeset/244821
361
362 2019-04-29  Darin Adler  <darin@apple.com>
363
364         WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
365         https://bugs.webkit.org/show_bug.cgi?id=195535
366
367         Reviewed by Alexey Proskuryakov.
368
369         * wtf/text/AtomicString.cpp:
370         (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
371         end is nullptr; this behavior used to be implemented inside the
372         calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.
373
374         * wtf/text/AtomicStringImpl.cpp:
375         (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
376         convertUTF8ToUTF16.
377
378         * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
379         AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
380         the AtomicString class and its behavior changed subtly in this patch; it's helpful
381         to document that it's not exported.
382
383         * wtf/text/StringImpl.cpp:
384         (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
385         since strict is the default. Also updated for changes to ConversionResult.
386         (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
387         (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.
388
389         * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.
390
391         * wtf/text/WTFString.cpp:
392         (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.
393
394         * wtf/unicode/UTF8Conversion.cpp:
395         (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
396         (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
397         (WTF::Unicode::UTF8SequenceLength): Deleted.
398         (WTF::Unicode::decodeUTF8Sequence): Deleted.
399         (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
400         almost everything in the function. Also changed resturn value to be a boolean
401         to indicate success since there is only one possible failure (target exhausted).
402         There is room for further simplification, since most callers have lengths rather
403         than end pointers for the source buffer, and all but one caller supplies a buffer
404         size known to be sufficient, so those don't need a return value, nor do they need
405         to pass an end of buffer pointer.
406         (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
407         U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
408         for non-strict mode so that unpaired surrogates will be turned into the
409         replacement character instead of invalid UTF-8 sequences, because U8_APPEND
410         won't create an invalid UTF-8 sequence, and because we don't need to do that
411         for any good reason at any call site.
412         (WTF::Unicode::isLegalUTF8): Deleted.
413         (WTF::Unicode::readUTF8Sequence): Deleted.
414         (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
415         inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
416         U16_APPEND instead of lots of code that does the same thing. There is
417         room for further simplification since most callers don't need the "all ASCII"
418         feature and could probably pass the arguments in a more natural way.
419         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
420         Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
421         error handling checks for things that are handled by U8_NEXT. Also removed
422         support for passing nullptr for end to specify a null-terminated string.
423         (WTF::Unicode::equalUTF16WithUTF8): Ditto.
424
425         * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
426         decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
427         style, with an eye toward perhaps removing it in the future. Changed
428         the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
429         argument since no caller was passing false. Changed the convertLatin1ToUTF8
430         return value to a boolean. Tweaked comments.
431
432 2019-04-30  John Wilander  <wilander@apple.com>
433
434         Add logging of Ad Click Attribution errors and events to a dedicated channel
435         https://bugs.webkit.org/show_bug.cgi?id=197332
436         <rdar://problem/49918800>
437
438         Reviewed by Youenn Fablet.
439
440         Added missing RELEASE_LOG_INFO and RELEASE_LOG_INFO_IF dummies
441         for RELEASE_LOG_DISABLED.
442
443         * wtf/Assertions.h:
444
445 2019-04-30  Youenn Fablet  <youenn@apple.com>
446
447         Make Document audio producers use WeakPtr
448         https://bugs.webkit.org/show_bug.cgi?id=197382
449
450         Reviewed by Eric Carlson.
451
452         * wtf/WeakHashSet.h:
453         (WTF::WeakHashSet::hasNullReferences const):
454
455 2019-04-30  Commit Queue  <commit-queue@webkit.org>
456
457         Unreviewed, rolling out r244773.
458         https://bugs.webkit.org/show_bug.cgi?id=197436
459
460         Causing assertion failures on debug queues (Requested by
461         ShawnRoberts on #webkit).
462
463         Reverted changeset:
464
465         "Make Document audio producers use WeakPtr"
466         https://bugs.webkit.org/show_bug.cgi?id=197382
467         https://trac.webkit.org/changeset/244773
468
469 2019-04-30  Youenn Fablet  <youenn@apple.com>
470
471         Make Document audio producers use WeakPtr
472         https://bugs.webkit.org/show_bug.cgi?id=197382
473
474         Reviewed by Eric Carlson.
475
476         * wtf/WeakHashSet.h:
477         (WTF::WeakHashSet::hasNullReferences const):
478
479 2019-04-29  Alex Christensen  <achristensen@webkit.org>
480
481         <rdar://problem/50299396> Fix internal High Sierra build
482         https://bugs.webkit.org/show_bug.cgi?id=197388
483
484         * Configurations/Base.xcconfig:
485
486 2019-04-29  Yusuke Suzuki  <ysuzuki@apple.com>
487
488         JITStubRoutineSet wastes 180KB of HashTable capacity on can.com
489         https://bugs.webkit.org/show_bug.cgi?id=186732
490
491         Reviewed by Saam Barati.
492
493         * wtf/Range.h:
494         (WTF::Range::contains const):
495
496 2019-04-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>
497
498         [Win] Add flag to enable version information stamping and disable by default.
499         https://bugs.webkit.org/show_bug.cgi?id=197249
500         <rdar://problem/50224412>
501
502         Reviewed by Ross Kirsling.
503
504         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
505         Then enable it by default on AppleWin.
506
507         * wtf/CMakeLists.txt:
508
509 2019-04-26  Don Olmstead  <don.olmstead@sony.com>
510
511         Add WTF::findIgnoringASCIICaseWithoutLength to replace strcasestr
512         https://bugs.webkit.org/show_bug.cgi?id=197291
513
514         Reviewed by Konstantin Tokarev.
515
516         Adds an implementation of strcasestr within WTF.
517
518         * wtf/text/StringCommon.h:
519         (WTF::findIgnoringASCIICaseWithoutLength):
520
521 2019-04-26  Sihui Liu  <sihui_liu@apple.com>
522
523         Stop IDB transactions to release locked database files when network process is ready to suspend
524         https://bugs.webkit.org/show_bug.cgi?id=196372
525         <rdar://problem/48930116>
526
527         Reviewed by Brady Eidson.
528
529         Provide a method to suspend the thread and block main thread until the thread is suspended.
530
531         * wtf/CrossThreadTaskHandler.cpp:
532         (WTF::CrossThreadTaskHandler::taskRunLoop):
533         (WTF::CrossThreadTaskHandler::suspendAndWait):
534         (WTF::CrossThreadTaskHandler::resume):
535         * wtf/CrossThreadTaskHandler.h:
536
537 2019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>
538
539         Unreviewed, rolling out r244669.
540
541         Windows ports can't clean build.
542
543         Reverted changeset:
544
545         "[Win] Add flag to enable version information stamping and
546         disable by default."
547         https://bugs.webkit.org/show_bug.cgi?id=197249
548         https://trac.webkit.org/changeset/244669
549
550 2019-04-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>
551
552         [Win] Add flag to enable version information stamping and disable by default.
553         https://bugs.webkit.org/show_bug.cgi?id=197249
554
555         Reviewed by Ross Kirsling.
556
557         This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
558         Then enable it by default on AppleWin.
559
560         * wtf/CMakeLists.txt:
561
562 2019-04-25  Timothy Hatcher  <timothy@apple.com>
563
564         Disable date and time inputs on iOSMac.
565         https://bugs.webkit.org/show_bug.cgi?id=197287
566         rdar://problem/46794376
567
568         Reviewed by Wenson Hsieh.
569
570         * wtf/FeatureDefines.h:
571
572 2019-04-25  Alex Christensen  <achristensen@webkit.org>
573
574         Fix High Sierra build after r244653
575         https://bugs.webkit.org/show_bug.cgi?id=197131
576
577         * wtf/StdLibExtras.h:
578         High Sierra thinks __cplusplus is 201406 even when using C++17.
579         Removing the __cplusplus check resolves the build failure on High Sierra.
580         We can clean up StdLibExtras more later.
581
582 2019-04-25  Alex Christensen  <achristensen@webkit.org>
583
584         Start using C++17
585         https://bugs.webkit.org/show_bug.cgi?id=197131
586
587         Reviewed by Darin Adler.
588
589         * Configurations/Base.xcconfig:
590         * wtf/CMakeLists.txt:
591         * wtf/Variant.h:
592         (WTF::switchOn):
593
594 2019-04-25  Alex Christensen  <achristensen@webkit.org>
595
596         Remove DeprecatedOptional
597         https://bugs.webkit.org/show_bug.cgi?id=197161
598
599         Reviewed by Darin Adler.
600
601         * WTF.xcodeproj/project.pbxproj:
602         * wtf/CMakeLists.txt:
603         * wtf/DeprecatedOptional.h: Removed.
604
605 2019-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
606
607         [GTK] Hardcoded text color in input fields
608         https://bugs.webkit.org/show_bug.cgi?id=126907
609
610         Reviewed by Michael Catanzaro.
611
612         Define HAVE_OS_DARK_MODE_SUPPORT for GTK port.
613
614         * wtf/Platform.h:
615
616 2019-04-24  Tim Horton  <timothy_horton@apple.com>
617
618         Clean up WKActionSheetAssistant's use of LaunchServices
619         https://bugs.webkit.org/show_bug.cgi?id=194645
620         <rdar://problem/47707952>
621
622         Reviewed by Andy Estes.
623
624         * wtf/Platform.h:
625
626 2019-04-24  chris fleizach  <cfleizach@apple.com>
627
628         AX: Remove deprecated Accessibility Object Model events
629         https://bugs.webkit.org/show_bug.cgi?id=197073
630         <rdar://problem/50027819>
631
632         Reviewed by Ryosuke Niwa.
633
634         * wtf/Platform.h:
635
636 2019-04-23  Commit Queue  <commit-queue@webkit.org>
637
638         Unreviewed, rolling out r244558.
639         https://bugs.webkit.org/show_bug.cgi?id=197219
640
641         Causing crashes on iOS Sim Release and Debug (Requested by
642         ShawnRoberts on #webkit).
643
644         Reverted changeset:
645
646         "Remove DeprecatedOptional"
647         https://bugs.webkit.org/show_bug.cgi?id=197161
648         https://trac.webkit.org/changeset/244558
649
650 2019-04-23  Alex Christensen  <achristensen@webkit.org>
651
652         Remove DeprecatedOptional
653         https://bugs.webkit.org/show_bug.cgi?id=197161
654
655         Reviewed by Darin Adler.
656
657         This was added in r209326 to be compatible with a shipping version of Safari.
658         We have released several versions of Safari since then, so do what the comments say and remove it.
659         The existence of this std::optional makes migrating to C++17 harder, and there's no reason to keep it.
660
661         * WTF.xcodeproj/project.pbxproj:
662         * wtf/CMakeLists.txt:
663         * wtf/DeprecatedOptional.h: Removed.
664
665 2019-04-21  Zan Dobersek  <zdobersek@igalia.com>
666
667         [WTF] Generic memoryFootprint() implementation should use bmalloc on Linux
668         https://bugs.webkit.org/show_bug.cgi?id=196963
669
670         Reviewed by Don Olmstead.
671
672         Have the generic memoryFootprint() implementation use bmalloc's
673         memoryFootprint() API on Linux, whenever the system malloc option is
674         not enabled. Limitation to Linux platforms is due to the bmalloc
675         implementation being limited to those configurations (excluding iOS
676         which doesn't use MemoryFootprintGeneric.cpp).
677
678         * wtf/PlatformWPE.cmake: Switch to building MemoryFootprintGeneric.cpp.
679         * wtf/generic/MemoryFootprintGeneric.cpp:
680         (WTF::memoryFootprint):
681
682 2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>
683
684         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
685         https://bugs.webkit.org/show_bug.cgi?id=196681
686         <rdar://problem/49917764>
687
688         Reviewed by Darin Adler.
689
690         Address Darin's comments by removing the explicit type from std::max.
691
692         * wtf/HashTable.h:
693         (WTF::KeyTraits>::computeBestTableSize):
694         (WTF::KeyTraits>::shrinkToBestSize):
695
696 2019-04-18  Chris Dumez  <cdumez@apple.com>
697
698         [iOS] Improve detection of when web views go to background / foreground
699         https://bugs.webkit.org/show_bug.cgi?id=197035
700         <rdar://problem/45281182>
701
702         Reviewed by Tim Horton.
703
704         Add build time flag.
705
706         * wtf/FeatureDefines.h:
707
708 2019-04-18  Jer Noble  <jer.noble@apple.com>
709
710         Add support for parsing FairPlayStreaming PSSH boxes.
711         https://bugs.webkit.org/show_bug.cgi?id=197064
712
713         Reviewed by Eric Carlson.
714
715         * wtf/Platform.h:
716
717 2019-04-18  Yusuke Suzuki  <ysuzuki@apple.com>
718
719         [WTF] StringBuilder should set correct m_is8Bit flag when merging
720         https://bugs.webkit.org/show_bug.cgi?id=197053
721
722         Reviewed by Saam Barati.
723
724         When appending StringBuilder to the other StringBuilder, we have a path that does not set m_is8Bit flag correctly.
725         This patch correctly sets this flag. And we also change 0 to nullptr when we are using 0 as a pointer.
726
727         * wtf/text/StringBuilder.cpp:
728         (WTF::StringBuilder::reserveCapacity):
729         (WTF::StringBuilder::appendUninitializedSlow):
730         (WTF::StringBuilder::append):
731         * wtf/text/StringBuilder.h:
732         (WTF::StringBuilder::append):
733         (WTF::StringBuilder::characters8 const):
734         (WTF::StringBuilder::characters16 const):
735         (WTF::StringBuilder::clear):
736
737 2019-04-17  Tim Horton  <timothy_horton@apple.com>
738
739         Adopt different scroll view flashing SPI
740         https://bugs.webkit.org/show_bug.cgi?id=197043
741         <rdar://problem/49996476>
742
743         Reviewed by Wenson Hsieh.
744
745         * wtf/Platform.h:
746
747 2019-04-17  Jer Noble  <jer.noble@apple.com>
748
749         Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
750         https://bugs.webkit.org/show_bug.cgi?id=196994
751         <rdar://problem/44158331>
752
753         Reviewed by Alex Christensen.
754
755         * wtf/Platform.h:
756
757 2019-04-16  Stephan Szabo  <stephan.szabo@sony.com>
758
759         [PlayStation] Update port for system library changes
760         https://bugs.webkit.org/show_bug.cgi?id=196978
761
762         Reviewed by Ross Kirsling.
763
764         * wtf/PlatformPlayStation.cmake:
765         Remove reference to deleted system library
766
767 2019-04-16  Jer Noble  <jer.noble@apple.com>
768
769         Enable HAVE_AVKIT on PLATFORM(IOSMAC)
770         https://bugs.webkit.org/show_bug.cgi?id=196987
771
772         Reviewed by Tim Horton.
773
774         * wtf/Platform.h:
775
776 2019-04-16  Robin Morisset  <rmorisset@apple.com>
777
778         [WTF] holdLock should be marked WARN_UNUSED_RETURN
779         https://bugs.webkit.org/show_bug.cgi?id=196922
780
781         Reviewed by Keith Miller.
782
783         * wtf/Locker.h:
784
785 2019-04-16  Don Olmstead  <don.olmstead@sony.com>
786
787         [CMake] Set WTF_SCRIPTS_DIR
788         https://bugs.webkit.org/show_bug.cgi?id=196917
789
790         Reviewed by Konstantin Tokarev.
791
792         Use WTF_SCRIPTS_DIR for copying the unified sources script.
793
794         * wtf/CMakeLists.txt:
795
796 2019-04-15  Myles C. Maxfield  <mmaxfield@apple.com>
797
798         [Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
799         https://bugs.webkit.org/show_bug.cgi?id=196846
800         <rdar://problem/49499971>
801
802         Reviewed by Simon Fraser and Darin Adler.
803
804         * wtf/RetainPtr.h:
805         (WTF::safeCFEqual):
806         (WTF::safeCFHash):
807
808 2019-04-12  Ryosuke Niwa  <rniwa@webkit.org>
809
810         HashTable::removeIf always shrinks the hash table by half even if there is nothing left
811         https://bugs.webkit.org/show_bug.cgi?id=196681
812
813         Reviewed by Darin Adler.
814
815         Made HashTable::removeIf shrink to the "best size", which is the least power of two bigger
816         than twice the key count as already used in the copy constructor.
817
818         * wtf/HashTable.h:
819         (WTF::HashTable::computeBestTableSize): Extracted from the copy constructor.
820         (WTF::HashTable::shrinkToBestSize): Added.
821         (WTF::HashTable::removeIf): Use shrinkToBestSize instead of shrink.
822         (WTF::HashTable::HashTable):
823
824 2019-04-12  Eric Carlson  <eric.carlson@apple.com>
825
826         Update AudioSession route sharing policy
827         https://bugs.webkit.org/show_bug.cgi?id=196776
828         <rdar://problem/46501611>
829
830         Reviewed by Jer Noble.
831
832         * wtf/Platform.h: Define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO.
833
834 2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
835
836         requestAnimationFrame should execute before the next frame
837         https://bugs.webkit.org/show_bug.cgi?id=177484
838
839         Reviewed by Simon Fraser.
840
841         Add trace points for the page RenderingUpdate.
842
843         * wtf/SystemTracing.h:
844
845 2019-04-10  Claudio Saavedra  <csaavedra@igalia.com>
846
847         Do not generate empty unified sources when unified builds are disabled
848         https://bugs.webkit.org/show_bug.cgi?id=196767
849
850         Reviewed by Konstantin Tokarev.
851
852         If unified builds are disabled, the ruby script to generate them
853         is still used to list the sources that need to be
854         compiled. Currently, the script always generates bundled unified
855         sources, even if it's being used just to list all the sources. So
856         when the unified builds are disabled and no files are going to be
857         bundled, the script generates one empty file per bundle manager
858         (that is, one C++ and one ObjectiveC), that gets added to the
859         sources to be compiled.
860
861         * Scripts/generate-unified-source-bundles.rb: Only go through the
862         bundle managers file generation when not running in
863         PrintAllSources mode, to avoid generating empty bundle files.
864
865 2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>
866
867         [WPE] Avoid async IO starving timers
868         https://bugs.webkit.org/show_bug.cgi?id=196733
869
870         Reviewed by Carlos Garcia Campos.
871
872         If AsyncIONetwork and DiskCacheRead priorities are higher than
873         MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
874         to accumulate MB of data instead of handing it down to the WebProcess (done
875         using a Timer). This eventually causes an Out Of Memory kill on the
876         NetworkProcess on some embedded platforms with low memory limits.
877
878         This patch levels the three priorities to the same value, while still leaving
879         DiskCacheWrite with less priority than DiskCacheRead.
880
881         * wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.
882
883 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
884
885         [CMake] WTF derived sources should only be referenced inside WTF
886         https://bugs.webkit.org/show_bug.cgi?id=196706
887
888         Reviewed by Konstantin Tokarev.
889
890         Use ${WTF_DERIVED_SOURCES_DIR} instead of ${DERIVED_SOURCES_DIR} within WTF.
891
892         * wtf/CMakeLists.txt:
893         * wtf/PlatformJSCOnly.cmake:
894         * wtf/PlatformMac.cmake:
895
896 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
897
898         [CMake] Apple builds should use ICU_INCLUDE_DIRS
899         https://bugs.webkit.org/show_bug.cgi?id=196720
900
901         Reviewed by Konstantin Tokarev.
902
903         Copy ICU headers for Apple builds into ICU_INCLUDE_DIRS.
904
905         * CMakeLists.txt:
906         * wtf/PlatformMac.cmake:
907
908 2019-04-08  Don Olmstead  <don.olmstead@sony.com>
909
910         [CMake][WinCairo] Separate copied headers into different directories
911         https://bugs.webkit.org/show_bug.cgi?id=196655
912
913         Reviewed by Michael Catanzaro.
914
915         * wtf/CMakeLists.txt:
916
917 2019-04-08  Guillaume Emont  <guijemont@igalia.com>
918
919         Enable DFG on MIPS
920         https://bugs.webkit.org/show_bug.cgi?id=196689
921
922         Reviewed by Žan Doberšek.
923
924         Since the bytecode change, we enabled the baseline JIT on mips in
925         r240432, but DFG is still missing. With this change, all tests are
926         passing on a ci20 board.
927
928         * wtf/Platform.h: Enable DFG on MIPS by default.
929
930 2019-04-06  Ryosuke Niwa  <rniwa@webkit.org>
931
932         Added tests for WeakHashSet::computesEmpty and WeakHashSet::computeSize
933         https://bugs.webkit.org/show_bug.cgi?id=196669
934
935         Reviewed by Geoffrey Garen.
936
937         Removed the superflous type names from forward declarations, and made WeakHashSet::add
938         take a const object to match other container types in WTF.
939
940         * wtf/WeakHashSet.h:
941         (WTF::WeakHashSet::add):
942         * wtf/WeakPtr.h:
943
944 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
945
946         Make WeakPtr<Element> possible and deploy it in form associated elements code
947         https://bugs.webkit.org/show_bug.cgi?id=196626
948
949         Reviewed by Antti Koivisto.
950
951         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
952         a subclass type U of a type T used to define WeakReference<T>.
953
954         Also added computesEmpty, which is slightly more efficient than computeSize
955         when m_set is either empty or when there are non-released weak references in the set.
956
957         * wtf/WeakHashSet.h:
958         (WTF::WeakHashSet::remove):
959         (WTF::WeakHashSet::contains const):
960         (WTF::WeakHashSet::computesEmpty const): Added.
961         * wtf/WeakPtr.h: Added an explicit forward declaration of WeakHashSet to avoid
962         build failures in GTK+ and WPE ports.
963
964 2019-04-05  Eric Carlson  <eric.carlson@apple.com>
965
966         Remove AUDIO_TOOLBOX_AUDIO_SESSION
967         https://bugs.webkit.org/show_bug.cgi?id=196653
968         <rdar://problem/49652098>
969
970         Reviewed by Jer Noble.
971
972         * wtf/Platform.h:
973
974 2019-04-05  Michael Catanzaro  <mcatanzaro@igalia.com>
975
976         Unreviewed manual rollout of r243929
977         https://bugs.webkit.org/show_bug.cgi?id=196626
978
979         * wtf/WeakHashSet.h:
980         (WTF::WeakHashSet::remove):
981         (WTF::WeakHashSet::contains const):
982         (WTF::WeakHashSet::computesEmpty const): Deleted.
983
984 2019-04-05  Commit Queue  <commit-queue@webkit.org>
985
986         Unreviewed, rolling out r243833.
987         https://bugs.webkit.org/show_bug.cgi?id=196645
988
989         This change breaks build of WPE and GTK ports (Requested by
990         annulen on #webkit).
991
992         Reverted changeset:
993
994         "[CMake][WTF] Mirror XCode header directories"
995         https://bugs.webkit.org/show_bug.cgi?id=191662
996         https://trac.webkit.org/changeset/243833
997
998 2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>
999
1000         Make WeakPtr<Element> possible and deploy it in form associated elements code
1001         https://bugs.webkit.org/show_bug.cgi?id=196626
1002
1003         Reviewed by Antti Koivisto.
1004
1005         Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
1006         a subclass type U of a type T used to define WeakReference<T>.
1007
1008         Also added computesEmpty, which is slightly more efficient than computeSize
1009         when m_set is either empty or when there are non-released weak references in the set.
1010
1011         * wtf/WeakHashSet.h:
1012         (WTF::WeakHashSet::remove):
1013         (WTF::WeakHashSet::contains const):
1014         (WTF::WeakHashSet::computesEmpty const): Added.
1015
1016 2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>
1017
1018         [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
1019         https://bugs.webkit.org/show_bug.cgi?id=196475
1020
1021         Reviewed by Saam Barati.
1022
1023         * wtf/ForbidHeapAllocation.h:
1024         * wtf/IsoMalloc.h:
1025         * wtf/IsoMallocInlines.h:
1026
1027 2019-04-03  Don Olmstead  <don.olmstead@sony.com>
1028
1029         [CMake][WTF] Mirror XCode header directories
1030         https://bugs.webkit.org/show_bug.cgi?id=191662
1031
1032         Reviewed by Konstantin Tokarev.
1033
1034         Rename WTF forwarding header target to WTFFramework and update the install location
1035         to WTF_FRAMEWORK_HEADERS_DIR.
1036
1037         * wtf/CMakeLists.txt:
1038
1039 2019-04-03  Joseph Pecoraro  <pecoraro@apple.com>
1040
1041         Web Inspector: Remote Inspector indicate callback should always happen on the main thread
1042         https://bugs.webkit.org/show_bug.cgi?id=196513
1043         <rdar://problem/49498284>
1044
1045         Reviewed by Devin Rousso.
1046
1047         * wtf/MainThread.h:
1048         * wtf/cocoa/MainThreadCocoa.mm:
1049         (WTF::dispatchAsyncOnMainThreadWithWebThreadLockIfNeeded):
1050         * wtf/ios/WebCoreThread.cpp:
1051         * wtf/ios/WebCoreThread.h:
1052
1053 2019-04-02  Keith Rollin  <krollin@apple.com>
1054
1055         Inhibit CFNetwork logging in private sessions
1056         https://bugs.webkit.org/show_bug.cgi?id=196268
1057         <rdar://problem/48210793>
1058
1059         Fix a conditional in Platform.h where IOS should have been used
1060         instead of IOS_FAMILY. The latter happened to work, but we really want
1061         to be using the proper symbol here.
1062
1063         Reviewed by Alexey Proskuryakov.
1064
1065         * wtf/Platform.h:
1066
1067 2019-04-01  Michael Catanzaro  <mcatanzaro@igalia.com>
1068
1069         Stop trying to support building JSC with clang 3.8
1070         https://bugs.webkit.org/show_bug.cgi?id=195947
1071         <rdar://problem/49069219>
1072
1073         Reviewed by Darin Adler.
1074
1075         It seems WebKit hasn't built with clang 3.8 in a while, no devs are using this compiler, we
1076         don't know how much effort it would be to make JSC work again, and it's making the code
1077         worse. Remove my hacks to support clang 3.8 from WTF.
1078
1079         * wtf/MetaAllocator.cpp:
1080         (WTF::MetaAllocator::allocate):
1081         * wtf/text/StringConcatenate.h:
1082         (WTF::tryMakeStringFromAdapters):
1083
1084 2019-03-31  Yusuke Suzuki  <ysuzuki@apple.com>
1085
1086         [JSC] Butterfly allocation from LargeAllocation should try "realloc" behavior if collector thread is not active
1087         https://bugs.webkit.org/show_bug.cgi?id=196160
1088
1089         Reviewed by Saam Barati.
1090
1091         * wtf/FastMalloc.h:
1092         (WTF::FastMalloc::tryRealloc):
1093         * wtf/Gigacage.cpp:
1094         (Gigacage::tryRealloc):
1095         * wtf/Gigacage.h:
1096
1097 2019-03-31  Andy Estes  <aestes@apple.com>
1098
1099         [iOS] WebKit should consult the navigation response policy delegate before previewing a QuickLook document
1100         https://bugs.webkit.org/show_bug.cgi?id=196433
1101         <rdar://problem/49293305>
1102
1103         Reviewed by Tim Horton.
1104
1105         * wtf/NeverDestroyed.h:
1106         (WTF::NeverDestroyed::operator->):
1107         (WTF::NeverDestroyed::operator-> const):
1108
1109 2019-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>
1110
1111         Unreviewed build fix.
1112
1113         * wtf/CMakeLists.txt: Added SpanningTree.h to WTF_PUBLIC_HEADERS.
1114
1115 2019-03-28  Saam Barati  <sbarati@apple.com>
1116
1117         BackwardsGraph needs to consider back edges as the backward's root successor
1118         https://bugs.webkit.org/show_bug.cgi?id=195991
1119
1120         Reviewed by Filip Pizlo.
1121
1122         Previously, our backwards graph analysis was slightly wrong. The idea of
1123         backwards graph is that the root of the graph has edges to terminals in
1124         the original graph. And then the original directed edges in the graph are flipped.
1125         
1126         However, we weren't considering loops as a form of terminality. For example,
1127         we wouldn't consider an infinite loop as a terminal. So there were no edges
1128         from the root to a node in the infinite loop. This lead us to make mistakes
1129         when we used backwards dominators to compute control flow equivalence.
1130         
1131         This is better understood in an example:
1132         
1133         ```
1134         preheader:
1135         while (1) {
1136             if (!isCell(v))
1137                 continue;
1138             load structure ID
1139             if (cond)
1140                continue;
1141             return
1142         }
1143         ```
1144         
1145         In the previous version of this algorithm, the only edge from the backwards
1146         root would be to the block containing the return. This would lead us to
1147         believe that the loading of the structureID backwards dominates the preheader,
1148         leading us to believe it's control flow equivalent to preheader. This is
1149         obviously wrong, since we can loop forever if "v" isn't a cell.
1150         
1151         The solution here is to treat any backedge in the graph as a "terminal" node.
1152         Since a backedge implies the existence of a loop.
1153         
1154         In the above example, the backwards root now has an edge to both blocks with
1155         "continue". This prevents us from falsely claiming that the return is control
1156         flow equivalent with the preheader.
1157         
1158         This patch uses DFS spanning trees to compute back edges. An edge
1159         u->v is a back edge when u is a descendent of v in the DFS spanning
1160         tree of the Graph.
1161
1162         * WTF.xcodeproj/project.pbxproj:
1163         * wtf/BackwardsGraph.h:
1164         (WTF::BackwardsGraph::BackwardsGraph):
1165         * wtf/SpanningTree.h: Added.
1166         (SpanningTree::SpanningTree):
1167         (SpanningTree::isDescendent):
1168
1169 2019-03-28  Tim Horton  <timothy_horton@apple.com>
1170
1171         Un-fix the build
1172
1173         * wtf/Platform.h:
1174         It is no longer necessary to exclude this from PLATFORM(IOSMAC).
1175
1176 2019-03-27  Per Arne Vollan  <pvollan@apple.com>
1177
1178         Layout Test js/math-clz32.html is failing
1179         https://bugs.webkit.org/show_bug.cgi?id=196209
1180
1181         Reviewed by Ross Kirsling.
1182
1183         Use the correct number of loop iterations when counting leading zeros. Also, the
1184         count was off by one for the Win64 case.
1185
1186         * wtf/MathExtras.h:
1187         (WTF::clz):
1188
1189 2019-03-26  Keith Rollin  <krollin@apple.com>
1190
1191         Inhibit CFNetwork logging in private sessions
1192         https://bugs.webkit.org/show_bug.cgi?id=196268
1193         <rdar://problem/48210793>
1194
1195         Reviewed by Alex Christensen.
1196
1197         Before performing any logging, the NetworkProcess checks to see if
1198         it's performing an operation associated with a private (ephemeral)
1199         browsing session. If so, it skips the logging. However, networking
1200         layers below the NetworkProcess don't know about private browsing, so
1201         they would still perform their own logging. CFNetwork now has a flag
1202         that lets us control that, so set it to False if private browsing.
1203
1204         * wtf/Platform.h:
1205
1206 2019-03-25  Alex Christensen  <achristensen@webkit.org>
1207
1208         Expected shouldn't assume its contained types are copyable
1209         https://bugs.webkit.org/show_bug.cgi?id=195986
1210
1211         Reviewed by JF Bastien.
1212
1213         * wtf/Expected.h:
1214         (std::experimental::fundamentals_v3::__expected_detail::constexpr_base::constexpr_base):
1215         (std::experimental::fundamentals_v3::operator==):
1216         (std::experimental::fundamentals_v3::operator!=):
1217         * wtf/Unexpected.h:
1218         (std::experimental::fundamentals_v3::unexpected::unexpected):
1219
1220 2019-03-24  Keith Miller  <keith_miller@apple.com>
1221
1222         Unreviewed, forgot to refactor variable name for windows build in
1223         r243418.
1224
1225         * wtf/MathExtras.h:
1226         (WTF::clz):
1227         (WTF::ctz):
1228
1229 2019-03-24  Andy Estes  <aestes@apple.com>
1230
1231         [watchOS] Remove unused Proximity Networking code
1232         https://bugs.webkit.org/show_bug.cgi?id=196188
1233
1234         Reviewed by Tim Horton.
1235
1236         * wtf/FeatureDefines.h:
1237
1238 2019-03-23  Keith Miller  <keith_miller@apple.com>
1239
1240         Refactor clz/ctz and fix getLSBSet.
1241         https://bugs.webkit.org/show_bug.cgi?id=196162
1242
1243         Reviewed by Saam Barati.
1244
1245         This patch makes clz32/64 and ctz32 generic so they work on any
1246         numeric type. Since these methods work on any type we don't need
1247         to have a separate implementation of getLSBSet, which also
1248         happened to be getMSBSet. This patch also adds getMSBSet as there
1249         may be users who want that in the future.
1250
1251         * wtf/MathExtras.h:
1252         (WTF::clz):
1253         (WTF::ctz):
1254         (WTF::getLSBSet):
1255         (WTF::getMSBSet):
1256         (getLSBSet): Deleted.
1257         (WTF::clz32): Deleted.
1258         (WTF::clz64): Deleted.
1259         (WTF::ctz32): Deleted.
1260
1261 2019-03-22  Keith Rollin  <krollin@apple.com>
1262
1263         Enable ThinLTO support in Production builds
1264         https://bugs.webkit.org/show_bug.cgi?id=190758
1265         <rdar://problem/45413233>
1266
1267         Reviewed by Daniel Bates.
1268
1269         Enable building with Thin LTO in Production when using Xcode 10.2 or
1270         later. This change results in a 1.45% progression in PLT5. Full
1271         Production build times increase about 2-3%. Incremental build times
1272         are more severely affected, and so LTO is not enabled for local
1273         engineering builds.
1274
1275         LTO is enabled only on macOS for now, until rdar://problem/49013399,
1276         which affects ARM builds, is fixed.
1277
1278         To change the LTO setting when building locally:
1279
1280         - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
1281           command line.
1282         - If building with `build-webkit`, specify --lto-mode={none,thin,full}
1283           on the command line.
1284         - If building with `build-root`, specify --lto={none,thin,full} on the
1285           command line.
1286         - If building with Xcode, create a LocalOverrides.xcconfig file at the
1287           top level of your repository directory (if needed) and define
1288           WK_LTO_MODE to full, thin, or none.
1289
1290         * Configurations/Base.xcconfig:
1291
1292 2019-03-22  Tim Horton  <timothy_horton@apple.com>
1293
1294         Fix the build after r243354
1295
1296         * wtf/Platform.h:
1297
1298 2019-03-22  Tim Horton  <timothy_horton@apple.com>
1299
1300         Fix the build after r243354
1301         https://bugs.webkit.org/show_bug.cgi?id=196138
1302         <rdar://problem/49145951>
1303
1304         * wtf/Platform.h:
1305
1306 2019-03-21  Eric Carlson  <eric.carlson@apple.com>
1307
1308         Add UI process WebRTC runtime logging.
1309         https://bugs.webkit.org/show_bug.cgi?id=196020
1310         <rdar://problem/49071443>
1311
1312         Reviewed by Youenn Fablet.
1313
1314         * wtf/Logger.h:
1315         (WTF::LogArgument::toString): Add long long and unsigned long long variants.
1316
1317 2019-03-20  Simon Fraser  <simon.fraser@apple.com>
1318
1319         Rename ENABLE_ACCELERATED_OVERFLOW_SCROLLING macro to ENABLE_OVERFLOW_SCROLLING_TOUCH
1320         https://bugs.webkit.org/show_bug.cgi?id=196049
1321
1322         Reviewed by Tim Horton.
1323
1324         This macro is about the -webkit-overflow-scrolling CSS property, not accelerated
1325         overflow scrolling in general, so rename it.
1326
1327         * wtf/FeatureDefines.h:
1328
1329 2019-03-20  Mark Lam  <mark.lam@apple.com>
1330
1331         Open source arm64e code.
1332         https://bugs.webkit.org/show_bug.cgi?id=196012
1333         <rdar://problem/49066237>
1334
1335         Reviewed by Keith Miller.
1336
1337         * WTF.xcodeproj/project.pbxproj:
1338         * wtf/BlockPtr.h:
1339         * wtf/Platform.h:
1340         * wtf/PlatformRegisters.cpp: Added.
1341         (WTF::threadStateLRInternal):
1342         (WTF::threadStatePCInternal):
1343         * wtf/PlatformRegisters.h:
1344         * wtf/PointerPreparations.h:
1345         * wtf/PtrTag.cpp: Added.
1346         (WTF::tagForPtr):
1347         (WTF::ptrTagName):
1348         (WTF::registerPtrTagLookup):
1349         (WTF::reportBadTag):
1350         * wtf/PtrTag.h:
1351         (WTF::removeCodePtrTag):
1352         (WTF::tagCodePtrImpl):
1353         (WTF::tagCodePtr):
1354         (WTF::untagCodePtrImplHelper):
1355         (WTF::untagCodePtrImpl):
1356         (WTF::untagCodePtr):
1357         (WTF::retagCodePtrImplHelper):
1358         (WTF::retagCodePtrImpl):
1359         (WTF::retagCodePtr):
1360         (WTF::tagCFunctionPtrImpl):
1361         (WTF::tagCFunctionPtr):
1362         (WTF::untagCFunctionPtrImpl):
1363         (WTF::untagCFunctionPtr):
1364         (WTF::tagInt):
1365         (WTF::assertIsCFunctionPtr):
1366         (WTF::assertIsNullOrCFunctionPtr):
1367         (WTF::assertIsNotTagged):
1368         (WTF::assertIsTagged):
1369         (WTF::assertIsNullOrTagged):
1370         (WTF::isTaggedWith):
1371         (WTF::assertIsTaggedWith):
1372         (WTF::assertIsNullOrTaggedWith):
1373         (WTF::usesPointerTagging):
1374         (WTF::registerPtrTagLookup):
1375         (WTF::reportBadTag):
1376         (WTF::tagForPtr): Deleted.
1377
1378 2019-03-20  Keith Rollin  <krollin@apple.com>
1379
1380         Update checks that determine if WebKit is system WebKit
1381         https://bugs.webkit.org/show_bug.cgi?id=195756
1382
1383         Reviewed by Alexey Proskuryakov.
1384
1385         The system WebKit can be installed in additional locations, so check
1386         for and allow those, too.
1387
1388         * wtf/Platform.h:
1389
1390 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1391
1392         Unreviewed, further attempt to fix clang 3.8 build
1393         https://bugs.webkit.org/show_bug.cgi?id=195947
1394
1395         * wtf/MetaAllocator.cpp:
1396         (WTF::MetaAllocator::allocate):
1397
1398 2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1399
1400         REGRESSION(r243115) breaks build for clang 3.8
1401         https://bugs.webkit.org/show_bug.cgi?id=195947
1402
1403         Reviewed by Chris Dumez.
1404
1405         * wtf/text/StringConcatenate.h:
1406         (WTF::tryMakeStringFromAdapters):
1407
1408 2019-03-20  Tim Horton  <timothy_horton@apple.com>
1409
1410         Add an platform-driven spell-checking mechanism
1411         https://bugs.webkit.org/show_bug.cgi?id=195795
1412
1413         Reviewed by Ryosuke Niwa.
1414
1415         * wtf/Platform.h:
1416         Add an ENABLE flag.
1417
1418 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
1419
1420         Build cleanly with GCC 9
1421         https://bugs.webkit.org/show_bug.cgi?id=195920
1422
1423         Reviewed by Chris Dumez.
1424
1425         WebKit triggers three new GCC 9 warnings:
1426
1427         """
1428         -Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
1429         declared copy constructor and assignment operator if one of them is user-provided.
1430         """
1431
1432         Solution is to either add a copy constructor or copy assignment operator, if required, or
1433         else remove one if it is redundant.
1434
1435         """
1436         -Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
1437         -Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
1438         """
1439
1440         These account for most of this patch. Solution is to just remove the bad WTFMove().
1441
1442         Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
1443         These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
1444         would be safer to not use memcpy on nontrivial types, but that's too complex for this
1445         patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)
1446
1447         * wtf/CheckedArithmetic.h:
1448         (WTF::Checked::Checked):
1449         * wtf/MetaAllocator.cpp:
1450         (WTF::MetaAllocator::allocate):
1451         * wtf/URLParser.cpp:
1452         (WTF::CodePointIterator::operator!= const):
1453         (WTF::CodePointIterator::operator=): Deleted.
1454         * wtf/text/StringView.h:
1455         (WTF::StringView::CodePoints::Iterator::operator=): Deleted.
1456
1457 2019-03-19  Alex Christensen  <achristensen@webkit.org>
1458
1459         Make WTFLogChannelState and WTFLogLevel enum classes
1460         https://bugs.webkit.org/show_bug.cgi?id=195904
1461
1462         Reviewed by Eric Carlson.
1463
1464         * wtf/Assertions.cpp:
1465         * wtf/Assertions.h:
1466         * wtf/Logger.h:
1467         (WTF::Logger::logAlways const):
1468         (WTF::Logger::error const):
1469         (WTF::Logger::warning const):
1470         (WTF::Logger::info const):
1471         (WTF::Logger::debug const):
1472         (WTF::Logger::willLog const):
1473         (WTF::Logger::log):
1474         * wtf/MemoryPressureHandler.cpp:
1475         * wtf/RefCountedLeakCounter.cpp:
1476
1477 2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>
1478
1479         Unreviewed, rolling out r243132.
1480
1481         Broke GTK build
1482
1483         Reverted changeset:
1484
1485         "Make WTFLogChannelState and WTFLogLevel enum classes"
1486         https://bugs.webkit.org/show_bug.cgi?id=195904
1487         https://trac.webkit.org/changeset/243132
1488
1489 2019-03-18  Alex Christensen  <achristensen@webkit.org>
1490
1491         Make WTFLogChannelState and WTFLogLevel enum classes
1492         https://bugs.webkit.org/show_bug.cgi?id=195904
1493
1494         Reviewed by Eric Carlson.
1495
1496         * wtf/Assertions.cpp:
1497         * wtf/Assertions.h:
1498         * wtf/Logger.h:
1499         (WTF::Logger::logAlways const):
1500         (WTF::Logger::error const):
1501         (WTF::Logger::warning const):
1502         (WTF::Logger::info const):
1503         (WTF::Logger::debug const):
1504         (WTF::Logger::willLog const):
1505         (WTF::Logger::log):
1506         * wtf/MemoryPressureHandler.cpp:
1507         * wtf/RefCountedLeakCounter.cpp:
1508
1509 2019-03-18  Darin Adler  <darin@apple.com>
1510
1511         Cut down on use of StringBuffer, possibly leading toward removing it entirely
1512         https://bugs.webkit.org/show_bug.cgi?id=195870
1513
1514         Reviewed by Daniel Bates.
1515
1516         * wtf/URL.cpp: Remove a now-inaccurate comment mentioning StringBuffer.
1517
1518         * wtf/text/StringView.cpp:
1519         (WTF::convertASCIICase): Use createUninitialized instead of StringBuffer.
1520
1521 2019-03-18  Xan Lopez  <xan@igalia.com>
1522
1523         [WTF] Remove redundant std::move in StringConcatenate
1524         https://bugs.webkit.org/show_bug.cgi?id=195798
1525
1526         Reviewed by Darin Adler.
1527
1528         Remove redundant calls to WTFMove in return values for this
1529         method. C++ will already do an implicit move here since we are
1530         returning a local value where copy/move elision is not applicable.
1531
1532         * wtf/text/StringConcatenate.h:
1533         (WTF::tryMakeStringFromAdapters):
1534
1535 2019-03-16  Darin Adler  <darin@apple.com>
1536
1537         Improve normalization code, including moving from unorm.h to unorm2.h
1538         https://bugs.webkit.org/show_bug.cgi?id=195330
1539
1540         Reviewed by Michael Catanzaro.
1541
1542         * wtf/URLHelpers.cpp: Removed unneeded include of unorm.h since the
1543         normalization code is now in StringView.cpp.
1544         (WTF::URLHelpers::escapeUnsafeCharacters): Renamed from
1545         createStringWithEscapedUnsafeCharacters since it now only creates
1546         a new string if one is needed. Use unsigned for string lengths, since
1547         that's what WTF::String uses, not size_t. Added a first loop so that
1548         we can return the string unmodified if no lookalike characters are
1549         found. Removed unnecessary round trip from UTF-16 and then back in
1550         the case where the character is not a lookalike.
1551         (WTF::URLHelpers::toNormalizationFormC): Deleted. Moved this logic
1552         into the WTF::normalizedNFC function in StringView.cpp.
1553         (WTF::URLHelpers::userVisibleURL): Call escapeUnsafeCharacters and
1554         normalizedNFC. The normalizedNFC function is better in multiple ways,
1555         but primarily it handles 8-bit strings and other already-normalized
1556         strings much more efficiently.
1557
1558         * wtf/text/StringView.cpp:
1559         (WTF::normalizedNFC): Added. This has two overloads. One is for when
1560         we already have a String, and want to re-use it if no normalization
1561         is needed, and another is when we only have a StringView, and may need
1562         to allocate a String to hold the result. Includes a fast special case
1563         for 8-bit and already-normalized strings, and uses the same strategy
1564         that JSC::normalize was already using: calls unorm2_normalize twice,
1565         first just to determine the length.
1566
1567         * wtf/text/StringView.h: Added normalizedNFC, which can be called with
1568         either a StringView or a String. Also moved StringViewWithUnderlyingString
1569         here from JSString.h, here for use as the return value of normalizedNFC;
1570         it is used for a similar purpose in the JavaScriptCore rope implementation.
1571         Also removed an inaccurate comment.
1572
1573 2019-03-16  Diego Pino Garcia  <dpino@igalia.com>
1574
1575         [GTK] [WPE] Fix compilation errors due to undefined ALWAYS_LOG_IF
1576         https://bugs.webkit.org/show_bug.cgi?id=195850
1577
1578         Unreviewed build fix after r243033. 
1579
1580         * wtf/LoggerHelper.h:
1581
1582 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
1583
1584         [iOS] Block the accessibility server when accessibility is not enabled.
1585         https://bugs.webkit.org/show_bug.cgi?id=195342
1586
1587         Reviewed by Brent Fulgham.
1588
1589         Add SPI to issue a mach extension to a process by pid. Also, add a macro for
1590         the availability of this SPI.
1591
1592         * wtf/Platform.h:
1593         * wtf/spi/darwin/SandboxSPI.h:
1594
1595 2019-03-15  Eric Carlson  <eric.carlson@apple.com>
1596
1597         Add media stream release logging
1598         https://bugs.webkit.org/show_bug.cgi?id=195823
1599
1600         Reviewed by Youenn Fablet.
1601
1602         * wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging.
1603
1604 2019-03-15  Truitt Savell  <tsavell@apple.com>
1605
1606         Unreviewed, rolling out r243008.
1607
1608         This revision broke High Sierra builders
1609
1610         Reverted changeset:
1611
1612         "[iOS] Block the accessibility server when accessibility is
1613         not enabled."
1614         https://bugs.webkit.org/show_bug.cgi?id=195342
1615         https://trac.webkit.org/changeset/243008
1616
1617 2019-03-15  Per Arne Vollan  <pvollan@apple.com>
1618
1619         [iOS] Block the accessibility server when accessibility is not enabled.
1620         https://bugs.webkit.org/show_bug.cgi?id=195342
1621
1622         Reviewed by Brent Fulgham.
1623
1624         Add SPI to issue a mach extension to a process by pid.
1625
1626         * wtf/spi/darwin/SandboxSPI.h:
1627
1628 2019-03-13  Sam Weinig  <sam@webkit.org>
1629
1630         Add utility function to allow easy reverse range-based iteration of a container
1631         https://bugs.webkit.org/show_bug.cgi?id=195542
1632
1633         Reviewed by Antti Koivisto.
1634
1635         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
1636         works with any container that is compatible with std::rbegin() and std::rend(). It is
1637         expected to be used in conjunction with range-based for-loops like so:
1638
1639         for (auto& value : WTF::makeReversedRange(myContainer)) 
1640             ...
1641
1642         * wtf/IteratorRange.h:
1643         (WTF::makeReversedRange):
1644
1645 2019-03-13  Keith Rollin  <krollin@apple.com>
1646
1647         Add support for new StagedFrameworks layout
1648         https://bugs.webkit.org/show_bug.cgi?id=195543
1649
1650         Reviewed by Alexey Proskuryakov.
1651
1652         Opportunistic cleanup: remove unused JAVASCRIPTCORE_FRAMEWORKS_DIR
1653         variable.
1654
1655         * Configurations/Base.xcconfig:
1656
1657 2019-03-13  Dominik Infuehr  <dinfuehr@igalia.com>
1658
1659         String overflow when using StringBuilder in JSC::createError
1660         https://bugs.webkit.org/show_bug.cgi?id=194957
1661
1662         Reviewed by Mark Lam.
1663
1664         When calculating the new capacity of a StringBuilder object,
1665         use a limit of MaxLength instead of MaxLength+1.  Allocating
1666         a string of size MaxLength+1 always fails. This means that expanding
1667         a StringBuilder only worked when the newly doubled capacity is less or
1668         equal to MaxLength.
1669
1670         * wtf/text/StringBuilder.cpp:
1671
1672 2019-03-13  Chris Dumez  <cdumez@apple.com>
1673
1674         Better build fix after r242901.
1675
1676         Reviewed by Jer Noble.
1677
1678         * wtf/Logger.h:
1679         (WTF::LogArgument::toString):
1680
1681 2019-03-13  Jer Noble  <jer.noble@apple.com>
1682
1683         Add AggregateLogger, a Logger specialization for singleton classes.
1684         https://bugs.webkit.org/show_bug.cgi?id=195644
1685
1686         Reviewed by Eric Carlson.
1687
1688         Add a new class, AggregateLogger, which will log messages to each of its aggregated loggers.
1689
1690         Drive-by fixes: allow "const void*" to be directly logged by converting the pointer to a hex string.
1691
1692         * WTF.xcodeproj/project.pbxproj:
1693         * wtf/AggregateLogger.h: Added.
1694         (WTF::AggregateLogger::create):
1695         (WTF::AggregateLogger::addLogger):
1696         (WTF::AggregateLogger::removeLogger):
1697         (WTF::AggregateLogger::logAlways const):
1698         (WTF::AggregateLogger::error const):
1699         (WTF::AggregateLogger::warning const):
1700         (WTF::AggregateLogger::info const):
1701         (WTF::AggregateLogger::debug const):
1702         (WTF::AggregateLogger::willLog const):
1703         (WTF::AggregateLogger::AggregateLogger):
1704         (WTF::AggregateLogger::log const):
1705         * wtf/CMakeLists.h:
1706         * wtf/Logger.cpp:
1707         (WTF::>::toString):
1708         * wtf/Logger.h:
1709
1710 2019-03-12  Commit Queue  <commit-queue@webkit.org>
1711
1712         Unreviewed, rolling out r242747.
1713         https://bugs.webkit.org/show_bug.cgi?id=195641
1714
1715         Performance measurement is difficult in this period, rolling
1716         out it and rolling in later to isolate it from the other
1717         sensitive patches (Requested by yusukesuzuki on #webkit).
1718
1719         Reverted changeset:
1720
1721         "[JSC] Make StaticStringImpl & StaticSymbolImpl actually
1722         static"
1723         https://bugs.webkit.org/show_bug.cgi?id=194212
1724         https://trac.webkit.org/changeset/242747
1725
1726 2019-03-12  Robin Morisset  <rmorisset@apple.com>
1727
1728         A lot more classes have padding that can be reduced by reordering their fields
1729         https://bugs.webkit.org/show_bug.cgi?id=195579
1730
1731         Reviewed by Mark Lam.
1732
1733         * wtf/CrossThreadQueue.h:
1734         * wtf/Logger.h:
1735         * wtf/MemoryPressureHandler.h:
1736         * wtf/MetaAllocator.h:
1737         * wtf/Threading.cpp:
1738
1739 2019-03-11  Alex Christensen  <achristensen@webkit.org>
1740
1741         WTF::Expected should use std::addressof instead of operator&
1742         https://bugs.webkit.org/show_bug.cgi?id=195604
1743
1744         Reviewed by Myles Maxfield.
1745
1746         The latter was causing problems with types that do tricky things with constructors and operator&,
1747         specifically UniqueRef but I made a reduced test case.  When it used operator&, it would get the contained
1748         type and call the constructor that takes a contained type instead of the move constructor.
1749
1750         * wtf/Expected.h:
1751         (std::experimental::fundamentals_v3::__expected_detail::base::base):
1752         (std::experimental::fundamentals_v3::expected::swap):
1753
1754 2019-03-11  Ross Kirsling  <ross.kirsling@sony.com>
1755
1756         Add Optional to Forward.h.
1757         https://bugs.webkit.org/show_bug.cgi?id=195586
1758
1759         Reviewed by Darin Adler.
1760
1761         * wtf/Forward.h:
1762         Add forward declaration for Optional.
1763
1764         * wtf/CPUTime.h:
1765         * wtf/Expected.h:
1766         * wtf/MainThread.h:
1767         * wtf/MemoryFootprint.h:
1768         * wtf/URLHelpers.cpp:
1769         * wtf/URLHelpers.h:
1770         * wtf/cocoa/CPUTimeCocoa.cpp:
1771         * wtf/fuchsia/CPUTimeFuchsia.cpp:
1772         * wtf/unix/CPUTimeUnix.cpp:
1773         * wtf/win/CPUTimeWin.cpp:
1774         Remove unnecessary includes from headers.
1775
1776 2019-03-11  Andy Estes  <aestes@apple.com>
1777
1778         [Apple Pay] Use PKPaymentAuthorizationController to present the Apple Pay UI remotely from the Networking service on iOS
1779         https://bugs.webkit.org/show_bug.cgi?id=195530
1780         <rdar://problem/48747164>
1781
1782         Reviewed by Alex Christensen.
1783
1784         * wtf/FeatureDefines.h: Defined ENABLE_APPLE_PAY_REMOTE_UI.
1785
1786 2019-03-11  Yusuke Suzuki  <ysuzuki@apple.com>
1787
1788         [JSC] Make StaticStringImpl & StaticSymbolImpl actually static
1789         https://bugs.webkit.org/show_bug.cgi?id=194212
1790
1791         Reviewed by Mark Lam.
1792
1793         Avoid mutation onto refcounts if `isStatic()` returns true so that the content of StaticStringImpl never gets modified.
1794
1795         * wtf/text/StringImpl.h:
1796         (WTF::StringImpl::ref):
1797         (WTF::StringImpl::deref):
1798
1799 2019-03-11  Sihui Liu  <sihui_liu@apple.com>
1800
1801         Crash under WebCore::IDBDatabase::connectionToServerLost
1802         https://bugs.webkit.org/show_bug.cgi?id=195563
1803         <rdar://problem/37193655>
1804
1805         CrossThreadTask should protect callee if it is ThreadSafeRefCounted.
1806
1807         Reviewed by Geoffrey Garen.
1808
1809         * wtf/CrossThreadTask.h:
1810         (WTF::createCrossThreadTask):
1811
1812 2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>
1813
1814         Unreviewed, rolling out r242688, r242643, r242624.
1815
1816         Caused multiple layout test failures and crashes on iOS and macOS.
1817
1818         Reverted changeset:
1819
1820         "requestAnimationFrame should execute before the next frame"
1821         https://bugs.webkit.org/show_bug.cgi?id=177484
1822         https://trac.webkit.org/changeset/242624/webkit
1823
1824         * wtf/SystemTracing.h:
1825
1826 2019-03-11  Darin Adler  <darin@apple.com>
1827
1828         Specify fixed precision explicitly to prepare to change String::number and StringBuilder::appendNumber floating point behavior
1829         https://bugs.webkit.org/show_bug.cgi?id=195533
1830
1831         Reviewed by Brent Fulgham.
1832
1833         Soon, we will change String::number and StringBuilder::appendNumber for floating
1834         point to use "shortest form" serialization instead of the current default, which is
1835         "6-digit fixed precision stripping trailing zeros". To prepare to do this safely
1836         without accidentally changing any behavior, changing callers to call the explicit
1837         versions. Later, we may want to return and change many of them to use shortest form
1838         instead, but that may require rebaselining tests, and in some extreme cases, getting
1839         rid of flawed logic that converts between different single and double precision
1840         floating point; such problems may be hidden by fixed precision serialization.
1841
1842         Since "shortest form" is already the behavior for AtomicString::number and
1843         for makeString, no changes required for clients of either of those.
1844
1845         * wtf/Logger.h:
1846         (WTF::LogArgument::toString): Use numberToStringFixedPrecision.
1847         * wtf/MediaTime.cpp:
1848         (WTF::MediaTime::toString const): Use appendFixedPrecisionNumber.
1849         * wtf/text/ValueToString.h:
1850         (WTF::ValueToString<float>::string): Use numberToStringFixedPrecision.
1851         (WTF::ValueToString<double>::string): Ditto.
1852
1853 2019-03-11  Truitt Savell  <tsavell@apple.com>
1854
1855         Unreviewed, rolling out r242702.
1856
1857         Broke High Sierra builders.
1858
1859         Reverted changeset:
1860
1861         "Add utility function to allow easy reverse range-based
1862         iteration of a container"
1863         https://bugs.webkit.org/show_bug.cgi?id=195542
1864         https://trac.webkit.org/changeset/242702
1865
1866 2019-03-11  Sam Weinig  <sam@webkit.org>
1867
1868         Add utility function to allow easy reverse range-based iteration of a container
1869         https://bugs.webkit.org/show_bug.cgi?id=195542
1870
1871         Reviewed by Antti Koivisto.
1872
1873         Add functions to create an IteratorRange<T> that will iterate a container backwards. It
1874         works with any container that is compatible with std::rbegin() and std::rend(). It is
1875         expected to be used in conjunction with range-based for-loops like so:
1876
1877         for (auto& value : WTF::makeReversedRange(myContainer)) 
1878             ...
1879
1880         * wtf/IteratorRange.h:
1881         (WTF::makeReversedRange):
1882
1883 2019-03-10  Yusuke Suzuki <utatane.tea@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
1884
1885         [WTF] Align assumption in RunLoopWin to the other platform's RunLoop
1886         https://bugs.webkit.org/show_bug.cgi?id=181151
1887
1888         Reviewed by Don Olmstead.
1889
1890         This patch fixes RunLoop in Windows to align it to the implementations in the other platforms
1891         to use RunLoop more aggressively.
1892
1893         * wtf/RunLoop.h:
1894         (WTF::RunLoop::Timer::Timer):
1895         * wtf/win/MainThreadWin.cpp:
1896         (initializeMainThreadPlatform): Call RunLoop::registerRunLoopMessageWindowClass.
1897         * wtf/win/RunLoopWin.cpp:
1898         (WTF::RunLoop::wndProc):
1899         (WTF::RunLoop::iterate):
1900         (WTF::RunLoop::stop):
1901         PostQuitMessage is only available in the RunLoop's thread. We should post a message and call
1902         it inside this task.
1903
1904         (WTF::RunLoop::registerRunLoopMessageWindowClass):
1905         Changed the return type from bool to void, and added RELEASE_ASSERT to check the return value of RegisterClass.
1906
1907         (WTF::RunLoop::~RunLoop):
1908         When the RunLoop's thread is freed, its associated window is freed. We do not need to do here.
1909
1910         (WTF::RunLoop::TimerBase::timerFired):
1911         (WTF::RunLoop::TimerBase::TimerBase):
1912         (WTF::RunLoop::TimerBase::start):
1913         (WTF::RunLoop::TimerBase::stop):
1914         (WTF::RunLoop::TimerBase::isActive const):
1915         (WTF::RunLoop::TimerBase::secondsUntilFire const):
1916         (WTF::generateTimerID): Deleted.
1917         We can use TimerBase's pointer as ID since it is uintptr_t.
1918
1919 2019-03-07  Said Abou-Hallawa  <sabouhallawa@apple.com>
1920
1921         requestAnimationFrame should execute before the next frame
1922         https://bugs.webkit.org/show_bug.cgi?id=177484
1923
1924         Reviewed by Simon Fraser.
1925
1926         Add trace points for the page RenderingUpdate.
1927
1928         * wtf/SystemTracing.h:
1929
1930 2019-03-06  Ross Kirsling  <ross.kirsling@sony.com>
1931
1932         [Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
1933         https://bugs.webkit.org/show_bug.cgi?id=195346
1934
1935         Reviewed by Fujii Hironori.
1936
1937         * wtf/PlatformWin.cmake:
1938         * wtf/text/AtomicString.h:
1939         (WTF::AtomicString::AtomicString):
1940         * wtf/text/WTFString.h:
1941         (WTF::String::String):
1942         * wtf/text/win/StringWin.cpp: Added.
1943         (WTF::String::wideCharacters const): Renamed from WTF::stringToNullTerminatedWChar.
1944         * wtf/text/win/WCharStringExtras.h:
1945         (WTF::ucharFrom):
1946         (WTF::wcharFrom):
1947         (WTF::stringToNullTerminatedWChar): Deleted.
1948         (WTF::wcharToString): Deleted.
1949         (WTF::nullTerminatedWCharToString): Deleted.
1950         Add static_assert-guarded reinterpret_cast wrappers for going between UChar* and wchar_t*.
1951         Move existing to/from-String helpers into the String (and AtomicString) class(es).
1952
1953         * wtf/win/FileSystemWin.cpp:
1954         (WTF::FileSystemImpl::getFindData):
1955         (WTF::FileSystemImpl::getFinalPathName):
1956         (WTF::FileSystemImpl::createSymbolicLink):
1957         (WTF::FileSystemImpl::deleteFile):
1958         (WTF::FileSystemImpl::deleteEmptyDirectory):
1959         (WTF::FileSystemImpl::moveFile):
1960         (WTF::FileSystemImpl::pathByAppendingComponent):
1961         (WTF::FileSystemImpl::fileSystemRepresentation):
1962         (WTF::FileSystemImpl::makeAllDirectories):
1963         (WTF::FileSystemImpl::pathGetFileName):
1964         (WTF::FileSystemImpl::storageDirectory):
1965         (WTF::FileSystemImpl::generateTemporaryPath):
1966         (WTF::FileSystemImpl::openTemporaryFile):
1967         (WTF::FileSystemImpl::openFile):
1968         (WTF::FileSystemImpl::hardLinkOrCopyFile):
1969         (WTF::FileSystemImpl::deleteNonEmptyDirectory):
1970         * wtf/win/LanguageWin.cpp:
1971         (WTF::localeInfo):
1972         * wtf/win/PathWalker.cpp:
1973         (WTF::PathWalker::PathWalker):
1974         Use wchar helpers as needed.
1975
1976 2019-02-28  Ryosuke Niwa  <rniwa@webkit.org>
1977
1978         Add WeakHashSet
1979         https://bugs.webkit.org/show_bug.cgi?id=195152
1980
1981         Reviewed by Antti Koivisto.
1982
1983         Added WeakHashSet which is a HashSet of WeakPtr. When the object pointed by WeakPtr is deleted,
1984         WeakHashSet treats the key to be no longer in the set. That is, WeakHashSet::contains returns false
1985         and const_iterator skips such a WeakPtr in the set.
1986
1987         We decided not to make HashSet<WeahPtr<T>> work because it involves weird semantics such as making
1988         find(X) delete the table entry as remove(find(X)) would be a no-op otherwise as find(X) would return
1989         necessarily need to return HashSet<WeakPtr<T>>::end().
1990
1991         Furthermore, we cannot determine the true size of this set in O(1) because the objected pointed by
1992         some of WeakPtr in the set may have already been deleted. This has implications that we can't have
1993         size(), isEmpty(), random(), etc... as O(1) operation.
1994
1995         WeakHashSet is implemented as HashSet<WeakReference<T>>. HashTable::rehash has been updated to delete
1996         WeakReference<T>'s whose m_ptr has become null, and HashTable::expand first deletes any such entry
1997         before deciding an actual expansion is needed. This is accomplished via newly added hash trait,
1998         hasIsReleasedWeakValueFunction, and HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue which
1999         returns true for when WeakReference<T> pointed by Ref<WeakReference<T>> has null m_ptr, not to be
2000         confused with Ref<WeakReference<T>> itself pointing to a null WeakReference<T>.
2001
2002         * WTF.xcodeproj/project.pbxproj:
2003         * wtf/CMakeLists.txt:
2004         * wtf/Forward.h:
2005         * wtf/HashSet.h:
2006         (WTF::HashSet<T, U, V>::checkConsistency const): Added.
2007         * wtf/HashTable.h:
2008         (WTF::HashTable::isReleasedWeakBucket): Added.
2009         (WTF::HashTable::expand): Delete WeakReference<T> with null m_ptr first. This updates m_keyCount
2010         and may make mustRehashInPlace() return true.
2011         (WTF::HashTable::deleteReleasedWeakBuckets): Added.
2012         (WTF::HashTable::rehash): Delete WeakReference<T> with null m_ptr. Also refactored the code a bit
2013         to avoid keep repeating oldTable[i].
2014         * wtf/HashTraits.h:
2015         (WTF::HashTraits<T>::isHashTraitsReleasedWeakValue): Added.
2016         (WTF::RefHashTraits<T>): Extracted from HashTraits<Ref<P>> to share code with
2017         HashTraits<Ref<WeakReference<T>>>.
2018         (WTF::HashTraitsReleasedWeakValueChecker<Traits, hasIsReleasedWeakValueFunction>): Added.
2019         (WTF::isHashTraitsReleasedWeakValue<Traits, hasIsReleasedWeakValueFunction>): Added.
2020         * wtf/WeakHashSet.h: Added.
2021         (WTF::WeakHashSet): Added.
2022         (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
2023         (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
2024         (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const):
2025         (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const):
2026         (WTF::WeakHashSet::WeakHashSetConstIterator::operator++):
2027         (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
2028         (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const):
2029         (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const):
2030         (WTF::WeakHashSet::WeakHashSet):
2031         (WTF::WeakHashSet::begin const):
2032         (WTF::WeakHashSet::end const):
2033         (WTF::WeakHashSet::add):
2034         (WTF::WeakHashSet::remove):
2035         (WTF::WeakHashSet::contains const):
2036         (WTF::WeakHashSet::capacity const):
2037         (WTF::WeakHashSet::computeSize const): Deletes any WeakReference<T> with null m_ptr first.
2038         (WTF::WeakHashSet::checkConsistency const):
2039         (WTF::HashTraits<Ref<WeakReference<T>>>): Added. This hash traits triggers the new code in HashTable's
2040         expand and rehash methods to delete WeakReference<T> with null m_ptr.
2041         (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue):
2042         * wtf/WeakPtr.h:
2043         (WTF::WeakReference::~WeakReference): Added so that we can keep track the number of live WeakReference
2044         in API tests by template specializations.
2045
2046 2019-03-03  Darin Adler  <darin@apple.com>
2047
2048         Prepare to improve handling of conversion of float to strings
2049         https://bugs.webkit.org/show_bug.cgi?id=195262
2050
2051         Reviewed by Daniel Bates.
2052
2053         * wtf/dtoa.cpp:
2054         (WTF::truncateTrailingZeros): Renamed from
2055         formatStringTruncatingTrailingZerosIfNeeded and removed the calls
2056         to double_conversion::StringBuilder::Finalizer, since the caller
2057         already does that.
2058         (WTF::numberToFixedPrecisionString): Added an overload for float
2059         and updated to use the new truncateTrailingZeros.
2060         (WTF::numberToFixedWidthString): Added an overload for float.
2061
2062         * wtf/text/AtomicString.cpp:
2063         (WTF::AtomicString::number): Added float overload. This is a
2064         behavior change, but in all cases for the better. The old behavior
2065         was to convert to double first and then do "shortest form"
2066         conversion, and it's always better to just do that as float.
2067         * wtf/text/AtomicString.h: Added float overload of AtomicString::number.
2068
2069         * wtf/text/StringBuilder.cpp:
2070         (WTF::StringBuilder::appendFixedPrecisionNumber): Added float
2071         overload.
2072         (WTF::StringBuilder::appendShortestFormNumber): Renamed from
2073         appendECMAScriptNumber and did the above.
2074         (WTF::StringBuilder::appendFixedWidthNumber): Ditto.
2075         * wtf/text/StringBuilder.h: Added overloads for float and
2076         appendShortestFormNumber. The appendNumber and appendECMAScriptNumber
2077         functions are now inlines in the header, since they are expressed
2078         entirely in terms of the other functions.
2079
2080         * wtf/text/WTFString.cpp:
2081         (WTF::String::numberToStringFixedPrecision): Added float overload.
2082         Removed unnecessary explicit conversion to String.
2083         (WTF::String::numberToStringShortest): Renamed from
2084         numberToStringECMAScript and did the above.
2085         (WTF::String::numberToStringFixedWidth): Ditto.
2086
2087         * wtf/text/WTFString.h: Added overloads for float and
2088         numberToStringShortest. The number and numberToStringECMAScript
2089         functions are now inlines in the header, since they are expressed
2090         entirely in terms of the other functions.
2091
2092 2019-03-04  Andy Estes  <aestes@apple.com>
2093
2094         [Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
2095         https://bugs.webkit.org/show_bug.cgi?id=195080
2096         <rdar://problem/48421558>
2097
2098         Reviewed by Antti Koivisto.
2099
2100         * wtf/FeatureDefines.h:
2101
2102 2019-03-04  Michael Catanzaro  <mcatanzaro@igalia.com>
2103
2104         URLHelpers should use unorm2_quickCheck before converting to NFC
2105         https://bugs.webkit.org/show_bug.cgi?id=194272
2106
2107         Reviewed by Darin Adler.
2108
2109         If the string is already in normalization form C, don't try to normalize it.
2110
2111         * wtf/URLHelpers.cpp:
2112         (WTF::URLHelpers::toNormalizationFormC):
2113
2114 2019-03-02  Darin Adler  <darin@apple.com>
2115
2116         Retire legacy dtoa function and DecimalNumber class
2117         https://bugs.webkit.org/show_bug.cgi?id=195253
2118
2119         Reviewed by Daniel Bates.
2120
2121         * WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
2122         * wtf/CMakeLists.txt: Ditto.
2123
2124         * wtf/DecimalNumber.cpp: Removed.
2125         * wtf/DecimalNumber.h: Removed.
2126
2127         * wtf/JSONValues.cpp:
2128         (WTF::JSONImpl::Value::writeJSON const): Use
2129         StringBuilder::appendECMAScriptNumber instead of custom logic
2130         using the DecimalNumber class.
2131
2132         * wtf/dtoa.cpp:
2133         (WTF::storeInc): Deleted.
2134         (WTF::BigInt): Deleted.
2135         (WTF::multadd): Deleted.
2136         (WTF::hi0bits): Deleted.
2137         (WTF::lo0bits): Deleted.
2138         (WTF::i2b): Deleted.
2139         (WTF::mult): Deleted.
2140         (WTF::P5Node::P5Node): Deleted.
2141         (WTF::pow5mult): Deleted.
2142         (WTF::lshift): Deleted.
2143         (WTF::cmp): Deleted.
2144         (WTF::diff): Deleted.
2145         (WTF::d2b): Deleted.
2146         (WTF::quorem): Deleted.
2147         (WTF::dtoa): Deleted.
2148
2149         * wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.
2150
2151 2019-02-27  Darin Adler  <darin@apple.com>
2152
2153         Fixed makeString(float) to do shortest-form serialization without first converting to double
2154         https://bugs.webkit.org/show_bug.cgi?id=195142
2155
2156         Reviewed by Daniel Bates.
2157
2158         * wtf/DecimalNumber.cpp: Removed unneeded includes.
2159
2160         * wtf/DecimalNumber.h: Removed unused constructors; over time we will be
2161         deprecating DecimalNumber, so we should removed the unused parts. Also
2162         marked the constructor explicit, removed types used only for arguments for
2163         the constructors, and removed the sign, exponent, significand, and precision
2164         member functions.
2165
2166         * wtf/JSONValues.cpp:
2167         (WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
2168         switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
2169         std::array instead of C arrays.
2170
2171         * wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.
2172         (WTF::dtoa): Updated to use std::array instead of C arrays.
2173         (WTF::dtoaRoundSF): Removed.
2174         (WTF::dtoaRoundDP): Removed.
2175         (WTF::numberToString): Added an overload for float and updated to use std::array.
2176         (WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
2177         (WTF::numberToFixedPrecisionString): Ditto.
2178         (WTF::numberToFixedWidthString): Ditto.
2179
2180         * wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the
2181         array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
2182         Added float overloads for numberToString, numberToFixedPrecisionString,
2183         and numberToFixedWidthString. The only one of these that is called at this
2184         time is numberToString, called by the floating point StringTypeAdapter in
2185         StringConcatenateNummbers.h.
2186
2187         * wtf/text/StringConcatenateNumbers.h: Updated for std::array.
2188
2189 2019-03-01  Darin Adler  <darin@apple.com>
2190
2191         Finish removing String::format
2192         https://bugs.webkit.org/show_bug.cgi?id=194893
2193
2194         Reviewed by Daniel Bates.
2195
2196         * wtf/Assertions.cpp:
2197         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
2198         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
2199
2200         * wtf/HexNumber.h: Deleted unneeded toString function.
2201
2202         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
2203         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
2204         a bit. Use function templates for writeTo functions rather than having two of each.
2205         Removed unused toString functions. Optimized case where we use have a UChar* and
2206         a length of zero to not force the result to be 16-bit. Also gets rid of a small
2207         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
2208         static member helper functions to compute string lengths. Added the pad function
2209         and the PaddingSpecification struct template, so we can add padding to anything
2210         we can turn into a string. Got rid of the special case overload for single
2211         arguments, since it only worked for things that the String constructor can handle.
2212         Instead we will now use StringTypeAdapter, which works for more types. Possibly
2213         less optimal for some special cases, which we could specialize for later if we like.
2214         * wtf/text/StringConcatenateNumbers.h: Ditto.
2215         * wtf/text/StringOperators.h: Ditto.
2216         * wtf/text/StringView.h: Ditto.
2217
2218         * wtf/text/WTFString.cpp:
2219         (WTF::createWithFormatAndArguments): Deleted.
2220         (WTF::String::format): Deleted.
2221         * wtf/text/WTFString.h: Deleted declaration of String::format.
2222
2223 2019-03-01  Alex Christensen  <achristensen@webkit.org>
2224
2225         Revert r241223, r241235, and r241287
2226         https://bugs.webkit.org/show_bug.cgi?id=194427
2227         <rdar://48045861>
2228
2229         * wtf/spi/darwin/XPCSPI.h:
2230
2231 2019-03-01  Simon Fraser  <simon.fraser@apple.com>
2232
2233         Add a system trace scope for event region building
2234         https://bugs.webkit.org/show_bug.cgi?id=195226
2235
2236         Reviewed by Jon Lee.
2237
2238         This trace scope measures the time spend converting element rects into Region objects,
2239         which can be large on some pages.
2240
2241         The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.
2242
2243         * wtf/SystemTracing.h:
2244
2245 2019-02-28  Yusuke Suzuki  <ysuzuki@apple.com>
2246
2247         [JSC] sizeof(JSString) should be 16
2248         https://bugs.webkit.org/show_bug.cgi?id=194375
2249
2250         Reviewed by Saam Barati.
2251
2252         * wtf/text/StringImpl.h:
2253         (WTF::StringImpl::flagIs8Bit):
2254         (WTF::StringImpl::flagIsAtomic):
2255         (WTF::StringImpl::flagIsSymbol):
2256         (WTF::StringImpl::maskStringKind):
2257         * wtf/text/WTFString.cpp:
2258         (WTF::nullString):
2259         * wtf/text/WTFString.h:
2260
2261 2019-02-28  Mark Lam  <mark.lam@apple.com>
2262
2263         Change CheckedArithmetic to not use std::enable_if_t.
2264         https://bugs.webkit.org/show_bug.cgi?id=195187
2265         <rdar://problem/48464665>
2266
2267         Reviewed by Keith Miller.
2268
2269         Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.
2270
2271         * wtf/CheckedArithmetic.h:
2272
2273 2019-02-27  Simon Fraser  <simon.fraser@apple.com>
2274
2275         Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)
2276
2277         * wtf/Assertions.cpp:
2278         (WTF::createWithFormatAndArguments): Deleted.
2279         * wtf/HexNumber.h:
2280         (WTF::StringTypeAdapter<HexNumberBuffer>::toString const):
2281         * wtf/text/StringConcatenate.h:
2282         (WTF::makeString):
2283         (WTF::pad): Deleted.
2284         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
2285         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
2286         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
2287         (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.
2288         * wtf/text/StringConcatenateNumbers.h:
2289         (WTF::FormattedNumber::fixedPrecision):
2290         (WTF::FormattedNumber::fixedWidth):
2291         (WTF::StringTypeAdapter<FormattedNumber>::toString const):
2292         * wtf/text/StringOperators.h:
2293         (WTF::StringAppend::StringAppend):
2294         * wtf/text/StringView.h:
2295         (WTF::StringView::invalidate):
2296         * wtf/text/WTFString.cpp:
2297         (WTF::createWithFormatAndArguments):
2298         (WTF::String::format):
2299         * wtf/text/WTFString.h:
2300
2301 2019-02-26  Mark Lam  <mark.lam@apple.com>
2302
2303         Remove remaining poisoning code.
2304         https://bugs.webkit.org/show_bug.cgi?id=194138
2305
2306         Reviewed by Saam Barati.
2307
2308         This patch removes the instantiation of Poisoned variants of the various containers
2309         but retains the ability of those containers to work with pointer traits.  This
2310         allows us to use them with smart pointers in the future (just like we used to with
2311         Poisoned values).  At minimum, this ability will be useful when we want to insert
2312         an observer into the container storage type for debugging purposes, or to collect
2313         statistics for profiling.
2314
2315         * WTF.xcodeproj/project.pbxproj:
2316         * wtf/Bag.h:
2317         * wtf/CMakeLists.txt:
2318         * wtf/Platform.h:
2319         * wtf/Poisoned.cpp: Removed.
2320         * wtf/Poisoned.h: Removed.
2321         * wtf/PoisonedUniquePtr.h: Removed.
2322         * wtf/Ref.h:
2323         * wtf/RefCountedArray.h:
2324         * wtf/RefPtr.h:
2325         * wtf/WTFAssertions.cpp:
2326
2327 2019-02-26  Keith Miller  <keith_miller@apple.com>
2328
2329         Code quality cleanup in NeverDestroyed
2330         https://bugs.webkit.org/show_bug.cgi?id=194824
2331
2332         Reviewed by Yusuke Suzuki.
2333
2334         First, move data members to the end of the class per WebKit
2335         style. Also, add forbid heap allocation since we expect the
2336         NeverDestroyed classes to be static.
2337
2338         * wtf/NeverDestroyed.h:
2339
2340 2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2341
2342         Fix WTFLogVerbose variadic parameters forwarding
2343         https://bugs.webkit.org/show_bug.cgi?id=194920
2344
2345         Reviewed by Alex Christensen.
2346
2347         WTFLogVerbose was passing the va_list to WTFLog but this function
2348         also used variadic parameters and this is not allowed in C (that
2349         part of the code is extern "C").
2350
2351         * wtf/Assertions.cpp:
2352         (WTF::WTFLogVaList): Created to take a va_list argument instead of
2353         variadic parameters.
2354         (WTF::WTFLog): Kept with variadic parameters, which are
2355         transformed to va_list and passed to WTFLogVaList.
2356         (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.
2357
2358 2019-02-25  Sam Weinig  <sam@webkit.org>
2359
2360         Update double-conversion to the latest version
2361         https://bugs.webkit.org/show_bug.cgi?id=194994
2362
2363         Import the latest version of the double-conversion library based on
2364         https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307
2365
2366         In additon to importing the code, the following changes were applied (or re-applied) to maintain 
2367         parity with what we had previously:
2368              - Add #include "config.h" to each cpp file.
2369              - Put everything inside the WTF namespace.
2370              - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
2371              - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
2372              - Replaced duplicated functions with ASCIICType.h variants
2373              - Made CachedPower table a constexpr.
2374              - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
2375              - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
2376                parameterization, as we only ever want one configuration. Instead of constructing a
2377                configured class and calling StringToDouble on it, StringToDouble is now a static
2378                function. This allows a bunch of now dead code (hex support, octal support, etc.) to
2379                be eliminated. As StringToDoubleConverter now supports single precision floats, some
2380                additional templating of StringToIeee was added to avoid extra unnecessary branching.
2381              - Added RemoveCharacters function to double_conversion::StringBuilder.
2382
2383         Reviewed by Darin Adler.
2384
2385         * WTF.xcodeproj/project.pbxproj:
2386         * wtf/CMakeLists.txt:
2387         * wtf/dtoa/AUTHORS: Added.
2388         * wtf/dtoa/README: Removed.
2389         * wtf/dtoa/README.md: Added.
2390         * wtf/dtoa/bignum-dtoa.cc:
2391         * wtf/dtoa/bignum-dtoa.h:
2392         * wtf/dtoa/bignum.cc:
2393         * wtf/dtoa/bignum.h:
2394         (WTF::double_conversion::Bignum::Times10):
2395         (WTF::double_conversion::Bignum::Equal):
2396         (WTF::double_conversion::Bignum::LessEqual):
2397         (WTF::double_conversion::Bignum::Less):
2398         (WTF::double_conversion::Bignum::PlusEqual):
2399         (WTF::double_conversion::Bignum::PlusLessEqual):
2400         (WTF::double_conversion::Bignum::PlusLess):
2401         (WTF::double_conversion::Bignum::EnsureCapacity):
2402         (WTF::double_conversion::Bignum::BigitLength const):
2403         * wtf/dtoa/cached-powers.cc:
2404         * wtf/dtoa/cached-powers.h:
2405         * wtf/dtoa/diy-fp.cc:
2406         * wtf/dtoa/diy-fp.h:
2407         (WTF::double_conversion::DiyFp::DiyFp):
2408         (WTF::double_conversion::DiyFp::Subtract):
2409         (WTF::double_conversion::DiyFp::Minus):
2410         (WTF::double_conversion::DiyFp::Times):
2411         (WTF::double_conversion::DiyFp::Normalize):
2412         (WTF::double_conversion::DiyFp::f const):
2413         (WTF::double_conversion::DiyFp::e const):
2414         (WTF::double_conversion::DiyFp::set_f):
2415         (WTF::double_conversion::DiyFp::set_e):
2416         * wtf/dtoa/double-conversion.cc:
2417         * wtf/dtoa/double-conversion.h:
2418         (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
2419         (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
2420         (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
2421         (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
2422         * wtf/dtoa/double.h: Removed.
2423         * wtf/dtoa/fast-dtoa.cc:
2424         * wtf/dtoa/fast-dtoa.h:
2425         * wtf/dtoa/fixed-dtoa.cc:
2426         * wtf/dtoa/fixed-dtoa.h:
2427         * wtf/dtoa/ieee.h: Added.
2428         (WTF::double_conversion::double_to_uint64):
2429         (WTF::double_conversion::uint64_to_double):
2430         (WTF::double_conversion::float_to_uint32):
2431         (WTF::double_conversion::uint32_to_float):
2432         (WTF::double_conversion::Double::Double):
2433         (WTF::double_conversion::Double::AsDiyFp const):
2434         (WTF::double_conversion::Double::AsNormalizedDiyFp const):
2435         (WTF::double_conversion::Double::AsUint64 const):
2436         (WTF::double_conversion::Double::NextDouble const):
2437         (WTF::double_conversion::Double::PreviousDouble const):
2438         (WTF::double_conversion::Double::Exponent const):
2439         (WTF::double_conversion::Double::Significand const):
2440         (WTF::double_conversion::Double::IsDenormal const):
2441         (WTF::double_conversion::Double::IsSpecial const):
2442         (WTF::double_conversion::Double::IsNan const):
2443         (WTF::double_conversion::Double::IsInfinite const):
2444         (WTF::double_conversion::Double::Sign const):
2445         (WTF::double_conversion::Double::UpperBoundary const):
2446         (WTF::double_conversion::Double::NormalizedBoundaries const):
2447         (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
2448         (WTF::double_conversion::Double::value const):
2449         (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
2450         (WTF::double_conversion::Double::Infinity):
2451         (WTF::double_conversion::Double::NaN):
2452         (WTF::double_conversion::Double::DiyFpToUint64):
2453         (WTF::double_conversion::Single::Single):
2454         (WTF::double_conversion::Single::AsDiyFp const):
2455         (WTF::double_conversion::Single::AsUint32 const):
2456         (WTF::double_conversion::Single::Exponent const):
2457         (WTF::double_conversion::Single::Significand const):
2458         (WTF::double_conversion::Single::IsDenormal const):
2459         (WTF::double_conversion::Single::IsSpecial const):
2460         (WTF::double_conversion::Single::IsNan const):
2461         (WTF::double_conversion::Single::IsInfinite const):
2462         (WTF::double_conversion::Single::Sign const):
2463         (WTF::double_conversion::Single::NormalizedBoundaries const):
2464         (WTF::double_conversion::Single::UpperBoundary const):
2465         (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
2466         (WTF::double_conversion::Single::value const):
2467         (WTF::double_conversion::Single::Infinity):
2468         (WTF::double_conversion::Single::NaN):
2469         * wtf/dtoa/strtod.cc:
2470         * wtf/dtoa/strtod.h:
2471         * wtf/dtoa/utils.h:
2472         (abort_noreturn):
2473         (WTF::double_conversion::Max):
2474         (WTF::double_conversion::Min):
2475         (WTF::double_conversion::StrLength):
2476         (WTF::double_conversion::BufferReference::BufferReference):
2477         (WTF::double_conversion::BufferReference::SubVector):
2478         (WTF::double_conversion::BufferReference::length const):
2479         (WTF::double_conversion::BufferReference::is_empty const):
2480         (WTF::double_conversion::BufferReference::start const):
2481         (WTF::double_conversion::BufferReference::operator[] const):
2482         (WTF::double_conversion::BufferReference::first):
2483         (WTF::double_conversion::BufferReference::last):
2484         (WTF::double_conversion::StringBuilder::StringBuilder):
2485         (WTF::double_conversion::StringBuilder::~StringBuilder):
2486         (WTF::double_conversion::StringBuilder::size const):
2487         (WTF::double_conversion::StringBuilder::position const):
2488         (WTF::double_conversion::StringBuilder::Reset):
2489         (WTF::double_conversion::StringBuilder::AddCharacter):
2490         (WTF::double_conversion::StringBuilder::AddString):
2491         (WTF::double_conversion::StringBuilder::AddSubstring):
2492         (WTF::double_conversion::StringBuilder::AddPadding):
2493         (WTF::double_conversion::StringBuilder::RemoveCharacters):
2494         (WTF::double_conversion::StringBuilder::Finalize):
2495         (WTF::double_conversion::StringBuilder::is_finalized const):
2496         (WTF::double_conversion::BitCast):
2497         (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
2498         (WTF::double_conversion::StringBuilder::SetPosition): Deleted.
2499
2500 2019-02-20  Darin Adler  <darin@apple.com>
2501
2502         Finish removing String::format
2503         https://bugs.webkit.org/show_bug.cgi?id=194893
2504
2505         Reviewed by Daniel Bates.
2506
2507         * wtf/Assertions.cpp:
2508         (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
2509         (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.
2510
2511         * wtf/HexNumber.h: Deleted unneeded toString function.
2512
2513         * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
2514         StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
2515         a bit. Use function templates for writeTo functions rather than having two of each.
2516         Removed unused toString functions. Optimized case where we use have a UChar* and
2517         a length of zero to not force the result to be 16-bit. Also gets rid of a small
2518         NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
2519         static member helper functions to compute string lengths. Added the pad function
2520         and the PaddingSpecification struct template, so we can add padding to anything
2521         we can turn into a string. Got rid of the special case overload for single
2522         arguments, since it only worked for things that the String constructor can handle.
2523         Instead we will now use StringTypeAdapter, which works for more types. Possibly
2524         less optimal for some special cases, which we could specialize for later if we like.
2525         * wtf/text/StringConcatenateNumbers.h: Ditto.
2526         * wtf/text/StringOperators.h: Ditto.
2527         * wtf/text/StringView.h: Ditto.
2528
2529         * wtf/text/WTFString.cpp:
2530         (WTF::createWithFormatAndArguments): Deleted.
2531         (WTF::String::format): Deleted.
2532         * wtf/text/WTFString.h: Deleted declaration of String::format.
2533
2534 2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>
2535
2536         Unreviewed, fix find/replace error from r232178
2537
2538         Looks like this was the only such error in that commit.
2539
2540         * wtf/URLHelpers.cpp:
2541         (WTF::URLHelpers::isLookalikeCharacter):
2542
2543 2019-02-23  Mark Lam  <mark.lam@apple.com>
2544
2545         Add an exception check and some assertions in StringPrototype.cpp.
2546         https://bugs.webkit.org/show_bug.cgi?id=194962
2547         <rdar://problem/48013416>
2548
2549         Reviewed by Yusuke Suzuki and Saam Barati.
2550
2551         Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
2552         for assertion purpose only on debug builds but sacrifices no performance on
2553         release builds.
2554
2555         * wtf/CheckedArithmetic.h:
2556         (WTF::AssertNoOverflow::overflowed):
2557         (WTF::AssertNoOverflow::clearOverflow):
2558         (WTF::AssertNoOverflow::crash):
2559         (WTF::AssertNoOverflow::hasOverflowed const):
2560         (WTF::observesOverflow):
2561         (WTF::observesOverflow<AssertNoOverflow>):
2562         (WTF::safeAdd):
2563         (WTF::safeSub):
2564         (WTF::safeMultiply):
2565         (WTF::Checked::operator+=):
2566         (WTF::Checked::operator-=):
2567         (WTF::Checked::operator*=):
2568         (WTF::operator+):
2569         (WTF::operator-):
2570         (WTF::operator*):
2571
2572 2019-02-23  Keith Miller  <keith_miller@apple.com>
2573
2574         Add new mac target numbers
2575         https://bugs.webkit.org/show_bug.cgi?id=194955
2576
2577         Reviewed by Tim Horton.
2578
2579         * Configurations/Base.xcconfig:
2580         * Configurations/DebugRelease.xcconfig:
2581
2582 2019-02-21  Antoine Quint  <graouts@apple.com>
2583
2584         Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
2585         https://bugs.webkit.org/show_bug.cgi?id=194531
2586         <rdar://problem/47714562>
2587
2588         Reviewed by Tim Horton.
2589
2590         Follow-up commit to ensure this SPI is only called on newer versions of iOS.
2591
2592         * wtf/Platform.h:
2593
2594 2019-02-21  Dean Jackson  <dino@apple.com>
2595
2596         Rotation animations sometimes use the wrong origin (affects apple.com)
2597         https://bugs.webkit.org/show_bug.cgi?id=194878
2598         <rdar://problem/43908047>
2599
2600         Follow-up commit to ensure this change only affects newer versions
2601         of iOS.
2602
2603         * wtf/Platform.h: Add a version check.
2604
2605 2019-02-20  Alex Christensen  <achristensen@webkit.org>
2606
2607         URL percent-encode operations should use checked arithmetic for buffer allocation length
2608         https://bugs.webkit.org/show_bug.cgi?id=194877
2609         <rdar://problem/48212062>
2610
2611         Reviewed by Tim Horton.
2612
2613         * wtf/URLHelpers.cpp:
2614         (WTF::URLHelpers::userVisibleURL):
2615         * wtf/cocoa/NSURLExtras.mm:
2616         (WTF::dataWithUserTypedString):
2617
2618 2019-02-20  Dean Jackson  <dino@apple.com>
2619
2620         Rotation animations sometimes use the wrong origin (affects apple.com)
2621         https://bugs.webkit.org/show_bug.cgi?id=194878
2622         <rdar://problem/43908047>
2623
2624         Reviewed by Simon Fraser.
2625
2626         * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).
2627
2628 2019-02-20  Andy Estes  <aestes@apple.com>
2629
2630         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
2631         https://bugs.webkit.org/show_bug.cgi?id=194869
2632
2633         Rubber-stamped by Jer Noble.
2634
2635         * WTF.xcodeproj/project.pbxproj:
2636
2637 2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>
2638
2639         [WPE][GTK] Enable support for CONTENT_EXTENSIONS
2640         https://bugs.webkit.org/show_bug.cgi?id=167941
2641
2642         Reviewed by Carlos Garcia Campos.
2643
2644         Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.
2645
2646         * wtf/glib/GRefPtr.cpp:
2647         (WTF::refGPtr): Added.
2648         (WTF::derefGPtr): Added.
2649         * wtf/glib/GRefPtr.h: Declare template specializations.
2650
2651 2019-02-19  Commit Queue  <commit-queue@webkit.org>
2652
2653         Unreviewed, rolling out r241770.
2654         https://bugs.webkit.org/show_bug.cgi?id=194833
2655
2656         Caused crashes (Requested by smfr on #webkit).
2657
2658         Reverted changeset:
2659
2660         "Code quality cleanup in NeverDestroyed"
2661         https://bugs.webkit.org/show_bug.cgi?id=194824
2662         https://trac.webkit.org/changeset/241770
2663
2664 2019-02-19  Keith Miller  <keith_miller@apple.com>
2665
2666         Code quality cleanup in NeverDestroyed
2667         https://bugs.webkit.org/show_bug.cgi?id=194824
2668
2669         Reviewed by Yusuke Suzuki.
2670
2671         First, move data members to the end of the class per WebKit
2672         style. Also, add forbid heap allocation since we expect the
2673         NeverDestroyed classes to be static.
2674
2675         * wtf/NeverDestroyed.h:
2676
2677 2019-02-16  Darin Adler  <darin@apple.com>
2678
2679         Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
2680         https://bugs.webkit.org/show_bug.cgi?id=194752
2681
2682         Reviewed by Daniel Bates.
2683
2684         * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
2685         * wtf/CMakeLists.txt: Ditto.
2686
2687         * wtf/HexNumber.cpp: Added.
2688         (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.
2689
2690         * wtf/HexNumber.h:
2691         (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
2692         appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
2693         use with StringTypeAdapter.
2694         (WTF::appendUnsignedAsHex): Ditto.
2695         (WTF::appendUnsignedAsHexFixedSize): Ditto.
2696         (WTF::hex): Added.
2697         (WTF::StringTypeAdapter<HexNumberBuffer>): Added.
2698
2699         * wtf/Logger.cpp: Added.
2700         (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
2701         function and moved it here so that we don't need to include HexNumber.h
2702         in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
2703         don't include it in any other headers.
2704
2705         * wtf/Logger.h:
2706         (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
2707         a non-template function, LogSiteIdentifier::toString.
2708
2709         * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
2710         with function templates and used StringImpl::copyCharacters instead of
2711         hand-written loops.
2712
2713 2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>
2714
2715         Web Inspector: Better categorize CPU usage per-thread / worker
2716         https://bugs.webkit.org/show_bug.cgi?id=194564
2717
2718         Reviewed by Devin Rousso.
2719
2720         * wtf/Threading.h:
2721         * wtf/Threading.cpp:
2722         (WTF::Thread::allThreadsMutex):
2723         (WTF::Thread::create):
2724         (WTF::Thread::didExit):
2725         Add a set of all WTF::Thread created threads.
2726
2727 2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>
2728
2729         Bytecode cache should a have a boot-specific validation
2730         https://bugs.webkit.org/show_bug.cgi?id=194769
2731         <rdar://problem/48149509>
2732
2733         Reviewed by Keith Miller.
2734
2735         Add helper to get kern.bootsessionuuid from sysctl
2736
2737         * wtf/UUID.cpp:
2738         (WTF::bootSessionUUIDString):
2739         * wtf/UUID.h:
2740
2741 2019-02-17  David Kilzer  <ddkilzer@apple.com>
2742
2743         Unreviewed, rolling out r241620.
2744
2745         "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
2746         (Requested by ddkilzer on #webkit.)
2747
2748         Reverted changeset:
2749
2750         "[WTF] Add environment variable helpers"
2751         https://bugs.webkit.org/show_bug.cgi?id=192405
2752         https://trac.webkit.org/changeset/241620
2753
2754 2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>
2755
2756         [WTF] Add environment variable helpers
2757         https://bugs.webkit.org/show_bug.cgi?id=192405
2758
2759         Reviewed by Michael Catanzaro.
2760
2761         Create a new Environment API as a platform-independent, thread-safe(r)
2762         way to get and set environment variables.
2763
2764         * WTF.xcodeproj/project.pbxproj:
2765         * wtf/CMakeLists.txt:
2766         * wtf/Environment.h: Added.
2767         * wtf/PlatformGTK.cmake:
2768         * wtf/PlatformJSCOnly.cmake:
2769         * wtf/PlatformMac.cmake:
2770         * wtf/PlatformPlayStation.cmake:
2771         * wtf/PlatformWPE.cmake:
2772         * wtf/PlatformWin.cmake:
2773         * wtf/posix/EnvironmentPOSIX.cpp: Added.
2774         * wtf/win/EnvironmentWin.cpp: Added.
2775         Introduce WTF::Environment.
2776
2777         * wtf/Threading.cpp:
2778         (WTF::threadingIsInitialized):
2779         (WTF::initializeThreading):
2780         * wtf/Threading.h:
2781         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
2782         false before setting an environment variable through the new API.
2783
2784         * wtf/DataLog.cpp:
2785         (WTF::initializeLogFileOnce):
2786         * wtf/NumberOfCores.cpp:
2787         (WTF::numberOfProcessorCores):
2788         * wtf/posix/FileSystemPOSIX.cpp:
2789         (WTF::FileSystemImpl::openTemporaryFile):
2790         Utilize WTF::Environment where possible.
2791
2792 2019-02-15  Brian Burg  <bburg@apple.com>
2793
2794         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
2795         https://bugs.webkit.org/show_bug.cgi?id=194411
2796         <rdar://problem/47787614>
2797
2798         Reviewed by Joseph Pecoraro.
2799
2800         * wtf/cocoa/SoftLinking.h:
2801         Remove macro that now has no uses.
2802
2803 2019-02-15  Commit Queue  <commit-queue@webkit.org>
2804
2805         Unreviewed, rolling out r241559 and r241566.
2806         https://bugs.webkit.org/show_bug.cgi?id=194710
2807
2808         Causes layout test crashes under GuardMalloc (Requested by
2809         ryanhaddad on #webkit).
2810
2811         Reverted changesets:
2812
2813         "[WTF] Add environment variable helpers"
2814         https://bugs.webkit.org/show_bug.cgi?id=192405
2815         https://trac.webkit.org/changeset/241559
2816
2817         "Unreviewed build fix for WinCairo Debug after r241559."
2818         https://trac.webkit.org/changeset/241566
2819
2820 2019-02-15  Truitt Savell  <tsavell@apple.com>
2821
2822         Unreviewed, rolling out r241564.
2823
2824         Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory
2825
2826         Reverted changeset:
2827
2828         "[Mac] WebInspectorUI.framework does not need to be soft-
2829         linked anymore"
2830         https://bugs.webkit.org/show_bug.cgi?id=194411
2831         https://trac.webkit.org/changeset/241564
2832
2833 2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>
2834
2835         Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
2836         https://bugs.webkit.org/show_bug.cgi?id=194014
2837
2838         Reviewed by Michael Catanzaro.
2839
2840         Do not block SIGUSR1 when installing signal handlers, since this signal
2841         is used to suspend/resume machine threads on Linux.
2842
2843         ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
2844         enabled watchdog and sampling.
2845
2846         Deadlock happened in the following situation:
2847
2848         Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
2849         and then tries to suspend the main thread.
2850
2851         Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
2852         a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
2853         SignalSender tries to lock codeBlockSet, but this is already locked by the
2854         SamplingProfiler.
2855
2856         The SamplingProfiler can only give up the lock when it suspends
2857         the thread. However since the VMTraps signal handler is active, all other signals blocked,
2858         therefore the SamplingProfiler also waits until its signal handler is invoked.
2859
2860         This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
2861         it is used to suspend/resume threads on Linux.
2862
2863         * wtf/Threading.h:
2864         * wtf/posix/ThreadingPOSIX.cpp:
2865         * wtf/threads/Signals.cpp:
2866         (WTF::installSignalHandler):
2867
2868 2019-02-15  Saam barati  <sbarati@apple.com>
2869
2870         [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
2871         https://bugs.webkit.org/show_bug.cgi?id=194036
2872
2873         Reviewed by Yusuke Suzuki.
2874
2875         * wtf/IndexMap.h:
2876         (WTF::IndexMap::at):
2877         (WTF::IndexMap::at const):
2878         (WTF::IndexMap::operator[]):
2879         (WTF::IndexMap::operator[] const):
2880
2881 2019-02-14  Brian Burg  <bburg@apple.com>
2882
2883         [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
2884         https://bugs.webkit.org/show_bug.cgi?id=194411
2885         <rdar://problem/47787614>
2886
2887         Reviewed by Joseph Pecoraro.
2888
2889         * wtf/cocoa/SoftLinking.h:
2890         Remove macro that now has no uses.
2891
2892 2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>
2893
2894         [WTF] Add environment variable helpers
2895         https://bugs.webkit.org/show_bug.cgi?id=192405
2896
2897         Reviewed by Michael Catanzaro.
2898
2899         Create a new Environment API as a platform-independent, thread-safe(r)
2900         way to get and set environment variables.
2901
2902         * WTF.xcodeproj/project.pbxproj:
2903         * wtf/CMakeLists.txt:
2904         * wtf/Environment.h: Added.
2905         * wtf/PlatformGTK.cmake:
2906         * wtf/PlatformJSCOnly.cmake:
2907         * wtf/PlatformMac.cmake:
2908         * wtf/PlatformPlayStation.cmake:
2909         * wtf/PlatformWPE.cmake:
2910         * wtf/PlatformWin.cmake:
2911         * wtf/posix/EnvironmentPOSIX.cpp: Added.
2912         * wtf/win/EnvironmentWin.cpp: Added.
2913         Introduce WTF::Environment.
2914
2915         * wtf/Threading.cpp:
2916         (WTF::threadingIsInitialized):
2917         (WTF::initializeThreading):
2918         * wtf/Threading.h:
2919         Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
2920         false before setting an environment variable through the new API.
2921
2922         * wtf/DataLog.cpp:
2923         (WTF::initializeLogFileOnce):
2924         * wtf/NumberOfCores.cpp:
2925         (WTF::numberOfProcessorCores):
2926         * wtf/posix/FileSystemPOSIX.cpp:
2927         (WTF::FileSystemImpl::openTemporaryFile):
2928         Utilize WTF::Environment where possible.
2929
2930 2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>
2931
2932         We should only make rope strings when concatenating strings long enough.
2933         https://bugs.webkit.org/show_bug.cgi?id=194465
2934
2935         Reviewed by Mark Lam.
2936
2937         * wtf/text/StringImpl.h:
2938         (WTF::StringImpl::headerSize):
2939
2940 2019-02-12  Tim Horton  <timothy_horton@apple.com>
2941
2942         Remove WKLegacyPDFView
2943         https://bugs.webkit.org/show_bug.cgi?id=194559
2944
2945         Reviewed by Andy Estes.
2946
2947         * wtf/FeatureDefines.h:
2948
2949 2019-02-12  David Kilzer  <ddkilzer@apple.com>
2950
2951         REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
2952         <https://webkit.org/b/194529>
2953         <rdar://problem/47924449>
2954
2955         Reviewed by Eric Carlson.
2956
2957         * wtf/cocoa/SoftLinking.h:
2958         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
2959         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
2960         and change `assertion` argument to `isOptional`.  Pass
2961         `isOptional` to framework##Library() method to control assertion
2962         behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
2963         that code should be optimized out by the compiler.  This fixes
2964         the crash.
2965         (NO_ASSERT): Remove macro since it's no longer used.
2966         (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
2967         optional classes.
2968         (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
2969         non-optional classes.
2970         (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
2971         SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
2972         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
2973         (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
2974         (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.
2975
2976 2019-02-12  Andy Estes  <aestes@apple.com>
2977
2978         [iOSMac] Enable Parental Controls Content Filtering
2979         https://bugs.webkit.org/show_bug.cgi?id=194521
2980         <rdar://39732376>
2981
2982         Reviewed by Tim Horton.
2983
2984         * wtf/Platform.h:
2985
2986 2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
2987
2988         [Cocoa] Ask platform for generic font family mappings
2989         https://bugs.webkit.org/show_bug.cgi?id=187723
2990         <rdar://problem/41892438>
2991
2992         Reviewed by Brent Fulgham.
2993
2994         Add an ENABLE in Platform.
2995
2996         * wtf/Platform.h:
2997
2998 2019-02-11  Truitt Savell  <tsavell@apple.com>
2999
3000         Unreviewed, rolling out r241229.
3001
3002         Revision broke internal builds for watchOS.
3003
3004         Reverted changeset:
3005
3006         "[Cocoa] Ask platform for generic font family mappings"
3007         https://bugs.webkit.org/show_bug.cgi?id=187723
3008         https://trac.webkit.org/changeset/241229
3009
3010 2019-02-10  Darin Adler  <darin@apple.com>
3011
3012         Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
3013         https://bugs.webkit.org/show_bug.cgi?id=194485
3014
3015         Reviewed by Daniel Bates.
3016
3017         * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
3018         placeByteAsHex. Can always bring them back if someone needs them. Updated
3019         appendUnsignedAsHex to be a template so we can use it on any integer type,
3020         got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
3021         appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
3022         Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.
3023
3024         * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.
3025
3026         * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.
3027
3028         * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
3029         worked around in NSURLExtras.mm.
3030         * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
3031         and Foundation.h.
3032
3033 2019-02-09  Darin Adler  <darin@apple.com>
3034
3035         Eliminate unnecessary String temporaries by using StringConcatenateNumbers
3036         https://bugs.webkit.org/show_bug.cgi?id=194021
3037
3038         Reviewed by Geoffrey Garen.
3039
3040         * wtf/URL.cpp:
3041         (WTF::URL::setPort): Remove String::number and let makeString do the conversion
3042         without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
3043         ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
3044         and sometimes used for UTF-16 code units (UChar) and can be the same type.
3045
3046         * wtf/text/StringConcatenateNumbers.h:
3047         Changed FormattedNumber::fixedPrecision to more closely match String::number and
3048         StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
3049         a named enumeration for the truncation policy rather than a boolean.
3050
3051
3052 2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>
3053
3054         Unreviewed, rolling in r241237 again
3055         https://bugs.webkit.org/show_bug.cgi?id=194469
3056
3057         After the measurement, this patch was unrelated to recent regression.
3058
3059         * wtf/text/StringImpl.h:
3060         (WTF::StringImpl::isSubString const):
3061         (WTF::StringImpl::createSubstringSharingImpl):
3062
3063 2019-02-09  Commit Queue  <commit-queue@webkit.org>
3064
3065         Unreviewed, rolling out r241237.
3066         https://bugs.webkit.org/show_bug.cgi?id=194474
3067
3068         Shows significant memory increase in WSL (Requested by
3069         yusukesuzuki on #webkit).
3070
3071         Reverted changeset:
3072
3073         "[WTF] Use BufferInternal StringImpl if substring StringImpl
3074         takes more memory"
3075         https://bugs.webkit.org/show_bug.cgi?id=194469
3076         https://trac.webkit.org/changeset/241237
3077
3078 2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>
3079
3080         [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
3081         https://bugs.webkit.org/show_bug.cgi?id=194469
3082
3083         Reviewed by Geoffrey Garen.
3084
3085         Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
3086         implementation takes more memory than BufferInternal StringImpl implementation for small strings.
3087         And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
3088         large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.
3089
3090         * wtf/text/StringImpl.h:
3091         (WTF::StringImpl::isSubString const):
3092         (WTF::StringImpl::createSubstringSharingImpl):
3093
3094 2019-02-08  Alex Christensen  <achristensen@webkit.org>
3095
3096         Add SPI to use networking daemon instead of XPC service
3097         https://bugs.webkit.org/show_bug.cgi?id=194427
3098
3099         Reviewed by Geoffrey Garen.
3100
3101         * wtf/spi/darwin/XPCSPI.h:
3102         Instead of using XPC bootstrap SPI, we just send a separate message.
3103         xpc_copy_bootstrap does not seem to work in  daemons.
3104
3105 2019-02-08  Truitt Savell  <tsavell@apple.com>
3106
3107         Unreviewed, rolling out r241197.
3108
3109         Broke iOS Simulator Debug build and casued 1 API failure on
3110         High Sierra
3111
3112         Reverted changeset:
3113
3114         "Add SPI to use networking daemon instead of XPC service"
3115         https://bugs.webkit.org/show_bug.cgi?id=194427
3116         https://trac.webkit.org/changeset/241197
3117
3118 2019-02-08  Alex Christensen  <achristensen@webkit.org>
3119
3120         Add SPI to use networking daemon instead of XPC service
3121         https://bugs.webkit.org/show_bug.cgi?id=194427
3122
3123         Reviewed by Geoffrey Garen.
3124
3125         * wtf/spi/darwin/XPCSPI.h:
3126         Instead of using XPC bootstrap SPI, we just send a separate message.
3127         xpc_copy_bootstrap does not seem to work in  daemons.
3128
3129 2019-02-08  Benjamin Poulain  <benjamin@webkit.org>
3130
3131         clampTo(): do not convert the input to double when dealing with integers
3132         https://bugs.webkit.org/show_bug.cgi?id=194263
3133         <rdar://problem/47692312>
3134
3135         Reviewed by Darin Adler.
3136
3137         Previously, every use of clampTo() was converting the input to double,
3138         doing the comparison in double, then casting back to whatever type was needed.
3139
3140         In many case, that was very wasteful. WebKit has many cases of clampTo() with
3141         the same type as input/output, or with integer types of different size/sign.
3142
3143         This patch adds a few versions of clampTo() for the common cases seen in WebKit.
3144         In each case, I tried to minimize the amount of conversion needed at runtime.
3145
3146         * wtf/MathExtras.h:
3147         (clampTo):
3148
3149 2019-02-07  Chris Dumez  <cdumez@apple.com>
3150
3151         Mark more heap-allocated classes as fast allocated
3152         https://bugs.webkit.org/show_bug.cgi?id=194422
3153
3154         Reviewed by Ryosuke Niwa.
3155
3156         * wtf/Function.h:
3157         (WTF::Function<Out):
3158         * wtf/RefCounter.h:
3159         * wtf/URL.h:
3160         * wtf/text/StringView.cpp:
3161
3162 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
3163
3164         [macOS] Block coreservicesd in sandbox.
3165         https://bugs.webkit.org/show_bug.cgi?id=192670
3166
3167         Reviewed by Alexey Proskuryakov.
3168
3169         Add HAVE_CSCHECKFIXDISABLE define.
3170
3171         * wtf/Platform.h:
3172
3173 2019-02-07  Eric Carlson  <eric.carlson@apple.com>
3174
3175         [MSE] Convert debug-only logging to runtime logging
3176         https://bugs.webkit.org/show_bug.cgi?id=194348
3177         <rdar://problem/47566449>
3178
3179         Reviewed by Jer Noble.
3180
3181         * wtf/LoggerHelper.h:
3182         (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
3183         object that is associated with another logging object.
3184         * wtf/MediaTime.cpp:
3185         (WTF::MediaTime::toJSONObject const):
3186         (WTF::MediaTime::toJSONString const):
3187         (WTF::MediaTimeRange::toJSONString const):
3188         (WTF::toJSONStringInternal): Deleted.
3189         * wtf/MediaTime.h:
3190
3191 2019-02-05  Keith Rollin  <krollin@apple.com>
3192
3193         Enable the automatic checking and regenerations of .xcfilelists during builds
3194         https://bugs.webkit.org/show_bug.cgi?id=194124
3195         <rdar://problem/47721277>
3196
3197         Reviewed by Tim Horton.
3198
3199         Bug 193790 add a facility for checking -- during build time -- that
3200         any needed .xcfilelist files are up-to-date and for updating them if
3201         they are not. This facility was initially opt-in by setting
3202         WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
3203         the process seemed robust. Its now time to enable this facility and
3204         make it opt-out. If there is a need to disable this facility, set and
3205         export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
3206         running `make` or `build-webkit`, or before running Xcode from the
3207         command line.
3208
3209         Additionally, remove the step that generates a list of source files
3210         going into the UnifiedSources build step. It's only necessarily to
3211         specify Sources.txt and SourcesCocoa.txt as inputs.
3212
3213         * Scripts/generate-unified-source-bundles.rb:
3214
3215 2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>
3216
3217         [JSC] Shrink sizeof(UnlinkedCodeBlock)
3218         https://bugs.webkit.org/show_bug.cgi?id=194281
3219
3220         Reviewed by Michael Saboff.
3221
3222         * wtf/TriState.h:
3223
3224 2019-02-05  Zan Dobersek  <zdobersek@igalia.com>
3225
3226         [GLib] Stop URI-escaping file system representations
3227         https://bugs.webkit.org/show_bug.cgi?id=194213
3228
3229         Reviewed by Carlos Garcia Campos.
3230
3231         Stop URI-escaping of file representation strings in
3232         FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
3233         of strings in FileSystem::fileSystemRepresentation().
3234
3235         This behavior deviates from POSIX and CF implementations and is
3236         currently breaking IndexedDB-specific calculation of database sizes due
3237         to directory components used in that process that are URL-based and are
3238         as such URI-escaped. When unescaped, those single directory components
3239         explode into multiple directory components, leading to incorrect total
3240         database size calculation when iterating the database directory.
3241
3242         FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
3243         filename charsets and in worst case converts the filesystem
3244         representation to UTF-8 before String::fromUTF8() is used.
3245         FileSystem::fileSystemRepresentation() reverses that process, taking
3246         String's UTF-8 data and converting it to target charset if necessary.
3247
3248         Other FileSystem functions are adjusted to convert passed-in String
3249         objects to filesystem representations.
3250
3251         * wtf/glib/FileSystemGlib.cpp:
3252         (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
3253         (WTF::FileSystemImpl::fileSystemRepresentation):
3254         (WTF::FileSystemImpl::validRepresentation):
3255         (WTF::FileSystemImpl::filenameForDisplay):
3256         (WTF::FileSystemImpl::fileExists):
3257         (WTF::FileSystemImpl::deleteFile):
3258         (WTF::FileSystemImpl::deleteEmptyDirectory):
3259         (WTF::FileSystemImpl::getFileStat):
3260         (WTF::FileSystemImpl::getFileLStat):
3261         (WTF::FileSystemImpl::makeAllDirectories):
3262         (WTF::FileSystemImpl::createSymbolicLink):
3263         (WTF::FileSystemImpl::pathGetFileName):
3264         (WTF::FileSystemImpl::getVolumeFreeSpace):
3265         (WTF::FileSystemImpl::directoryName):
3266         (WTF::FileSystemImpl::listDirectory):
3267         (WTF::FileSystemImpl::openFile):
3268         (WTF::FileSystemImpl::moveFile):
3269         (WTF::FileSystemImpl::hardLinkOrCopyFile):
3270         (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
3271         and treat input CString as an existing filesystem representation.
3272         (WTF::FileSystemImpl::unescapedFilename): Deleted.
3273
3274 2019-02-04  Ms2ger  <Ms2ger@igalia.com>
3275
3276         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
3277         https://bugs.webkit.org/show_bug.cgi?id=174816
3278
3279         Reviewed by Michael Catanzaro.
3280
3281         Translate userVisibleString and dependent code into platform-neutral C++
3282         in wtf/URLHelpers.{h,cpp}.
3283
3284         * WTF.xcodeproj/project.pbxproj:
3285         * wtf/CMakeLists.txt:
3286         * wtf/URLHelpers.cpp: Added.
3287         (WTF::URLHelpers::loadIDNScriptWhiteList):
3288         (WTF::URLHelpers::isArmenianLookalikeCharacter):
3289         (WTF::URLHelpers::isArmenianScriptCharacter):
3290         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
3291         (WTF::URLHelpers::isLookalikeCharacter):
3292         (WTF::URLHelpers::whiteListIDNScript):
3293         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
3294         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
3295         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
3296         (WTF::URLHelpers::isRussianDomainNameCharacter):
3297         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
3298         (WTF::URLHelpers::mapHostName):
3299         (WTF::URLHelpers::collectRangesThatNeedMapping):
3300         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
3301         (WTF::URLHelpers::applyHostNameFunctionToURLString):
3302         (WTF::URLHelpers::mapHostNames):
3303         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
3304         (WTF::URLHelpers::toNormalizationFormC):
3305         (WTF::URLHelpers::userVisibleURL):
3306         * wtf/URLHelpers.h: Added.
3307         * wtf/cocoa/NSURLExtras.mm:
3308         (WTF::URLHelpers::loadIDNScriptWhiteList):
3309         (WTF::decodePercentEscapes):
3310         (WTF::decodeHostName):
3311         (WTF::encodeHostName):
3312         (WTF::URLWithUserTypedString):
3313         (WTF::userVisibleString):
3314
3315 2019-02-03  Commit Queue  <commit-queue@webkit.org>
3316
3317         Unreviewed, rolling out r240896.
3318         https://bugs.webkit.org/show_bug.cgi?id=194202
3319
3320         "Fixes leaks, but is probably not the correct fix." (Requested
3321         by ddkilzer on #webkit).
3322
3323         Reverted changeset:
3324
3325         "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
3326         (48 bytes) in com.apple.WebKit.WebContent running layout
3327         tests"
3328         https://bugs.webkit.org/show_bug.cgi?id=193291
3329         https://trac.webkit.org/changeset/240896
3330
3331 2019-02-02  David Kilzer  <ddkilzer@apple.com>
3332
3333         Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
3334         <https://webkit.org/b/193291>
3335         <rdar://problem/46655953>
3336
3337         Reviewed by Keith Miller.
3338
3339         * wtf/text/SymbolImpl.h:
3340         (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
3341         class destructor that calls StringImpl::deref() on `m_owner`.
3342         Two of the three constructors leak the StringImpl when setting
3343         `m_owner`, so we need to balance that by manually calling
3344         deref().
3345
3346 2018-12-16  Darin Adler  <darin@apple.com>
3347
3348         Convert additional String::format clients to alternative approaches
3349         https://bugs.webkit.org/show_bug.cgi?id=192746
3350
3351         Reviewed by Alexey Proskuryakov.
3352
3353         * wtf/JSONValues.cpp:
3354         (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
3355         escapeChar and reordered arguments to make sense as an append function.
3356         (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
3357         reordered arguments to make sense as an append function, take a
3358         StringView instead of a String, used early exit to make the code
3359         a bit easier to read. Use the ASCIIHexDigit functions to construct
3360         a hex number a nibble at a time rather than using String::format.
3361         (WTF::JSONImpl::Value::writeJSON const): Update for name change.
3362         (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.
3363
3364 2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>
3365
3366         Unreviewed. Fix WPE compile warnings due to deprecated glib API.
3367
3368         * wtf/Platform.h:
3369
3370 2019-01-29  Chris Dumez  <cdumez@apple.com>
3371
3372         Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
3373         https://bugs.webkit.org/show_bug.cgi?id=193848
3374
3375         Reviewed by Youenn Fablet.
3376
3377         Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
3378         duplicated at each call site. This has caused some hard-to-debug issues with duplicate
3379         identifiers such as Bug 193761.
3380
3381         Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
3382         when they have a typedef for the ObjectIdentifier<T> type.
3383
3384         * WTF.xcodeproj/project.pbxproj:
3385         * wtf/CMakeLists.txt:
3386         * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
3387         (WTF::ObjectIdentifierBase::generateIdentifierInternal):
3388         (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
3389         * wtf/ObjectIdentifier.h:
3390         (WTF::ObjectIdentifier::generate):
3391         (WTF::ObjectIdentifier::generateThreadSafe):
3392
3393 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
3394
3395         Move platform-specific files out of WTF root directory.
3396         https://bugs.webkit.org/show_bug.cgi?id=193929
3397
3398         Reviewed by Alex Christensen.
3399
3400         * WTF.xcodeproj/project.pbxproj:
3401         * wtf/CMakeLists.txt:
3402         * wtf/PlatformGTK.cmake:
3403         * wtf/PlatformJSCOnly.cmake:
3404         * wtf/PlatformMac.cmake:
3405         * wtf/PlatformPlayStation.cmake:
3406         * wtf/PlatformWPE.cmake:
3407         * wtf/PlatformWin.cmake:
3408         * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
3409         * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
3410         * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
3411         * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
3412         * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
3413         * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
3414         * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
3415         * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
3416         * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.
3417
3418 2019-01-28  Andy Estes  <aestes@apple.com>
3419
3420         [watchOS] Enable Parental Controls content filtering
3421         https://bugs.webkit.org/show_bug.cgi?id=193939
3422         <rdar://problem/46641912>
3423
3424         Reviewed by Ryosuke Niwa.
3425
3426         * wtf/Platform.h:
3427
3428 2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
3429
3430         [JSCOnly][WTF] Expose FileSystem.
3431         https://bugs.webkit.org/show_bug.cgi?id=193789
3432
3433         Reviewed by Don Olmstead.
3434
3435         * wtf/FileSystem.h:
3436         * wtf/PlatformJSCOnly.cmake:
3437         * wtf/posix/FileSystemPOSIX.cpp:
3438         (WTF::FileSystemImpl::getVolumeFreeSpace):
3439         * wtf/win/FileSystemWin.cpp:
3440         (WTF::FileSystemImpl::fileSystemRepresentation):
3441
3442 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
3443
3444         AVStreamSession isn't always available, make a HAVE compile flag for it
3445         https://bugs.webkit.org/show_bug.cgi?id=193889
3446         <rdar://problem/47452863>
3447
3448         Reviewed by Jer Noble.
3449
3450         * wtf/FeatureDefines.h:
3451
3452 2018-12-15  Darin Adler  <darin@apple.com>
3453
3454         Replace many uses of String::format with more type-safe alternatives
3455         https://bugs.webkit.org/show_bug.cgi?id=192742
3456
3457         Reviewed by Mark Lam.
3458
3459         * wtf/WorkQueue.cpp:
3460         (WTF::WorkQueue::concurrentApply): Use makeString.
3461
3462         * wtf/dtoa.cpp:
3463         (WTF::dtoa): Use sprintf instead of String::format in the comments,
3464         since these functions have nothing to do with WTF::String.
3465
3466 2019-01-25  Chris Dumez  <cdumez@apple.com>
3467
3468         [iOS] Add support for the download attribute
3469         https://bugs.webkit.org/show_bug.cgi?id=167341
3470         <rdar://problem/30296281>
3471
3472         Reviewed by Geoffrey Garen.
3473
3474         Turn on HTML download attribute support on iOS.
3475
3476         * wtf/FeatureDefines.h:
3477
3478 2019-01-25  David Kilzer  <ddkilzer@apple.com>
3479
3480         Move soft-linking of Lookup.framework out of LookupSPI.h
3481         <https://webkit.org/b/193815>
3482
3483         Reviewed by Tim Horton.
3484
3485         * wtf/cocoa/SoftLinking.h:
3486         (SOFT_LINK_CONSTANT_FOR_HEADER):
3487         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
3488         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
3489         - Remove local declaration of constant.  This should be handled
3490           by including *SPI.h or "real" headers.
3491         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
3492         - Remove local declaration of constant.
3493         - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
3494           `export` argument to support exporting of functions.
3495         (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
3496         - Redefine in terms of
3497           SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().
3498
3499 2019-01-24  Youenn Fablet  <youenn@apple.com>
3500
3501         Use MonotonicTime in WorkerRunLoop
3502         https://bugs.webkit.org/show_bug.cgi?id=193417
3503
3504         Reviewed by Saam Barati.
3505
3506         * wtf/MessageQueue.h:
3507         (WTF::MessageQueue<DataType>::waitForMessage):
3508         (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
3509
3510 2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>
3511
3512         Move FileSystem to WTF
3513         https://bugs.webkit.org/show_bug.cgi?id=193602
3514
3515         Reviewed by Yusuke Suzuki.
3516
3517         * WTF.xcodeproj/project.pbxproj:
3518         * wtf/CMakeLists.txt:
3519         * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
3520         * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
3521         * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
3522         * wtf/PlatformGTK.cmake:
3523         * wtf/PlatformMac.cmake:
3524         * wtf/PlatformPlayStation.cmake:
3525         * wtf/PlatformWPE.cmake:
3526         * wtf/PlatformWin.cmake:
3527         * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
3528         * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
3529         * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
3530         * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
3531         * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
3532         * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
3533         * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
3534         * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
3535         * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.
3536
3537 2019-01-24  Guillaume Emont  <guijemont@igalia.com>
3538
3539         [JSC] Reenable baseline JIT on mips
3540         https://bugs.webkit.org/show_bug.cgi?id=192983
3541
3542         Reviewed by Mark Lam.
3543
3544         Use baseline JIT by default on MIPS.
3545
3546         * wtf/Platform.h:
3547
3548 2019-01-24  David Kilzer  <ddkilzer@apple.com>
3549
3550         Duplicate global variables: WTF::asciiCaseFoldTable
3551         <https://webkit.org/b/193726>
3552         <rdar://problem/47334622>
3553
3554         Reviewed by Michael Catanzaro.
3555
3556         * WTF.xcodeproj/project.pbxproj:
3557         * wtf/CMakeLists.txt:
3558         - Add ASCIICType.cpp to build systems.
3559
3560         * wtf/ASCIICType.cpp: Added.
3561         (WTF::asciiCaseFoldTable): Move table to here so there is only
3562         one copy.  Mark as exported for other frameworks to use.
3563         * wtf/ASCIICType.h:
3564         (WTF::asciiCaseFoldTable): Change to extern declaration, and
3565         mark as exported for other frameworks to use.
3566
3567 2019-01-23  Mark Lam  <mark.lam@apple.com>
3568
3569         ARM64E should not ENABLE(SEPARATED_WX_HEAP).
3570         https://bugs.webkit.org/show_bug.cgi?id=193744
3571         <rdar://problem/46262952>
3572
3573         Reviewed by Saam Barati.
3574
3575         * wtf/Platform.h:
3576
3577 2019-01-23  David Kilzer  <ddkilzer@apple.com>
3578
3579         Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
3580         <https://webkit.org/b/193694>
3581         <rdar://problem/47464025>
3582
3583         Reviewed by Tim Horton.
3584
3585         * wtf/win/SoftLinking.h:
3586         (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
3587         - Implement for Windows.
3588         (SOFT_LINK_CONSTANT_FOR_SOURCE):
3589         - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().
3590
3591 2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>
3592
3593         Cache bytecode to disk
3594         https://bugs.webkit.org/show_bug.cgi?id=192782
3595         <rdar://problem/46084932>
3596
3597         Reviewed by Keith Miller.
3598
3599         BitVectors have to be friends with JSC::CacheBitVector to allow
3600         serializing its buffer as part of the bytecode cache encoding.
3601
3602         * wtf/BitVector.h:
3603
3604 2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>
3605
3606         [GTK] Speculative build fix for Ubuntu LTS
3607         https://bugs.webkit.org/show_bug.cgi?id=193651
3608
3609         Unreviewed build fix.
3610
3611         * wtf/Assertions.h: Add missing <cstdlib> include.
3612
3613 2019-01-20  Saam Barati  <sbarati@apple.com>
3614
3615         Rollout r240210: It broke tests on iOS
3616         https://bugs.webkit.org/show_bug.cgi?id=193640
3617
3618         Unreviewed.
3619
3620         * wtf/BitVector.h:
3621
3622 2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>
3623
3624         Cache bytecode to disk
3625         https://bugs.webkit.org/show_bug.cgi?id=192782
3626         <rdar://problem/46084932>
3627
3628         Reviewed by Keith Miller.
3629
3630         BitVectors have to be friends with JSC::CacheBitVector to allow
3631         serializing its buffer as part of the bytecode cache encoding.
3632
3633         * wtf/BitVector.h:
3634
3635 2019-01-18  Tim Horton  <timothy_horton@apple.com>
3636
3637         Get rid of ADVANCED_SPELL_CHECKING
3638         https://bugs.webkit.org/show_bug.cgi?id=193592
3639
3640         Reviewed by Wenson Hsieh.
3641
3642         * wtf/Platform.h:
3643
3644 2019-01-18  Jer Noble  <jer.noble@apple.com>
3645
3646         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
3647         https://bugs.webkit.org/show_bug.cgi?id=189553
3648
3649         Reviewed by Tim Horton.
3650
3651         * Configurations/Base.xcconfig:
3652         * Configurations/SDKVariant.xcconfig: Added.
3653
3654 2019-01-18  Keith Miller  <keith_miller@apple.com>
3655
3656         Gigacages should start allocations from a slide
3657         https://bugs.webkit.org/show_bug.cgi?id=193523
3658
3659         Reviewed by Mark Lam.
3660
3661         This patch changes some macros into constants since macros are the
3662         devil.
3663
3664         * wtf/Gigacage.cpp:
3665         * wtf/Gigacage.h:
3666
3667 2019-01-18  Matt Lewis  <jlewis3@apple.com>
3668
3669         Unreviewed, rolling out r240160.
3670
3671         This broke multiple internal builds.
3672
3673         Reverted changeset:
3674
3675         "Gigacages should start allocations from a slide"
3676         https://bugs.webkit.org/show_bug.cgi?id=193523
3677         https://trac.webkit.org/changeset/240160
3678
3679 2019-01-18  Keith Miller  <keith_miller@apple.com>
3680
3681         Gigacages should start allocations from a slide
3682         https://bugs.webkit.org/show_bug.cgi?id=193523
3683
3684         Reviewed by Mark Lam.
3685
3686         This patch changes some macros into constants since macros are the
3687         devil.
3688
3689         * wtf/Gigacage.cpp:
3690         * wtf/Gigacage.h:
3691
3692 2019-01-17  Truitt Savell  <tsavell@apple.com>
3693
3694         Unreviewed, rolling out r240124.
3695
3696         This commit broke an internal build.
3697
3698         Reverted changeset:
3699
3700         "SDK_VARIANT build destinations should be separate from non-
3701         SDK_VARIANT builds"
3702         https://bugs.webkit.org/show_bug.cgi?id=189553
3703         https://trac.webkit.org/changeset/240124
3704
3705 2019-01-17  Jer Noble  <jer.noble@apple.com>
3706
3707         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
3708         https://bugs.webkit.org/show_bug.cgi?id=189553
3709
3710         Reviewed by Tim Horton.
3711
3712         * Configurations/Base.xcconfig:
3713         * Configurations/SDKVariant.xcconfig: Added.
3714
3715 2019-01-16  Keith Miller  <keith_miller@apple.com>
3716
3717         bmalloc should use JSC VM tag for gigacage
3718         https://bugs.webkit.org/show_bug.cgi?id=193496
3719
3720         Reviewed by Mark Lam.
3721
3722         Move most of the macros for vm tagging to bmalloc.
3723
3724         * wtf/VMTags.h:
3725
3726 2019-01-16  Alberto Garcia  <berto@igalia.com>
3727
3728         [WTF] Compilation fails with system malloc
3729         https://bugs.webkit.org/show_bug.cgi?id=172445
3730
3731         Reviewed by Michael Catanzaro.
3732
3733         Follow-up to r217270. The sysinfo() system call is specific to
3734         Linux so update the #ifdef checks accordingly.
3735
3736         * wtf/RAMSize.cpp:
3737         (WTF::computeRAMSize):
3738
3739 2019-01-15  Chris Dumez  <cdumez@apple.com>
3740
3741         Unreviewed, revert part of r239997 as it is not needed to fix the build.
3742
3743         * wtf/RefCounter.h:
3744
3745 2019-01-15  Alex Christensen  <achristensen@webkit.org>
3746
3747         Fix iOS build after r239993
3748         https://bugs.webkit.org/show_bug.cgi?id=193361
3749
3750         * wtf/RefCounter.h:
3751
3752 2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>
3753
3754         Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
3755         https://bugs.webkit.org/show_bug.cgi?id=192945
3756
3757         Reviewed by Alex Christensen.
3758
3759         Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
3760         API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
3761         course this is much worse than the preexisting code, but this is just a transitional
3762         measure and not the final state of the code. It wouldn't make sense to do this if the code
3763         were to remain Objective C++.
3764
3765         * wtf/cocoa/NSURLExtras.mm:
3766         (WTF::toNormalizationFormC):
3767         (WTF::userVisibleString):
3768
3769 2019-01-14  Alex Christensen  <achristensen@webkit.org>
3770
3771         Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
3772         https://bugs.webkit.org/show_bug.cgi?id=193411
3773         <rdar://problem/47215929>
3774
3775         Reviewed by Alexey Proskuryakov.
3776
3777         * wtf/cocoa/NSURLExtras.mm:
3778         (WTF::allCharactersAllowedByTLDRules):
3779
3780 2019-01-12  Timothy Hatcher  <timothy@apple.com>
3781
3782         Have prefers-color-scheme: light always match on macOS versions before Mojave.
3783         https://bugs.webkit.org/show_bug.cgi?id=191655
3784         rdar://problem/46074680
3785
3786         Reviewed by Megan Gardner.
3787
3788         * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
3789
3790 2019-01-11  David Kilzer  <ddkilzer@apple.com>
3791
3792         Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
3793         https://bugs.webkit.org/show_bug.cgi?id=191350
3794
3795         * wtf/WorkQueue.cpp:
3796         (WTF::WorkQueue::concurrentApply): Fix whitespace.
3797
3798 2019-01-11  Devin Rousso  <drousso@apple.com>
3799
3800         Fix style CFNetworkSPI style checker warnings from r239698
3801         https://bugs.webkit.org/show_bug.cgi?id=193369
3802
3803         Reviewed by Joseph Pecoraro.
3804
3805         * wtf/Platform.h:
3806
3807 2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
3808
3809         WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
3810         https://bugs.webkit.org/show_bug.cgi?id=191350
3811
3812         Reviewed by Brent Fulgham.
3813
3814         The non COCOA version of WorkQueue::concurrentApply() creates a temporary
3815         String for the threadName and passes the raw pointer of this String to
3816         Thread::create(). After freeing this String, Thread::entryPoint() uses
3817         the raw char pointer to internally initialize the thread.
3818
3819         The fix is to use a single literal string for all the threads' names since
3820         they are created for a thread-pool.
3821
3822         * wtf/WorkQueue.cpp:
3823         (WTF::WorkQueue::concurrentApply):
3824
3825 2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>
3826
3827         Enable DFG on ARM/Linux again
3828         https://bugs.webkit.org/show_bug.cgi?id=192496
3829
3830         Reviewed by Yusuke Suzuki.
3831
3832         After changing the bytecode format DFG was disabled on all 32-bit
3833         architectures. Enable DFG now again on ARM/Linux.
3834
3835         * wtf/Platform.h:
3836
3837 2019-01-10  Commit Queue  <commit-queue@webkit.org>
3838
3839         Unreviewed, rolling out r239825.
3840         https://bugs.webkit.org/show_bug.cgi?id=193330
3841
3842         Broke tests on armv7/linux bots (Requested by guijemont on
3843         #webkit).
3844
3845         Reverted changeset:
3846
3847         "Enable DFG on ARM/Linux again"
3848         https://bugs.webkit.org/show_bug.cgi?id=192496
3849         https://trac.webkit.org/changeset/239825
3850
3851 2019-01-10  John Wilander  <wilander@apple.com>
3852
3853         Override the session configuration for cookieAcceptPolicy
3854         https://bugs.webkit.org/show_bug.cgi?id=190925
3855         <rdar://problem/45497382>
3856
3857         Reviewed by Alexey Proskuryakov and Alex Christensen.
3858
3859         * wtf/Platform.h:
3860             Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.
3861
3862 2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>
3863
3864         Enable DFG on ARM/Linux again
3865         https://bugs.webkit.org/show_bug.cgi?id=192496
3866
3867         Reviewed by Yusuke Suzuki.
3868
3869         After changing the bytecode format DFG was disabled on all 32-bit
3870         architectures. Enable DFG now again on ARM/Linux.
3871
3872         * wtf/Platform.h:
3873
3874 2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>
3875
3876         [FreeType] Color emoji not properly supported
3877         https://bugs.webkit.org/show_bug.cgi?id=191976
3878
3879         Reviewed by Michael Catanzaro.
3880
3881         Add a name for combining enclosing keycap character.
3882
3883         * wtf/unicode/CharacterNames.h:
3884
3885 2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>
3886
3887         Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
3888         https://bugs.webkit.org/show_bug.cgi?id=192391
3889
3890         Reviewed by Don Olmstead.
3891
3892         Unified Source Builds are using global sequential numbers for
3893         bundle filenames UnifiedSource{sequential-number}.cpp. As the
3894         result, every new source file added would shift the next ones and
3895         prevent compiler caches from speeding up consecutive builds e.g.
3896         in git-bisect sessions.
3897
3898         Changed it to directory local sequential numbers,
3899         UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.
3900
3901         This is affecting only CMake builds which is where no
3902         '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
3903         are set. Xcode builds still use the old convention.
3904
3905         * Scripts/generate-unified-source-bundles.rb: Add new instance
3906         variables @currentDirectory and @extraFiles to BundleManager.
3907         Still use global sequential numbers if --max-cpp-bundle-count or
3908         --max-obj-c-bundle-count is given.
3909
3910 2019-01-09  Alex Christensen  <achristensen@webkit.org>
3911
3912         Expand use of sourceApplicationAuditData
3913         https://bugs.webkit.org/show_bug.cgi?id=192995
3914         <rdar://problem/46627875>
3915
3916         Reviewed by Brady Eidson.
3917
3918         * wtf/Platform.h:
3919
3920 2019-01-09  Mark Lam  <mark.lam@apple.com>
3921
3922         Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
3923         https://bugs.webkit.org/show_bug.cgi?id=193292
3924         <rdar://problem/46485450>
3925
3926         Reviewed by Yusuke Suzuki.
3927
3928         Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.
3929
3930         * wtf/Gigacage.h:
3931
3932 2019-01-07  David Kilzer  <ddkilzer@apple.com>
3933
3934         Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
3935         <https://webkit.org/b/193056>
3936
3937         Reviewed by Alex Christensen.
3938
3939         * wtf/RetainPtr.h:
3940         (WTF::RetainPtr<T>::HelperPtrType):
3941         - Use C++ template metaprogramming to define a shared return
3942           type for adoptNS() and retainPtr() that uses
3943           RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
3944           non-Objective-C typedef is used with retainPtr() for CFTypeRef
3945           objects.
3946         (WTF::adoptNS):
3947         - Only make declarations available when compilng with
3948           Objective-C.  The inline implementation is only available for
3949           Objective-C, so this makes the declarations consistent.
3950         - Change return type to remove '*' from NS types using
3951           RetainPtr<T>::HelperPtrType.
3952         (WTF::retainPtr):
3953         - Change return type to remove '*' from NS types using
3954           RetainPtr<T>::HelperPtrType.
3955
3956         * wtf/SchedulePair.h:
3957         - Remove '*' from RetainPtr<> type.
3958
3959 2019-01-07  Eric Carlson  <eric.carlson@apple.com>
3960
3961         A MediaTime timescale must never be zero
3962         https://bugs.webkit.org/show_bug.cgi?id=193156
3963         <rdar://problem/32504501>
3964
3965         Reviewed by Jer Noble.
3966
3967         * wtf/MediaTime.cpp:
3968         (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
3969         (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
3970         (WTF::MediaTime::createWithFloat): Ditto.
3971         (WTF::MediaTime::createWithDouble): Ditto.
3972         (WTF::MediaTime::setTimeScale): Ditto.
3973
3974 2019-01-02  Alex Christensen  <achristensen@webkit.org>
3975
3976         Homograph with LATIN SMALL LETTER R WITH FISHHOOK
3977         https://bugs.webkit.org/show_bug.cgi?id=192944
3978
3979         Reviewed by Tim Horton.
3980
3981         * wtf/cocoa/NSURLExtras.mm:
3982         (WTF::isLookalikeCharacter):
3983
3984 2019-01-02  Commit Queue  <commit-queue@webkit.org>
3985
3986         Unreviewed, rolling out r239524.
3987         https://bugs.webkit.org/show_bug.cgi?id=193083
3988
3989         basic browsing seems not to work (Requested by thorton on
3990         #webkit).
3991
3992         Reverted changeset:
3993
3994         "Expand use of sourceApplicationAuditData"
3995         https://bugs.webkit.org/show_bug.cgi?id=192995
3996         https://trac.webkit.org/changeset/239524
3997
3998 2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
3999
4000         Add ENABLE_UNIFIED_BUILDS option to cmake ports
4001         https://bugs.webkit.org/show_bug.cgi?id=193045
4002
4003         Reviewed by Don Olmstead.
4004
4005         * Scripts/generate-unified-source-bundles.rb:
4006
4007 2018-12-27  Alex Christensen  <achristensen@webkit.org>
4008
4009         Resurrect Mac CMake build
4010         https://bugs.webkit.org/show_bug.cgi?id=192658
4011
4012         Reviewed by Yusuke Suzuki.
4013
4014         * wtf/PlatformMac.cmake:
4015         * wtf/cf/CFURLExtras.cpp:
4016         * wtf/cf/CFURLExtras.h:
4017         * wtf/cf/URLCF.cpp:
4018         * wtf/cocoa/NSURLExtras.h:
4019         * wtf/cocoa/NSURLExtras.mm:
4020         * wtf/cocoa/URLCocoa.mm:
4021
4022 2018-12-21  Dan Bernstein  <mitz@apple.com>
4023
4024         Fixed building for macOS 10.13 using the macOS 10.14 SDK.
4025
4026         * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
4027           deployment target, not the SDK.
4028
4029 2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
4030
4031         [JSC] Implement "well-formed JSON.stringify" proposal
4032         https://bugs.webkit.org/show_bug.cgi?id=191677
4033
4034         Reviewed by Darin Adler.
4035
4036         This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
4037         JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
4038         The proposal requires that broken surrogate pairs are unicode-escaped.
4039
4040         [1]: https://github.com/tc39/proposal-well-formed-stringify
4041
4042         * wtf/text/StringBuilderJSON.cpp:
4043         (WTF::appendQuotedJSONStringInternal):
4044
4045 2018-12-21  Alex Christensen  <achristensen@webkit.org>
4046
4047         Expand use of sourceApplicationAuditData
4048         https://bugs.webkit.org/show_bug.cgi?id=192995
4049         <rdar://problem/46627875>
4050
4051         Reviewed by Brady Eidson.
4052
4053         * wtf/Platform.h:
4054
4055 2018-12-21  Alex Christensen  <achristensen@webkit.org>
4056
4057         Revert r239503.
4058         https://bugs.webkit.org/show_bug.cgi?id=192944
4059
4060         * wtf/cocoa/NSURLExtras.mm:
4061         (WTF::isLookalikeCharacter):
4062
4063 2018-12-20  Brent Fulgham  <bfulgham@apple.com>
4064
4065         Show punycode if URL contains Latin small letter dotless i
4066         https://bugs.webkit.org/show_bug.cgi?id=192944
4067         <rdar://problem/46103047>
4068
4069         Reviewed by Andy Estes.
4070
4071         Revise our "lookalike character" logic to include the small Latin
4072         dotless i character.
4073
4074         Test: fast/url/host.html
4075
4076         * wtf/cocoa/NSURLExtras.mm:
4077         (WTF::isLookalikeCharacter):
4078
4079 2018-12-20  Chris Dumez  <cdumez@apple.com>
4080
4081         Use Optional::hasValue() instead of Optional::has_value()
4082         https://bugs.webkit.org/show_bug.cgi?id=192948
4083
4084         Reviewed by Tim Horton.
4085
4086         * wtf/Hasher.h:
4087         (WTF::add):
4088         * wtf/Optional.h:
4089
4090 2018-12-20  Chris Dumez  <cdumez@apple.com>
4091
4092         Use Optional::valueOr() instead of Optional::value_or()
4093         https://bugs.webkit.org/show_bug.cgi?id=192933
4094
4095         Reviewed by Geoffrey Garen.
4096
4097         * wtf/Optional.h:
4098         (WTF::Optional<T::valueOr const):
4099
4100 2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>
4101
4102         Consistently use MaxLength for all WTF strings
4103         https://bugs.webkit.org/show_bug.cgi?id=192853
4104         <rdar://problem/45726906>
4105
4106         Reviewed by Mark Lam.
4107
4108         MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
4109         but all the assertions were still done using UINT_MAX. Change it to
4110         use MaxLength for all checks.
4111
4112         * wtf/text/StringImpl.cpp:
4113         (WTF::StringImpl::createUninitializedInternalNonEmpty):
4114         (WTF::StringImpl::reallocateInternal):
4115         (WTF::StringImpl::create):
4116         (WTF::StringImpl::convertToLowercaseWithoutLocale):
4117         (WTF::StringImpl::convertToUppercaseWithoutLocale):
4118         (WTF::StringImpl::convertToLowercaseWithLocale):
4119         (WTF::StringImpl::convertToUppercaseWithLocale):
4120         (WTF::StringImpl::foldCase):
4121         (WTF::StringImpl::find):
4122         (WTF::StringImpl::replace):
4123         (WTF::StringImpl::utf8ForCharacters):
4124         (WTF::StringImpl::tryGetUtf8ForRange const):
4125         * wtf/text/StringImpl.h:
4126         (WTF::lengthOfNullTerminatedString):
4127         (WTF::StringImpl::tryCreateUninitialized):
4128         (WTF::StringImpl::adopt):
4129         (WTF::StringImpl::maxInternalLength):
4130         * wtf/text/WTFString.cpp:
4131         (WTF::String::append):
4132         (WTF::String::insert):
4133         (WTF::String::fromUTF8):
4134         * wtf/text/WTFString.h:
4135         (WTF::String::reverseFind const):
4136
4137 2018-12-19  Chris Dumez  <cdumez@apple.com>
4138
4139         wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
4140         https://bugs.webkit.org/show_bug.cgi?id=192728
4141         <rdar://problem/46746779>
4142
4143         Reviewed by Geoff Garen.
4144
4145         Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
4146         Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.
4147
4148         Based on patch by David Kilzer.
4149
4150         * wtf/*:
4151
4152 2018-12-19  Eric Carlson  <eric.carlson@apple.com>
4153
4154         [MediaStream] Force system camera/microphone TCC prompt if necessary
4155         https://bugs.webkit.org/show_bug.cgi?id=192820
4156         <rdar://problem/42680098>
4157
4158         Reviewed by Jer Noble.
4159
4160         * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
4161
4162 2018-12-17  Chris Fleizach  <cfleizach@apple.com>
4163
4164         Some builds are broken after r239262
4165         https://bugs.webkit.org/show_bug.cgi?id=192777
4166
4167         Reviewed by Simon Fraser.
4168
4169         * wtf/Platform.h:
4170
4171 2018-12-17  Daniel Bates  <dabates@apple.com>
4172
4173         Support concatenating StringView with other string types
4174         https://bugs.webkit.org/show_bug.cgi?id=177566
4175
4176         Reviewed by Darin Adler.
4177
4178         Add operator+ overloads to StringOperators.h to support concatenating a StringView with
4179         other string types (e.g. String). This lets a person write more naturally looking code:
4180
4181         stringView + string
4182
4183         Instead of:
4184
4185         makeString(stringView, string)
4186
4187         * wtf/text/StringOperators.h:
4188         (WTF::operator+): Added various operator+ overloads.
4189
4190 2018-12-17  Commit Queue  <commit-queue@webkit.org>
4191
4192         Unreviewed, rolling out r239265 and r239274.
4193         https://bugs.webkit.org/show_bug.cgi?id=192765
4194
4195         unorm_normalize is deprecated, and broke an internal build
4196         (Requested by Truitt on #webkit).
4197
4198         Reverted changesets:
4199
4200         "[GTK][WPE] Need a function to convert internal URI to display
4201         ("pretty") URI"
4202         https://bugs.webkit.org/show_bug.cgi?id=174816
4203         https://trac.webkit.org/changeset/239265
4204
4205         "Fix the Apple Internal Mac build with a newer SDK"
4206         https://trac.webkit.org/changeset/239274
4207
4208 2018-12-17  Daniel Bates  <dabates@apple.com>
4209
4210         Fix the Apple Internal Mac build with a newer SDK
4211
4212         * wtf/URLHelpers.cpp:
4213         (WTF::URLHelpers::userVisibleURL):
4214
4215 2018-12-17  Matt Lewis  <jlewis3@apple.com>
4216
4217         Unreviewed, rolling out r239254.
4218
4219         This broke the Windows 10 Debug build
4220
4221         Reverted changeset:
4222
4223         "Replace many uses of String::format with more type-safe
4224         alternatives"
4225         https://bugs.webkit.org/show_bug.cgi?id=192742
4226         https://trac.webkit.org/changeset/239254
4227
4228 2018-12-17  Ms2ger  <Ms2ger@igalia.com>
4229
4230         [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
4231         https://bugs.webkit.org/show_bug.cgi?id=174816
4232
4233         Reviewed by Michael Catanzaro.
4234
4235         Translate userVisibleString and dependent code into platform-neutral C++
4236         in wtf/URLHelpers.{h,cpp}.
4237
4238         * WTF.xcodeproj/project.pbxproj:
4239         * wtf/CMakeLists.txt:
4240         * wtf/URLHelpers.cpp: Added.
4241         (WTF::URLHelpers::loadIDNScriptWhiteList):
4242         (WTF::URLHelpers::isArmenianLookalikeCharacter):
4243         (WTF::URLHelpers::isArmenianScriptCharacter):
4244         (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
4245         (WTF::URLHelpers::isLookalikeCharacter):
4246         (WTF::URLHelpers::whiteListIDNScript):
4247         (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
4248         (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
4249         (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
4250         (WTF::URLHelpers::isRussianDomainNameCharacter):
4251         (WTF::URLHelpers::allCharactersAllowedByTLDRules):
4252         (WTF::URLHelpers::mapHostName):
4253         (WTF::URLHelpers::collectRangesThatNeedMapping):
4254         (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
4255         (WTF::URLHelpers::applyHostNameFunctionToURLString):
4256         (WTF::URLHelpers::mapHostNames):
4257         (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
4258         (WTF::URLHelpers::userVisibleURL):
4259         * wtf/URLHelpers.h: Added.
4260         * wtf/cocoa/NSURLExtras.mm:
4261         (WTF::URLHelpers::loadIDNScriptWhiteList):
4262         (WTF::decodePercentEscapes):
4263         (WTF::decodeHostName):
4264         (WTF::encodeHostName):
4265         (WTF::URLWithUserTypedString):
4266         (WTF::userVisibleString):
4267
4268 2018-12-15  Darin Adler  <darin@apple.com>
4269
4270         Use warning-ignoring macros more consistently and simply
4271         https://bugs.webkit.org/show_bug.cgi?id=19