d132a00f16384f663e4a8edd97d769643e2fb05f
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-10-01  Commit Queue  <commit-queue@webkit.org>
2
3         Unreviewed, rolling out r236647.
4         https://bugs.webkit.org/show_bug.cgi?id=190124
5
6         Breaking test stress/big-int-to-string.js (Requested by
7         caiolima_ on #webkit).
8
9         Reverted changeset:
10
11         "[BigInt] BigInt.proptotype.toString is broken when radix is
12         power of 2"
13         https://bugs.webkit.org/show_bug.cgi?id=190033
14         https://trac.webkit.org/changeset/236647
15
16 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
17
18         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
19         https://bugs.webkit.org/show_bug.cgi?id=190033
20
21         Reviewed by Yusuke Suzuki.
22
23         * wtf/MathExtras.h:
24         (WTF::ctz32):
25
26 2018-09-28  Jer Noble  <jer.noble@apple.com>
27
28         Refactoring: eliminate raw pointer usage in Fullscreen code
29         https://bugs.webkit.org/show_bug.cgi?id=188747
30         <rdar://problem/43541164>
31
32         Reviewed by Alex Christensen.
33
34         * WTF.xcodeproj/project.pbxproj:
35         * wtf/WeakPtrContainer.h: Added.
36
37 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
38
39         [WTF] Make isMainThread more reliable
40         https://bugs.webkit.org/show_bug.cgi?id=189880
41
42         Reviewed by Mark Lam.
43
44         isMainThread() relied on Thread::current(). This API becomes broken in Windows
45         when the Thread is about to be destroyed since TLS is already cleared. This causes
46         a bug since `isMainThread()` is called in Thread::didExit in Windows.
47
48         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
49         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
50         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
51         or `pthread_self` instead.
52
53         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
54         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
55         only happens in Windows since Windows calls TLS destructor for the main thread.
56
57         * WTF.xcodeproj/project.pbxproj:
58         * wtf/MainThread.cpp:
59         (WTF::initializeMainThread):
60         (): Deleted.
61         (WTF::isMainThread): Deleted.
62         (WTF::isMainThreadIfInitialized): Deleted.
63         * wtf/Platform.h:
64         * wtf/PlatformMac.cmake:
65         * wtf/Threading.cpp:
66         (WTF::Thread::didExit):
67         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
68         * wtf/generic/MainThreadGeneric.cpp:
69         (WTF::initializeMainThreadPlatform):
70         (WTF::isMainThread):
71         (WTF::isMainThreadIfInitialized):
72         * wtf/win/MainThreadWin.cpp:
73         (WTF::initializeMainThreadPlatform):
74         (WTF::isMainThread):
75         (WTF::isMainThreadIfInitialized):
76
77 2018-09-28  Commit Queue  <commit-queue@webkit.org>
78
79         Unreviewed, rolling out r236605.
80         https://bugs.webkit.org/show_bug.cgi?id=190087
81
82         caused three API test timeouts (Requested by jernoble on
83         #webkit).
84
85         Reverted changeset:
86
87         "Refactoring: eliminate raw pointer usage in Fullscreen code"
88         https://bugs.webkit.org/show_bug.cgi?id=188747
89         https://trac.webkit.org/changeset/236605
90
91 2018-09-28  Brian Burg  <bburg@apple.com>
92
93         Replace recently added line comments in Compiler.h
94         https://bugs.webkit.org/show_bug.cgi?id=190062
95         <rdar://problem/44838618>
96
97         Reviewed by Joseph Pecoraro.
98
99         This breaks some Apple-internal tooling. For now, work around it by
100         changing the comment style. On the other side, the issue will be fixed
101         more permanently by adopting the approach from r230213.
102
103         * wtf/Compiler.h: Use multiline comments.
104
105 2018-09-28  Jer Noble  <jer.noble@apple.com>
106
107         Refactoring: eliminate raw pointer usage in Fullscreen code
108         https://bugs.webkit.org/show_bug.cgi?id=188747
109         <rdar://problem/43541164>
110
111         Reviewed by Alex Christensen.
112
113         * WTF.xcodeproj/project.pbxproj:
114         * wtf/WeakPtrContainer.h: Added.
115
116 2018-09-28  Koby Boyango  <koby.b@mce.systems>
117
118         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
119         https://bugs.webkit.org/show_bug.cgi?id=189991
120
121         Reviewed by Yusuke Suzuki.
122
123         * WTF.xcodeproj/project.pbxproj:
124         * wtf/CMakeLists.txt:
125         * wtf/text/ExternalStringImpl.cpp: Added.
126         * wtf/text/ExternalStringImpl.h: Added.
127         * wtf/text/StringImpl.cpp:
128         * wtf/text/StringImpl.h:
129
130 2018-09-27  Saam barati  <sbarati@apple.com>
131
132         Verify the contents of AssemblerBuffer on arm64e
133         https://bugs.webkit.org/show_bug.cgi?id=190057
134         <rdar://problem/38916630>
135
136         Reviewed by Mark Lam.
137
138         * wtf/PtrTag.h:
139         (WTF::tagInt):
140
141 2018-09-27  Jer Noble  <jer.noble@apple.com>
142
143         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
144         https://bugs.webkit.org/show_bug.cgi?id=189951
145
146         Reviewed by Eric Carlson.
147
148         Templated functions should take r-value references, as they have perfect type deduction for
149         all parameter types; references, l-value references, and r-value references in template function
150         parameters have special type deduction semantics.
151         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
152
153         Previously, const reference parameters would be copied when passed into anyOf(), and containers
154         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
155         with r-value reference types in template parameters, a const reference is mapped to a const reference,
156         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
157         an r-value reference.
158
159         * wtf/Algorithms.h:
160         (WTF::forEach):
161         (WTF::anyOf):
162         (WTF::allOf):
163
164 2018-09-25  John Wilander  <wilander@apple.com>
165
166         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
167         https://bugs.webkit.org/show_bug.cgi?id=189959
168         <rdar://problem/44767642>
169
170         Reviewed by Chris Dumez.
171
172         * wtf/Platform.h:
173             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
174
175 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
176
177         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
178         https://bugs.webkit.org/show_bug.cgi?id=189733
179
180         Reviewed by Michael Catanzaro.
181
182         Clang for Windows build enables WTF_COMPILER_CLANG and
183         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
184         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
185         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
186         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
187         least at the moment, it is not feasible to define
188         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
189
190         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
191         to WTF_COMPILER_GCC_COMPATIBLE.
192
193         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
194         Clang for Windows builds.
195
196         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
197         * wtf/Assertions.h: Ditto.
198         * wtf/Atomics.h: Ditto.
199         * wtf/CheckedArithmetic.h: Ditto.
200         * wtf/FastMalloc.h: Ditto.
201         * wtf/MathExtras.h: Ditto.
202         * wtf/Platform.h: Ditto.
203         * wtf/StdLibExtras.h: Ditto.
204         * wtf/Vector.h: Ditto.
205         * wtf/text/ASCIIFastPath.h: Ditto.
206         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
207
208 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
209
210         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
211         https://bugs.webkit.org/show_bug.cgi?id=189778
212
213         Reviewed by Keith Miller.
214
215         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
216         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
217         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
218
219         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
220         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
221         information which is used for LLInt and SamplingProfiler.
222
223         * wtf/Platform.h:
224
225 2018-09-21  Keith Miller  <keith_miller@apple.com>
226
227         Add Promise SPI
228         https://bugs.webkit.org/show_bug.cgi?id=189809
229
230         Reviewed by Saam Barati.
231
232         Fix issue where creating a JSContextRef off the main thread before
233         creating initializing the main thread would cause an assertion
234         failure.
235
236         * wtf/MainThread.cpp:
237         (WTF::isMainThreadIfInitialized):
238         * wtf/MainThread.h:
239         * wtf/mac/MainThreadMac.mm:
240         (WTF::isMainThreadIfInitialized):
241         * wtf/text/cf/StringImplCF.cpp:
242         (WTF::StringImpl::createCFString):
243
244 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
245
246         Unreviewed, rolling out r236359.
247
248         Broke the Windows build.
249
250         Reverted changeset:
251
252         "Add Promise SPI"
253         https://bugs.webkit.org/show_bug.cgi?id=189809
254         https://trac.webkit.org/changeset/236359
255
256 2018-09-21  Keith Miller  <keith_miller@apple.com>
257
258         Add Promise SPI
259         https://bugs.webkit.org/show_bug.cgi?id=189809
260
261         Reviewed by Saam Barati.
262
263         Fix issue where creating a JSContextRef off the main thread before
264         creating initializing the main thread would cause an assertion
265         failure.
266
267         * wtf/MainThread.cpp:
268         (WTF::isMainThreadIfInitialized):
269         * wtf/MainThread.h:
270         * wtf/mac/MainThreadMac.mm:
271         (WTF::isMainThreadIfInitialized):
272         * wtf/text/cf/StringImplCF.cpp:
273         (WTF::StringImpl::createCFString):
274
275 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
276
277         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
278         https://bugs.webkit.org/show_bug.cgi?id=189732
279
280         Reviewed by Per Arne Vollan.
281
282         Clang for Windows can't compile the MSVC workaround of
283         UNUSED_PARAM which has been introduced for Windows CE and Visual
284         Studio 10. I think it's safe just to remove it.
285
286         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
287
288 2018-09-20  Alex Christensen  <achristensen@webkit.org>
289
290         Unreviewed, rolling out r235976.
291
292         Broke ARM
293
294         Reverted changeset:
295
296         "Use a Variant instead of a union in CSSSelector"
297         https://bugs.webkit.org/show_bug.cgi?id=188559
298         https://trac.webkit.org/changeset/235976
299
300 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
301
302         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
303         https://bugs.webkit.org/show_bug.cgi?id=185339
304
305         Reviewed by Mark Lam.
306
307         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
308
309         * WTF.xcodeproj/project.pbxproj:
310         * wtf/CMakeLists.txt:
311         * wtf/Semaphore.h: Added.
312         (WTF::Semaphore::Semaphore):
313         (WTF::Semaphore::signal):
314         (WTF::Semaphore::waitUntil):
315         (WTF::Semaphore::waitFor):
316         (WTF::Semaphore::wait):
317         * wtf/generic/WorkQueueGeneric.cpp:
318         (WorkQueue::platformInitialize):
319         * wtf/threads/BinarySemaphore.cpp:
320         (WTF::BinarySemaphore::waitUntil):
321         (WTF::BinarySemaphore::wait): Deleted.
322         * wtf/threads/BinarySemaphore.h:
323         (WTF::BinarySemaphore::waitFor):
324         (WTF::BinarySemaphore::wait):
325         Align the names of the functions to WTF::Condition.
326         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
327
328 2018-09-17  Jer Noble  <jer.noble@apple.com>
329
330         Add support for HEVC codec types in Media Capabilities
331         https://bugs.webkit.org/show_bug.cgi?id=189565
332
333         Reviewed by Eric Carlson.
334
335         Extract the toIntegralType template into its own header.
336
337         * wtf/CMakeLists.txt:
338         * wtf/text/StringConversion.h: Added.
339         (isCharacterAllowedInBase):
340         (toIntegralType):
341         * wtf/text/WTFString.cpp:
342
343 2018-09-17  Jer Noble  <jer.noble@apple.com>
344
345         Enable USE_MEDIAREMOTE on iOS
346         https://bugs.webkit.org/show_bug.cgi?id=189096
347
348         Reviewed by Eric Carlson.
349
350         * wtf/Platform.h:
351
352 2018-09-17  Frederic Wang  <fwang@igalia.com>
353
354         Build error in ImageBufferCG when compiled with IOSurfacePool
355         https://bugs.webkit.org/show_bug.cgi?id=189579
356
357         Reviewed by Tim Horton.
358
359         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
360         compilation errors when files in the same unified source do not agree on the definition.
361         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
362         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
363         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
364         to prevent future issues with Unified build rotating.
365
366         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
367
368 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
369
370         Unreviewed, rolling out r235990.
371
372         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
373
374         Reverted changeset:
375
376         "Enable USE_MEDIAREMOTE on iOS"
377         https://bugs.webkit.org/show_bug.cgi?id=189096
378         https://trac.webkit.org/changeset/235990
379
380 2018-09-13  Jer Noble  <jer.noble@apple.com>
381
382         Enable USE_MEDIAREMOTE on iOS
383         https://bugs.webkit.org/show_bug.cgi?id=189096
384
385         Reviewed by Eric Carlson.
386
387         * wtf/Platform.h:
388
389 2018-09-13  Alex Christensen  <achristensen@webkit.org>
390
391         Use a Variant instead of a union in CSSSelector
392         https://bugs.webkit.org/show_bug.cgi?id=188559
393
394         Reviewed by Antti Koivisto.
395
396         * wtf/Variant.h:
397         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
398
399 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
400
401         Add IGNORE_WARNING_.* macros
402         https://bugs.webkit.org/show_bug.cgi?id=188996
403
404         Reviewed by Michael Catanzaro.
405
406         * wtf/Assertions.cpp:
407         * wtf/Assertions.h:
408         * wtf/Compiler.h:
409         * wtf/MD5.cpp:
410         (WTF::MD5::MD5):
411         (WTF::MD5::addBytes):
412         (WTF::MD5::checksum):
413         * wtf/PrintStream.cpp:
414         (WTF::PrintStream::printfVariableFormat):
415         * wtf/SHA1.cpp:
416         (WTF::SHA1::SHA1):
417         (WTF::SHA1::addBytes):
418         (WTF::SHA1::computeHash):
419         * wtf/ThreadingPthreads.cpp:
420         * wtf/Vector.h:
421         (WTF::VectorBuffer::endOfBuffer):
422         * wtf/text/WTFString.cpp:
423         (WTF::createWithFormatAndArguments):
424
425 == Rolled over to ChangeLog-2018-09-11 ==