Unreviewed, rolling out r148488.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-04-15  Commit Queue  <rniwa@webkit.org>
2
3         Unreviewed, rolling out r148488.
4         http://trac.webkit.org/changeset/148488
5         https://bugs.webkit.org/show_bug.cgi?id=114660
6
7         Roll back in r148462 since it was a false positive. (Requested
8         by rniwa on #webkit).
9
10         * wtf/FastMalloc.cpp:
11         (WTF):
12         (WTF::setThreadHeap):
13         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
14         (WTF::TCMalloc_ThreadCache::InitTSD):
15         * wtf/ThreadSpecificWin.cpp:
16         (WTF::destructorsList):
17         (WTF::destructorsMutex):
18         (WTF::threadSpecificKeyCreate):
19         (WTF::threadSpecificKeyDelete):
20
21 2013-04-15  Commit Queue  <rniwa@webkit.org>
22
23         Unreviewed, rolling out r148462.
24         http://trac.webkit.org/changeset/148462
25         https://bugs.webkit.org/show_bug.cgi?id=114658
26
27         Broke Windows builds (Requested by rniwa on #webkit).
28
29         * wtf/FastMalloc.cpp:
30         (WTF):
31         (WTF::setThreadHeap):
32         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
33         (WTF::TCMalloc_ThreadCache::InitTSD):
34         * wtf/ThreadSpecificWin.cpp:
35         (WTF::destructorsList):
36         (WTF::destructorsMutex):
37         (WTF::threadSpecificKeyCreate):
38         (WTF::threadSpecificKeyDelete):
39
40 2013-04-15  Julien Brianceau  <jbrianceau@nds.com>
41
42         LLInt SH4 backend implementation
43         https://bugs.webkit.org/show_bug.cgi?id=112886
44
45         Reviewed by Oliver Hunt.
46
47         * wtf/Platform.h:
48
49 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
50
51         [CMake] Add WTF_USE_*_UNICODE variables
52         https://bugs.webkit.org/show_bug.cgi?id=114556
53
54         Reviewed by Brent Fulgham.
55
56         WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
57         reduce duplication in the platform specific CMake files.
58
59         * wtf/CMakeLists.txt:
60         * wtf/PlatformBlackBerry.cmake:
61         * wtf/PlatformEfl.cmake:
62         * wtf/PlatformWinCE.cmake:
63
64 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
65
66         [WIN] Remove remaining calls to pthread from WTF
67         https://bugs.webkit.org/show_bug.cgi?id=114563
68
69         Reviewed by Brent Fulgham.
70
71         Replace pthread_key_create with threadSpecificKeyCreate and
72         pthread_setspecific with threadSpecificSet from ThreadSpecific.h.
73         These functions provide a windows-specific implementation for the pthread functions,
74         but require that the thread has been created with WTF::createThread(),
75         which is the case for all threads created within WebKit.
76         To call this function from fastMalloc we must not call fastMalloc in them.
77         To fulfill this constraint ThreadSpecificWin will allocated its memory through the
78         original malloc implementation and use the stack for local and static variables.
79         Keep the Darwin implementation as it is, since it contains some performance tweaks.
80
81         * wtf/FastMalloc.cpp:
82         * wtf/ThreadSpecificWin.cpp:
83         (WTF::destructorsList):
84         (WTF::destructorsMutex):
85         (WTF::threadSpecificKeyCreate):
86         (WTF::threadSpecificKeyDelete):
87
88 2013-04-14  Oliver Hunt  <oliver@apple.com>
89
90         Try to fix non-apple windows builds
91
92         * wtf/Platform.h:
93
94 2013-04-14  David Kilzer  <ddkilzer@apple.com>
95
96         Add EnumClass.h to project files
97         <http://webkit.org/b/114582>
98
99         Rubber-stamped by Dan Bernstein.
100
101         * WTF.pro: Add EnumClass.h to project.
102         * WTF.vcproj/WTF.vcproj: Ditto.
103         * WTF.vcxproj/WTF.vcxproj: Ditto.
104         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
105         * WTF.xcodeproj/project.pbxproj: Ditto.
106
107 2013-04-12  Oliver Hunt  <oliver@apple.com>
108
109         Apologies to all, I have no idea what happened to cause this change.
110
111         * wtf/Platform.h:
112
113 2013-04-12  Oliver Hunt  <oliver@apple.com>
114
115         [Qt][Win] r148257 broke the build
116         https://bugs.webkit.org/show_bug.cgi?id=114512
117
118         Build fix.
119
120         * wtf/Platform.h:
121
122 2013-04-11  Oliver Hunt  <oliver@apple.com>
123
124         Add more type validation to debug builds
125         https://bugs.webkit.org/show_bug.cgi?id=114478
126
127         Reviewed by Mark Hahnenberg.
128
129         Add BINDING_VALIDATION flag and make RELEASE_ASSERT use UNLIKELY.
130
131         * wtf/Assertions.h:
132         * wtf/Platform.h:
133
134 2013-04-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
135
136         [WTF] Get rid of truncated thread name warnings for non-Windows platforms
137         https://bugs.webkit.org/show_bug.cgi?id=114266
138
139         Reviewed by Ryosuke Niwa.
140
141         Hide the annoying message from ports that are not really interested
142         about it.
143
144         * wtf/Threading.cpp:
145         (WTF::createThread):
146
147 2013-04-10  Benjamin Poulain  <bpoulain@apple.com>
148
149         Mass remove all the empty directories
150
151         Rubberstamped by Ryosuke Niwa.
152
153         * wtf/qt/compat: Removed.
154         * wtf/unicode/glib: Removed.
155         * wtf/unicode/qt4: Removed.
156         * wtf/unicode/wince: Removed.
157
158 2013-04-08  Anders Carlsson  <andersca@apple.com>
159
160         Remove unneeded headers from FrameLoader.h
161         https://bugs.webkit.org/show_bug.cgi?id=114223
162
163         Reviewed by Geoffrey Garen.
164
165         * wtf/Forward.h:
166         Add PrintStream.
167
168         * wtf/HashTable.h:
169         Don't include DataLog.h unless DUMP_HASHTABLE_STATS_PER_TABLE is 1.
170
171 2013-04-10  Laszlo Gombos  <l.gombos@samsung.com>
172
173         Remove ENABLE_3D_PLUGIN
174         https://bugs.webkit.org/show_bug.cgi?id=108002
175
176         Reviewed by Antti Koivisto.
177
178         Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
179
180         * wtf/FeatureDefines.h:
181
182 2013-04-09  Patrick Gansterer  <paroga@webkit.org>
183
184         [CMake] Remove conditional source file lists in WTF
185         https://bugs.webkit.org/show_bug.cgi?id=114250
186
187         Reviewed by Laszlo Gombos.
188
189         Use the #ifdef in the source file instead of conditional adding
190         files to the list of source files. This allows us to remove the
191         information of enabled features from CMake in next step.
192
193         * wtf/CMakeLists.txt:
194
195 2013-04-08  Ryosuke Niwa  <rniwa@webkit.org>
196
197         Remove WTF.gyp/WTF.gypi
198         https://bugs.webkit.org/show_bug.cgi?id=114237
199
200         Reviewed by Maciej Stachowiak.
201
202         * WTF.gyp: Removed.
203         * WTF.gyp/.gitignore: Removed.
204         * WTF.gyp/WTF.gyp: Removed.
205         * WTF.gypi: Removed.
206
207 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
208
209         Remove HTML Notification
210         https://bugs.webkit.org/show_bug.cgi?id=114231
211
212         Reviewed by Ryosuke Niwa.
213
214         * wtf/FeatureDefines.h:
215
216 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
217
218         wtf/dtoa/* uses a confusing name to reference its buffers
219         https://bugs.webkit.org/show_bug.cgi?id=109709
220
221         Reviewed by Darin Adler.
222
223         The data structure Vector in wtf/dtoa has nothing to do with a traditional
224         vector, is it just a pointer and the length of the pointed buffer.
225
226         Rename it to BufferReference to avoid mistakes.
227
228         * wtf/dtoa/bignum-dtoa.cc:
229         * wtf/dtoa/bignum-dtoa.h:
230         * wtf/dtoa/bignum.cc:
231         * wtf/dtoa/bignum.h:
232         (Bignum):
233         * wtf/dtoa/double-conversion.cc:
234         * wtf/dtoa/fast-dtoa.cc:
235         * wtf/dtoa/fast-dtoa.h:
236         * wtf/dtoa/fixed-dtoa.cc:
237         * wtf/dtoa/fixed-dtoa.h:
238         (double_conversion):
239         * wtf/dtoa/strtod.cc:
240         * wtf/dtoa/strtod.h:
241         (double_conversion):
242         * wtf/dtoa/utils.h:
243         (double_conversion):
244         (WTF::double_conversion::BufferReference::BufferReference):
245         (WTF::double_conversion::BufferReference::SubBufferReference):
246         (StringBuilder):
247
248 2013-04-08  Alberto Garcia  <agarcia@igalia.com>
249
250         [BlackBerry] MathExtras: macros defined in math.h conflict with the real functions
251         https://bugs.webkit.org/show_bug.cgi?id=112683
252
253         Reviewed by Darin Adler.
254
255         After calls to signbit and friends were prefixed with std:: in
256         r143232, the BlackBerry port no longer compiles.
257
258         The solution is to get rid of the macros defined in math.h and use
259         the real functions instead.
260
261         * wtf/MathExtras.h:
262
263 2013-04-08  Max Vujovic  <mvujovic@adobe.com>
264
265         REGRESSION (r147502): Animations of CA filters broken
266         https://bugs.webkit.org/show_bug.cgi?id=114067
267
268         Reviewed by Dean Jackson.
269
270         Revert r147502 [1] because it broke CA filter animations.
271         
272         [1]: http://trac.webkit.org/changeset/147502
273
274         * wtf/Platform.h:
275
276 2013-04-08  Andreas Kling  <akling@apple.com>
277
278         REGRESSION(r147894): Broke WTFReportBacktrace() on Mac.
279         <http://webkit.org/b/114174>
280
281         Reviewed by Anders Carlsson.
282
283         An #elif !OS(ANDROID) block was erroneously removed, turn it into an #else instead since
284         that path will still be taken for OS(DARWIN).
285
286         * wtf/Assertions.cpp:
287
288 2013-04-08  Oliver Hunt  <oliver@apple.com>
289
290         Build fix.
291
292         Remove unnecessary include of <wtf/Forward.h> from Vector.h
293
294         * wtf/Vector.h:
295
296 2013-04-08  Csaba Osztrogonác  <ossy@webkit.org>
297
298         Unreviewed trivial buildfix after r147799.
299
300         Add an ifdef guard to ensure Qt uses its own monotonicallyIncreasingTime()
301         implemenation instead of the GLIB based one.
302
303         * wtf/CurrentTime.cpp:
304         (WTF):
305
306 2013-04-07  Benjamin Poulain  <benjamin@webkit.org>
307
308         Remove the android code from WebKit Template Framework
309         https://bugs.webkit.org/show_bug.cgi?id=114138
310
311         Reviewed by Dirk Schulze.
312
313         * wtf/Assertions.cpp:
314         * wtf/Atomics.h:
315         * wtf/MathExtras.h:
316         * wtf/Platform.h:
317         * wtf/ThreadIdentifierDataPthreads.cpp:
318
319 2013-04-07  Oliver Hunt  <oliver@apple.com>
320
321         Add bounds checking for WTF::Vector::operator[]
322         https://bugs.webkit.org/show_bug.cgi?id=89600
323
324         Reviewed by Filip Pizlo.
325
326         Add a template parameter to Vector<> that controls whether
327         bounds checking is performed in release builds or not.
328         Defaults to crashing on overflow.
329
330         * wtf/Forward.h:
331         (WTF):
332         * wtf/Vector.h:
333         (WTF):
334         (Vector):
335         (WTF::Vector::at):
336         (WTF::Vector::removeLast):
337         (WTF::::Vector):
338         (WTF::=):
339         (WTF::::contains):
340         (WTF::::find):
341         (WTF::::reverseFind):
342         (WTF::::fill):
343         (WTF::::appendRange):
344         (WTF::::expandCapacity):
345         (WTF::::tryExpandCapacity):
346         (WTF::::resize):
347         (WTF::::shrink):
348         (WTF::::grow):
349         (WTF::::reserveCapacity):
350         (WTF::::tryReserveCapacity):
351         (WTF::::reserveInitialCapacity):
352         (WTF::::shrinkCapacity):
353         (WTF::::append):
354         (WTF::::tryAppend):
355         (WTF::::appendSlowCase):
356         (WTF::::uncheckedAppend):
357         (WTF::::appendVector):
358         (WTF::::insert):
359         (WTF::::prepend):
360         (WTF::::remove):
361         (WTF::::reverse):
362         (WTF::::releaseBuffer):
363         (WTF::::checkConsistency):
364         (WTF::deleteAllValues):
365         (WTF::swap):
366         (WTF::operator==):
367         (WTF::operator!=):
368
369 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
370
371         [WIN] Fix problems with export macros of AutodrainedPool
372         https://bugs.webkit.org/show_bug.cgi?id=114132
373
374         Reviewed by Geoffrey Garen.
375
376         Exporting an inline function results in an error with the MS compiler.
377
378         * wtf/AutodrainedPool.h:
379         (AutodrainedPool):
380         (WTF::AutodrainedPool::AutodrainedPool):
381         (WTF::AutodrainedPool::~AutodrainedPool):
382         (WTF::AutodrainedPool::cycle):
383
384 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
385
386         [WinCE] Add workaround for UNUSED_PARAM()
387         https://bugs.webkit.org/show_bug.cgi?id=113440
388
389         Reviewed by Benjamin Poulain.
390
391         The MSVC compiler for Windwos CE throws an error when
392         an function parameter is passed to UNUSED_PARAM() and
393         its type is only forward declared.
394
395         * wtf/UnusedParam.h:
396
397 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
398
399         Do not check if WTF_ARM_ARCH_VERSION is defined in WTF_ARM_ARCH_AT_LEAST macro
400         https://bugs.webkit.org/show_bug.cgi?id=114127
401
402         Reviewed by Benjamin Poulain.
403
404         Platform.h defines WTF_ARM_ARCH_VERSION for CPU(ARM) always and removing
405         the check works around a bug in older Microsoft compiler versions.
406
407         * wtf/Platform.h:
408
409 2013-04-07  David Kilzer  <ddkilzer@apple.com>
410
411         Remove the rest of SVG_DOM_OBJC_BINDINGS
412         <http://webkit.org/b/114112>
413
414         Reviewed by Geoffrey Garen.
415
416         * wtf/FeatureDefines.h:
417         - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
418
419 2013-04-06  Geoffrey Garen  <ggaren@apple.com>
420
421         Removed v8 bindings hooks from IDL files
422         https://bugs.webkit.org/show_bug.cgi?id=114091
423
424         Reviewed by Anders Carlsson and Sam Weinig.
425
426         * wtf/ArrayBuffer.h:
427         (WTF):
428         (WTF::ArrayBufferContents::ArrayBufferContents):
429         (WTF::ArrayBufferContents::transfer):
430         (ArrayBufferContents):
431         (ArrayBuffer):
432         (WTF::ArrayBufferContents::~ArrayBufferContents):
433         * wtf/Platform.h:
434
435 2013-04-05  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
436
437         [GTK] Change from PLATFORM(GTK) to USE(GLIB) in WTF/CurrentTime.cpp
438         https://bugs.webkit.org/show_bug.cgi?id=114061
439
440         Reviewed by Gustavo Noronha Silva.
441
442         Now other ports using GLib can use the correct implementation
443         and not the fallback one without adding any other PLATFORM guards
444         here.
445
446         * wtf/CurrentTime.cpp:
447         (WTF):
448
449 2013-04-05  Geoffrey Garen  <ggaren@apple.com>
450
451         Made USE(JSC) unconditional
452         https://bugs.webkit.org/show_bug.cgi?id=114058
453
454         Reviewed by Anders Carlsson.
455
456         * wtf/ThreadRestrictionVerifier.h:
457         (WTF):
458         * wtf/WTFThreadData.cpp:
459         (WTF::WTFThreadData::WTFThreadData):
460         (WTF::WTFThreadData::~WTFThreadData):
461         * wtf/WTFThreadData.h:
462         (WTFThreadData):
463         * wtf/text/StringImpl.cpp:
464         (WTF::StringImpl::~StringImpl):
465
466 2013-04-05  Roger Fong  <roger_fong@apple.com>
467
468         More VS2010 solution makefile fixes.
469         <rdar://problem/13588964>
470
471         * WTF.vcxproj/WTF.make:
472
473 2013-04-05  Anders Carlsson  <andersca@apple.com>
474
475         Remove more dead Chromium code from WTF
476         https://bugs.webkit.org/show_bug.cgi?id=114037
477
478         Reviewed by Allan Sandfeld Jensen.
479
480         * wtf/CurrentTime.cpp:
481         (WTF):
482         * wtf/DisallowCType.h:
483         * wtf/ExportMacros.h:
484         * wtf/MainThread.cpp:
485         * wtf/Platform.h:
486
487 2013-04-05  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
488
489         [EFL] Disable GLOBAL_FAST_MALLOC_NEW by default.
490         https://bugs.webkit.org/show_bug.cgi?id=114031
491
492         Reviewed by Alexis Menard.
493
494         Follow what some other ports already do and avoid globally overriding
495         the `new' and `delete' operators with the ones in FastMalloc.
496
497         In many cases, third-party or client code allocates memory with
498         standard library calls but the memory gets deleted by FastMalloc,
499         causing a crash. The reverse (ie. memory being allocated by FastMalloc
500         and freed by the system libraries) is also possible.
501
502         Commits 135666 and 121018 provide more information about this, as well
503         as comment 6 in bug 89358.
504
505         * wtf/Platform.h:
506
507 2013-04-05  Benjamin Poulain  <bpoulain@apple.com>
508
509         Remove WTFURL from WebKit
510         https://bugs.webkit.org/show_bug.cgi?id=113994
511
512         Reviewed by Ryosuke Niwa.
513
514         Painful, but that is for the best now :(
515
516         * GNUmakefile.list.am:
517         * WTF.xcodeproj/project.pbxproj:
518         * wtf/MemoryInstrumentationParsedURL.h: Removed.
519         * wtf/url/api/ParsedURL.cpp: Removed.
520         * wtf/url/api/ParsedURL.h: Removed.
521         * wtf/url/api/URLBuffer.h: Removed.
522         * wtf/url/api/URLQueryCharsetConverter.h: Removed.
523         * wtf/url/api/URLString.cpp: Removed.
524         * wtf/url/api/URLString.h: Removed.
525         * wtf/url/src/RawURLBuffer.h: Removed.
526         * wtf/url/src/URLCanon.h: Removed.
527         * wtf/url/src/URLCanonEtc.cpp: Removed.
528         * wtf/url/src/URLCanonFilesystemurl.cpp: Removed.
529         * wtf/url/src/URLCanonFileurl.cpp: Removed.
530         * wtf/url/src/URLCanonHost.cpp: Removed.
531         * wtf/url/src/URLCanonICU.cpp: Removed.
532         * wtf/url/src/URLCanonIP.cpp: Removed.
533         * wtf/url/src/URLCanonInternal.cpp: Removed.
534         * wtf/url/src/URLCanonInternal.h: Removed.
535         * wtf/url/src/URLCanonMailto.cpp: Removed.
536         * wtf/url/src/URLCanonPath.cpp: Removed.
537         * wtf/url/src/URLCanonPathurl.cpp: Removed.
538         * wtf/url/src/URLCanonQuery.cpp: Removed.
539         * wtf/url/src/URLCanonRelative.cpp: Removed.
540         * wtf/url/src/URLCanonStdURL.cpp: Removed.
541         * wtf/url/src/URLCharacterTypes.cpp: Removed.
542         * wtf/url/src/URLCharacterTypes.h: Removed.
543         * wtf/url/src/URLComponent.h: Removed.
544         * wtf/url/src/URLFile.h: Removed.
545         * wtf/url/src/URLParse.cpp: Removed.
546         * wtf/url/src/URLParse.h: Removed.
547         * wtf/url/src/URLParseFile.cpp: Removed.
548         * wtf/url/src/URLParseInternal.h: Removed.
549         * wtf/url/src/URLSegments.cpp: Removed.
550         * wtf/url/src/URLSegments.h: Removed.
551         * wtf/url/src/URLUtil.cpp: Removed.
552         * wtf/url/src/URLUtil.h: Removed.
553         * wtf/url/src/URLUtilInternal.h: Removed.
554
555 2013-04-04  Geoffrey Garen  <ggaren@apple.com>
556
557         Nixed the defunct chromium folder from WTF
558         https://bugs.webkit.org/show_bug.cgi?id=113992
559
560         Reviewed by Ryosuke Niwa.
561
562         * wtf/chromium: Removed.
563         * wtf/chromium/ChromiumThreading.h: Removed.
564         * wtf/chromium/MainThreadChromium.cpp: Removed.
565
566 2013-04-04  Martin Robinson  <mrobinson@igalia.com>
567
568         [GTK] Remove the gyp build
569         https://bugs.webkit.org/show_bug.cgi?id=113942
570
571         Reviewed by Gustavo Noronha Silva.
572
573         * WTF.gyp/WTFGTK.gyp: Removed.
574
575 2013-04-04  Anders Carlsson  <andersca@apple.com>
576
577         ObjcRuntimeExtras.h should use variadic templates
578         https://bugs.webkit.org/show_bug.cgi?id=113941
579
580         Reviewed by Andreas Kling.
581
582         Reimplement wtfObjcMsgSend and wtfCallIMP as variadic function templates.
583
584         * wtf/ObjcRuntimeExtras.h:
585         (wtfObjcMsgSend):
586         (wtfCallIMP):
587
588 2013-04-04  Andras Becsi  <andras.becsi@digia.com>
589
590         Fix the build with GCC 4.8
591         https://bugs.webkit.org/show_bug.cgi?id=113147
592
593         Reviewed by Allan Sandfeld Jensen.
594
595         Disable diagnostic warning -Wunused-local-typedefs for GCC 4.8
596         since dummy typedefs are commonly used in the codebase.
597
598         * wtf/Compiler.h:
599
600 2013-04-03  Pratik Solanki  <psolanki@apple.com>
601
602         Enable HAVE_MADV_FREE_REUSE on iOS
603         https://bugs.webkit.org/show_bug.cgi?id=113892
604         <rdar://problem/12787563>
605
606         Reviewed by Mark Rowe.
607
608         * wtf/Platform.h:
609
610 2013-04-02  Ryosuke Niwa  <rniwa@webkit.org>
611
612         Remove code for Mac 10.5 and earlier from WTF and WebKit2
613         https://bugs.webkit.org/show_bug.cgi?id=113844
614
615         Reviewed by Benjamin Poulain.
616
617         Removed the code for 10.5 and removed if-def for 10.6.
618
619         * wtf/FastMalloc.cpp:
620         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
621         * wtf/Platform.h:
622         * wtf/ThreadingPthreads.cpp:
623         (WTF::initializeCurrentThreadInternal):
624         * wtf/unicode/icu/CollatorICU.cpp:
625         (WTF::Collator::userDefault):
626
627 2013-04-02  Max Vujovic  <mvujovic@adobe.com>
628
629         [CSS Filters] Filter outsets clipped on composited layers when filter is applied after first layout
630         https://bugs.webkit.org/show_bug.cgi?id=109098
631
632         Reviewed by Dean Jackson.
633
634         * wtf/Platform.h:
635             Add flag for HAVE(COMPOSITOR_FILTER_OUTSETS) macro. This is used to check if a
636             platform's compositor expands layers internally for filter outsets when it applies
637             filters like drop-shadow and blur. Currently, only CoreAnimation does has this
638             capability.
639
640 2013-04-02  Yury Semikhatsky  <yurys@chromium.org>
641
642         Web Inspector: memory instrumentation for external arrays is broken
643         https://bugs.webkit.org/show_bug.cgi?id=113790
644
645         Reviewed by Pavel Feldman.
646
647         * wtf/MemoryInstrumentationArrayBufferView.h: report buffer pointer as retaining one as
648         we know that the pointer is not broken.
649         (WTF::reportMemoryUsage):
650
651 2013-04-01  Han Shen  <shenhan@google.com>
652
653         Move definition of nested classes that inherit enclosing class outside class definition.
654         https://bugs.webkit.org/show_bug.cgi?id=113454
655
656         Reviewed by Benjamin Poulain.
657
658         HashMap.h does not build on GCC 4.8. Inside this file,
659         HashMapKeysProxy and HashMapValuesProxy are defined as nested
660         class inside HashMap - which is legal - the illegal part is that
661         these 2 classes inherit HashMap, that is the enclosing class, that
662         causes "reference to in-complete definition" error.
663
664         The fix is to move outside the definition of these 2 classes, and
665         leave only declaration part inside HashMap as is illustrated below -
666
667           template class <typename T>
668           class HashMap {
669             ... ...
670             ... ...
671           private:
672             class HashMapKeysProxy;
673
674             // ERROR - nested class inherits enclosing class.
675             class HashMapKeysProxy : private HashMap {
676                 ... ...
677             };
678             ... ...
679             ... ...
680             class HashMapKeysProxy : private HashMap {
681                 ... ...
682             };
683             ... ...
684             ... ...
685           };
686
687         Fixed as below:
688           template class <typename T>
689           class HashMap {
690             ... ...
691             ... ...
692           private:
693             class HashMapKeysProxy;
694             class HashMapValuesProxy;
695
696             ... ...
697             ... ...
698           };
699
700           template <typename T>
701           class HashMap<T>::HashMapKeysProxy : private HashMap<T> {
702             ... ...
703           };
704
705           template <typename T>
706           class HashMap<T>::HashMapValuesProxy : private HashMap<T> {
707             ... ...
708           };
709
710         * wtf/HashMap.h:
711         (HashMap):
712         (WTF): Factor out nested class definition from enclosing class.
713
714 2013-03-31  Mark Hahnenberg  <mhahnenberg@apple.com>
715
716         Regions should be allocated from the same contiguous segment of virtual memory
717         https://bugs.webkit.org/show_bug.cgi?id=113662
718
719         Reviewed by Filip Pizlo.
720
721         Instead of letting the OS spread our Regions all over the place, we should allocate them all within 
722         some range of each other. This change will open the door to some other optimizations, e.g. doing simple 
723         range checks for our write barriers and compressing JSCell pointers to 32-bits.
724
725         * wtf/MetaAllocator.cpp: Changed the MetaAllocator to allow custom page sizes if the derived class wants to
726         use something other than the system page size.
727         (WTF::MetaAllocator::MetaAllocator):
728         * wtf/MetaAllocator.h:
729         (MetaAllocator):
730
731 2013-04-01  Yury Semikhatsky  <yurys@chromium.org>
732
733         Web Inspector: add memory instrumentation for StringBuffer
734         https://bugs.webkit.org/show_bug.cgi?id=113507
735
736         Reviewed by Pavel Feldman.
737
738         Added memory instrumentation for StringBuffer.
739
740         * wtf/MemoryInstrumentationString.h:
741         (WTF):
742         (WTF::reportMemoryUsage):
743
744 2013-03-30  Tom Sepez  <tsepez@chromium.org>
745
746         View-source iframes are dangerous (and not very useful).
747         https://bugs.webkit.org/show_bug.cgi?id=113345
748
749         Reviewed by Adam Barth.
750
751         * wtf/FeatureDefines.h:
752         Default definition of ENABLE_VIEWSOURCE_ATTRIBUTE is enabled.
753
754 2013-03-27  Patrick Gansterer  <paroga@webkit.org>
755
756         Set WTF_ARM_ARCH_VERSION to correct value when used with MSVC
757         https://bugs.webkit.org/show_bug.cgi?id=113436
758
759         Reviewed by Benjamin Poulain.
760
761         The Microsoft compiler defines _M_ARM with used ARM version.
762
763         * wtf/Platform.h:
764
765 2013-03-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
766
767         Support C++11 static_assert
768         https://bugs.webkit.org/show_bug.cgi?id=113308
769
770         Reviewed by Alexey Proskuryakov.
771
772         Use the C++11 static_assert for COMPILE_ASSERT when it is available. Note that
773         even when compiling with C++11 support, static_assert will not always be available
774         since Assertions.h may also be used outside of C++.
775
776         C11 _Static_assert is enabled for GCC when it has C11 support (gcc>=4.7 -std=c11).
777
778         * wtf/Assertions.h:
779         * wtf/Compiler.h:
780
781 2013-03-25  Oliver Hunt  <oliver@apple.com>
782
783         RefCountedArray needs a size based constructor
784         https://bugs.webkit.org/show_bug.cgi?id=113277
785
786         Reviewed by Benjamin Poulain.
787
788         Simple patch to add a size based constructor for RefCountedArray
789         so that we can create an sharable array without a copy.
790
791         * wtf/RefCountedArray.h:
792         (RefCountedArray):
793         (WTF::RefCountedArray::RefCountedArray):
794
795 2013-03-26  James Robinson  <jamesr@chromium.org>
796
797         Compile fix - OS(WINDOWS), not OS(WIN).
798
799         * wtf/ProcessID.h:
800         (WTF::getCurrentProcessID):
801
802 2013-03-26  James Robinson  <jamesr@chromium.org>
803
804         Fix compile for OS(WIN) != PLATFORM(WIN)
805         https://bugs.webkit.org/show_bug.cgi?id=113356
806
807         Reviewed by Tim Horton.
808
809         * wtf/ProcessID.h:
810         (WTF::getCurrentProcessID):
811
812 2013-03-23  Filip Pizlo  <fpizlo@apple.com>
813
814         JSC_enableProfiler=true should also cause JSGlobalData to save the profiler output somewhere
815         https://bugs.webkit.org/show_bug.cgi?id=113144
816
817         Reviewed by Geoffrey Garen.
818         
819         I got tired of the fact that getpid(2) is not a syscall on Windows (unless you do
820         _getpid() I believe), so I wrote a header that abstracts it. I also changed existing
821         code that uses getpid() to use WTF::getCurrentProcessID().
822
823         * GNUmakefile.list.am:
824         * WTF.gypi:
825         * WTF.pro:
826         * WTF.vcproj/WTF.vcproj:
827         * WTF.xcodeproj/project.pbxproj:
828         * wtf/CMakeLists.txt:
829         * wtf/MetaAllocator.cpp:
830         (WTF::MetaAllocator::dumpProfile):
831         * wtf/ProcessID.h: Added.
832         (WTF):
833         (WTF::getCurrentProcessID):
834         * wtf/text/StringImpl.cpp:
835         (WTF::StringStats::printStats):
836
837 2013-03-25  Kent Tamura  <tkent@chromium.org>
838
839         Rename ENABLE_INPUT_TYPE_DATETIME
840         https://bugs.webkit.org/show_bug.cgi?id=113254
841
842         Reviewed by Kentaro Hara.
843
844         Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
845         Actually I'd like to remove the code, but we shouldn't remove it yet
846         because we shipped products with it on some platforms.
847
848         * wtf/FeatureDefines.h:
849
850 2013-03-25  David Kilzer  <ddkilzer@apple.com>
851
852         WTF::binarySearchImpl() should compile with -Wshorten-64-to-32
853         <http://webkit.org/b/113170>
854
855         Reviewed by Dan Bernstein.
856
857         Fixes the following build failure:
858
859             /usr/local/include/wtf/StdLibExtras.h:190:30: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
860                     int pos = (size - 1) >> 1;
861                         ~~~   ~~~~~~~~~~~^~~~
862             1 error generated.
863
864         * wtf/StdLibExtras.h:
865         (WTF::binarySearchImpl): Switch type from int to size_t.
866
867 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
868
869         Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
870         https://bugs.webkit.org/show_bug.cgi?id=113003
871
872         Reviewed by Eric Seidel.
873
874         StringHash::equal() and CaseFoldingHash::equal() were both testing for
875         the nullity of the two input pointers. The catch is: neither traits handle
876         null pointers, and any client code would have crashed on hash(), before equal()
877         is called.
878         Consequently, the two branches had a pass rate of zero when called from a HashMap code.
879
880         The function is also never inlined because it is too big (the code of equal() for characters
881         is always inlined, causing the function to be quite big).
882
883         This patch introduces two new functions in the StringImpl API: equalNonNull() and
884         equalIgnoringCaseNonNull(). Those functions are similar to their equal() equivalent
885         but make the assumtion the input is never null.
886
887         The functions are used for StringHash to avoid the useless branches.
888
889         * wtf/text/StringHash.h:
890         (WTF::StringHash::equal):
891         (WTF::CaseFoldingHash::equal):
892         * wtf/text/StringImpl.cpp:
893         (WTF::stringImplContentEqual):
894         (WTF::equal):
895         (WTF::equalNonNull):
896         (WTF::equalIgnoringCase):
897         (WTF::equalIgnoringCaseNonNull):
898         (WTF::equalIgnoringNullity):
899         * wtf/text/StringImpl.h:
900         (WTF::equalIgnoringCase):
901
902 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
903
904         Name correctly the argument of StringImpl::setIsAtomic()
905         https://bugs.webkit.org/show_bug.cgi?id=113000
906
907         Reviewed by Geoffrey Garen.
908
909         * wtf/text/StringImpl.h:
910         (WTF::StringImpl::setIsAtomic):
911         The argument was probably an unfortunate copy-paste from setIsIdentifier().
912         Fix the name.
913
914 2013-03-22  Hajime Morrita  <morrita@google.com>
915
916         Custom Elements: "readyCallback" lifecycle callback should be called.
917         https://bugs.webkit.org/show_bug.cgi?id=112538
918
919         Reviewed by Elliott Sprehn.
920
921         * wtf/HashSet.h:
922         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
923
924 2013-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
925
926         Unreviewed, rolling out r146534 and r146565.
927         http://trac.webkit.org/changeset/146534
928         http://trac.webkit.org/changeset/146565
929         https://bugs.webkit.org/show_bug.cgi?id=113017
930
931         "r146534 caused perf regression on Chromium Linux x64"
932         (Requested by yurys on #webkit).
933
934         * wtf/HashSet.h:
935         (WTF):
936         (WTF::copyToVector):
937
938 2013-03-21  Hajime Morrita  <morrita@google.com>
939
940         Custom Elements: "readyCallback" lifecycle callback should be called.
941         https://bugs.webkit.org/show_bug.cgi?id=112538
942
943         Reviewed by Elliott Sprehn.
944
945         * wtf/HashSet.h:
946         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
947
948 2013-03-21  Mark Lam  <mark.lam@apple.com>
949
950         Introducing String::findNextLineStart().
951         https://bugs.webkit.org/show_bug.cgi?id=112957.
952
953         Reviewed by Geoffrey Garen.
954
955         This is replaces String::reverseFindLineTerminator() in the JSC
956         debugger's code for computing column numbers.
957
958         * wtf/text/StringImpl.cpp:
959         (WTF::StringImpl::findNextLineStart):
960         * wtf/text/StringImpl.h:
961         (WTF::findNextLineStart):
962         * wtf/text/WTFString.h:
963         (WTF::String::findNextLineStart):
964
965 2013-03-21  Adam Barth  <abarth@webkit.org>
966
967         HTMLNames should construct strings at compile time
968         https://bugs.webkit.org/show_bug.cgi?id=112831
969
970         Reviewed by Darin Adler.
971
972         * wtf/text/StringImpl.h:
973         (StringImpl):
974         (StaticASCIILiteral):
975             - This struct lets us construct StringImpl objects at compile time.
976         (WTF::StringImpl::assertHashIsCorrect):
977             - This function lets us sanity check StringImpl objects created from StaticData.
978         (WTF::StringImpl::find): Remove a stray ;
979         (WTF::StringImpl::findIgnoringCase): ditto
980         (WTF::StringImpl::startsWith): ditto
981         (WTF::ValueCheck<StringImpl*>):
982         * wtf/text/AtomicStringImpl.h:
983         (WTF::ValueCheck<AtomicStringImpl*>):
984
985 2013-03-21  Gabor Rapcsanyi  <rgabor@webkit.org>
986
987         Implement LLInt for CPU(ARM_TRADITIONAL)
988         https://bugs.webkit.org/show_bug.cgi?id=97589
989
990         Reviewed by Zoltan Herczeg.
991
992         Enable LLInt for ARMv5 and ARMv7 traditional as well.
993
994         * wtf/Platform.h:
995
996 2013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
997
998         Unreviewed, rolling out r146419.
999         http://trac.webkit.org/changeset/146419
1000         https://bugs.webkit.org/show_bug.cgi?id=112870
1001
1002         Broke many tests on debug builds (Requested by rniwa_ on
1003         #webkit).
1004
1005         * wtf/text/StringImpl.h:
1006         (StringImpl):
1007
1008 2013-03-20  Adam Barth  <abarth@webkit.org>
1009
1010         HTMLNames should construct strings at compile time
1011         https://bugs.webkit.org/show_bug.cgi?id=112831
1012
1013         Reviewed by Darin Adler.
1014
1015         * wtf/text/StringImpl.h:
1016         (StringImpl):
1017         (StaticASCIILiteral):
1018             - This struct lets us construct StringImpl objects at compile time.
1019         (WTF::StringImpl::assertValidHash):
1020             - This function lets us sanity check StringImpl objects created from StaticData.
1021
1022 2013-03-20  Jessie Berlin  <jberlin@apple.com>
1023
1024         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
1025         the wrong location
1026         https://bugs.webkit.org/show_bug.cgi?id=112833
1027
1028         Reviewed by Darin Adler.
1029
1030         * WTF.xcodeproj/project.pbxproj:
1031         Make sure those three headers are copied with the rest of the WTF headers.
1032
1033 2013-03-20  Mark Rowe  <mrowe@apple.com>
1034
1035         FastMalloc scavenge timer specifies an overly narrow leeway value.
1036
1037         Reviewed by Alexey Proskuryakov.
1038
1039         There's no need to allow only 1ms of leeway on a 2s timer.
1040
1041         * wtf/FastMalloc.cpp:
1042         (WTF::TCMalloc_PageHeap::initializeScavenger): Bump the leeway window
1043         to 10% of the scavenge timer.
1044
1045 2013-03-20  JungJik Lee  <jungjik.lee@samsung.com>
1046
1047         [EFL] Disable REQUEST_ANIMATION_FRAME_TIMER to render a new animation frame.
1048         https://bugs.webkit.org/show_bug.cgi?id=112114
1049
1050         Reviewed by Kenneth Rohde Christiansen.
1051
1052         The issue is that if the animation starts outside of the area covered by keepRects,
1053         the web process does not create tiles of the animation layer and the layer moves 
1054         without having any tiles. In order to fix this issue, CoordinatedLayerHost must call 
1055         scheduleLayerFlush to create new tiles when the layer enters the area covered by keepRect.
1056         However EFL port didn't call scheduleLayerFlush periodically for animation.
1057         We can tie scripted animations with synchronization of the layer and that already 
1058         has been implemented in r123786 by Qt port. This patch is for activating r123786 patch.
1059
1060         The testing is covered by ManualTests/animation/transition-on-and-offscreen-animation.html
1061
1062         * wtf/Platform.h: Disable REQUEST_ANIMATION_FRAME_TIMER.
1063
1064 2013-03-20  Mark Lam  <mark.lam@apple.com>
1065
1066         Introducing String::reverseFindLineTerminator().
1067         https://bugs.webkit.org/show_bug.cgi?id=112741.
1068
1069         Reviewed by Oliver Hunt.
1070
1071         This is needed by the JSC debugger code for computing column numbers.
1072
1073         * wtf/text/StringImpl.cpp:
1074         (WTF::StringImpl::reverseFindLineTerminator):
1075         * wtf/text/StringImpl.h:
1076         (StringImpl):
1077         (WTF::reverseFindLineTerminator):
1078         * wtf/text/WTFString.h:
1079         (WTF::String::reverseFindLineTerminator):
1080
1081 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
1082
1083         Fix the WTF gyp build for GTK+.
1084
1085         * WTF.gyp/WTFGTK.gyp: Skip files with CF in the name.
1086
1087 2013-03-19  Alberto Garcia  <agarcia@igalia.com>
1088
1089         [BlackBerry] Enable USE_SYSTEM_MALLOC by default
1090         https://bugs.webkit.org/show_bug.cgi?id=112365
1091
1092         Reviewed by Benjamin Poulain.
1093
1094         Enable USE_SYSTEM_MALLOC by default via FeatureList.pm instead of
1095         harcoding it in wtf/Platform.h
1096
1097         * wtf/Platform.h:
1098
1099 2013-03-18  Benjamin Poulain  <benjamin@webkit.org>
1100
1101         [iOS] Make a UChar string equal() based on the LChar version
1102         https://bugs.webkit.org/show_bug.cgi?id=112495
1103
1104         Reviewed by David Kilzer.
1105
1106         * wtf/text/StringImpl.h:
1107         (WTF::equal):
1108         Create a equal() function for UChar based on the work done for LChar.
1109
1110         On A6, this is a speed up of about 40% for any string of 2 or more characters.
1111         It is slower by 8% on a single UChar comparison.
1112
1113 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
1114
1115         [WinCairo] Get build working under VS2010.
1116         https://bugs.webkit.org/show_bug.cgi?id=112604
1117
1118         Reviewed by Tim Horton.
1119
1120         * WTF.vcxproj/WTF.vcxproj: Add Debug_WinCairo and Release_WinCairo
1121         targets so headers get copied to appropriate build folder.
1122         * WTF.vcxproj/WTFGenerated.vcxproj: Ditto.
1123
1124 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
1125
1126         [iOS] Update StringImpl's equal to have a single version on all supported Apple CPUs
1127         https://bugs.webkit.org/show_bug.cgi?id=112400
1128
1129         Reviewed by Michael Saboff.
1130
1131         * wtf/text/StringImpl.h:
1132         (WTF::equal):
1133         Tweak the code to make it work on older Apple CPUs:
1134         -Use external "ouput" variable instead of the registers R9 and R12. This gets rid
1135          of some register pressure previously imposed on the compiler. (Clang nicely
1136          choose R9 and R12 when needed, following iOS ABI).
1137         -Instead of using "R3" for storing the length / 4, update the length by -4 on
1138          each iteration and work in the negative space for the tail. This frees one register
1139          which is then used for isEqual.
1140         -Get rid of the unconditional branch from the loop. By using subs and working in the
1141          negative space, we can test for the Carry flag to jump back to the next LDR.
1142
1143 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
1144
1145         [iOS] Fix the length pass to memcmp in the fallback versions of String's equal
1146         https://bugs.webkit.org/show_bug.cgi?id=112463
1147
1148         Reviewed by Ryosuke Niwa.
1149
1150         * wtf/text/StringImpl.h:
1151         (WTF::equal): It might be a good idea to compare the full UChar strings...
1152
1153 2013-03-15  Michael Saboff  <msaboff@apple.com>
1154
1155         Add runtime check for improper register allocations in DFG
1156         https://bugs.webkit.org/show_bug.cgi?id=112380
1157
1158         Reviewed by Geoffrey Garen.
1159
1160         * wtf/Platform.h: Added new ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION compilation flag to
1161         enable generation of register allocation checking.  This is on for debug builds.
1162
1163 2013-03-13  Jessie Berlin  <jberlin@apple.com>
1164
1165         Remove svn:executable from a file that isn't supposed to be executable.
1166
1167         Rubber-stamped by Geoff Garen.
1168
1169         * wtf/MediaTime.h:
1170
1171 2013-03-13  Oliver Hunt  <oliver@apple.com>
1172
1173         Simplify Checked<> multiplication
1174         https://bugs.webkit.org/show_bug.cgi?id=112286
1175
1176         Reviewed by James Robinson.
1177
1178         Trying to correctly identify multiplication by zero complicated the
1179         unsigned * unsigned multiply, and still didn't handle all cases correctly.
1180         Now we just do the normal division based approach to overflow detection
1181         leading to much simpler reasoning.
1182
1183         Would be nice if we could have a jo style intrinsic one day.
1184
1185         * wtf/CheckedArithmetic.h:
1186
1187 2013-03-13  Dean Jackson  <dino@apple.com>
1188
1189         Unreviewed attempted build fix for Windows. SchedulePair.cpp -> SchedulePairCF.cpp
1190
1191         * WTF.vcproj/WTF.vcproj:
1192         * WTF.vcxproj/WTF.vcxproj:
1193         * WTF.vcxproj/WTF.vcxproj.filters:
1194
1195 2013-03-13  Benjamin Poulain  <bpoulain@apple.com>
1196
1197         [iOS] Add optimized version of StringImpl's equal(LChar*,LChar*) for Apple CPUs
1198         https://bugs.webkit.org/show_bug.cgi?id=112202
1199
1200         Reviewed by Gavin Barraclough.
1201
1202         * Source/WTF/wtf/Platform.h:
1203         Make the macro WTF_ARM_ARCH_VERSION valid on any architecture.
1204         * wtf/text/StringImpl.h:
1205         (WTF::equal):
1206         On ARMv7S, the new version is about 11% percent faster than the simple loop.
1207         On ARMv7 classic, memcmp is a little faster than the simple loop on Apple A5.
1208
1209 2013-03-13  James Robinson  <jamesr@chromium.org>
1210
1211         SchedulePair.cpp is CF-specific
1212         https://bugs.webkit.org/show_bug.cgi?id=112204
1213
1214         Reviewed by Oliver Hunt.
1215
1216         This renames SchedulePair.cpp SchedulePairCF.cpp, since it depends on CF, and excludes it from chromium's gyp
1217         files.
1218
1219         * WTF.gyp/WTF.gyp:
1220           Add CF to the exclusion filter for the Chromium port.
1221         * WTF.gypi:
1222           Add SchedulePairCF.cpp
1223         * WTF.xcodeproj/project.pbxproj:
1224           Update project file to point to new .cpp location
1225         * wtf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePair.cpp.
1226
1227 2013-03-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1228
1229         Support C++11 features in GCC <4.6
1230         https://bugs.webkit.org/show_bug.cgi?id=111553
1231
1232         Reviewed by Simon Hausmann.
1233
1234         Enable support for rvalue references from gcc 4.3, deleted functions
1235         from gcc 4.4, explicit conversion from gcc 4.5, and strongly typed
1236         enums from gcc 4.6. 
1237
1238         * wtf/Compiler.h:
1239
1240 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
1241
1242         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
1243
1244         * wtf/SchedulePair.cpp:
1245         * wtf/SchedulePair.h:
1246         (WTF::SchedulePair::SchedulePair): Since linking is failing,
1247         try inlining this function.
1248
1249 2013-03-12  Tim Horton  <timothy_horton@apple.com>
1250
1251         Typo in earlier Windows build fix. Unreviewed.
1252
1253         * WTF.vcproj/WTF.vcproj:
1254
1255 2013-03-12  Tim Horton  <timothy_horton@apple.com>
1256
1257         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
1258
1259         * WTF.vcproj/WTF.vcproj:
1260         * WTF.vcxproj/WTF.vcxproj:
1261         * WTF.vcxproj/WTF.vcxproj.filters:
1262
1263 2013-03-12  James Robinson  <jamesr@chromium.org>
1264
1265         Build fix for r145592 - update gyp files to refer to new file locations.
1266
1267         * WTF.gypi:
1268
1269 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
1270
1271         Moved RunLoopTimer and SchedulePair to WTF
1272         https://bugs.webkit.org/show_bug.cgi?id=112171
1273
1274         Reviewed by Oliver Hunt.
1275
1276         This will allow us to use timers in lower level primitives without
1277         duplicating all the code.
1278
1279         * WTF.xcodeproj/project.pbxproj:
1280         * wtf/AutodrainedPool.h: Copied from Source/WebCore/platform/AutodrainedPool.h.
1281         (AutodrainedPool):
1282         * wtf/AutodrainedPoolMac.mm: Copied from Source/WebCore/platform/mac/AutodrainedPool.mm.
1283         * wtf/RunLoopTimer.h: Copied from Source/WebCore/platform/RunLoopTimer.h.
1284         * wtf/RunLoopTimerCF.cpp: Copied from Source/WebCore/platform/cf/RunLoopTimerCF.cpp.
1285         * wtf/SchedulePair.cpp: Copied from Source/WebCore/platform/cf/SchedulePair.cpp.
1286         * wtf/SchedulePair.h: Copied from Source/WebCore/platform/cf/SchedulePair.h.
1287         (SchedulePair):
1288         * wtf/SchedulePairMac.mm: Copied from Source/WebCore/platform/mac/SchedulePairMac.mm.
1289
1290 2013-03-12  Oliver Hunt  <oliver@apple.com>
1291
1292         Add more Checked<> tests
1293         https://bugs.webkit.org/show_bug.cgi?id=112190
1294
1295         Reviewed by Geoffrey Garen.
1296
1297         Export the CheckedState enum type
1298
1299         * wtf/CheckedArithmetic.h:
1300
1301 2013-03-12  Oliver Hunt  <oliver@apple.com>
1302
1303         Make CheckedArithmetic slightly more sane
1304         https://bugs.webkit.org/show_bug.cgi?id=112178
1305
1306         Reviewed by Geoffrey Garen.
1307
1308         Add an enum type for safeGet rather than using a bool,
1309         and correctly handle unsigned * unsigned, when one value
1310         is 0.
1311
1312         * wtf/CheckedArithmetic.h:
1313         (WTF::ENUM_CLASS):
1314         (WTF):
1315         (WTF::operator+):
1316         (WTF::operator-):
1317         (WTF::operator*):
1318
1319 2013-03-11  Michael Saboff  <msaboff@apple.com>
1320
1321         Unreviewed build fix.  Rolling out inadvertent setting of DATA_LOG_TO_FILE.
1322
1323 2013-03-11  Oliver Hunt  <oliver@apple.com>
1324
1325         Make SegmentedVector Noncopyable
1326         https://bugs.webkit.org/show_bug.cgi?id=112059
1327
1328         Reviewed by Geoffrey Garen.
1329
1330         Copying a SegmentedVector can be extraordinarily expensive, so we beat
1331         it with the Noncopyable stick - that way we can ensure that if anyone
1332         wants an actual copy they know what they're doing.
1333
1334         * wtf/SegmentedVector.h:
1335         (SegmentedVector):
1336
1337 2013-03-08  Benjamin Poulain  <benjamin@webkit.org>
1338
1339         [Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
1340         https://bugs.webkit.org/show_bug.cgi?id=111297
1341
1342         Reviewed by Kenneth Rohde Christiansen.
1343
1344         * wtf/FeatureDefines.h: Add a new feature flag for the view-mode
1345         CSS media: ENABLE_VIEW_MODE_CSS_MEDIA.
1346
1347 2013-03-08  Roger Fong  <roger_fong@apple.com>
1348
1349         Makefile fixes.
1350
1351         * WTF.vcxproj/WTF.make:
1352
1353 2013-03-08  Gabor Rapcsanyi  <rgabor@webkit.org>
1354
1355         Cache flush problem on ARMv7 JSC
1356         https://bugs.webkit.org/show_bug.cgi?id=111441
1357
1358         Reviewed by Zoltan Herczeg.
1359
1360         Not proper cache flush causing random crashes on ARMv7 Linux with V8 tests.
1361         The problem is similar to https://bugs.webkit.org/show_bug.cgi?id=77712.
1362         Change the cache fulsh mechanism similar to ARM traditinal and revert the
1363         temporary fix.
1364
1365         * wtf/OSAllocatorPosix.cpp:
1366         (WTF::OSAllocator::reserveUncommitted):
1367         (WTF::OSAllocator::decommit):
1368
1369 2013-03-07  Andrew Bortz  <andrew@abortz.net>
1370
1371         Replace Mersenne Twister random number generator with a simpler one.
1372         https://bugs.webkit.org/show_bug.cgi?id=111533
1373
1374         Reviewed by Adam Barth.
1375
1376         The new generator is only a single line long, but passes all the Diehard
1377         statistical tests and runs ~3x faster than the Mersenne Twister, with a
1378         guaranteed cycle length of 2^64 and only 8 bytes of state.
1379         
1380         * wtf/Platform.h: Mersenne Twister defines are no longer needed
1381         * wtf/RandomNumber.cpp:
1382         (WTF::Internal::initializeRandomNumber): State initialization
1383         (WTF::Internal::randomNumber): Actual implementation
1384         (WTF::randomNumber): We don't need to fall back on rand()-based generator anymore,
1385         so this code is greatly simplified.
1386         * wtf/RandomNumber.h:
1387         * wtf/RandomNumberSeed.h:
1388         (WTF::initializeRandomNumberGenerator): This code is no longer needed.
1389         Additionally, the code had an error, since rand() returns 32-bits, so each
1390         initializationBuffer's upper 16-bits has more bits set than random.
1391
1392 2013-03-06  Adenilson Cavalcanti  <cavalcantii@gmail.com>
1393
1394         Build fix: PageAllocationAligned no longer has executable flag
1395         https://bugs.webkit.org/show_bug.cgi?id=111659
1396
1397         Reviewed by Kentaro Hara.
1398
1399         Build fix: use false as parameter to execution flag.
1400
1401         * wtf/PageAllocationAligned.cpp:
1402         (WTF::PageAllocationAligned::allocate):
1403
1404 2013-03-06  Eric Seidel  <eric@webkit.org>
1405
1406         AtomicStringImpls are not safe to send between threads
1407         https://bugs.webkit.org/show_bug.cgi?id=111652
1408
1409         Reviewed by Benjamin Poulain.
1410
1411         We don't have this problem yet, but it's good to be safe.
1412
1413         * wtf/text/WTFString.cpp:
1414         (WTF::String::isSafeToSendToAnotherThread):
1415
1416 2013-03-06  Oliver Hunt  <oliver@apple.com>
1417
1418         Don't give PageAllocationAligned the option to allocate executable memory
1419         https://bugs.webkit.org/show_bug.cgi?id=111657
1420
1421         Reviewed by Geoffrey Garen.
1422
1423         * wtf/PageAllocationAligned.cpp:
1424         (WTF::PageAllocationAligned::allocate):
1425         * wtf/PageAllocationAligned.h:
1426         (PageAllocationAligned):
1427
1428 2013-03-04  Jer Noble  <jer.noble@apple.com>
1429
1430         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
1431         https://bugs.webkit.org/show_bug.cgi?id=107601
1432
1433         Reviewed by Beth Dakin.
1434
1435         Enable the CURSOR_VISIBILITY feature.
1436
1437         * wtf/FeatureDefines.h:
1438
1439 2013-03-04  Oliver Hunt  <oliver@apple.com>
1440
1441         Make fastmalloc use guardpages
1442         https://bugs.webkit.org/show_bug.cgi?id=111353
1443
1444         Reviewed by Anders Carlsson.
1445
1446         Add PROT_NONE pages at the beginning and end of every
1447         mmap call made by fastmalloc.
1448
1449         * wtf/TCSystemAlloc.cpp:
1450         (TryMmap):
1451
1452 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
1453
1454         Typo in inline function in ByteOrder.h
1455         https://bugs.webkit.org/show_bug.cgi?id=111473
1456
1457         Reviewed by Benjamin Poulain.
1458
1459         * wtf/ByteOrder.h:
1460         (ntohs):
1461
1462 2013-03-05  Ryuan Choi  <ryuan.choi@samsung.com>
1463
1464         [EFL] Build break with latest EFL libraries
1465         https://bugs.webkit.org/show_bug.cgi?id=111028
1466
1467         Reviewed by Dirk Pranke.
1468
1469         * wtf/PlatformEfl.cmake: Added ECORE_IMF_INCLUDE_DIRS.
1470
1471 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
1472
1473         Fix cast-align warning in ASCIIFastPath.h on ARM
1474         https://bugs.webkit.org/show_bug.cgi?id=111436
1475
1476         Reviewed by Benjamin Poulain.
1477
1478         * wtf/text/ASCIIFastPath.h:
1479         (WTF::charactersAreAllASCII):
1480
1481 2013-03-04  Laszlo Gombos  <l.gombos@samsung.com>
1482
1483         JSC_OBJC_API_ENABLED should be removed from FeatureDefines.h
1484         https://bugs.webkit.org/show_bug.cgi?id=111269
1485
1486         Reviewed by Mark Hahnenberg.
1487
1488         JSC_OBJC_API_ENABLED flag was added to FeatureDefines.h (r143637) 
1489         so that it could be used in WebCore.exp.in to determine whether 
1490         or not we should be exporting certain symbols based on whether 
1491         the WebKit-related portion of the JSC ObjC API was enabled.
1492         
1493         It turned out conditionally including certain symbols didn't
1494         work when building fat binaries, so it's not even necessary any more.
1495
1496         * wtf/FeatureDefines.h: Remove JSC_OBJC_API_ENABLED.
1497
1498 2013-03-04  Andreas Kling  <akling@apple.com>
1499
1500         Deque: Free internal buffer in clear().
1501         <http://webkit.org/b/111316>
1502         <rdar://problem/13336675>
1503
1504         Reviewed by Antti Koivisto.
1505
1506         525 kB progression on Membuster3.
1507
1508         * wtf/Deque.h:
1509         (WTF::::clear):
1510
1511 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
1512
1513         Add build flag for FontLoader
1514         https://bugs.webkit.org/show_bug.cgi?id=111289
1515
1516         Reviewed by Benjamin Poulain.
1517
1518         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
1519
1520         * wtf/FeatureDefines.h:
1521
1522 2013-02-27  Darin Adler  <darin@apple.com>
1523
1524         StringHasher functions require alignment that call sites do not all guarantee
1525         https://bugs.webkit.org/show_bug.cgi?id=110171
1526
1527         Reviewed by Benjamin Poulain.
1528
1529         The StringHasher class is optimized for clients who pass it two characters at
1530         a time. However, the function named addCharacters did not make this clear to
1531         clients, and one calculateStringHashAndLengthFromUTF8MaskingTop8Bits got it wrong.
1532         Fix by making addCharacters work regardless of hasher alignment and adding a new
1533         function, addCharactersAssumingAligned, for use when we want a faster path and can
1534         guarantee we are adding characters two at a time.
1535
1536         * wtf/StringHasher.h:
1537         (WTF::StringHasher::addCharactersAssumingAligned): Renamed the addCharacters function
1538         addCharactersAssumingAligned, since it only works if the hasher is currently aligned,
1539         meaning it contains an even number of characters. The function already asserts
1540         that this is true, but the calculateStringHashAndLengthFromUTF8MaskingTop8Bits
1541         function was using it in cases where the assertion could fire. Also updated to
1542         call addCharactersInternal by its new name. Also added some new overloads that take
1543         data pointers and lengths so callers can always use addCharactersAssumingAligned
1544         instead of addCharacters if they know the hasher is aligned.
1545         (WTF::StringHasher::addCharacter): Updated to call the public
1546         addCharactersAssumingAligned function since that's simpler and a bit cleaner.
1547         (WTF::StringHasher::addCharacters): Added functions with this name that handle
1548         the case where the hasher is not aligned. These will be called by existing call sites
1549         that were formerly using the function named addCharactersAssumingAligned above.
1550         Also add an overload that works with the default converter automatically.
1551         (WTF::StringHasher::computeHashAndMaskTop8Bits): Changed to call
1552         addCharactersAssumingAligned to eliminate copied and pasted code. The hasher is empty,
1553         so definitely aligned.
1554         (WTF::StringHasher::computeHash): Ditto.
1555         (WTF::StringHasher::addCharactersInternal): Renamed from addCharactersToHash, since
1556         the former name did not make clear how this differs from the public functions.
1557         The real difference is that this is like addCharactersAssumingAligned, but without
1558         the assertion, so addCharactersAssumingAligned is called instead, even within the
1559         class's implementation.
1560
1561 2013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
1562
1563         Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
1564         https://bugs.webkit.org/show_bug.cgi?id=110943
1565
1566         Reviewed by Yury Semikhatsky.
1567
1568         Unfortunately in many cases raw pointer may point to an object that has been deleted.
1569         There is no working solution to solve this problem in general.
1570         It could be solved only on case by case basis.
1571
1572         * wtf/MemoryInstrumentation.h:
1573         (WTF::MemoryInstrumentation::addObject):
1574         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
1575         (WTF::MemoryClassInfo::addMember):
1576         (WTF::MemoryInstrumentation::addObjectImpl):
1577         * wtf/MemoryInstrumentationString.h:
1578         (WTF::reportMemoryUsage):
1579
1580 2013-03-01  Eric Seidel  <eric@webkit.org>
1581
1582         Threaded HTML Parser has an extra copy of every byte from the network
1583         https://bugs.webkit.org/show_bug.cgi?id=111135
1584
1585         Reviewed by Adam Barth.
1586
1587         The threaded html parser needs to accept ownership
1588         of a string buffer.  The easiest way to do this seemed
1589         to be to use a PassRefPtr<StringImpl>, but there was no way
1590         to generated one from a String (easily), so I added one.
1591
1592         * wtf/text/WTFString.h:
1593         (WTF::String::releaseImpl):
1594
1595 2013-02-28  Oliver Hunt  <oliver@apple.com>
1596
1597         Crash in JSC::MarkedBlock::FreeList JSC::MarkedBlock::sweepHelper
1598         https://bugs.webkit.org/show_bug.cgi?id=111059
1599
1600         Reviewed by Ryosuke Niwa.
1601
1602         Sometimes C++'s implicit operator conversion rules suck.
1603         Add explicit operator== and !=.
1604
1605         * wtf/FastMalloc.cpp:
1606         (WTF::HardenedSLL::operator!=):
1607         (WTF::HardenedSLL::operator==):
1608         (HardenedSLL):
1609
1610 2013-02-28  Zeno Albisser  <zeno@webkit.org>
1611
1612         Enable DFG JIT for Qt on Mac
1613         https://bugs.webkit.org/show_bug.cgi?id=111095
1614
1615         Rubber-stamped by Simon Hausmann
1616
1617         * wtf/Platform.h:
1618
1619 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
1620
1621         [Mac] use HAVE() macro instead of version check
1622         https://bugs.webkit.org/show_bug.cgi?id=111087
1623
1624         Reviewed by Dean Jackson.
1625
1626         * wtf/Platform.h: Define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK.
1627
1628 2013-02-27  Balazs Kilvady  <kilvadyb@homejinni.com>
1629
1630         Bug in atomicIncrement implementation for MIPS GCC
1631         https://bugs.webkit.org/show_bug.cgi?id=110969
1632
1633         Reviewed by Csaba Osztrogonác.
1634
1635         Fix of __sync_[add|sub]_and_fetch_8 for GCC patch.
1636
1637         * wtf/Atomics.cpp:
1638
1639 2013-02-27  Simon Hausmann  <simon.hausmann@digia.com>
1640
1641         REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
1642         https://bugs.webkit.org/show_bug.cgi?id=108632
1643
1644         Reviewed by Csaba Osztrogonác.
1645
1646         It appears that mprotect() is very slow on ARM/Linux, so disable the
1647         approach of unreserved mappings there and fall back to overcomitting
1648         memory, based on Uli Schlachter's recommendation.
1649
1650         * wtf/OSAllocatorPosix.cpp:
1651         (WTF::OSAllocator::reserveUncommitted):
1652         (WTF::OSAllocator::decommit):
1653
1654 2013-02-26  Roger Fong  <roger_fong@apple.com>
1655
1656         Unreviewed. Build fix for VS2010 solution, take 2.
1657
1658         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1659
1660 2013-02-26  Roger Fong  <roger_fong@apple.com>
1661
1662         Unreviewed. Unreviewed build fix for VS2010 solution.
1663
1664         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1665
1666 2013-02-26  Balazs Kilvady  <kilvadyb@homejinni.com>
1667
1668         Fix the atomicIncrement implementation for MIPS GCC
1669         https://bugs.webkit.org/show_bug.cgi?id=106739
1670
1671         Reviewed by Oliver Hunt.
1672
1673         Implementation of missing __sync_[add|sub]_and_fetch_8 functions.
1674
1675         Some architectures, like MIPS32, don't have GCC implementation for
1676         builtin __sync_* functions with 64 bits variable size. GCC answer
1677         for the problem: If a target doesn't support atomic operations on
1678         certain variable sizes, you are out of luck with atomicity in that
1679         case (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8
1680         will support __atomic_* builtin functions for this purpose for all
1681         the GCC targets, but for current compilers we have to include our
1682         own implementation.
1683
1684         * GNUmakefile.list.am:
1685         * WTF.pro:
1686         * wtf/Atomics.cpp: Added.
1687         (WTF):
1688         (WTF::getSwapLock):
1689         (WTF::atomicStep):
1690         * wtf/CMakeLists.txt:
1691
1692 2013-02-26  Oliver Hunt  <oliver@apple.com>
1693
1694         Appease the QT bots.
1695
1696         * wtf/FastMalloc.cpp:
1697
1698 2013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
1699
1700         Implement JIT on Windows 64 bits
1701         https://bugs.webkit.org/show_bug.cgi?id=107965
1702
1703         Reviewed by Simon Hausmann.
1704
1705         * wtf/Platform.h:
1706
1707 2013-02-26  Oliver Hunt  <oliver@apple.com>
1708
1709         Appease static analyzer warning about null string passed to strlen
1710         https://bugs.webkit.org/show_bug.cgi?id=110658
1711
1712         Reviewed by Benjamin Poulain.
1713
1714         Add a null check before calling strlen
1715
1716         * wtf/Threading.cpp:
1717         (WTF::createThread):
1718
1719 2013-02-25  Ryosuke Niwa  <rniwa@webkit.org>
1720
1721         Build fix attempt after r143996.
1722
1723         * wtf/FastMalloc.cpp:
1724         (WTF):
1725
1726 2013-02-25  Roger Fong  <roger_fong@apple.com>
1727
1728         Unreviewed. Fix script to use WEBKIT_SOURCE for VS2010 property sheets instead of WEBKIT_LIBRARIES.
1729
1730         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1731
1732 2013-02-25  Oliver Hunt  <oliver@apple.com>
1733
1734         Add cookies to FastMalloc spans
1735         https://bugs.webkit.org/show_bug.cgi?id=110827
1736
1737         Reviewed by Michael Saboff.
1738
1739         Add a cookie to spans, and move some of the hardening around so
1740         that it's more useful.
1741
1742         * wtf/FastMalloc.cpp:
1743         (WTF::internalEntropyValue):
1744         (WTF::spanInitializerCookie):
1745         (WTF::Span::initCookie):
1746         (WTF::Span::clearCookie):
1747         (WTF::Span::isValid):
1748         (Span):
1749         (WTF::NewSpan):
1750         (WTF::DeleteSpan):
1751         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1752         (WTF::TCMalloc_Central_FreeList::Populate):
1753         (WTF::TCMalloc_ThreadCache::Deallocate):
1754         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1755
1756 2013-02-25  Jer Noble  <jer.noble@apple.com>
1757
1758         Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
1759         https://bugs.webkit.org/show_bug.cgi?id=110806
1760
1761         Reviewed by Alexey Proskuryakov.
1762
1763         Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
1764
1765         * wtf/FeatureDefines.h:
1766
1767 2013-02-23  Ilya Tikhonovsky  <loislo@chromium.org>
1768
1769         Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
1770         https://bugs.webkit.org/show_bug.cgi?id=110599
1771
1772         Reviewed by Yury Semikhatsky.
1773
1774         Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
1775         that were given us via MemoryInstrumentation calls.
1776         So I extended client api with registerString method that pushes the strings
1777         down to the serializer.
1778
1779         * wtf/MemoryInstrumentation.h:
1780         (MemoryInstrumentationClient):
1781         * wtf/MemoryObjectInfo.h:
1782         (WTF::MemoryObjectInfo::MemoryObjectInfo):
1783         (WTF::MemoryObjectInfo::setClassName):
1784         (WTF::MemoryObjectInfo::classNameId):
1785         (WTF::MemoryObjectInfo::setName):
1786         (WTF::MemoryObjectInfo::nameId):
1787         (MemoryObjectInfo):
1788
1789 2013-02-21  Brady Eidson  <beidson@apple.com>
1790
1791         Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
1792
1793         Rubberstamped by Geoff Garen.
1794
1795         * wtf/MathExtras.h:
1796         (WTF::fastLog2):
1797
1798 2013-02-21  Andy Estes  <aestes@apple.com>
1799
1800         TriState.h should be a Project header
1801         https://bugs.webkit.org/show_bug.cgi?id=110543
1802
1803         Rubber-stamped by Dan Bernstein.
1804
1805         WTF uses a script to copy headers to the build destination, so it isn't
1806         necessary to mark headers as Private/Public (and doing so can be problematic).
1807
1808         * WTF.xcodeproj/project.pbxproj: Mark TriState.h as a Project header.
1809
1810 2013-02-21  Roger Fong  <roger_fong@apple.com>
1811
1812         Unreviewed. Add executable property to cmd file.
1813         Required for executable files to maintain their executable permissions over svn.
1814
1815         * WTF.vcxproj/copy-files.cmd: Added property svn:executable.
1816
1817 2013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
1818
1819         Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
1820         https://bugs.webkit.org/show_bug.cgi?id=106059
1821
1822         Reviewed by Geoffrey Garen.
1823
1824         * wtf/FeatureDefines.h: Added enable flag for JSC Objective-C API so it can be used in
1825         export files.
1826
1827 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
1828
1829         A couple more 'make dist' fixes for WebKitGTK+.
1830
1831         * GNUmakefile.list.am: Add a missing file to the source list.
1832
1833 2013-02-20  Roger Fong  <roger_fong@apple.com>
1834
1835         Get VS2010 Solution B&I ready.
1836         <rdar://problem/1322988>
1837
1838         Rubberstamped by Timothy Horton.        
1839         
1840         Add Production configuration. 
1841         Add a WTF submit solution with a DebugSuffix configuration. 
1842         Modify WTF.make as necessary.
1843         
1844         * WTF.vcxproj: Added property svn:eol-style. Modified property svn:ignore.
1845         * WTF.vcxproj/WTF.make: Added.
1846         * WTF.vcxproj/WTF.submit.sln: Added.
1847         * WTF.vcxproj/WTF.vcxproj:
1848         * WTF.vcxproj/WTFCommon.props:
1849         * WTF.vcxproj/WTFGenerated.vcxproj:
1850         * WTF.vcxproj/WTFGeneratedProduction.props: Added.
1851         * WTF.vcxproj/WTFGeneratedRelease.props:
1852         * WTF.vcxproj/WTFProduction.props: Added.
1853         * WTF.vcxproj/WTFRelease.props:
1854         * WTF.vcxproj/copy-files.cmd:
1855
1856 2013-02-20  Oliver Hunt  <oliver@apple.com>
1857
1858         Moar hardening
1859         https://bugs.webkit.org/show_bug.cgi?id=110275
1860
1861         Reviewed by Mark Hahnenberg.
1862
1863         We now poison objects when they get freed, and verify that
1864         any object that is being freed is not poisoned.  If the
1865         object looks like it's poisoned we validate the freelist,
1866         and ensure the object is not already present.  If it is
1867         we crash.
1868
1869         On allocation, we ensure that the object being allocated
1870         is poisoned, then clear the poisoning fields.
1871
1872         * wtf/FastMalloc.cpp:
1873         (WTF::internalEntropyValue):
1874         (WTF):
1875         (WTF::freedObjectStartPoison):
1876         (WTF::freedObjectEndPoison):
1877         (TCMalloc_ThreadCache_FreeList):
1878         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1879         (WTF::TCMalloc_Central_FreeList::Populate):
1880         (WTF::TCMalloc_ThreadCache::Allocate):
1881         (WTF::TCMalloc_ThreadCache::Deallocate):
1882         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1883
1884 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1885
1886         Unreviewed, rolling out r143400.
1887         http://trac.webkit.org/changeset/143400
1888         https://bugs.webkit.org/show_bug.cgi?id=110290
1889
1890         breaks everything (instacrash launching Safari) (Requested by
1891         thorton on #webkit).
1892
1893         * wtf/FastMalloc.cpp:
1894         (WTF::internalEntropyValue):
1895         (WTF):
1896         (WTF::TCMalloc_Central_FreeList::Populate):
1897         (WTF::TCMalloc_ThreadCache::Allocate):
1898         (WTF::TCMalloc_ThreadCache::Deallocate):
1899
1900 2013-02-19  Oliver Hunt  <oliver@apple.com>
1901
1902         Moar hardening
1903         https://bugs.webkit.org/show_bug.cgi?id=110275
1904
1905         Reviewed by Anders Carlsson.
1906
1907         We now poison objects when they get freed, and verify that
1908         any object that is being freed is not poisoned.  If the
1909         object looks like it's poisoned we validate the freelist,
1910         and ensure the object is not already present.  If it is
1911         we crash.
1912
1913         On allocation, we ensure that the object being allocated
1914         is poisoned, then clear the poisoning fields.
1915
1916         * wtf/FastMalloc.cpp:
1917         (WTF::internalEntropyValue):
1918         (WTF):
1919         (WTF::freedObjectStartPoison):
1920         (WTF::freedObjectEndPoison):
1921         (TCMalloc_ThreadCache_FreeList):
1922         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1923         (WTF::TCMalloc_Central_FreeList::Populate):
1924         (WTF::TCMalloc_ThreadCache::Allocate):
1925         (WTF::TCMalloc_ThreadCache::Deallocate):
1926
1927 2013-02-18  Darin Adler  <darin@apple.com>
1928
1929         Style tweaks to StringHasher.h
1930         https://bugs.webkit.org/show_bug.cgi?id=110042
1931
1932         Reviewed by Alexey Proskuryakov.
1933
1934         I have a bug fix coming soon, but figured I'd separate out style tweaks and land them
1935         first to make that patch easier to undrestand.
1936
1937         * wtf/StringHasher.h: Tweak and rearrange comments a bit.
1938         (WTF::StringHasher::addCharacter): Use character instead of ch.
1939         (WTF::StringHasher::addCharacters): Use remainder instead of rem. Also capitalize the U
1940         that we use to make an unsigned 1 constant.
1941         (WTF::StringHasher::computeHashAndMaskTop8Bits): Ditto.
1942         (WTF::StringHasher::hashMemory): Change version that takes size as a template argument
1943         to call the version that takes the size at runtime, since both generate the same code
1944         anyway. Added a FIXME questioning why this function uses the "mask top 8 bits" version
1945         of the hash. Fix incorrect compile assertion that required sizes that are multiples
1946         of four. This function works on sizes that are multiples of two. Also fixed a spelling
1947         error where we called it a "multible".
1948         (WTF::StringHasher::defaultConverter): Use character instead of ch.
1949         (WTF::StringHasher::addCharactersToHash): Eliminated unnecessary local variable.
1950
1951 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
1952
1953         Make HexNumber functions return 8-bit strings
1954         https://bugs.webkit.org/show_bug.cgi?id=110152
1955
1956         Reviewed by Michael Saboff.
1957
1958         * wtf/HexNumber.h:
1959         (Internal):
1960         (WTF::Internal::hexDigitsForMode):
1961         (WTF::appendByteAsHex):
1962         (WTF::placeByteAsHexCompressIfPossible):
1963         (WTF::placeByteAsHex):
1964         (WTF::appendUnsignedAsHex):
1965         (WTF::appendUnsignedAsHexFixedSize):
1966         Use LChar everywhere.
1967
1968 2013-02-18  Benjamin Poulain  <bpoulain@apple.com>
1969
1970         Remove Vector::dataSlot(), it has no implementation
1971         https://bugs.webkit.org/show_bug.cgi?id=109999
1972
1973         Reviewed by Andreas Kling.
1974
1975         VectorBufferBase does not implement any function bufferSlot().
1976         The file only compiles because that part of the template is never
1977         instantiated.
1978
1979         * wtf/Vector.h:
1980
1981 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
1982
1983         Move ENABLE macros for WebCore out from Platform.h
1984         https://bugs.webkit.org/show_bug.cgi?id=105735
1985
1986         Unreviewed, build fix when NETSCAPE_PLUGIN_API is disabled.
1987
1988         Enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH even if
1989         NETSCAPE_PLUGIN_API is disabled (Qt, Efl, GTK, WX ports).
1990
1991         * wtf/FeatureDefines.h:
1992
1993 2013-02-18  Balazs Kilvady  <kilvadyb@homejinni.com>
1994
1995         MIPS DFG implementation.
1996         https://bugs.webkit.org/show_bug.cgi?id=101328
1997
1998         Reviewed by Oliver Hunt.
1999
2000         DFG implementation for MIPS.
2001
2002         * wtf/Platform.h:
2003
2004 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
2005
2006         Stop placing std::isfinite and std::signbit inside the global scope
2007         https://bugs.webkit.org/show_bug.cgi?id=109817
2008
2009         Reviewed by Darin Adler.
2010
2011         Prefix calls to the isfinite and signbit methods with std:: as the two
2012         methods are no longer being imported into the global scope.
2013
2014         On Solaris and OpenBSD platforms or when using Visual C++ the two methods
2015         are now defined (as incompatibility workarounds) inside the std namespace.
2016
2017         * wtf/DateMath.cpp:
2018         (WTF::timeClip):
2019         * wtf/DecimalNumber.h:
2020         (WTF::DecimalNumber::DecimalNumber):
2021         * wtf/MathExtras.h:
2022         (std):
2023         (std::isfinite):
2024         (std::signbit):
2025         (lrint):
2026         (wtf_pow):
2027         (decomposeDouble):
2028         * wtf/MediaTime.cpp:
2029         (WTF::MediaTime::createWithFloat):
2030         (WTF::MediaTime::createWithDouble):
2031         * wtf/dtoa.cpp:
2032         (WTF::dtoa):
2033
2034 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
2035
2036         Move ENABLE macros for WebCore out from Platform.h
2037         https://bugs.webkit.org/show_bug.cgi?id=105735
2038
2039         Reviewed by Darin Adler and Benjamin Poulain.
2040
2041         Introduce FeatureDefines.h by combining the existing rules from
2042         Platform.h and adding new rules for all the ENABLE flags that are
2043         listed in the FeatureFlags wiki.
2044
2045         The new rules are not used at the moment by any ports
2046         as the port specific build systems already define these flags
2047         so the !defined() guard will prevent redefinition of the macros.
2048
2049         * GNUmakefile.list.am: Add FeatureDefines.h.
2050         * WTF.gypi: Ditto.
2051         * WTF.pro: Ditto.
2052         * WTF.vcproj/WTF.vcproj: Ditto.
2053         * WTF.xcodeproj/project.pbxproj: Ditto.
2054         * wtf/CMakeLists.txt: Ditto.
2055         * wtf/FeatureDefines.h: Added.
2056         * wtf/Platform.h: Move macro definitions to FeatureDefines.h.
2057
2058 2013-02-16  Darin Adler  <darin@apple.com>
2059
2060         Remove redundant use of inline keyword in StringHasher.h
2061         https://bugs.webkit.org/show_bug.cgi?id=110036
2062
2063         Reviewed by Geoffrey Garen.
2064
2065         I have some other improvements for StringHasher.h, but wanted to get the simplest ones
2066         out of the way first.
2067
2068         * wtf/StringHasher.h: Remove inline keyword on functions inside the class definition,
2069         since functions defined inside the class are automatically inline.
2070
2071 2013-02-15  Martin Robinson  <mrobinson@igalia.com>
2072
2073         [GTK] Spread the gyp build files throughout the tree
2074         https://bugs.webkit.org/show_bug.cgi?id=109960
2075
2076         Reviewed by Dirk Pranke.
2077
2078         * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
2079
2080 2013-02-15  Anders Carlsson  <andersca@apple.com>
2081
2082         Add HashMap::isValidKey and HashSet::isValidValue
2083         https://bugs.webkit.org/show_bug.cgi?id=109977
2084
2085         Reviewed by Sam Weinig and Darin Adler.
2086
2087         Add helper functions for determining whether keys are valid, i.e. if
2088         they are _not_ empty or deleted according to the hash traits.
2089
2090         * wtf/HashMap.h:
2091         * wtf/HashSet.h:
2092
2093 2013-02-15  Laszlo Gombos  <l.gombos@samsung.com>
2094
2095         Remove support for RVCT version less than 4.0
2096         https://bugs.webkit.org/show_bug.cgi?id=109390
2097
2098         The 4.0 version of the RVCT compiler was 
2099         released in 2008. 
2100         
2101         Remove support for version older then 4.0 of RVCT, 
2102         and keep the support for newer RVCT versions.
2103
2104         Reviewed by Zoltan Herczeg.
2105
2106         * WTF.gypi: Remove StringExtras.cpp.
2107         * WTF.vcproj/WTF.vcproj: Remove StringExtras.cpp.
2108         * WTF.vcxproj/WTF.vcxproj: Remove StringExtras.cpp.
2109         * WTF.vcxproj/WTF.vcxproj.filters: Remove StringExtras.cpp.
2110         * WTF.xcodeproj/project.pbxproj: Remove StringExtras.cpp.
2111         * wtf/CMakeLists.txt: Remove StringExtras.cpp.
2112         * wtf/Compiler.h: Remove tests for RVCT_VERSION_AT_LEAST(3, 0, 0, 0).
2113         * wtf/Float32Array.h: Remove a quirk introduced for RVCT version <=2.2 .
2114         * wtf/Float64Array.h: Ditto.
2115         * wtf/Int16Array.h: Ditto.
2116         * wtf/Int32Array.h: Ditto.
2117         * wtf/Int8Array.h: Ditto.
2118         * wtf/MathExtras.h: Remove a quirk needed for RVCT version  <= 3.0.
2119         * wtf/Platform.h: Remove test for RVCT 4.0. Remove OS(RVCT).
2120         * wtf/StringExtras.cpp: Removed.
2121         * wtf/StringExtras.h: Remove a quirk introduced for RVCT version < 4.0.
2122         * wtf/Uint16Array.h: Remove a quirk introduced for RVCT version <= 2.2.
2123         * wtf/Uint32Array.h: Ditto.
2124         * wtf/Uint8Array.h: Ditto.
2125         * wtf/Uint8ClampedArray.h: Ditto.
2126
2127 2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2128
2129         Add CString operators for comparison with const char*
2130         https://bugs.webkit.org/show_bug.cgi?id=109947
2131
2132         Reviewed by Darin Adler.
2133
2134         Add operators to WTF::CString for equality/inequality comparison
2135         with const char* strings. This avoids constructing a CString
2136         from a const char* in such cases, which is can be expensive as
2137         it would copy it and call strlen().
2138
2139         * wtf/text/CString.cpp:
2140         (WTF::operator==): Use memcmp instead of strncmp to compare the
2141         CString buffers as we know they are the same size and we don't
2142         want to scan for terminating null byte.
2143         (WTF):
2144         * wtf/text/CString.h:
2145         (WTF):
2146         (WTF::operator!=):
2147
2148 2013-02-15  Geoffrey Garen  <ggaren@apple.com>
2149
2150         Merged the global function cache into the source code cache
2151         https://bugs.webkit.org/show_bug.cgi?id=108660
2152
2153         Reviewed by Sam Weinig.
2154
2155         Responding to review comments by Darin Adler.
2156
2157         * wtf/HashTraits.h: Added a using directive to simplify client code.
2158
2159 2013-02-14  Dan Bernstein  <mitz@apple.com>
2160
2161         No easy way to use a RetainPtr as a key in a HashMap using object (rather than pointer) equality
2162         https://bugs.webkit.org/show_bug.cgi?id=109864
2163
2164         Reviewed by Sam Weinig and Benjamin Poulain.
2165
2166         Added RetainPtrObjectHashTraits and RetainPtrObjectHash, which use CFEqual
2167         and CFHash.
2168
2169         * wtf/RetainPtr.h:
2170         (RetainPtrObjectHashTraits):
2171         (WTF::RetainPtrObjectHashTraits::emptyValue):
2172         (WTF::RetainPtrObjectHashTraits::constructDeletedValue):
2173         (WTF::RetainPtrObjectHashTraits::isDeletedValue):
2174         (WTF):
2175         (WTF::RetainPtrObjectHash::hash):
2176         (WTF::RetainPtrObjectHash::equal):
2177         (RetainPtrObjectHash):
2178
2179 2013-02-14  Tony Chang  <tony@chromium.org>
2180
2181         Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
2182         https://bugs.webkit.org/show_bug.cgi?id=96934
2183
2184         * WTF.vcproj/WTF.sln: Modified property svn:eol-style.
2185
2186 2013-02-14  Tony Chang  <tony@chromium.org>
2187
2188         Unreviewed, set svn:eol-style CRLF for .sln files.
2189
2190         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
2191
2192 2013-02-14  David Kilzer  <ddkilzer@apple.com>
2193
2194         [Mac] Clean up WARNING_CFLAGS
2195         <http://webkit.org/b/109747>
2196         <rdar://problem/13208373>
2197
2198         Reviewed by Mark Rowe.
2199
2200         * Configurations/Base.xcconfig: Use
2201         GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
2202         -Wshorten-64-to-32 rather than WARNING_CFLAGS.
2203
2204         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
2205
2206 2013-02-14  Eric Seidel  <eric@webkit.org>
2207
2208         String(Vector) behaves differently from String(vector.data(), vector.size()) for vectors with inline capacity in the size=0 case
2209         https://bugs.webkit.org/show_bug.cgi?id=109784
2210
2211         Reviewed by Darin Adler.
2212
2213         This makes String(Vector) never return null strings.
2214         Which matches behavior of String(UChar*, size_t)
2215         for vectors with inlineCapacity, but differs from
2216         String(UChar*, size_t) in the no-inlineCapacity case.
2217
2218         This incidentally will fix a behavioral regression
2219         in the html threaded parser which came from converting
2220         many String(UChar*, size_t) callsites to using String(Vector).
2221
2222         * wtf/text/WTFString.h:
2223         (String):
2224         (WTF::String::String):
2225
2226 2013-02-14  Eric Seidel  <eric@webkit.org>
2227
2228         REGRESSION(r142712): attribute values show up as "(null)" instead of null with the threaded parser
2229         https://bugs.webkit.org/show_bug.cgi?id=109784
2230
2231         Reviewed by Benjamin Poulain.
2232
2233         When I changed many callsites to use the (existing) String(Vector) constructor
2234         I inadvertantly made those callsites convert empty vectors to null strings
2235         instead of empty strings (like String(UChar,size_t) does).
2236
2237         This is due to an oddity/bug in our Vector implementation where data()
2238         will be 0 if the Vector is empty, but only if it doesn't have inline capacity.
2239         https://bugs.webkit.org/show_bug.cgi?id=109792
2240
2241         This changes String(Vector) to exactly match the behavior of String(vector.data(), vector.size()).
2242
2243         This regression was easily detectable with the threaded parser, because we use String
2244         instead of AtomicString in our CompactToken (used to send the Token data
2245         between threads). The main-thread parser path uses AtomicHTMLToken which
2246         uses AtomicString(Vector) and does not have this bug.
2247
2248         * wtf/text/WTFString.h:
2249         (String):
2250         (WTF::String::String):
2251
2252 2013-02-13  Zan Dobersek  <zdobersek@igalia.com>
2253
2254         The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
2255         https://bugs.webkit.org/show_bug.cgi?id=109325
2256
2257         Reviewed by Anders Carlsson.
2258
2259         Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
2260         two methods as they're provided by the C++ standard library being used.
2261
2262         * wtf/Compiler.h: Remove the global isinf/isnan compiler quirk definitions. They're not required anymore.
2263         * wtf/DateMath.cpp: Move the workaround for isinf on Solaris into the std namespace. Ditto for isinf and isnan
2264         when using MSVC. Stop bringing the isinf and isnan methods into the global scope when using other configurations.
2265         (WTF::parseDateFromNullTerminatedCharacters):
2266         * wtf/IntegralTypedArrayBase.h:
2267         (WTF::IntegralTypedArrayBase::set):
2268         * wtf/MathExtras.h:
2269         (std):
2270         (std::isinf):
2271         (wtf_fmod):
2272         (wtf_pow):
2273         (doubleToInteger):
2274         * wtf/MediaTime.cpp:
2275         (WTF::MediaTime::createWithFloat):
2276         (WTF::MediaTime::createWithDouble):
2277         * wtf/Uint8ClampedArray.h:
2278         (WTF::Uint8ClampedArray::set):
2279
2280 2013-02-13  Eric Seidel  <eric@webkit.org>
2281
2282         Don't copy Vector<UChar> when passing to new String methods from bug 109617
2283         https://bugs.webkit.org/show_bug.cgi?id=109708
2284
2285         Reviewed by Tony Gentilcore.
2286
2287         Thanks for the catch Darin.
2288
2289         * wtf/text/AtomicString.h:
2290         (WTF::AtomicString::AtomicString):
2291         * wtf/text/StringImpl.h:
2292         (WTF::StringImpl::create8BitIfPossible):
2293
2294 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
2295
2296         [GTK] Remove remaining dead code from the GLib unicode backend
2297         https://bugs.webkit.org/show_bug.cgi?id=109707
2298
2299         Reviewed by Philippe Normand.
2300
2301         * wtf/unicode/Unicode.h:
2302
2303 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
2304
2305         Unreviewed Chromium gyp-file cleanup after glib backend removal.
2306         https://bugs.webkit.org/show_bug.cgi?id=109672
2307
2308         Removed references to GLib unicode backend:
2309
2310         * WTF.gyp/WTF.gyp:
2311         * WTF.gypi:
2312
2313 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
2314
2315         [GTK] Remove the GLib unicode backend
2316         https://bugs.webkit.org/show_bug.cgi?id=109627
2317
2318         Reviewed by Benjamin Poulain.
2319
2320         Remove references to the GLib unicode backend from WTF.
2321
2322         * GNUmakefile.list.am: Remove GLib unicode files from the source list.
2323         * wtf/unicode/glib/UnicodeGLib.cpp: Removed.
2324         * wtf/unicode/glib/UnicodeGLib.h: Removed.
2325
2326 2013-02-12  Takeshi Yoshino  <tyoshino@google.com>
2327
2328         Remove unnecessary and confusing includes from StreamBuffer.h.
2329         https://bugs.webkit.org/show_bug.cgi?id=109652
2330
2331         Reviewed by Benjamin Poulain.
2332
2333         StreamBuffer.h is using OwnPtr for storing Vectors into a Deque.
2334         FixedArray.h and PassOwnPtr.h are included but not used.
2335
2336         VectorTraits defines how to move OwnPtr in Vector. It's done by memcpy.
2337         So, there's no need for PassOwnPtr (Deque<PassOwnPtr<Vector<char> > >
2338         is even slower).
2339
2340         * wtf/StreamBuffer.h:
2341
2342 2013-02-12  Eric Seidel  <eric@webkit.org>
2343
2344         Teach more WTF string classes about vectors with inline capacity
2345         https://bugs.webkit.org/show_bug.cgi?id=109617
2346
2347         Reviewed by Benjamin Poulain.
2348
2349         The HTML and WebVTT parsers use constructions like:
2350         AtomicString name(m_name.data(), m_name.size())
2351         all over the place because they use inline capacity
2352         on the parse vectors for performance.
2353
2354         This change just add the necessary template variants
2355         to the related String constructors/methods in WTF so that
2356         this parser code can just pass the vector directly instead.
2357
2358         I'll do the actual parser cleanups in follow-up patches to keep things simple.
2359
2360         * wtf/text/AtomicString.h:
2361         (AtomicString):
2362         (WTF::AtomicString::AtomicString):
2363         * wtf/text/StringImpl.h:
2364         (StringImpl):
2365         (WTF::StringImpl::create8BitIfPossible):
2366         * wtf/text/WTFString.h:
2367         (String):
2368         (WTF::String::make8BitFrom16BitSource):
2369         (WTF):
2370         (WTF::append):
2371
2372 2013-02-11  Oliver Hunt  <oliver@apple.com>
2373
2374         Build fix.
2375
2376         * wtf/FastMalloc.cpp:
2377         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
2378
2379 2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
2380
2381         Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
2382         https://bugs.webkit.org/show_bug.cgi?id=109534
2383
2384         Reviewed by Anders Carlsson.
2385
2386         * wtf/Platform.h:
2387
2388 2013-02-11  David Kilzer  <ddkilzer@apple.com>
2389
2390         [iOS] Upstream changes to Platform.h
2391         <http://webkit.org/b/109459>
2392
2393         Reviewed by Benjamin Poulain.
2394
2395         * wtf/Platform.h:
2396         - Changes for armv7s.
2397         - Add ENABLE() definitions for DASHBOARD_SUPPORT and WEBGL.
2398         - Re-sort ENABLE() and USE() macros.
2399         - Remove ENABLE() macros for JIT, LLINT and YARR_JIT to enable
2400           on iOS Simulator.  They are already defined below.
2401         - Turn off HAVE(HOSTED_CORE_ANIMATION) for iOS.
2402         - Turn on USE(COREMEDIA) for iOS 6.0 and later.
2403
2404 2013-02-08  Oliver Hunt  <oliver@apple.com>
2405
2406         Harden FastMalloc (again)
2407         https://bugs.webkit.org/show_bug.cgi?id=109334
2408
2409         Reviewed by Mark Hahnenberg.
2410
2411         Re-implement hardening of linked lists in TCMalloc.
2412
2413         In order to keep heap introspection working, we need to thread the
2414         heap entropy manually as the introspection process can't use the
2415         address of a global in determining the mask.  Given we now have to
2416         thread a value through anyway, I've stopped relying on ASLR for entropy
2417         and am simply using arc4random() on darwin, and time + ASLR everywhere
2418         else.
2419
2420         I've also made an explicit struct type for the FastMalloc singly linked
2421         lists, as it seemed like the only way to reliably distinguish between
2422         void*'s that were lists vs. void* that were not.  This also made it
2423         somewhat easier to reason about things across processes.
2424
2425         Verified that all the introspection tools work as expected.
2426
2427         * wtf/FastMalloc.cpp:
2428         (WTF::internalEntropyValue):
2429         (WTF):
2430         (HardenedSLL):
2431         (WTF::HardenedSLL::create):
2432         (WTF::HardenedSLL::null):
2433         (WTF::HardenedSLL::setValue):
2434         (WTF::HardenedSLL::value):
2435         (WTF::HardenedSLL::operator!):
2436         (WTF::HardenedSLL::operator UnspecifiedBoolType):
2437         (TCEntry):
2438         (WTF::SLL_Next):
2439         (WTF::SLL_SetNext):
2440         (WTF::SLL_Push):
2441         (WTF::SLL_Pop):
2442         (WTF::SLL_PopRange):
2443         (WTF::SLL_PushRange):
2444         (WTF::SLL_Size):
2445         (PageHeapAllocator):
2446         (WTF::PageHeapAllocator::Init):
2447         (WTF::PageHeapAllocator::New):
2448         (WTF::PageHeapAllocator::Delete):
2449         (WTF::PageHeapAllocator::recordAdministrativeRegions):
2450         (WTF::Span::next):
2451         (WTF::Span::remoteNext):
2452         (WTF::Span::prev):
2453         (WTF::Span::setNext):
2454         (WTF::Span::setPrev):
2455         (Span):
2456         (WTF::DLL_Init):
2457         (WTF::DLL_Remove):
2458         (WTF::DLL_IsEmpty):
2459         (WTF::DLL_Length):
2460         (WTF::DLL_Prepend):
2461         (TCMalloc_Central_FreeList):
2462         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
2463         (WTF::TCMalloc_Central_FreeList::entropy):
2464         (TCMalloc_PageHeap):
2465         (WTF::TCMalloc_PageHeap::init):
2466         (WTF::TCMalloc_PageHeap::scavenge):
2467         (WTF::TCMalloc_PageHeap::New):
2468         (WTF::TCMalloc_PageHeap::AllocLarge):
2469         (WTF::TCMalloc_PageHeap::Carve):
2470         (WTF::TCMalloc_PageHeap::Delete):
2471         (WTF::TCMalloc_PageHeap::ReturnedBytes):
2472         (WTF::TCMalloc_PageHeap::Check):
2473         (WTF::TCMalloc_PageHeap::CheckList):
2474         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
2475         (TCMalloc_ThreadCache_FreeList):
2476         (WTF::TCMalloc_ThreadCache_FreeList::Init):
2477         (WTF::TCMalloc_ThreadCache_FreeList::empty):
2478         (WTF::TCMalloc_ThreadCache_FreeList::Push):
2479         (WTF::TCMalloc_ThreadCache_FreeList::PushRange):
2480         (WTF::TCMalloc_ThreadCache_FreeList::PopRange):
2481         (WTF::TCMalloc_ThreadCache_FreeList::Pop):
2482         (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects):
2483         (TCMalloc_ThreadCache):
2484         (WTF::TCMalloc_Central_FreeList::Init):
2485         (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans):
2486         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
2487         (WTF::TCMalloc_Central_FreeList::InsertRange):
2488         (WTF::TCMalloc_Central_FreeList::RemoveRange):
2489         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
2490         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
2491         (WTF::TCMalloc_Central_FreeList::Populate):
2492         (WTF::TCMalloc_ThreadCache::Init):
2493         (WTF::TCMalloc_ThreadCache::Deallocate):
2494         (WTF::TCMalloc_ThreadCache::FetchFromCentralCache):
2495         (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache):
2496         (WTF::TCMalloc_ThreadCache::InitModule):
2497         (WTF::TCMalloc_ThreadCache::NewHeap):
2498         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2499         * wtf/MallocZoneSupport.h:
2500         (RemoteMemoryReader):
2501
2502 2013-02-11  Enrica Casucci  <enrica@apple.com>
2503
2504         Add ENABLE_DELETION_UI to control the use of the deletion UI.
2505         https://bugs.webkit.org/show_bug.cgi?id=109463.
2506         
2507         ENABLE_DELETION_UI is set to 1 by default for
2508         all ports. It is explicitly enabled for MAC and disabled for iOS.
2509
2510         Reviewed by Ryosuke Niwa.
2511
2512         * wtf/Platform.h:
2513
2514 2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2515
2516         [EFL] Stop using smart pointers for Ecore_Timer
2517         https://bugs.webkit.org/show_bug.cgi?id=109409
2518
2519         Reviewed by Kenneth Rohde Christiansen.
2520
2521         Remove support in OwnPtr for EFL's Ecore_Timer. It is a bad idea to use
2522         OwnPtr for Ecore_Timer because the timer handle may become invalid.
2523
2524         * wtf/OwnPtrCommon.h:
2525         (WTF):
2526         * wtf/efl/OwnPtrEfl.cpp:
2527
2528 2013-02-11  Abhishek Arya  <inferno@chromium.org>
2529
2530         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
2531         https://bugs.webkit.org/show_bug.cgi?id=108981
2532
2533         Reviewed by Eric Seidel.
2534
2535         * wtf/BitVector.h:
2536         (WTF::BitVector::quickGet):
2537         (WTF::BitVector::quickSet):
2538         (WTF::BitVector::quickClear):
2539         * wtf/DecimalNumber.h:
2540         (WTF::DecimalNumber::DecimalNumber):
2541         * wtf/SegmentedVector.h:
2542         (WTF::SegmentedVector::ensureSegment):
2543         * wtf/StringPrintStream.cpp:
2544         (WTF::StringPrintStream::vprintf):
2545         * wtf/Vector.h:
2546         (WTF::::insert):
2547         (WTF::::remove):
2548         * wtf/dtoa/utils.h:
2549         (WTF::double_conversion::StringBuilder::SetPosition):
2550         (WTF::double_conversion::StringBuilder::AddSubstring):
2551
2552 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
2553
2554         Consolidate the way WTF_USE_PTHREADS is enabled
2555         https://bugs.webkit.org/show_bug.cgi?id=108191
2556
2557         Reviewed by Benjamin Poulain.
2558
2559         Define WTF_USE_PTHREADS to 1 on all OS(UNIX) environments.
2560
2561         * WTF.gyp/WTF.gyp: Remove duplicated definition of WTF_USE_PTHREADS.
2562         * wtf/Platform.h:
2563
2564 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
2565
2566         Refactor the way HAVE_XXX macros are set
2567         https://bugs.webkit.org/show_bug.cgi?id=108132
2568
2569         Reviewed by Benjamin Poulain.
2570
2571         OS(WINDOWS) and OS(UNIX) are so broadly defined that for each
2572         builds exactly one of them is enabled. Use this assumption to
2573         cleanup Platform.h.
2574
2575         * wtf/Platform.h:
2576
2577 2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
2578
2579         Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
2580         https://bugs.webkit.org/show_bug.cgi?id=104266
2581
2582         Reviewed by Philippe Normand.
2583
2584         Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
2585         the existing macro naming conventions.
2586
2587         From Platform.h
2588         USE() - use a particular third-party library or optional OS service
2589         ENABLE() - turn on a specific feature of WebKit
2590
2591         * WTF.pri:
2592         * wtf/Platform.h:
2593         * wtf/gobject/GOwnPtr.cpp:
2594         * wtf/gobject/GOwnPtr.h:
2595         * wtf/gobject/GRefPtr.cpp:
2596         * wtf/gobject/GRefPtr.h:
2597
2598 2013-02-08  Michael Saboff  <msaboff@apple.com>
2599
2600         ARM_NEON Inline Assembly for copyLCharsFromUCharSource() inefficient for aligned destinations
2601         https://bugs.webkit.org/show_bug.cgi?id=109335
2602
2603         Reviewed by Filip Pizlo.
2604
2605         Change a "do while" to a "while" so that we don't copy single characters to align the 
2606         destination when it is already aligned.
2607
2608         * wtf/text/ASCIIFastPath.h:
2609         (WTF::copyLCharsFromUCharSource):
2610
2611 2013-02-08  Jer Noble  <jer.noble@apple.com>
2612
2613         Bring WebKit up to speed with latest Encrypted Media spec.
2614         https://bugs.webkit.org/show_bug.cgi?id=97037
2615
2616         Reviewed by Eric Carlson.
2617
2618         Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.
2619
2620         * wtf/Platform.h:
2621
2622 2013-02-08  Adam Barth  <abarth@webkit.org>
2623
2624         Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
2625         https://bugs.webkit.org/show_bug.cgi?id=107190
2626
2627         Reviewed by Eric Seidel.
2628
2629         Add the ability to create an unbound weak reference. This facility lets
2630         you start sending messages to a WeakPtr on another thread before the
2631         object backing the WeakPtr has actually been created.
2632
2633         * wtf/WeakPtr.h:
2634         (WTF::WeakReference::createUnbound):
2635         (WTF::WeakReference::bindTo):
2636         (WeakReference):
2637         (WTF::WeakReference::WeakReference):
2638         (WTF::WeakPtr::WeakPtr):
2639         (WeakPtr):
2640         (WTF::WeakPtrFactory::WeakPtrFactory):
2641         (WeakPtrFactory):
2642         (WTF::WeakPtrFactory::revokeAll):
2643
2644 2013-02-08  Martin Robinson  <mrobinson@igalia.com>
2645
2646         [GTK] Add an experimental gyp build
2647         https://bugs.webkit.org/show_bug.cgi?id=109003
2648
2649         Reviewed by Gustavo Noronha Silva.
2650
2651         * WTF.gyp/WTF.gyp: Filter out MetaAllocator.(cpp/h) from the Chromium
2652         build. It's only necessary for GTK+.
2653         * WTF.gypi: Add MetaAllocator to the build for WebKitGTK+.
2654
2655 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
2656
2657         Web Inspector: Native Memory Instrumentation: reportBaseAddress needs to be called after the reportNode. So it may reuse the node index for the real address.
2658         https://bugs.webkit.org/show_bug.cgi?id=109051
2659
2660         Reviewed by Yury Semikhatsky.
2661
2662         * wtf/MemoryInstrumentation.cpp:
2663         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
2664
2665 2013-02-07  David Kilzer  <ddkilzer@apple.com>
2666
2667         Fix #endif comment from r142163 and r142183
2668
2669         * wtf/MainThread.h:
2670         (WTF): s/PLATFORM/USE/
2671
2672 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
2673
2674         Fix an incorrect comment from r142163
2675
2676         Unreviewed.
2677
2678         * wtf/MainThread.h:
2679         I accidentally copied PLATFORM(IOS) instead of USE(WEB_THREAD) for the #ifdef closing.
2680
2681 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
2682
2683         Upstream iOS isWebThread() and isUIThread()
2684         https://bugs.webkit.org/show_bug.cgi?id=109130
2685
2686         Reviewed by Sam Weinig.
2687
2688         On iOS, it is sometimes necessary to differenciate the thread running WebCore,
2689         and the thread running the UI. This patch upstream those functions.
2690
2691         * wtf/MainThread.cpp:
2692         * wtf/MainThread.h:
2693         Disable the legacy initializer as it is incorrect when using the WebThread to run WebCore.
2694         (WTF::isWebThread):
2695         (WTF::isUIThread):
2696         Return true when the current thread is the Web/UI thread.
2697
2698         * wtf/mac/MainThreadMac.mm:
2699         (WTF::isUIThread):
2700         (WTF::isWebThread):
2701
2702         * wtf/text/AtomicString.cpp:
2703         (WTF::AtomicStringTable::create):
2704         Use the newly added methods.
2705
2706 2013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2707
2708         [Qt] Fix build without 3D_GRAPHICS
2709         https://bugs.webkit.org/show_bug.cgi?id=109194
2710
2711         Reviewed by Noam Rosenthal.
2712
2713         Now that Coordinated Graphics was moved to WebCore, we need to explicitly enable
2714         it when we have 3D_GRAPHICS. This dependency was implicitly by the fact that
2715         3D_GRAPHICS is a dependency of WebKit2 and Coordinated Graphics was only
2716         available there. This should fix build for Qt SH4 Linux.
2717
2718         * wtf/Platform.h:
2719
2720 2013-02-06  Zan Dobersek  <zdobersek@igalia.com>
2721
2722         [WTFURL] Fix erroneous header inclusions in WTFURL code
2723         https://bugs.webkit.org/show_bug.cgi?id=109040
2724
2725         Reviewed by Benjamin Poulain.
2726
2727         Include WTFURL API headers from files in Source/WTF/wtf/url/src
2728         by specifying their relative path to Source/WTF. 
2729
2730         * GNUmakefile.am: The changes make it possible to compile the WTF library
2731         without specifying both Source/WTF/wtf/url/api and Source/WTF/wtf/url/src
2732         as inclusion directories in CPPFLAGS, so remove these two entries.
2733         * wtf/url/src/RawURLBuffer.h:
2734         * wtf/url/src/URLCanon.h: Include the URLParse.h header by specifying
2735         only the base name as it's located in the same directory.
2736         * wtf/url/src/URLCanonQuery.cpp:
2737         * wtf/url/src/URLUtil.h:
2738
2739 2013-02-06  Tony Gentilcore  <tonyg@chromium.org>
2740
2741         Call XSSAuditor's didBlockScript() for the threaded HTML parser
2742         https://bugs.webkit.org/show_bug.cgi?id=108726
2743
2744         Reviewed by Adam Barth.
2745
2746         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
2747         These methods check to ensure there are 0 or 1 references.
2748
2749         * wtf/text/CString.cpp:
2750         (WTF::CString::isSafeToSendToAnotherThread): Added.
2751         (WTF):
2752         * wtf/text/CString.h:
2753         (CString):
2754         * wtf/text/WTFString.cpp:
2755         (WTF::String::isSafeToSendToAnotherThread): Added.
2756         (WTF):
2757         * wtf/text/WTFString.h:
2758         (String):
2759         * wtf/url/api/ParsedURL.h:
2760         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
2761         * wtf/url/api/URLString.h:
2762         (WTF::URLString::isSafeToSendToAnotherThread): Added.
2763
2764 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
2765
2766         Web Inspector: Native Memory Instrumentation: assign class name to the heap graph node automatically
2767         https://bugs.webkit.org/show_bug.cgi?id=107262
2768
2769         Reviewed by Yury Semikhatsky.
2770
2771         We need a way to calculate class name for a pointer automatically.
2772         Otherwise we need to write className manually in all the instrumentation methods.
2773         And for all reported but not instrumented classes.
2774
2775         C++ can do that for us with help of typeid but unfortunatelly it requires rtti.
2776         There is another way to do that. C++ preprocessor provides a define which has a function name.
2777
2778         For g++ and clang it is __PRETTY_FUNCTION__.
2779         For MSVC it is __FUNCTION__.
2780         The content of the string is a function signature.
2781         We can use it because it has the name of the template argument.
2782         The format is sligthly different. That's why I made two different parsers.
2783         One for MSVC the other for GCC, Clang etc.
2784         The other problem is the resulting binary size.
2785         I made very simple function that does the only thing, returns the smallest possible function signature.
2786         Unfortunatelly MSVC doesn't generate template argument name for functions.
2787         It does this only for classes.
2788
2789         * wtf/MemoryInstrumentation.cpp:
2790         (WTF):
2791         (WTF::className):
2792         (WTF::MemoryClassInfo::callReportObjectInfo):
2793         (WTF::MemoryClassInfo::init):
2794         * wtf/MemoryInstrumentation.h:
2795         (WTF):
2796         (WTF::FN::fn):
2797         (WTF::fn):
2798         (WTF::MemoryClassInfo::MemoryClassInfo):
2799         (MemoryClassInfo):
2800         (WTF::::reportObjectMemoryUsage):
2801
2802 2013-02-05  Mark Lam  <mark.lam@apple.com>
2803
2804         Fix EnumClass so that it can be used with switch statements.
2805         https://bugs.webkit.org/show_bug.cgi?id=109004.
2806
2807         Reviewed by Sam Weinig.
2808
2809         * wtf/EnumClass.h:
2810         (WTF::EnumClass::operator==):
2811         (WTF::EnumClass::operator!=):
2812         (WTF::EnumClass::operator<):
2813         (WTF::EnumClass::operator<=):
2814         (WTF::EnumClass::operator>):
2815         (WTF::EnumClass::operator>=):
2816         (EnumClass):
2817         (WTF::EnumClass::operator Value):
2818
2819 2013-02-05  Oliver Hunt  <oliver@apple.com>
2820
2821         Disable TCMalloc hardening as it's breaking leaks.
2822
2823         Reviewed by Gavin Barraclough.
2824
2825         * wtf/FastMalloc.cpp:
2826
2827 2013-02-05  Mark Lam  <mark.lam@apple.com>
2828
2829         Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
2830         https://bugs.webkit.org/show_bug.cgi?id=108988.
2831
2832         Reviewed by Alexey Proskuryakov.
2833
2834         * wtf/EnumClass.h:
2835
2836 2013-02-05  Roger Fong  <roger_fong@apple.com>
2837
2838         Unreviewed build fix.
2839
2840         * wtf/FastMalloc.cpp:
2841
2842 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2843
2844         Tidy up StackBounds
2845         https://bugs.webkit.org/show_bug.cgi?id=108889
2846
2847         Reviewed by Ryosuke Niwa.
2848
2849         * wtf/StackBounds.h:
2850         (StackBounds):
2851         (WTF::StackBounds::isSafeToRecurse):
2852         (WTF::StackBounds::size):
2853         Adopt a more conventional style for a multiline branch.
2854
2855         (WTF::StackBounds::StackBounds):
2856         (WTF::StackBounds::current):
2857         (WTF::StackBounds::recursionLimit):
2858         Make those method private.
2859
2860         Making the constructor private ensure initialize() is alwasy called on any StackBounds.
2861
2862 2013-02-05  Zan Dobersek  <zdobersek@igalia.com>
2863
2864         [WTFURL] Comparison between signed and unsigned integer expressions in URLUtil.cpp
2865         https://bugs.webkit.org/show_bug.cgi?id=108955
2866
2867         Reviewed by Benjamin Poulain.
2868
2869         * wtf/url/src/URLUtil.cpp:
2870         (URLUtilities): Make the counter variable a signed integer to get rid of the warning.
2871
2872 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2873
2874         Rationalize the use of iOS/Mac #defines in Assertions.cpp
2875         https://bugs.webkit.org/show_bug.cgi?id=108870
2876
2877         Reviewed by David Kilzer.
2878
2879         * wtf/Assertions.cpp: Instead of using PLATFORM(MAC) and assume it works for iOS and OS X,
2880         use CF as the guard for CFString. Similarily, USE_APPLE_SYSTEM_LOG guards code using ASL.
2881
2882 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2883
2884         Make StringBuilder::toAtomicString() consistent with StringBuilder::toString() for strings of length zero
2885         https://bugs.webkit.org/show_bug.cgi?id=108894
2886
2887         Reviewed by Andreas Kling.
2888
2889         * wtf/text/StringBuilder.h:
2890         (WTF::StringBuilder::toAtomicString): The function was returning the nullAtom for strings of length zero.
2891         This is inconsistent with StringBuilder::toString() which always return an empty string.
2892
2893         This patch unifies the behavior.
2894
2895 2013-02-04  Mark Hahnenberg  <mhahnenberg@apple.com>
2896
2897         Structure::m_outOfLineCapacity is unnecessary
2898         https://bugs.webkit.org/show_bug.cgi?id=108206
2899
2900         Reviewed by Darin Adler.
2901
2902         Simplifying the utility functions that we use since we don't need a 
2903         bunch of fancy templates for this one specific call site.
2904
2905         * wtf/MathExtras.h:
2906         (WTF::roundUpToPowerOfTwo):
2907
2908 2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
2909
2910         Unreviewed, rolling out r141905.
2911         http://trac.webkit.org/changeset/141905
2912         https://bugs.webkit.org/show_bug.cgi?id=108963
2913
2914         "Broke mac build" (Requested by tonyg-cr on #webkit).
2915
2916         * wtf/text/CString.cpp:
2917         * wtf/text/CString.h:
2918         * wtf/text/WTFString.cpp:
2919         * wtf/text/WTFString.h:
2920         (String):
2921         * wtf/url/api/ParsedURL.h:
2922         (ParsedURL):
2923         * wtf/url/api/URLString.h:
2924
2925 2013-02-05  Tony Gentilcore  <tonyg@chromium.org>
2926
2927         Call XSSAuditor's didBlockScript() for the threaded HTML parser
2928         https://bugs.webkit.org/show_bug.cgi?id=108726
2929
2930         Reviewed by Adam Barth.
2931
2932         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
2933         These methods check to ensure there are 0 or 1 references.
2934
2935         * wtf/text/CString.cpp:
2936         (WTF::CString::isSafeToSendToAnotherThread): Added.
2937         (WTF):
2938         * wtf/text/CString.h:
2939         (CString):
2940         * wtf/text/WTFString.cpp:
2941         (WTF::String::isSafeToSendToAnotherThread): Added.
2942         (WTF):
2943         * wtf/text/WTFString.h:
2944         (String):
2945         * wtf/url/api/ParsedURL.h:
2946         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
2947         * wtf/url/api/URLString.h:
2948         (WTF::URLString::isSafeToSendToAnotherThread): Added.
2949
2950 2013-02-04  Benjamin Poulain  <bpoulain@apple.com>
2951
2952         Build fix for AtomicString on iOS
2953
2954         Unreviewed. The commit r141812 rely on isUIThread(), there is no such things
2955         in the tree right now. Use pthread_main_np() until more thread handling is upstreamed.
2956
2957         * wtf/text/AtomicString.cpp:
2958         (WTF::AtomicStringTable::create):
2959
2960 2013-02-04  Abhishek Arya  <inferno@chromium.org>
2961
2962         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
2963         https://bugs.webkit.org/show_bug.cgi?id=108668
2964
2965         Reviewed by Eric Seidel.
2966
2967         * wtf/AVLTree.h:
2968         (WTF::AVLTreeDefaultBSet::operator[]):
2969         * wtf/BitArray.h:
2970         (WTF::BitArray::set):
2971         (WTF::BitArray::get):
2972         * wtf/FastBitVector.h:
2973         (WTF::FastBitVector::set):
2974         (WTF::FastBitVector::clear):
2975         (WTF::FastBitVector::get):
2976         * wtf/FixedArray.h:
2977         (WTF::FixedArray::operator[]):
2978         * wtf/RefCountedArray.h:
2979         (WTF::RefCountedArray::at):
2980         * wtf/TypedArrayBase.h:
2981         (WTF::TypedArrayBase::item):
2982         * wtf/text/StringBuffer.h:
2983         (WTF::StringBuffer::operator[]):
2984         * wtf/text/StringBuilder.h:
2985         (WTF::StringBuilder::operator[]):
2986         * wtf/text/StringImpl.h:
2987         (WTF::StringImpl::operator[]):
2988
2989 2013-02-04  Benjamin Poulain  <benjamin@webkit.org>
2990
2991         Upstream iOS's AtomicString
2992         https://bugs.webkit.org/show_bug.cgi?id=108139
2993
2994         Reviewed by David Kilzer.
2995
2996         On iOS, WebCore can be executed from two different threads. To maintain consistency,
2997         a few changes had been made:
2998         -The main UI thread and the WebThread share the same AtomicStringTable.
2999         -A spin lock is needed before any access to prevent any concurrent modification of the string table.
3000          The spin lock also prevent race on the static initialization of the shared table.
3001
3002         * wtf/Platform.h:
3003         Introduce a new USE(WEB_THREAD) to scope changes related to iOS Web Thread.
3004         * wtf/text/AtomicString.cpp:
3005         (AtomicStringTableLocker):
3006         (WTF::AtomicStringTableLocker::AtomicStringTableLocker):
3007         (WTF::AtomicStringTableLocker::~AtomicStringTableLocker):
3008         (WTF::AtomicStringTable::create):
3009         wtfThreadData() is not necessarily inlined on ARM. When it is not inlined, the old code
3010         causes two call to the function. Instead, we can keep the value in register and pass it
3011         to AtomicStringTable::create().
3012         (WTF::stringTable):
3013         (WTF::addToStringTable):
3014         (WTF::AtomicString::addSlowCase):
3015         (WTF::AtomicString::find):
3016         (WTF::AtomicString::remove):
3017
3018 2013-02-04  Martin Robinson  <mrobinson@igalia.com>
3019
3020         Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
3021
3022         * GNUmakefile.list.am:
3023
3024 2013-02-04  David Kilzer  <ddkilzer@apple.com>
3025
3026         Sort WTF Xcode project file
3027
3028         * WTF.xcodeproj/project.pbxproj:
3029
3030 2013-02-02  Andreas Kling  <akling@apple.com>
3031
3032         Vector should consult allocator about ideal size when choosing capacity.
3033         <http://webkit.org/b/108410>
3034         <rdar://problem/13124002>
3035
3036         Reviewed by Benjamin Poulain.
3037
3038         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
3039         It returns the actual size of the block that will get allocated for a given byte size.
3040
3041         Vector's internal buffer now checks with the allocator if the resulting allocation
3042         could actually house more objects and updates its capacity to make use of the space.
3043
3044         * wtf/Deque.h:
3045         (WTF::::expandCapacity):
3046         * wtf/FastMalloc.cpp:
3047         (WTF::fastMallocGoodSize):
3048         * wtf/FastMalloc.h:
3049         * wtf/Vector.h:
3050         (WTF::VectorBufferBase::allocateBuffer):
3051         (WTF::VectorBufferBase::tryAllocateBuffer):
3052         (WTF::VectorBufferBase::reallocateBuffer):
3053
3054 2013-02-02  Mark Rowe  <mrowe@apple.com>
3055
3056         <http://webkit.org/b/108745> WTF shouldn't use a script build phase to detect the presence of headers when the compiler can do it for us
3057
3058         Reviewed by Sam Weinig.
3059
3060         * WTF.xcodeproj/project.pbxproj: Remove the script phase that used to generate a header file
3061         containing information about whether certain header files exist on the system.
3062         * wtf/FastMalloc.cpp: Use Clang's __has_include to detect whether the header exists before including it.
3063
3064 2013-02-01  Roger Fong  <roger_fong@apple.com>
3065
3066         Unreviewed. WTF VS2010 project cleanup.
3067
3068         * WTF.vcxproj/WTF.vcxproj:
3069         * WTF.vcxproj/WTF.vcxproj.filters:
3070         * WTF.vcxproj/WTFPreLink.cmd: Removed.
3071
3072 2013-02-01  Zan Dobersek  <zdobersek@igalia.com>
3073
3074         [GTK] Add WTFURL source files to the build
3075         https://bugs.webkit.org/show_bug.cgi?id=108215
3076
3077         Reviewed by Benjamin Poulain.
3078
3079         The WTFURL implementation sources are all still guarded by the USE(WTFURL) guard,
3080         meaning that the GTK port still uses the default KURL backend. To use the WTFURL
3081         backend instead, one would have to define WTF_USE_WTFURL in Platform.h.
3082
3083         * GNUmakefile.am: List the directories from which source headers will be included.
3084         Plenty of WTFURL code currently just includes the required header by name rather
3085         than specifying the header path as relative to Source/WTF. In the future all the inclusions
3086         should probaby be changed to include the header through the path relative to Source/WTF.
3087         * GNUmakefile.list.am: Add build targets for the WTFURL source files.
3088         * wtf/url/api/ParsedURL.cpp: Specify the complete path to the required headers and
3089         reorder the inclusions.
3090         * wtf/url/src/URLCanon.h: Ditto.
3091
3092 2013-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
3093
3094         Web Inspector: Native Memory Instrumentation: provide edge names and class names for WTF containers and strings
3095         https://bugs.webkit.org/show_bug.cgi?id=107303
3096
3097         Reviewed by Yury Semikhatsky.
3098
3099         I'd like to use ValueType[] as className for the container data members
3100         because class names of template parameters already present in the container class names.
3101
3102         * wtf/MemoryInstrumentationArrayBufferView.h:
3103         (WTF::reportMemoryUsage):
3104         * wtf/MemoryInstrumentationHashCountedSet.h:
3105         (WTF::reportMemoryUsage):
3106         * wtf/MemoryInstrumentationHashMap.h:
3107         (WTF::reportMemoryUsage):
3108         * wtf/MemoryInstrumentationHashSet.h:
3109         (WTF::reportMemoryUsage):
3110         * wtf/MemoryInstrumentationListHashSet.h:
3111         (WTF::reportMemoryUsage):
3112         * wtf/MemoryInstrumentationSequence.h:
3113         * wtf/MemoryInstrumentationString.h:
3114         (WTF::reportMemoryUsage):
3115         * wtf/MemoryInstrumentationVector.h:
3116         (WTF::reportMemoryUsage):
3117
3118 2013-02-01  Geoffrey Garen  <ggaren@apple.com>
3119
3120         Added TriState to WTF and started using it in one place
3121         https://bugs.webkit.org/show_bug.cgi?id=108628
3122
3123         Reviewed by Beth Dakin.
3124
3125         Useful for expressing "maybe" conditions in a boolean context.
3126
3127         * WTF.xcodeproj/project.pbxproj:
3128         * wtf/TriState.h: Added.
3129         (WTF):
3130
3131 2013-02-01  Patrick Gansterer  <paroga@webkit.org>
3132
3133         Build fix for WinCE after r137709
3134         https://bugs.webkit.org/show_bug.cgi?id=105767
3135
3136         Do not pass functions as const references to
3137         templated arguments to make the compiler happy.
3138
3139         * wtf/StdLibExtras.h:
3140         (WTF::binarySearch):
3141         (WTF::tryBinarySearch):
3142         (WTF::approximateBinarySearch):
3143
3144 2013-01-31  Ilya Tikhonovsky  <loislo@chromium.org>
3145
3146         Web Inspector: Native Memory Instrumentation: replace nodeName argument with className
3147         https://bugs.webkit.org/show_bug.cgi?id=107278
3148
3149         Reviewed by Yury Semikhatsky.
3150
3151         I replaced nodeName with className because we newer report node name for private and raw buffers
3152         but need to report their class names.
3153
3154         * wtf/MemoryInstrumentation.cpp:
3155         (WTF::MemoryInstrumentation::reportLinkToBuffer):
3156         (WTF::MemoryClassInfo::addRawBuffer):
3157         (WTF::MemoryClassInfo::addPrivateBuffer):
3158         * wtf/MemoryInstrumentation.h:
3159         (WTF::MemoryInstrumentation::addRawBuffer):
3160         (MemoryClassInfo):
3161
3162 2013-01-31  Jessie Berlin  <jberlin@apple.com>
3163
3164         Rolling out r141407 because it is causing crashes under
3165         WTF::TCMalloc_Central_FreeList::FetchFromSpans() in Release builds.
3166
3167         * wtf/Deque.h:
3168         (WTF::::expandCapacity):
3169         * wtf/FastMalloc.cpp:
3170         * wtf/FastMalloc.h:
3171         (WTF):
3172         * wtf/Vector.h:
3173         (WTF::VectorBufferBase::allocateBuffer):
3174         (WTF::VectorBufferBase::tryAllocateBuffer):
3175         (WTF::VectorBufferBase::reallocateBuffer):
3176
3177 2013-01-31  Mark Lam  <mark.lam@apple.com>
3178
3179         Abstraction for hiding enum class.
3180         https://bugs.webkit.org/show_bug.cgi?id=108533
3181
3182         Reviewed by Anders Carlsson.
3183
3184         * wtf/Compiler.h:
3185         * wtf/EnumClass.h: Copied from Source/WTF/wtf/TypeSafeEnum.h.
3186         (WTF::EnumClass::EnumClass):
3187         (WTF::EnumClass::operator==):
3188         (WTF::EnumClass::operator!=):
3189         (WTF::EnumClass::operator<):
3190         (WTF::EnumClass::operator<=):
3191         (WTF::EnumClass::operator>):
3192         (WTF::EnumClass::operator>=):
3193         * wtf/TypeSafeEnum.h: Removed.
3194
3195 2013-01-31  Andreas Kling  <akling@apple.com>
3196
3197         Vector should consult allocator about ideal size when choosing capacity.
3198         <http://webkit.org/b/108410>
3199         <rdar://problem/13124002>
3200
3201         Reviewed by Benjamin Poulain.
3202
3203         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
3204         It returns the actual size of the block that will get allocated for a given byte size.
3205
3206         Vector's internal buffer now checks with the allocator if the resulting allocation
3207         could actually house more objects and updates its capacity to make use of the space.
3208
3209         * wtf/Deque.h:
3210         (WTF::::expandCapacity):
3211         * wtf/FastMalloc.cpp:
3212         (WTF::fastMallocGoodSize):
3213         * wtf/FastMalloc.h:
3214         * wtf/Vector.h:
3215         (WTF::VectorBufferBase::allocateBuffer):
3216         (WTF::VectorBufferBase::tryAllocateBuffer):
3217         (WTF::VectorBufferBase::reallocateBuffer):
3218
3219 2013-01-30  Christophe Dumez  <christophe.dumez@intel.com>
3220
3221         Add a StringTypeAdapter for ASCIILiteral
3222         https://bugs.webkit.org/show_bug.cgi?id=108338
3223
3224         Reviewed by Benjamin Poulain.
3225
3226         Add StringTypeAdapter for ASCIILiteral type so that concatenation of an
3227         ASCIILiteral and a String using + operator is efficiently handled.
3228
3229         * wtf/text/StringConcatenate.h:
3230         * wtf/text/StringOperators.h:
3231         (WTF::operator+): Inline some of the operator+ functions that were not
3232         yet.
3233         (WTF):
3234
3235 2013-01-30  David Kilzer  <ddkilzer@apple.com>
3236
3237         Upstream iOS build file changes for WTF
3238         <http://webkit.org/b/108221>
3239
3240         Reviewed by Mark Rowe.
3241
3242         * Configurations/Base.xcconfig:
3243         - Import iOS.xcconfig.
3244         - Remove VALID_ARCHS.  Modern Xcodes define these correctly.
3245         - Make HEADER_SEARCH_PATHS work with iOS Simulator builds.
3246         - Add SUPPORTED_PLATFORMS so both Mac and iOS SDKs appear in
3247           schemes.
3248         - Define INSTALL_PATH when building for macosx SDK.
3249         * Configurations/CopyWTFHeaders.xcconfig:
3250         - Make PRIVATE_HEADERS_FOLDER_PATH work with iOS Simulator
3251           builds.
3252         * Configurations/DebugRelease.xcconfig:
3253         - Simplify ARCHS.  This works correctly on 32-bit-only SDKs.
3254         * Configurations/WTF.xcconfig:
3255         - Fix installation directory for iOS Simulator builds by
3256           defining INSTALL_PATH_ACTUAL.
3257         * Configurations/iOS.xcconfig: Add.
3258         * WTF.xcodeproj/project.pbxproj:
3259         - Add iOS.xcconfig to the project.
3260
3261 2013-01-29  Mark Hahnenberg  <mhahnenberg@apple.com>
3262
3263         Structure::m_outOfLineCapacity is unnecessary
3264         https://bugs.webkit.org/show_bug.cgi?id=108206
3265
3266         Reviewed by Geoffrey Garen.
3267
3268         We're adding a new function that gives us the ability to round a value up to the next power of a certain base.
3269
3270         * wtf/MathExtras.h:
3271         (WTF::roundUpToPowerOf):
3272
3273 2013-01-30  Zeno Albisser  <zeno@webkit.org>
3274
3275         [Qt] Fix Qt/Mac build after r141024 and r141037
3276         https://bugs.webkit.org/show_bug.cgi?id=108318
3277
3278         Reviewed by Kentaro Hara.
3279
3280         * wtf/Functional.h:
3281             Make sure Block.h is included and its functionality
3282             is enabled for Qt on Mac.
3283
3284 2013-01-30  Simon Hausmann  <simon.hausmann@digia.com>
3285
3286         [Qt] Remove QT4_UNICODE related code paths
3287         https://bugs.webkit.org/show_bug.cgi?id=108316
3288
3289         Reviewed by Kenneth Rohde Christiansen.
3290
3291         Get rid of QT4_UNICODE and any related code paths. The Qt port
3292         requires Qt5 and ICU these days.
3293
3294         * WTF.gypi:
3295         * WTF.pro:
3296         * wtf/unicode/Unicode.h:
3297         * wtf/unicode/qt4/UnicodeQt4.h: Removed.
3298
3299 2013-01-29  Mark Lam  <mark.lam@apple.com>
3300
3301         Introducing WTF::TypeSafeEnum and DatabaseError.
3302         https://bugs.webkit.org/show_bug.cgi?id=108279.
3303
3304         Reviewed by Geoffrey Garen.
3305
3306         * WTF.xcodeproj/project.pbxproj:
3307         * wtf/TypeSafeEnum.h: Added.
3308         (WTF):
3309         (TypeSafeEnum):
3310         (WTF::TypeSafeEnum::TypeSafeEnum):
3311         (WTF::TypeSafeEnum::value):
3312         (WTF::TypeSafeEnum::operator==):
3313         (WTF::TypeSafeEnum::operator!=):
3314         (WTF::TypeSafeEnum::operator<):
3315         (WTF::TypeSafeEnum::operator<=):
3316         (WTF::TypeSafeEnum::operator>):
3317         (WTF::TypeSafeEnum::operator>=):
3318
3319 2013-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3320
3321         Unreviewed, rolling out r140983.
3322         http://trac.webkit.org/changeset/140983
3323         https://bugs.webkit.org/show_bug.cgi?id=108277
3324
3325         Unfortunately, this API has one last client (Requested by
3326         abarth on #webkit).
3327
3328         * wtf/Platform.h:
3329
3330 2013-01-28  Benjamin Poulain  <benjamin@webkit.org>
3331
3332         String constructed from Literals should be non-empty
3333         https://bugs.webkit.org/show_bug.cgi?id=108103
3334
3335         Reviewed by Eric Carlson.
3336
3337         For efficiency, the construction from literal only works with valid non-empty strings.
3338         One of the constructor was changed to fix an error from HTMLMediaElement.
3339
3340         This patch replaces the branch with an assertions.
3341
3342         * wtf/text/StringImpl.cpp:
3343         (WTF::StringImpl::createFromLiteral):
3344
3345 2013-01-28  David Kilzer  <ddkilzer@apple.com>
3346
3347         BUILD FIX: Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
3348
3349         This fixes the following build error introduced in r140366 for
3350         Bug 107098:
3351
3352             Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
3353             #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !PLATFORM(IOS)
3354                                  ^
3355             1 error generated.
3356
3357         * wtf/Platform.h: Check !PLATFORM(IOS) first so that iOS builds
3358         do not try to evaluate __MAC_OS_X_VERSION_MIN_REQUIRED.
3359
3360 2013-01-28  Adam Barth  <abarth@webkit.org>
3361
3362         Remove webkitNotifications.createHTMLNotification
3363         https://bugs.webkit.org/show_bug.cgi?id=107598
3364
3365         Reviewed by Benjamin Poulain.
3366
3367         * wtf/Platform.h:
3368
3369 2013-01-27  Laszlo Gombos  <l.gombos@samsung.com>
3370
3371         [ANDROID] Fix a typo
3372         https://bugs.webkit.org/show_bug.cgi?id=108046
3373
3374         Reviewed by Adam Barth.
3375
3376         HAVE_NMAP -> HAVE_MMAP.
3377
3378         * wtf/Platform.h:
3379
3380 2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3381
3382         Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
3383         https://bugs.webkit.org/show_bug.cgi?id=106740
3384
3385         Reviewed by Benjamin Poulain.
3386
3387         Adding int64_t type atomicIncrement and atomicDecrement implementations for Windows
3388         into Atomics.h required by WebKit2 after r139514. Separating WinCE implementation
3389         that does not support WebKit2 and has no support for 64 bit interlocked methods.
3390
3391         Increasing WINVER and _WIN32_WINNT to XP SP2, because the 64 bit type interlocked methods
3392         are not supported on previous versions on 32 bit target.
3393
3394         * config.h:
3395         * wtf/Atomics.h:
3396         (WTF):
3397         (WTF::atomicIncrement):
3398         (WTF::atomicDecrement):
3399
3400 2013-01-26  Andras Becsi  <andras.becsi@digia.com>
3401
3402         Unreviewed fix after r140451 to make GIT-SVN repositories happy.
3403
3404         * WTF.vcproj/WTF.sln:
3405
3406 2013-01-26  Justin Schuh  <jschuh@chromium.org>
3407
3408         [CHROMIUM] Suppress more c4267 build warnings for Win64 targets
3409         https://bugs.webkit.org/show_bug.cgi?id=107993
3410
3411         Reviewed by Abhishek Arya.
3412
3413         * WTF.gyp/WTF.gyp:
3414
3415 2013-01-25  Eric Seidel  <eric@webkit.org>
3416
3417         Support 4 and 5 argument bound static functions
3418         https://bugs.webkit.org/show_bug.cgi?id=107973
3419
3420         Reviewed by Anders Carlsson.
3421
3422         Yummy copy/paste template code!
3423         I'm about to use this in a BackgroundHTMLParser patch, but figured this should be landed separately.
3424
3425         * wtf/Functional.h:
3426         (WTF):
3427         (WTF::R):
3428
3429 2013-01-24  Martin Robinson  <mrobinson@igalia.com>
3430
3431         Abstract the logic for appending a UChar32 onto StringBuilder
3432         https://bugs.webkit.org/show_bug.cgi?id=107505
3433
3434         Reviewed by Darin Adler.
3435
3436         * wtf/text/StringBuilder.h:
3437         (WTF::StringBuilder::append): Added a method for appending a UChar32 to a StringBuilder.
3438
3439 2013-01-24  Brent Fulgham  <bfulgham@webkit.org>
3440
3441         Stipulate build order between WTFGenerated and WTF
3442         https://bugs.webkit.org/show_bug.cgi?id=107844
3443
3444         Reviewed by Tim Horton.
3445
3446         * WTF.vcxproj/WTF.vcxproj: Use VS2010 project dependency
3447         declaration so WTF depends on a completed WTFGenerated build.
3448
3449 2013-01-23  Abhishek Arya  <inferno@chromium.org>
3450
3451         Add support for ASSERT_WITH_SECURITY_IMPLICATION.
3452         https://bugs.webkit.org/show_bug.cgi?id=107699
3453
3454         Reviewed by Eric Seidel.
3455
3456         * wtf/Assertions.h: Add ASSERT_WITH_SECURITY_IMPLICATION to
3457         indicate possible security vulnerabily and enable it by default
3458         in fuzzing builds.
3459         * wtf/Vector.h: Use ASSERT_WITH_SECURITY_IMPLICATION for
3460         bounds check on [] operator.
3461
3462 2013-01-23  Tony Chang  <tony@chromium.org>
3463
3464         Unreviewed, set svn:eol-style to CRLF on Windows .sln files.
3465
3466         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
3467
3468 2013-01-23  Adam Barth  <abarth@webkit.org>
3469
3470         BackgroundHTMLParser::sendTokensToMainThread should use bind
3471         https://bugs.webkit.org/show_bug.cgi?id=107637
3472
3473         Reviewed by Eric Seidel.
3474
3475         * wtf/Functional.h:
3476             - I had to re-work the approach to validating WeakPtr |this|
3477               arguments a bit. Previously you couldn't pass a WeakPtr as a
3478               non-|this| argument to a function because we would try to unwrap
3479               it into a raw pointer.
3480         * wtf/WeakPtr.h:
3481         (WTF::WeakPtrFactory::revokeAll):
3482         (WeakPtrFactory):
3483             - Let clients revoke all outstanding WeakPtrs without needing to
3484               destroy the WeakPtrFactory.
3485         * wtf/chromium/MainThreadChromium.cpp:
3486         (WTF::callFunctionObject):
3487         (WTF::callOnMainThread):
3488             - Implement callOnMainThread for Function objects. The non-Chromium
3489               implementation of MainThread.cpp already implements this feature.
3490
3491 2013-01-23  Justin Schuh  <jschuh@chromium.org>
3492
3493         [CHROMIUM] Suppress c4267 build warnings in WTF for Win64 targets
3494         https://bugs.webkit.org/show_bug.cgi?id=107721
3495
3496         Reviewed by Abhishek Arya.
3497
3498         * WTF.gyp/WTF.gyp:
3499
3500 2013-01-23  Oliver Hunt  <oliver@apple.com>
3501
3502         Add RELEASE_ASSERT (and a few friends)
3503         https://bugs.webkit.org/show_bug.cgi?id=107725
3504
3505         Reviewed by Filip Pizlo.
3506
3507         Adding a few macros to make release mode assertions easier and more readable.
3508         Also makes same assertions more useful in debug builds.
3509
3510         * wtf/Assertions.h:
3511
3512 2013-01-22  Joshua Bell  <jsbell@chromium.org>
3513
3514         Prevent race condition during Worker shutdown
3515         https://bugs.webkit.org/show_bug.cgi?id=107577
3516
3517         Reviewed by Dmitry Titov.
3518
3519         Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
3520         threads can't sneak a message in between.
3521
3522         * wtf/MessageQueue.h: Added appendAndKill() method.
3523
3524 2013-01-22  Roger Fong  <roger_fong@apple.com>
3525
3526         WTF project files and property sheets for getting WebKit to compile in VS2010.
3527         https://bugs.webkit.org/show_bug.cgi?id=106986
3528
3529         Reviewed by Timothy Horton and Brent Fulgham.
3530
3531         * WTF.vcproj/WTF.sln:
3532         * WTF.vcxproj: Added.
3533         * WTF.vcxproj/WTF.vcxproj: Added.
3534         * WTF.vcxproj/WTF.vcxproj.filters: Added.
3535         * WTF.vcxproj/WTF.vcxproj.user: Added.
3536         * WTF.vcxproj/WTFCommon.props: Added.
3537         * WTF.vcxproj/WTFDebug.props: Added.
3538         * WTF.vcxproj/WTFGenerated.make: Added.
3539         * WTF.vcxproj/WTFGenerated.vcxproj: Added.
3540         * WTF.vcxproj/WTFGenerated.vcxproj.filters: Added.
3541         * WTF.vcxproj/WTFGenerated.vcxproj.user: Added.
3542         * WTF.vcxproj/WTFGeneratedCommon.props: Added.
3543         * WTF.vcxproj/WTFGeneratedDebug.props: Added.
3544         * WTF.vcxproj/WTFGeneratedRelease.props: Added.
3545         * WTF.vcxproj/WTFPostBuild.cmd: Added.
3546         * WTF.vcxproj/WTFPreBuild.cmd: Added.
3547         * WTF.vcxproj/WTFPreLink.cmd: Added.
3548         * WTF.vcxproj/WTFRelease.props: Added.
3549         * WTF.vcxproj/build-generated-files.sh: Added.
3550         * WTF.vcxproj/copy-files.cmd: Added.
3551         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py: Added.
3552         * config.h:
3553
3554 2013-01-22  David Kilzer  <ddkilzer@apple.com>
3555
3556         Fix DateMath.cpp to compile with -Wshorten-64-to-32
3557         <http://webkit.org/b/107503>
3558
3559         Reviewed by Darin Adler.
3560
3561         Fixes the following build errors with -Wshorten-64-to-32:
3562
3563             DateMath.cpp:742:47: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3564                 if (month == 2 && day > 28 && !isLeapYear(year))
3565                                                ~~~~~~~~~~ ^~~~
3566             DateMath.cpp:757:48: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3567                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3568                                      ~~~~~~~~~~~~~~~       ^~~~~
3569             DateMath.cpp:757:55: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3570                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3571                                      ~~~~~~~~~~~~~~~              ^~~
3572             DateMath.cpp:757:60: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3573                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3574                                      ~~~~~~~~~~~~~~~                   ^~~~~
3575             DateMath.cpp:757:67: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3576                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3577                                      ~~~~~~~~~~~~~~~                          ^~~~~~~
3578             DateMath.cpp:996:59: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3579                                 offset = ((o / 100) * 60 + (o % 100)) * sgn;
3580                                        ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
3581             DateMath.cpp:998:37: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3582                                 offset = o * 60 * sgn;
3583                                        ~ ~~~~~~~^~~~~
3584             DateMath.cpp:1005:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3585                             offset = (o * 60 + o2) * sgn;
3586                                    ~ ~~~~~~~~~~~~~~^~~~~
3587             DateMath.cpp:1041:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3588                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3589                        ~~~~~~~~~~~~~~~       ~~~~~~^~~
3590             DateMath.cpp:1041:45: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3591                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3592                        ~~~~~~~~~~~~~~~                  ^~~
3593             DateMath.cpp:1041:50: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3594                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3595                        ~~~~~~~~~~~~~~~                       ^~~~
3596             DateMath.cpp:1041:56: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3597                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3598                        ~~~~~~~~~~~~~~~                             ^~~~~~
3599             12 errors generated.
3600
3601         * wtf/DateMath.cpp:
3602         (WTF::ymdhmsToSeconds): Change year argument from long to int.
3603         Change mon, day, hour, minute arguments from int to long.
3604         (WTF::parseInt): Add.  Identical to parseLong but bounds checks
3605         for type int.
3606         (WTF::parseLong): Switch to std::numeric_limits<long> instead of
3607         macros.
3608         (WTF::parseES5DatePortion): Change year argument from long to
3609         int.
3610         (WTF::parseES5DateFromNullTerminatedCharacters): Change year
3611         local variable from long to int.
3612         (WTF::parseDateFromNullTerminatedCharacters): Change year and
3613         offset local variables from long to int.  Switch from using
3614         parseLong() to parseInt() as needed.  Ditto for labs() to abs().
3615         Add overflow check when switching from "MM/DD/YYYY" to
3616         "YYYY/MM/DD" parsing.
3617
3618 2013-01-17  Andy Estes  <aestes@apple.com>
3619
3620         Add a USE() macro for content filtering code
3621         https://bugs.webkit.org/show_bug.cgi?id=107098
3622
3623         Reviewed by Mark Rowe.
3624
3625         * wtf/Platform.h: Define WTF_USE_CONTENT_FILTERING on Mac platforms
3626         more recent than Lion.
3627
3628 2013-01-18  Laszlo Gombos  <l.gombos@samsung.com>
3629
3630         Remove unnecessary PLATFORM() tests
3631         https://bugs.webkit.org/show_bug.cgi?id=107360
3632
3633         Reviewed by Eric Seidel.
3634
3635         PLATFORM(WIN), PLATFORM(CHROMIUM) and PLATFORM(QT) are mutually
3636