1f663769f70b57e3d8654197193f06d96b28c7fc
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-16  Anders Carlsson  <andersca@apple.com>
2
3         REGRESSION (r110737): Height element changes on scrolled page causes failure
4         https://bugs.webkit.org/show_bug.cgi?id=81381
5         <rdar://problem/11066006>
6
7         Reviewed by Sam Weinig.
8
9         Limit the fix made in r110737 to check if there's a rubber-band gesture in progress and only ignore the range if that is the case.
10
11         * platform/ScrollAnimator.h:
12         (WebCore::ScrollAnimator::isRubberBandInProgress):
13         (ScrollAnimator):
14         * platform/ScrollView.cpp:
15         (WebCore::ScrollView::updateScrollbars):
16         * platform/mac/ScrollAnimatorMac.h:
17         (ScrollAnimatorMac):
18         * platform/mac/ScrollAnimatorMac.mm:
19         (WebCore::ScrollAnimatorMac::isRubberBandInProgress):
20         (WebCore):
21         * platform/mac/ScrollElasticityController.h:
22         (ScrollElasticityController):
23         * platform/mac/ScrollElasticityController.mm:
24         (WebCore::ScrollElasticityController::isRubberBandInProgress):
25         (WebCore):
26
27 2012-03-16  Robert Kroeger  <rjkroege@chromium.org>
28
29         GestureTapDown needs to pin in-progress flings
30         https://bugs.webkit.org/show_bug.cgi?id=80875
31
32         Reviewed by Adam Barth.
33
34         * page/EventHandler.cpp:
35         (WebCore):
36         (WebCore::EventHandler::handleGestureTapDown):
37         * page/EventHandler.h:
38         (EventHandler):
39
40 2012-03-16  Chris Rogers  <crogers@google.com>
41
42         Account for sample-rate in convolution normalization
43         https://bugs.webkit.org/show_bug.cgi?id=81432
44
45         Reviewed by James Robinson.
46
47         * platform/audio/Reverb.cpp:
48         (WebCore):
49         (WebCore::calculateNormalizationScale):
50         * webaudio/ConvolverNode.cpp:
51         (WebCore::ConvolverNode::setBuffer):
52
53 2012-03-16  Tom Sepez  <tsepez@chromium.org>
54
55         Make V8 window.open.call(), window.open.showModalDialog() results more closely match JSC. 
56         https://bugs.webkit.org/show_bug.cgi?id=81260
57         https://bugs.webkit.org/show_bug.cgi?id=39897
58
59         Reviewed by Adam Barth.
60
61         Tested via http/tests/security/cross-frame-access-call.htm
62
63         * bindings/v8/custom/V8DOMWindowCustom.cpp:
64         (WebCore::V8DOMWindow::showModalDialogCallback):
65         (WebCore::V8DOMWindow::openCallback):
66
67 2012-03-16  Matt Lilek  <mrl@apple.com>
68
69         Use modern NSNumberFormatter API in LocalizedNumberMac.mm
70         https://bugs.webkit.org/show_bug.cgi?id=81429
71
72         Reviewed by Dan Bernstein.
73
74         No new tests as no change in behavior.
75
76         * platform/text/mac/LocalizedNumberMac.mm:
77         (WebCore::createFormatterForCurrentLocaleForDisplay):
78
79 2012-03-16  Tony Chang  <tony@chromium.org>
80
81         flex-item-align: stretch should only grow, never shrink
82         https://bugs.webkit.org/show_bug.cgi?id=80882
83
84         Reviewed by Ojan Vafai.
85
86         New test cases in css3/flexbox/flex-align-stretch.html.
87
88         * rendering/RenderFlexibleBox.cpp:
89         (WebCore::RenderFlexibleBox::alignChildren): Move stretch code into a separate function.
90         (WebCore::RenderFlexibleBox::alignChildStretch): Add an early return if our height is shrinking.
91         (WebCore):
92         * rendering/RenderFlexibleBox.h:
93         (RenderFlexibleBox):
94
95 2012-03-16  Raphael Kubo da Costa  <kubo@profusion.mobi>
96
97         [EFL] Unreviewed, fix build after r111041.
98
99         * platform/efl/RenderThemeEfl.cpp:
100         (WebCore::RenderThemeEfl::emitMediaButtonSignal): Rename
101         MediaFullscreenButton to MediaEnterFullscreenButton.
102         (WebCore::RenderThemeEfl::paintMediaFullscreenButton): Ditto.
103
104 2012-03-16  Dmitry Lomov  <dslomov@google.com>
105
106         REGRESSION: DOMURL::revokeObjectURL accesses memoryCache on worker thread.
107         https://bugs.webkit.org/show_bug.cgi?id=80889
108         On worker threads, post a task to main thread to evict from cache.
109         ASSERT that MemoryCache is only accessed from main thread.
110
111         Reviewed by David Levin.
112
113         * html/DOMURL.cpp:
114         (WebCore::DOMURL::revokeObjectURL):
115         * loader/cache/MemoryCache.cpp:
116         (WebCore::memoryCache):
117         (WebCore::MemoryCache::add):
118         (WebCore::MemoryCache::revalidationFailed):
119         (WebCore::MemoryCache::resourceForURL):
120         (WebCore::MemoryCache::evict):
121         (WebCore):
122         (WebCore::MemoryCache::removeUrlFromCache):
123         (WebCore::MemoryCache::removeUrlFromCacheImpl):
124         * loader/cache/MemoryCache.h:
125         (WebCore):
126         (MemoryCache):
127
128 2012-03-16  Jacky Jiang  <zhajiang@rim.com>
129
130         [BlackBerry] Upstream ScriptControllerBlackBerry.cpp
131         https://bugs.webkit.org/show_bug.cgi?id=81397
132
133         Reviewed by Rob Buis.
134
135         Initial upstream, no new tests.
136
137         * bindings/js/ScriptControllerBlackBerry.cpp: Added.
138
139 2012-03-16  Adam Barth  <abarth@webkit.org>
140
141         remove-body-during-body-replacement2.html is triggering crashes on all platforms
142         https://bugs.webkit.org/show_bug.cgi?id=81374
143
144         Reviewed by Eric Seidel.
145
146         When overriding disconnectFrame, we need to call the base class version
147         of the method so that it can clear the m_frame pointer.
148
149         Tests: This patch fixes a large number of crashes in tests.
150
151         * notifications/DOMWindowNotifications.cpp:
152         (WebCore::DOMWindowNotifications::disconnectFrame):
153
154 2012-03-16  Leo Yang  <leo.yang@torchmobile.com.cn>
155
156         [BlackBerry] Upstream the BlackBerry change to platform/Widget.h
157         https://bugs.webkit.org/show_bug.cgi?id=81304
158
159         Reviewed by Rob Buis.
160
161         typedefs of PlatformWidget and PlatformPageClient for the BlackBerry.
162
163         * platform/Widget.h:
164
165 2012-03-16  David Barton  <dbarton@mathscribe.com>
166
167         MathML internals - factor code for almost anonymous blocks
168         https://bugs.webkit.org/show_bug.cgi?id=81387
169
170         Reviewed by Eric Seidel.
171
172         MathML uses "almost anonymous" blocks to layout parts of mathematical expressions. These
173         will be converted to true anonymous blocks in a later patch. Here we factor out the code
174         to create them into RenderMathMLBlock::createAlmostAnonymousBlock().
175
176         No new tests. Some tree dump output is modified for existing tests. <munder>, <mover>,
177         and <munderover> renderers already used true anonymous blocks, so we change them to call
178         RenderBlock::createAnonymousBlock(). In the other direction, <mroot>'s almost anonymous
179         blocks are now made RenderMathMLBlock not just RenderBlock, in agreement with other
180         current MathML renderers.
181
182         * rendering/mathml/RenderMathMLBlock.cpp:
183         (WebCore::RenderMathMLBlock::createAlmostAnonymousBlock):
184         * rendering/mathml/RenderMathMLBlock.h:
185         (RenderMathMLBlock):
186         (WebCore::RenderMathMLBlock::getBoxModelObjectWidth):
187         * rendering/mathml/RenderMathMLFenced.cpp:
188         (WebCore::RenderMathMLFenced::addChild):
189         * rendering/mathml/RenderMathMLFraction.cpp:
190         (WebCore::RenderMathMLFraction::updateFromElement):
191             - improve some variable names
192         (WebCore::RenderMathMLFraction::addChild):
193         (WebCore::RenderMathMLFraction::layout):
194         (WebCore::RenderMathMLFraction::paint):
195         (WebCore::RenderMathMLFraction::baselinePosition):
196         * rendering/mathml/RenderMathMLRoot.cpp:
197         (WebCore::RenderMathMLRoot::addChild):
198         * rendering/mathml/RenderMathMLSubSup.cpp:
199         (WebCore::RenderMathMLSubSup::addChild):
200         * rendering/mathml/RenderMathMLSubSup.h:
201         * rendering/mathml/RenderMathMLUnderOver.cpp:
202         (WebCore::RenderMathMLUnderOver::addChild):
203
204 2012-03-16  Levi Weintraub  <leviw@chromium.org>
205
206         Prepare RenderObject for FractionalLayoutUnits
207         https://bugs.webkit.org/show_bug.cgi?id=81178
208
209         Reviewed by Eric Seidel.
210
211         This readies RenderObject to deal with FractionalLayoutUnits as a backend for the
212         LayoutUnit abstraction.
213
214         No new tests. No change in behavior.
215
216         * rendering/RenderObject.cpp:
217         (WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect): Convenience method to be
218         used instead of absouluteClippedOverflowRect in platform code. Platform updates will come
219         in a separate patch.
220         (WebCore):
221         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Borders remain ints when we move to
222         sub-pixel layout. This adjusts border variables for this, and adds compiler fixes when
223         using std::max and std::min with mixed int/LayoutUnits.
224         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Outlines, like borders, remain
225         ints in the new sub-pixel world. Using variables that reflect that.
226         * rendering/RenderObject.h:
227         (RenderObject):
228         (WebCore::adjustForAbsoluteZoom): Handles FractionalLayoutUnit values. Flooring is what
229         JavaScript requires since this is used with values that must return ints.
230         (WebCore): Adding FractionalLayoutUnit.h to support the new adjusteForAbsoluteZoom method.
231
232 2012-03-16  Brady Eidson  <beidson@apple.com>
233
234         <rdar://problem/11027997> and https://bugs.webkit.org/show_bug.cgi?id=81412
235         REGRESSION (r107435) Copy a link and paste to Mail: Nothing is pasted
236
237         Reviewed by Geoff Garen.
238
239         WebKit API test WebViewCanPasteURL.mm added.
240
241         * WebCore.exp.in:
242
243         Add a strategy method specifically for getting the URL:
244         * platform/PasteboardStrategy.h:
245
246         Use that strategy method when creating the fragment for a URL:
247         * platform/mac/PasteboardMac.mm:
248         (WebCore::Pasteboard::documentFragment):
249
250         Add a platform pasteboard accessor to "do the right thing" for getting a URL:
251         * platform/PlatformPasteboard.h:
252         * platform/mac/PlatformPasteboardMac.mm:
253         (WebCore::PlatformPasteboard::url):
254
255 2012-03-16  Joseph Pecoraro  <pecoraro@apple.com>
256
257         <http://webkit.org/b/81380> clang warning unused variable when ENABLE(TEXT_CARET) is disabled
258
259         Reviewed by Dan Bernstein.
260
261         * editing/FrameSelection.cpp:
262         (WebCore::FrameSelection::recomputeCaretRect):
263         Put the variable inside of a guard because it is only
264         used inside of a guard.
265
266 2012-03-16  Andreas Kling  <kling@webkit.org>
267
268         Shrink BorderValue.
269         <http://webkit.org/b/69521>
270
271         Reviewed by Anders Carlsson.
272
273         Split BorderValue's Color member into RGBA32/bool buddies and stash the bool in
274         the BorderValue bitfield.
275
276         This shrinks BorderValue by 4 bytes, in turn shrinking BorderData by 16 bytes.
277         Altogether this yields ~800 kB in reduced memory consumption when viewing the full
278         HTML5 spec at <http://whatwg.org/c>
279
280         * rendering/style/BorderValue.h:
281         (WebCore::BorderValue::BorderValue):
282         (WebCore::BorderValue::isTransparent):
283         (WebCore::BorderValue::operator==):
284         (BorderValue):
285         (WebCore::BorderValue::setColor):
286         (WebCore::BorderValue::color):
287         * rendering/style/OutlineValue.h:
288         (WebCore::OutlineValue::operator==):
289         * rendering/style/RenderStyle.cpp:
290         (SameSizeAsBorderValue):
291         * rendering/style/RenderStyle.h:
292
293 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
294
295         Moves remaining filesystem files to Modules/filesystem/
296         https://bugs.webkit.org/show_bug.cgi?id=81353
297
298         Reviewed by Adam Barth.
299
300         No new tests, all existing tests pass.
301
302         * CMakeLists.txt:
303         * DerivedSources.make:
304         * DerivedSources.pri:
305         * GNUmakefile.list.am:
306         * Modules/filesystem/AsyncFileWriter.h: Copied from Source/WebCore/fileapi/AsyncFileWriter.h.
307         * Modules/filesystem/AsyncFileWriterClient.h: Copied from Source/WebCore/fileapi/AsyncFileWriterClient.h.
308         * Modules/filesystem/DOMFilePath.cpp: Copied from Source/WebCore/fileapi/DOMFilePath.cpp.
309         * Modules/filesystem/DOMFilePath.h: Copied from Source/WebCore/fileapi/DOMFilePath.h.
310         * Modules/filesystem/DOMFileSystem.cpp: Copied from Source/WebCore/fileapi/DOMFileSystem.cpp.
311         * Modules/filesystem/DOMFileSystem.h: Copied from Source/WebCore/fileapi/DOMFileSystem.h.
312         * Modules/filesystem/DOMFileSystem.idl: Copied from Source/WebCore/fileapi/DOMFileSystem.idl.
313         * Modules/filesystem/DOMFileSystemBase.cpp: Copied from Source/WebCore/fileapi/DOMFileSystemBase.cpp.
314         * Modules/filesystem/DOMFileSystemBase.h: Copied from Source/WebCore/fileapi/DOMFileSystemBase.h.
315         * Modules/filesystem/DOMFileSystemSync.cpp: Copied from Source/WebCore/fileapi/DOMFileSystemSync.cpp.
316         * Modules/filesystem/DOMFileSystemSync.h: Copied from Source/WebCore/fileapi/DOMFileSystemSync.h.
317         * Modules/filesystem/DOMFileSystemSync.idl: Copied from Source/WebCore/fileapi/DOMFileSystemSync.idl.
318         * Modules/filesystem/Entry.cpp: Copied from Source/WebCore/fileapi/Entry.cpp.
319         * Modules/filesystem/Entry.h: Copied from Source/WebCore/fileapi/Entry.h.
320         * Modules/filesystem/Entry.idl: Copied from Source/WebCore/fileapi/Entry.idl.
321         * Modules/filesystem/EntryArray.cpp: Copied from Source/WebCore/fileapi/EntryArray.cpp.
322         * Modules/filesystem/EntryArray.h: Copied from Source/WebCore/fileapi/EntryArray.h.
323         * Modules/filesystem/EntryArray.idl: Copied from Source/WebCore/fileapi/EntryArray.idl.
324         * Modules/filesystem/EntryArraySync.cpp: Copied from Source/WebCore/fileapi/EntryArraySync.cpp.
325         * Modules/filesystem/EntryArraySync.h: Copied from Source/WebCore/fileapi/EntryArraySync.h.
326         * Modules/filesystem/EntryArraySync.idl: Copied from Source/WebCore/fileapi/EntryArraySync.idl.
327         * Modules/filesystem/EntryBase.cpp: Copied from Source/WebCore/fileapi/EntryBase.cpp.
328         * Modules/filesystem/EntryBase.h: Copied from Source/WebCore/fileapi/EntryBase.h.
329         * Modules/filesystem/EntryCallback.h: Copied from Source/WebCore/fileapi/EntryCallback.h.
330         * Modules/filesystem/EntryCallback.idl: Copied from Source/WebCore/fileapi/EntryCallback.idl.
331         * Modules/filesystem/EntrySync.cpp: Copied from Source/WebCore/fileapi/EntrySync.cpp.
332         * Modules/filesystem/EntrySync.h: Copied from Source/WebCore/fileapi/EntrySync.h.
333         * Modules/filesystem/EntrySync.idl: Copied from Source/WebCore/fileapi/EntrySync.idl.
334         * Modules/filesystem/ErrorCallback.h: Copied from Source/WebCore/fileapi/ErrorCallback.h.
335         * Modules/filesystem/ErrorCallback.idl: Copied from Source/WebCore/fileapi/ErrorCallback.idl.
336         * Modules/filesystem/FileCallback.h: Copied from Source/WebCore/fileapi/FileCallback.h.
337         * Modules/filesystem/FileCallback.idl: Copied from Source/WebCore/fileapi/FileCallback.idl.
338         * Modules/filesystem/FileEntry.cpp: Copied from Source/WebCore/fileapi/FileEntry.cpp.
339         * Modules/filesystem/FileEntry.h: Copied from Source/WebCore/fileapi/FileEntry.h.
340         * Modules/filesystem/FileEntry.idl: Copied from Source/WebCore/fileapi/FileEntry.idl.
341         * Modules/filesystem/FileEntrySync.cpp: Copied from Source/WebCore/fileapi/FileEntrySync.cpp.
342         * Modules/filesystem/FileEntrySync.h: Copied from Source/WebCore/fileapi/FileEntrySync.h.
343         * Modules/filesystem/FileEntrySync.idl: Copied from Source/WebCore/fileapi/FileEntrySync.idl.
344         * Modules/filesystem/FileSystemCallback.h: Copied from Source/WebCore/fileapi/FileSystemCallback.h.
345         * Modules/filesystem/FileSystemCallback.idl: Copied from Source/WebCore/fileapi/FileSystemCallback.idl.
346         * Modules/filesystem/FileSystemCallbacks.cpp: Copied from Source/WebCore/fileapi/FileSystemCallbacks.cpp.
347         * Modules/filesystem/FileSystemCallbacks.h: Copied from Source/WebCore/fileapi/FileSystemCallbacks.h.
348         * Modules/filesystem/FileWriter.cpp: Copied from Source/WebCore/fileapi/FileWriter.cpp.
349         * Modules/filesystem/FileWriter.h: Copied from Source/WebCore/fileapi/FileWriter.h.
350         * Modules/filesystem/FileWriter.idl: Copied from Source/WebCore/fileapi/FileWriter.idl.
351         * Modules/filesystem/FileWriterBase.cpp: Copied from Source/WebCore/fileapi/FileWriterBase.cpp.
352         * Modules/filesystem/FileWriterBase.h: Copied from Source/WebCore/fileapi/FileWriterBase.h.
353         * Modules/filesystem/FileWriterBaseCallback.h: Copied from Source/WebCore/fileapi/FileWriterBaseCallback.h.
354         * Modules/filesystem/FileWriterCallback.h: Copied from Source/WebCore/fileapi/FileWriterCallback.h.
355         * Modules/filesystem/FileWriterCallback.idl: Copied from Source/WebCore/fileapi/FileWriterCallback.idl.
356         * Modules/filesystem/FileWriterSync.cpp: Copied from Source/WebCore/fileapi/FileWriterSync.cpp.
357         * Modules/filesystem/FileWriterSync.h: Copied from Source/WebCore/fileapi/FileWriterSync.h.
358         * Modules/filesystem/FileWriterSync.idl: Copied from Source/WebCore/fileapi/FileWriterSync.idl.
359         * Modules/filesystem/LocalFileSystem.cpp: Copied from Source/WebCore/fileapi/LocalFileSystem.cpp.
360         * Modules/filesystem/LocalFileSystem.h: Copied from Source/WebCore/fileapi/LocalFileSystem.h.
361         * Modules/filesystem/Metadata.h: Copied from Source/WebCore/fileapi/Metadata.h.
362         * Modules/filesystem/Metadata.idl: Copied from Source/WebCore/fileapi/Metadata.idl.
363         * Modules/filesystem/MetadataCallback.h: Copied from Source/WebCore/fileapi/MetadataCallback.h.
364         * Modules/filesystem/MetadataCallback.idl: Copied from Source/WebCore/fileapi/MetadataCallback.idl.
365         * Modules/filesystem/SyncCallbackHelper.h: Copied from Source/WebCore/fileapi/SyncCallbackHelper.h.
366         * Modules/filesystem/WebKitFlags.h: Copied from Source/WebCore/fileapi/WebKitFlags.h.
367         * Modules/filesystem/WorkerContextFileSystem.cpp: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.cpp.
368         * Modules/filesystem/WorkerContextFileSystem.h: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.h.
369         * Modules/filesystem/WorkerContextFileSystem.idl: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.idl.
370         * Target.pri:
371         * WebCore.gyp/WebCore.gyp:
372         * WebCore.gypi:
373         * WebCore.vcproj/WebCore.vcproj:
374         * WebCore.xcodeproj/project.pbxproj:
375         * fileapi/AsyncFileWriter.h: Removed.
376         * fileapi/AsyncFileWriterClient.h: Removed.
377         * fileapi/DOMFilePath.cpp: Removed.
378         * fileapi/DOMFilePath.h: Removed.
379         * fileapi/DOMFileSystem.cpp: Removed.
380         * fileapi/DOMFileSystem.h: Removed.
381         * fileapi/DOMFileSystem.idl: Removed.
382         * fileapi/DOMFileSystemBase.cpp: Removed.
383         * fileapi/DOMFileSystemBase.h: Removed.
384         * fileapi/DOMFileSystemSync.cpp: Removed.
385         * fileapi/DOMFileSystemSync.h: Removed.
386         * fileapi/DOMFileSystemSync.idl: Removed.
387         * fileapi/Entry.cpp: Removed.
388         * fileapi/Entry.h: Removed.
389         * fileapi/Entry.idl: Removed.
390         * fileapi/EntryArray.cpp: Removed.
391         * fileapi/EntryArray.h: Removed.
392         * fileapi/EntryArray.idl: Removed.
393         * fileapi/EntryArraySync.cpp: Removed.
394         * fileapi/EntryArraySync.h: Removed.
395         * fileapi/EntryArraySync.idl: Removed.
396         * fileapi/EntryBase.cpp: Removed.
397         * fileapi/EntryBase.h: Removed.
398         * fileapi/EntryCallback.h: Removed.
399         * fileapi/EntryCallback.idl: Removed.
400         * fileapi/EntrySync.cpp: Removed.
401         * fileapi/EntrySync.h: Removed.
402         * fileapi/EntrySync.idl: Removed.
403         * fileapi/ErrorCallback.h: Removed.
404         * fileapi/ErrorCallback.idl: Removed.
405         * fileapi/FileCallback.h: Removed.
406         * fileapi/FileCallback.idl: Removed.
407         * fileapi/FileEntry.cpp: Removed.
408         * fileapi/FileEntry.h: Removed.
409         * fileapi/FileEntry.idl: Removed.
410         * fileapi/FileEntrySync.cpp: Removed.
411         * fileapi/FileEntrySync.h: Removed.
412         * fileapi/FileEntrySync.idl: Removed.
413         * fileapi/FileSystemCallback.h: Removed.
414         * fileapi/FileSystemCallback.idl: Removed.
415         * fileapi/FileSystemCallbacks.cpp: Removed.
416         * fileapi/FileSystemCallbacks.h: Removed.
417         * fileapi/FileWriter.cpp: Removed.
418         * fileapi/FileWriter.h: Removed.
419         * fileapi/FileWriter.idl: Removed.
420         * fileapi/FileWriterBase.cpp: Removed.
421         * fileapi/FileWriterBase.h: Removed.
422         * fileapi/FileWriterBaseCallback.h: Removed.
423         * fileapi/FileWriterCallback.h: Removed.
424         * fileapi/FileWriterCallback.idl: Removed.
425         * fileapi/FileWriterSync.cpp: Removed.
426         * fileapi/FileWriterSync.h: Removed.
427         * fileapi/FileWriterSync.idl: Removed.
428         * fileapi/LocalFileSystem.cpp: Removed.
429         * fileapi/LocalFileSystem.h: Removed.
430         * fileapi/Metadata.h: Removed.
431         * fileapi/Metadata.idl: Removed.
432         * fileapi/MetadataCallback.h: Removed.
433         * fileapi/MetadataCallback.idl: Removed.
434         * fileapi/SyncCallbackHelper.h: Removed.
435         * fileapi/WebKitFlags.h: Removed.
436         * fileapi/WorkerContextFileSystem.cpp: Removed.
437         * fileapi/WorkerContextFileSystem.h: Removed.
438         * fileapi/WorkerContextFileSystem.idl: Removed.
439
440 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
441
442         Collapse ENABLE(BLOB)|ENABLE(FILE_SYSTEM) to just ENABLE(BLOB) in OperationNotAllowedException.idl
443         https://bugs.webkit.org/show_bug.cgi?id=81391
444
445         Reviewed by Adam Barth.
446
447         No new tests, all existing tests pass.
448
449         * fileapi/OperationNotAllowedException.idl:
450
451 2012-03-16  Emil A Eklund  <eae@chromium.org>
452
453         Fix rounding and usage of LayoutUnits in RenderBoxModelObject
454         https://bugs.webkit.org/show_bug.cgi?id=81057
455
456         Reviewed by Julien Chaffraix.
457
458         No new tests.
459
460         (WebCore):
461         * rendering/RenderBoxModelObject.cpp:
462         (WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth):
463         (WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight):
464         Fix implementation of pixelSnappedOffsetWidth/Height. The location
465         parameter will be ignored until we enable subpixel support.
466
467         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
468         Use ints for border widths.
469         
470         (WebCore::resolveWidthForRatio):
471         (WebCore::resolveHeightForRatio):
472         (WebCore::resolveAgainstIntrinsicWidthOrHeightAndRatio):
473         (WebCore::resolveAgainstIntrinsicRatio):
474         Change resolve*Ratio methods to operate on IntSizes as none of the
475         callers need subpixel precision.
476
477         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
478         (WebCore::RenderBoxModelObject::paintNinePieceImage):
479         Pixel snap paintRect when computing image geometry.
480
481 2012-03-16  Terry Anderson  <tdanderson@chromium.org>
482
483         100% height elements to not respond to vertical browser rescaling
484         https://bugs.webkit.org/show_bug.cgi?id=43022
485
486         Reviewed by Julien Chaffraix.
487
488         Test: fast/replaced/vertical-resize-100percent-element.html
489
490         * rendering/RenderBox.cpp:
491         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
492             For the case where a replaced element has a percentage height,
493             we update the entries in RenderBlock::gPercentHeightDescendantsMap
494             corresponding to all ancestors of the replaced element.
495
496 2012-03-15  Daniel Cheng  <dcheng@chromium.org>
497
498         [chromium] Refactor ClipboardChromium and DataTransferItemList/DataTransferItem to support HTML spec
499         https://bugs.webkit.org/show_bug.cgi?id=76598
500
501         Reviewed by Tony Chang.
502
503         We no longer store drag/clipboard data in named fields. We used to maintain the data store
504         list separately, which resulted in a lot of complicated code to try to make sure that
505         ChromiumDataObject and this list stayed in sync. We now just store what is essentially a
506         list MIME type/data pairs directly in ChromiumDataObject. This has the benefit of letting us
507         easily add write support during dragstart/copy operations using DataTransferItemList.
508
509         Tests: fast/events/clipboard-dataTransferItemList.html
510                fast/events/drag-dataTransferItemList.html
511
512         * platform/chromium/ChromiumDataObject.cpp:
513         (WebCore::findItem):
514         (WebCore::ChromiumDataObject::createFromPasteboard):
515         (WebCore::ChromiumDataObject::create):
516         (WebCore::ChromiumDataObject::copy):
517         (WebCore::ChromiumDataObject::items):
518         (WebCore::ChromiumDataObject::clearData):
519         (WebCore::ChromiumDataObject::clearAll):
520         (WebCore::ChromiumDataObject::clearAllExceptFiles):
521         (WebCore::ChromiumDataObject::types):
522         (WebCore::ChromiumDataObject::getData):
523         (WebCore::ChromiumDataObject::setData):
524         (WebCore::ChromiumDataObject::urlAndTitle):
525         (WebCore::ChromiumDataObject::setURLAndTitle):
526         (WebCore::ChromiumDataObject::htmlAndBaseURL):
527         (WebCore::ChromiumDataObject::setHTMLAndBaseURL):
528         (WebCore::ChromiumDataObject::containsFilenames):
529         (WebCore):
530         (WebCore::ChromiumDataObject::filenames):
531         (WebCore::ChromiumDataObject::addFilename):
532         (WebCore::ChromiumDataObject::addSharedBuffer):
533         (WebCore::ChromiumDataObject::ChromiumDataObject):
534         * platform/chromium/ChromiumDataObject.h:
535         (WebCore):
536         (ChromiumDataObject):
537         * platform/chromium/ClipboardChromium.cpp:
538         (WebCore::normalizeType):
539         (WebCore::ClipboardChromium::ClipboardChromium):
540         (WebCore::ClipboardChromium::clearData):
541         (WebCore::ClipboardChromium::clearAllData):
542         (WebCore::ClipboardChromium::getData):
543         (WebCore::ClipboardChromium::setData):
544         (WebCore::ClipboardChromium::types):
545         (WebCore::ClipboardChromium::files):
546         (WebCore::writeImageToDataObject):
547         (WebCore::ClipboardChromium::declareAndWriteDragImage):
548         (WebCore::ClipboardChromium::writeURL):
549         (WebCore::ClipboardChromium::writeRange):
550         (WebCore::ClipboardChromium::writePlainText):
551         (WebCore::ClipboardChromium::hasData):
552         (WebCore::ClipboardChromium::items):
553         * platform/chromium/ClipboardChromium.h:
554         (WebCore):
555         (ClipboardChromium):
556         (WebCore::ClipboardChromium::frame):
557         * platform/chromium/ClipboardUtilitiesChromium.cpp:
558         (WebCore::convertURIListToURL):
559         (WebCore):
560         * platform/chromium/ClipboardUtilitiesChromium.h:
561         (WebCore):
562         * platform/chromium/DataTransferItemChromium.cpp:
563         (WebCore::DataTransferItemChromium::createFromString):
564         (WebCore::DataTransferItemChromium::createFromFile):
565         (WebCore::DataTransferItemChromium::createFromURL):
566         (WebCore::DataTransferItemChromium::createFromHTML):
567         (WebCore):
568         (WebCore::DataTransferItemChromium::createFromSharedBuffer):
569         (WebCore::DataTransferItemChromium::createFromPasteboard):
570         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
571         (WebCore::DataTransferItemChromium::getAsString):
572         (WebCore::DataTransferItemChromium::getAsFile):
573         (WebCore::DataTransferItemChromium::internalGetAsString):
574         (WebCore::DataTransferItemChromium::isFilename):
575         * platform/chromium/DataTransferItemChromium.h:
576         (WebCore):
577         (DataTransferItemChromium):
578         (WebCore::DataTransferItemChromium::kind):
579         (WebCore::DataTransferItemChromium::type):
580         (WebCore::DataTransferItemChromium::sharedBuffer):
581         (WebCore::DataTransferItemChromium::title):
582         (WebCore::DataTransferItemChromium::baseURL):
583         * platform/chromium/DataTransferItemListChromium.cpp:
584         (WebCore::DataTransferItemListChromium::create):
585         (WebCore::DataTransferItemListChromium::createFromPasteboard):
586         (WebCore):
587         (WebCore::DataTransferItemListChromium::DataTransferItemListChromium):
588         (WebCore::DataTransferItemListChromium::length):
589         (WebCore::DataTransferItemListChromium::item):
590         (WebCore::DataTransferItemListChromium::deleteItem):
591         (WebCore::DataTransferItemListChromium::clear):
592         (WebCore::DataTransferItemListChromium::add):
593         (WebCore::DataTransferItemListChromium::internalAddStringItem):
594         (WebCore::DataTransferItemListChromium::internalAddFileItem):
595         * platform/chromium/DataTransferItemListChromium.h:
596         (WebCore):
597         (DataTransferItemListChromium):
598         * platform/chromium/DragDataChromium.cpp:
599         (WebCore::DragData::asURL):
600         (WebCore::DragData::asPlainText):
601         (WebCore::DragData::asFragment):
602
603 2012-03-16  Matt Lilek  <mrl@apple.com>
604
605         Don't install libWebCoreTestSupport on OS X production builds
606         https://bugs.webkit.org/show_bug.cgi?id=81087
607
608         Reviewed by Mark Rowe.
609
610         * Configurations/WebCoreTestSupport.xcconfig:
611
612 2012-03-16  Tony Chang  <tony@chromium.org>
613
614         incorrectly removing scrollbar height for auto height flexbox children
615         https://bugs.webkit.org/show_bug.cgi?id=81388
616
617         Reviewed by Ojan Vafai.
618
619         In a column flexbox, when computing the preferred height of an auto
620         height child, we were subtracting out the horizontal scrollbar height.
621
622         New test case in css3/flexbox/columns-auto-size.html.
623
624         * rendering/RenderFlexibleBox.cpp:
625         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
626
627 2012-03-16  Adam Klein  <adamk@chromium.org>
628
629         Out-of-document radio buttons should be grouped when associated with a form
630         https://bugs.webkit.org/show_bug.cgi?id=81268
631
632         Reviewed by Kent Tamura.
633
634         Per the HTML spec, and the behavior of Firefox and IE 8/9, radio buttons
635         with a form owner should be grouped, even if that form is not in the document.
636
637         r104668 added many inDocument() tests to radio button grouping code.
638         While those are necessary to avoid unattached <input type=radio>
639         elements being grouped together, it also kept them from being grouped
640         when associated with a form outside the document.
641
642         This patch changes the HTMLInputElement::checkedRadioButtons() method
643         to return either a pointer to the proper CheckedRadioButtons instance
644         (either the document's or a form's), but will return null if the
645         element should not be associated with any radio button group.
646
647         The main fallout of this was that the callers of checkedRadioButtons()
648         now have to check for null, resulting in the creation of a few helper
649         methods in HTMLInputElement to wrap the null checks.
650
651         This refactoring has the pleasant side-effect of exposing a cleaner API between
652         HTMLInputElement and RadioInputType, and making a clearer contract
653         between HTMLInputElement and CheckedRadioButtons (e.g., all
654         CheckedRadioButtons methods that take an element can now assume that
655         it is a radio button, where previously some checked for that and
656         others asserted it).
657
658         Test: fast/forms/radio/radio-group-in-detached-form.html
659
660         * dom/CheckedRadioButtons.cpp:
661         (WebCore): Removed shouldMakeRadioGroup() helper function.
662         (WebCore::CheckedRadioButtons::addButton): Replace call to shouldMakeRadioGroup
663         with appropriate assert and name check.
664         (WebCore::CheckedRadioButtons::updateCheckedState): ditto.
665         (WebCore::CheckedRadioButtons::requiredAttributeChanged): ditto.
666         (WebCore::CheckedRadioButtons::isRequiredGroup): Renamed from isInRequiredGroup,
667         changed to take only a group name, not an element.
668         (WebCore::CheckedRadioButtons::removeButton): Replace call to shouldMakeRadioGroup.
669         with appropriate assert and name check.
670         * dom/CheckedRadioButtons.h:
671         (CheckedRadioButtons):
672         * html/HTMLInputElement.cpp:
673         (WebCore::HTMLInputElement::~HTMLInputElement): Added isRadioButton check
674         now that it's asserted in CheckedRadioButtons.
675         (WebCore::HTMLInputElement::updateType): Call helper method instead of
676         calling directly into CheckedRadioButtons.
677         (WebCore::HTMLInputElement::parseAttribute): ditto.
678         (WebCore::HTMLInputElement::setChecked): ditto.
679         (WebCore::HTMLInputElement::willChangeForm): ditto.
680         (WebCore::HTMLInputElement::didChangeForm): ditto.
681         (WebCore::HTMLInputElement::insertedIntoDocument): ditto.
682         (WebCore::HTMLInputElement::removedFromDocument): ditto.
683         (WebCore::HTMLInputElement::didMoveToNewDocument): Added isRadioButton check.
684         (WebCore::HTMLInputElement::requiredAttributeChanged): Check for membership in a group
685         before calling into CheckedRadioButtons.
686         (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup): Added helper method for use by RadioInputType.
687         (WebCore):
688         (WebCore::HTMLInputElement::checkedRadioButtonForGroup): ditto.
689         (WebCore::HTMLInputElement::checkedRadioButtons): Changed to return a
690         pointer, only return non-null if actually a member of a group.
691         (WebCore::HTMLInputElement::addToRadioButtonGroup): Helper method for
692         use in HTMLInputElement.
693         (WebCore::HTMLInputElement::removeFromRadioButtonGroup): ditto.
694         * html/HTMLInputElement.h:
695         (HTMLInputElement): Added/removed methods, removed outdated comment about visibility.
696         * html/RadioInputType.cpp:
697         (WebCore::RadioInputType::valueMissing): Call new HTMLInputElement methods instead
698         of interacting directly with CheckedRadioButtons.
699         (WebCore::RadioInputType::isKeyboardFocusable): ditto.
700         (WebCore::RadioInputType::willDispatchClick): ditto.
701
702 2012-03-16  David Hyatt  <hyatt@apple.com>
703
704         https://bugs.webkit.org/show_bug.cgi?id=81366
705         
706         Add RenderMultiColumnBlock subclass of RenderBlock. This new class will hold all of the multi-column
707         logic (as well as painting/hit testing). That way the column code can be kept out of the base class
708         and be more cleanly factored.
709
710         Patch Node::diff so that we detach and re-attach the renderer if column counts or widths change
711         from auto to non-auto (and vice versa) to ensure the right renderer gets made.
712         
713         Patch RenderObject::createObject to make a RenderMultiColumnBlock if either the column count or
714         column width is non-auto.
715         
716         Patch RenderBlock::calcColumnWidth to "turn off" the old implementation of columns if the pref to use
717         the new column implementation is set. This single chokepoint should be sufficient for disabling the old
718         columns in favor of the new.
719
720         Reviewed by Dan Bernstein.
721
722         * CMakeLists.txt:
723         * GNUmakefile.list.am:
724         * WebCore.gypi:
725         * WebCore.vcproj/WebCore.vcproj:
726         * WebCore.xcodeproj/project.pbxproj:
727         * dom/Document.cpp:
728         (WebCore::Document::regionBasedColumnsEnabled):
729         (WebCore):
730         (WebCore::Document::recalcStyle):
731         * dom/Document.h:
732         (Document):
733         * dom/Element.cpp:
734         (WebCore::Element::recalcStyle):
735         * dom/Node.cpp:
736         (WebCore::Node::diff):
737         * dom/Node.h:
738         * rendering/RenderBlock.cpp:
739         (WebCore::RenderBlock::calcColumnWidth):
740         (WebCore::RenderBlock::updateFirstLetterStyle):
741         * rendering/RenderMultiColumnBlock.cpp: Added.
742         (WebCore):
743         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
744         (WebCore::RenderMultiColumnBlock::renderName):
745         * rendering/RenderMultiColumnBlock.h: Added.
746         (WebCore):
747         (RenderMultiColumnBlock):
748         * rendering/RenderObject.cpp:
749         (WebCore::RenderObject::createObject):
750         * rendering/RenderObjectChildList.cpp:
751         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
752
753 2012-03-16  Stephen White  <senorblanco@chromium.org>
754
755         [chromium] Improve CSS3 filter blur performance.
756         https://bugs.webkit.org/show_bug.cgi?id=81360
757
758         This change improves blur performance by 2-2.5X on blurred CSS
759         3D transforms and accelerated canvas demos by skipping an unnecessary
760         texture allocation and bitmap draw.
761
762         Reviewed by James Robinson.
763
764         Covered by existing layout tests in css3/filters.
765
766         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
767         (WebCore::CCRenderSurfaceFilters::apply):
768         Call SkCanvas::drawSprite() directly instead of using
769         saveLayer()/restore().
770
771 2012-03-16  Joshua Bell  <jsbell@chromium.org>
772
773         [Chromium] IndexedDB: Assertion failure when storing File objects
774         https://bugs.webkit.org/show_bug.cgi?id=76746
775
776         The blob data in Blob/File/FileList objects is serialized "by reference" (the
777         internal URL) rather than "by value" (the actual data); this is sufficient for
778         postMessage() but not for IndexedDB since the referenced data is not retained
779         Expose a mechanism to enumerate the URLs so that SSVs can be rejected by IDB
780         until blob data serialization can is implemented (outside the SSV mechanism, and
781         potentially asynchronously).
782
783         Also, correct issue in V8DOMWrapper::instantiateV8Object where context is assumed
784         to be a Worker context if it's not a Window, which is incorrect for the
785         Chromium utility process; this is hit if Blobs are not blocked.
786
787         Reviewed by Tony Chang.
788
789         Test: storage/indexeddb/noblobs.html
790
791         * Modules/indexeddb/IDBCursor.cpp:
792         (WebCore::IDBCursor::update): Reject SSVs that contain blob references.
793         * Modules/indexeddb/IDBObjectStore.cpp:
794         (WebCore::IDBObjectStore::add): Reject SSVs that contain blob references.
795         (WebCore::IDBObjectStore::put): Reject SSVs that contain blob references.
796         * bindings/js/SerializedScriptValue.cpp:
797         (WebCore::CloneSerializer::serialize):
798         (WebCore::CloneSerializer::CloneSerializer):
799         (WebCore::CloneSerializer::dumpIfTerminal):
800         (WebCore::CloneSerializer::write):
801         (CloneSerializer):
802         (WebCore::SerializedScriptValue::SerializedScriptValue):
803         (WebCore::SerializedScriptValue::create):
804         (WebCore::SerializedScriptValue::undefinedValue):
805         (WebCore::SerializedScriptValue::booleanValue):
806         * bindings/js/SerializedScriptValue.h: New API to enable the clients to be picky.
807         * bindings/v8/SerializedScriptValue.cpp:
808         (WebCore::SerializedScriptValue::SerializedScriptValue):
809         * bindings/v8/SerializedScriptValue.h: New API to enable the clients to be picky.
810         (WebCore::SerializedScriptValue::blobURLs):
811         (SerializedScriptValue):
812         * bindings/v8/V8DOMWrapper.cpp:
813         (WebCore::V8DOMWrapper::instantiateV8Object):  Ensure context is a worker context before treating it as such.
814
815 2012-03-16  Erik Arvidsson  <arv@chromium.org>
816
817         [V8] Ensure that invalid syntax in inline event handlers does not cause a crash
818         https://bugs.webkit.org/show_bug.cgi?id=81385
819
820         Reviewed by Nate Chapin.
821
822         The way that V8 does its inline event handler involves concatting strings and
823         if the attribute value is crafted in a special way this could cause a crash.
824
825         Test: fast/dom/inline-event-attributes-crash.html
826
827         * bindings/v8/V8LazyEventListener.cpp:
828         (WebCore::V8LazyEventListener::prepareListenerObject):
829
830 2012-03-14  Jer Noble  <jer.noble@apple.com>
831
832         Wrong icon to restore to windowed mode in full screen video panel
833         https://bugs.webkit.org/show_bug.cgi?id=70437
834
835         Reviewed by Eric Carlson.
836
837         No new tests. Updated platform/mac/accessibility/media-element-expected.txt.
838
839         Renamed MediaFullscreenButton to MediaEnterFullscreenButton and added MediaExitFullscreenButton:
840         * accessibility/AccessibilityMediaControls.cpp:
841         (WebCore::AccessibilityMediaControl::controlTypeName):
842         (WebCore::AccessibilityMediaControl::roleValue):
843         * html/shadow/MediaControlElements.cpp:
844         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
845         * css/CSSPrimitiveValueMappings.h:
846         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
847         * css/CSSValueKeywords.in:
848         * platform/ThemeTypes.h:
849
850         Added setIsFullscreen which controls the display of the enter/exit fullscreen button:
851         * html/shadow/MediaControlElements.cpp:
852         (WebCore::MediaControlFullscreenButtonElement::setIsFullscreen): Added.
853         * html/shadow/MediaControlElements.h:
854         * html/shadow/MediaControlRootElement.cpp:
855         (WebCore::MediaControlRootElement::enteredFullscreen):
856         (WebCore::MediaControlRootElement::exitedFullscreen):
857
858         Paint the enter/exit fullscreen button accordingly:
859         * rendering/RenderMediaControlsChromium.cpp:
860         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
861         * rendering/RenderTheme.cpp:
862         (WebCore::RenderTheme::paint):
863         * rendering/RenderThemeChromiumAndroid.cpp:
864         (WebCore::RenderThemeChromiumAndroid::paintMediaFullscreenButton):
865         * rendering/RenderThemeMac.mm:
866         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
867         * rendering/RenderMediaControls.cpp:
868         (WebCore::RenderMediaControls::paintMediaControlsPart):
869         * rendering/RenderThemeSafari.cpp:
870         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
871
872         Update the localized strings for the exit and enter fullscreen buttons:
873         * English.lproj/Localizable.strings:
874         * platform/LocalizedStrings.cpp:
875         (WebCore::localizedMediaControlElementString):
876         * platform/gtk/LocalizedStringsGtk.cpp:
877         (WebCore::localizedMediaControlElementString):
878         (WebCore::localizedMediaControlElementHelpText):
879         * platform/qt/LocalizedStringsQt.cpp:
880         (WebCore::localizedMediaControlElementString):
881         (WebCore::localizedMediaControlElementHelpText):
882
883 2012-03-16  Levi Weintraub  <leviw@chromium.org>
884
885         Update LayoutUnit usage in RenderListBox
886         https://bugs.webkit.org/show_bug.cgi?id=81038
887
888         Reviewed by Julien Chaffraix.
889
890         Bringing RenderListBox in line with the rules listed in
891         https://trac.webkit.org/wiki/LayoutUnit
892
893         No new tests. No change in behavior.
894
895         * rendering/RenderListBox.cpp:
896         (WebCore::RenderListBox::paintScrollbar): Pixel snapping before handing off scrollbar
897         painting to the platform.
898         (WebCore::RenderListBox::paintItemForeground): Rounding the offset for text painting.
899         (WebCore::RenderListBox::paintItemBackground): Pixel snapping the background rect.
900         (WebCore::RenderListBox::panScroll): EventHandler::currentMousePosition is an IntPoint,
901         so it doesn't require additional rounding in RenderListBox.
902
903 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
904
905         Unreviewed, rolling out r111020.
906         http://trac.webkit.org/changeset/111020
907         https://bugs.webkit.org/show_bug.cgi?id=81377
908
909         Broke Chromium Win compile (Requested by pkasting on #webkit).
910
911         * GNUmakefile.list.am:
912         * WebCore.gypi:
913         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
914         * platform/mediastream/PeerConnection00Handler.h: Removed.
915         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
916
917 2012-03-16  Dominic Mazzoni  <dmazzoni@google.com>
918
919         File input control accessibility can cause a crash
920         https://bugs.webkit.org/show_bug.cgi?id=80896
921
922         Reviewed by Chris Fleizach.
923
924         Test: accessibility/input-file-causes-crash.html
925
926         * accessibility/AccessibilityRenderObject.cpp:
927         (WebCore::AccessibilityRenderObject::textUnderElement):
928
929 2012-03-08  Jer Noble  <jer.noble@apple.com>
930
931         Support W3C Full Screen API proposal
932         https://bugs.webkit.org/show_bug.cgi?id=80660
933
934         Reviewed by Alexey Proskuryakov.
935
936         Tests: fullscreen/full-screen-element-stack.html
937                fullscreen/full-screen-enabled.html
938                fullscreen/full-screen-restrictions.html
939
940         The W3C proposal for taking arbitrary elements into full-screen mode is significantly
941         different than the Mozilla proposal. For example, the W3C has proposed a lower-case "s"
942         in "Fullscreen", which means the W3C and Mozilla "requestFullscreen" APIs differ only by
943         in that lower-case "s". Annoying as this is, it does allow us to retain the semantics for
944         the Mozilla case (har!).
945
946         A significant difficulty is obeying the new W3C spec rules is that we would like to apply the
947         fullscreen CSS rules while exiting fullscreen mode, though the W3C spec insists that the
948         webkitFullscreenElement returns the new value immediately.  As such, we retain the m_fullScreenElement
949         variable (distinct from the top of the m_fullScreenElements stack) which is controlled by the
950         webkit{Will,Did}{Enter,Exit}FullScreen functions.
951
952         New APIs for the W3C Fullscreen spec:
953         * dom/Document.h:
954         (WebCore::Document::webkitFullscreenElement):
955         (WebCore::Document::webkitFullscreenEnabled):
956         * dom/Document.idl:
957         * dom/Element.cpp:
958         (WebCore::Element::webkitRequestFullscreen):
959         * dom/Element.h:
960         * dom/Element.idl:
961
962         * dom/Document.cpp:
963         (WebCore::Document::removedLastRef): Clear m_fullScreenElementStack.
964         (WebCore::Document::requestFullScreenForElement): Implement the W3C requirements.
965         (WebCore::Document::webkitExitFullscreen): Ditto.
966         (WebCore::Document::webkitCancelFullScreen): Implement in terms of webkitCancelFullscreen.
967         (WebCore::Document::webkitDidEnterFullScreenForElement): 
968         (WebCore::Document::webkitWillExitFullScreenForElement):
969         (WebCore::Document::webkitDidExitFullScreenForElement):
970         (WebCore::Document::fullScreenChangeDelayTimerFired): Protect against items being
971             added to the event and error queue by swapping out empty queues before starting.
972         (WebCore::Document::clearFullscreenElementStack): Simple accessor.
973         (WebCore::Document::popFullscreenElementStack): Ditto.
974         (WebCore::Document::pushFullscreenElementStack): Ditto.
975         * dom/Element.cpp:
976         (WebCore::Element::webkitRequestFullScreen):
977
978         Add new RuntimeEnabledFeatures functions for the added Document and Element functions.
979         * bindings/generic/RuntimeEnabledFeatures.h:
980         (RuntimeEnabledFeatures):
981         (WebCore::RuntimeEnabledFeatures::webkitFullscreenEnabledEnabled):
982         (WebCore::RuntimeEnabledFeatures::webkitFullscreenElementEnabled):
983         (WebCore::RuntimeEnabledFeatures::webkitExitFullscreenEnabled):
984         (WebCore::RuntimeEnabledFeatures::webkitRequestFullscreenEnabled):
985
986
987 2012-03-16  Adam Klein  <adamk@chromium.org>
988
989         Make HTMLInputElement::isRadioButton non-virtual and remove unused HTMLFormControlElement::isRadioButton method
990         https://bugs.webkit.org/show_bug.cgi?id=81255
991
992         Reviewed by Kent Tamura.
993
994         No new tests, no change in behavior.
995
996         * html/HTMLFormControlElement.h:
997         * html/HTMLInputElement.h:
998         (HTMLInputElement):
999
1000 2012-03-16  Tay Grigg  <tgrigg@rim.com>
1001
1002         [BlackBerry] Update NetworkJob to accept batched headers
1003         https://bugs.webkit.org/show_bug.cgi?id=81273
1004
1005         Batch up the headers into a vector before they come into
1006         webkit to increase performance, and simplify the API.
1007
1008         Reviewed by George Staikos.
1009
1010         * platform/network/blackberry/NetworkJob.cpp:
1011         (WebCore::NetworkJob::notifyHeadersReceived):
1012         * platform/network/blackberry/NetworkJob.h:
1013         (NetworkJob):
1014
1015 2012-03-16  Dana Jansens  <danakj@chromium.org>
1016
1017         [chromium] Add overdraw metrics for texture uploads
1018         https://bugs.webkit.org/show_bug.cgi?id=81175
1019
1020         Reviewed by Adrienne Walker.
1021
1022         Record texture upload metrics during paint. To properly record
1023         the amount of pixels culled, we must compute the amount of pixels we
1024         would have uploaded for a tile. This requires knowing the dirty rect of
1025         the tile, but the dirty rect can be changed by WebKit during a paint, so
1026         we always store the dirtyRect in the tile's updateRect. We add an
1027         m_updateCulled bool to the UpdatableTile structure, to identify tiles
1028         that were not updated, and know a tile was updated if updateRect is not
1029         empty and updateCulled is false.
1030
1031         Tested by all TiledLayerChromiumTests that use occlusion tracker.
1032
1033         * platform/graphics/chromium/TiledLayerChromium.cpp:
1034         (UpdatableTile):
1035         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1036         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1037         (WebCore::CCLayerTreeHost::paintLayerContents):
1038
1039 2012-03-16  Jer Noble  <jer.noble@apple.com>
1040
1041         Allow AudioContext::create() to emit an ExceptionCode.
1042         https://bugs.webkit.org/show_bug.cgi?id=81049
1043
1044         Reviewed by Kentaro Hara.
1045
1046         No new tests; no change in functionality.
1047
1048         Pass through an ExceptionCode parameter to AudioContext::create().  It is currently
1049         never modified, but exceptions will be added in the future.
1050
1051         * bindings/js/JSAudioContextCustom.cpp:
1052         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
1053         * bindings/v8/custom/V8AudioContextCustom.cpp:
1054         (WebCore::V8AudioContext::constructorCallback):
1055         * webaudio/AudioContext.cpp:
1056         (WebCore::AudioContext::create):
1057         * webaudio/AudioContext.h:
1058
1059 2012-03-16  Dana Jansens  <danakj@chromium.org>
1060
1061         [chromium] Remove surface damage client from occlusion tracker
1062         https://bugs.webkit.org/show_bug.cgi?id=81242
1063
1064         Reviewed by Adrienne Walker.
1065
1066         Code was not used yet, so no new tests. Removing tests instead!
1067
1068         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1069         (WebCore::::CCOcclusionTrackerBase):
1070         (WebCore::::layerScissorRectInTargetSurface):
1071         (WebCore):
1072         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1073         (WebCore):
1074         (CCOcclusionTrackerBase):
1075
1076 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
1077
1078         MediaStream API (JSEP): Introducing PeerConnection00Handler
1079         https://bugs.webkit.org/show_bug.cgi?id=81333
1080
1081         Reviewed by Adam Barth.
1082
1083         In preparation of the last WebCore patch that will introduce PeerConnection00 here's its platform representation.
1084
1085         Not possible to test until the entire JSEP feature is commited.
1086
1087         * GNUmakefile.list.am:
1088         * WebCore.gypi:
1089         * platform/mediastream/PeerConnection00Handler.cpp: Added.
1090         (WebCore):
1091         (WebCore::PeerConnection00Handler::create):
1092         (WebCore::PeerConnection00Handler::PeerConnection00Handler):
1093         (WebCore::PeerConnection00Handler::~PeerConnection00Handler):
1094         (WebCore::PeerConnection00Handler::createOffer):
1095         (WebCore::PeerConnection00Handler::createAnswer):
1096         (WebCore::PeerConnection00Handler::setLocalDescription):
1097         (WebCore::PeerConnection00Handler::setRemoteDescription):
1098         (WebCore::PeerConnection00Handler::localDescription):
1099         (WebCore::PeerConnection00Handler::remoteDescription):
1100         (WebCore::PeerConnection00Handler::startIce):
1101         (WebCore::PeerConnection00Handler::processIceMessage):
1102         (WebCore::PeerConnection00Handler::addStream):
1103         (WebCore::PeerConnection00Handler::removeStream):
1104         (WebCore::PeerConnection00Handler::stop):
1105         * platform/mediastream/PeerConnection00Handler.h: Added.
1106         (WebCore):
1107         (PeerConnection00Handler):
1108         * platform/mediastream/PeerConnection00HandlerClient.h: Added.
1109         (WebCore):
1110         (PeerConnection00HandlerClient):
1111         (WebCore::PeerConnection00HandlerClient::~PeerConnection00HandlerClient):
1112
1113 2012-03-16  Pavel Podivilov  <podivilov@chromium.org>
1114
1115         Web Inspector: fix exception when hovering over bound function in heap profiler.
1116         https://bugs.webkit.org/show_bug.cgi?id=81362
1117
1118         Reviewed by Yury Semikhatsky.
1119
1120         * inspector/front-end/DebuggerPresentationModel.js:
1121         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawLocation):
1122
1123 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
1124
1125         [Forms] The "progress" element should not be a form-associated element.
1126         https://bugs.webkit.org/show_bug.cgi?id=80240
1127
1128         Reviewed by Kent Tamura.
1129
1130         This patch changes base class of HTMLProgressElement to LabelableElement from
1131         HTMLFormControlElement for saving memory space and iteration time of
1132         extra "progress" elements in HTMLFormElement::m_formAssociatedElements
1133         and matching the HTML5 specification for ease of maintenance.
1134
1135         Changes of TextIterator is lead by usage of isFormControlElement. This
1136         changes will be replaced with more meaningful predicate as part of
1137         https://bugs.webkit.org/show_bug.cgi?id=80381
1138
1139         No new tests. Update existing tests to cover this change.
1140
1141         * css/CSSStyleSelector.cpp:
1142         (WebCore::CSSStyleSelector::canShareStyleWithElement): Moved the "progress" element support code from canShareStyleWithControl.
1143         (WebCore::CSSStyleSelector::canShareStyleWithControl):
1144         * css/SelectorChecker.cpp:
1145         (WebCore::SelectorChecker::checkOneSelector): Remove isFormControlElement check for PseudoIndeterminate.
1146         * editing/TextIterator.cpp:
1147         (WebCore::TextIterator::advance): Check HTMLProgressElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
1148         * html/HTMLProgressElement.cpp: Remove unused include file.
1149         (WebCore::HTMLProgressElement::HTMLProgressElement): Changed base class to LabelableElement.
1150         (WebCore::HTMLProgressElement::create): Remove form paraprogress.
1151         (WebCore::HTMLProgressElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement.
1152         (WebCore::HTMLProgressElement::attach): Replace HTMLFormControlElement to LabelableElement.
1153         * html/HTMLProgressElement.h:
1154         (HTMLProgressElement):
1155         * html/HTMLProgressElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
1156         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
1157
1158 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
1159
1160         Web Inspector: Heap Snapshot: Unreviewed single line fix for isWindow getter.
1161
1162         * inspector/front-end/HeapSnapshot.js:
1163         (WebInspector.HeapSnapshotNode.prototype.get isWindow):
1164
1165 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
1166
1167         MediaStream API (JSEP): Fixing a few nits
1168         https://bugs.webkit.org/show_bug.cgi?id=81322
1169
1170         Reviewed by Adam Barth.
1171
1172         Addressing the nits from bugs 81206 and 81207.
1173
1174         Nothing to test.
1175
1176         * Modules/mediastream/SessionDescription.idl:
1177         * platform/mediastream/IceOptions.h:
1178         (WebCore::IceOptions::IceOptions):
1179         * platform/mediastream/SessionDescriptionDescriptor.h:
1180         (SessionDescriptionDescriptor):
1181
1182 2012-03-16  Peter Rybin  <peter.rybin@gmail.com>
1183
1184         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
1185         https://bugs.webkit.org/show_bug.cgi?id=80789
1186
1187         Reviewed by Yury Semikhatsky.
1188
1189         OptOutput class is added for optional return parameters.
1190
1191         Strict mode added to Generator that makes all parameter types strict
1192         and drop pre-set default values for return parameters.
1193
1194         Debugger and Page domain is switched to strict mode.
1195
1196         * inspector/CodeGeneratorInspector.py:
1197         (CommandReturnPassModel.OptOutput):
1198         (CommandReturnPassModel.OptOutput.__init__):
1199         (CommandReturnPassModel.OptOutput.get_return_var_type):
1200         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
1201         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
1202         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
1203         (CommandReturnPassModel):
1204         (CommandReturnPassModel.OptOutput.get_set_return_condition):
1205         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
1206         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
1207         (OptOutput):
1208         (Generator.process_event):
1209         (Generator.process_command):
1210         * inspector/ContentSearchUtils.cpp:
1211         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1212         (WebCore::ContentSearchUtils::searchInTextByLines):
1213         * inspector/ContentSearchUtils.h:
1214         (ContentSearchUtils):
1215         * inspector/InjectedScript.cpp:
1216         (WebCore::InjectedScript::evaluate):
1217         (WebCore::InjectedScript::callFunctionOn):
1218         (WebCore::InjectedScript::evaluateOnCallFrame):
1219         (WebCore::InjectedScript::makeEvalCall):
1220         * inspector/InjectedScript.h:
1221         (InjectedScript):
1222         * inspector/InspectorDOMDebuggerAgent.cpp:
1223         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
1224         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
1225         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
1226         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
1227         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
1228         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
1229         * inspector/InspectorDebuggerAgent.cpp:
1230         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
1231         (WebCore::InspectorDebuggerAgent::setBreakpoint):
1232         (WebCore::InspectorDebuggerAgent::searchInContent):
1233         (WebCore::InspectorDebuggerAgent::setScriptSource):
1234         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
1235         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
1236         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
1237         (WebCore::InspectorDebuggerAgent::didPause):
1238         (WebCore::InspectorDebuggerAgent::breakProgram):
1239         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
1240         * inspector/InspectorDebuggerAgent.h:
1241         (InspectorDebuggerAgent):
1242         * inspector/InspectorPageAgent.cpp:
1243         (WebCore::buildObjectForCookie):
1244         (WebCore::buildArrayForCookies):
1245         (WebCore::InspectorPageAgent::getCookies):
1246         (WebCore::InspectorPageAgent::getResourceTree):
1247         (WebCore::InspectorPageAgent::searchInResource):
1248         (WebCore::InspectorPageAgent::searchInResources):
1249         (WebCore::InspectorPageAgent::buildObjectForFrame):
1250         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
1251         * inspector/InspectorPageAgent.h:
1252         * inspector/InspectorRuntimeAgent.cpp:
1253         (WebCore::InspectorRuntimeAgent::evaluate):
1254         (WebCore::InspectorRuntimeAgent::callFunctionOn):
1255
1256 2012-03-16  Kentaro Hara  <haraken@chromium.org>
1257
1258         The IDL parser should support sequence<T> type
1259         https://bugs.webkit.org/show_bug.cgi?id=81345
1260
1261         Reviewed by Adam Barth.
1262
1263         This patch makes the IDL parser support sequence<T> type.
1264         This patch just makes sequence<T> parseable, and the generated code
1265         for sequence<T> is wrong. This issue will be soon fixed in bug 80696.
1266         This is a preparing patch for bug 80696.
1267
1268         Test: bindings/scripts/test/TestObj.idl
1269
1270         * bindings/scripts/test/TestObj.idl: Added tests for sequence<T>.
1271
1272         * bindings/scripts/IDLStructure.pm: Updated the regular expressions to support sequence<T>.
1273
1274         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
1275         (WebDOMTestObj::sequenceAttr):
1276         (WebDOMTestObj::setSequenceAttr):
1277         (WebDOMTestObj::methodWithSequenceArg):
1278         (WebDOMTestObj::methodReturningSequence):
1279         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1280         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1281         (webkit_dom_test_obj_method_with_sequence_arg):
1282         (webkit_dom_test_obj_method_returning_sequence):
1283         (webkit_dom_test_obj_get_sequence_attr):
1284         (webkit_dom_test_obj_set_sequence_attr):
1285         (webkit_dom_test_obj_get_property):
1286         (webkit_dom_test_obj_class_init):
1287         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1288         * bindings/scripts/test/JS/JSTestObj.cpp:
1289         (WebCore):
1290         (WebCore::jsTestObjSequenceAttr):
1291         (WebCore::setJSTestObjSequenceAttr):
1292         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
1293         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
1294         * bindings/scripts/test/JS/JSTestObj.h:
1295         (WebCore):
1296         * bindings/scripts/test/ObjC/DOMTestObj.h:
1297         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1298         (-[DOMTestObj sequenceAttr]):
1299         (-[DOMTestObj setSequenceAttr:]):
1300         (-[DOMTestObj methodWithSequenceArg:]):
1301         (-[DOMTestObj methodReturningSequence:]):
1302         * bindings/scripts/test/V8/V8TestObj.cpp:
1303         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
1304         (TestObjInternal):
1305         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
1306         (WebCore::TestObjInternal::methodWithSequenceArgCallback):
1307         (WebCore::TestObjInternal::methodReturningSequenceCallback):
1308         (WebCore):
1309         (WebCore::ConfigureV8TestObjTemplate):
1310
1311 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
1312
1313         Web Inspector: HeapSnapshot: merge two long operations into one.
1314         https://bugs.webkit.org/show_bug.cgi?id=81347
1315
1316         Reviewed by Yury Semikhatsky.
1317
1318         * inspector/front-end/HeapSnapshot.js:
1319         (WebInspector.HeapSnapshot.prototype.aggregates):
1320         (WebInspector.HeapSnapshot.prototype._buildAggregates):
1321         (WebInspector.HeapSnapshot.prototype._buildAggregates.forDominatedNodes):
1322
1323 2012-03-16  Gavin Peters  <gavinp@chromium.org>
1324
1325         Add asserts and improve logging in PageCache.
1326         https://bugs.webkit.org/show_bug.cgi?id=81179
1327
1328         Reviewed by Brady Eidson.
1329
1330         The early exits from logCanCacheFrameDecision had the potential to skew histogram data.  Moving
1331         the DocumentLoader check to the top, but eliminating the early exits is a compromise that keeps
1332         the logged data mostly accurate.
1333
1334         * history/PageCache.cpp:
1335         (WebCore::logCanCacheFrameDecision):
1336
1337 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
1338
1339         [Forms] label.form attribute doesn't work
1340         https://bugs.webkit.org/show_bug.cgi?id=80499
1341
1342         Reviewed by Kent Tamura.
1343
1344         This patch changes implementation of label.form of IDL attribute to
1345         compute it to the form element specified by the "form" HTML attribute
1346         or form ancestor when the "form" HTML attribute isn't in HTML.
1347
1348         This patch introduces new function FormAssociatedElement::findAssociatedForm
1349         for sharing code among FormAssociateElement::insertedIntoTree, resetFormOwner
1350         and HTMLLabelElement::form.
1351
1352         No new tests. Update existing tests.
1353
1354         * html/FormAssociatedElement.cpp:
1355         (WebCore::FormAssociatedElement::findAssociatedForm): Added.
1356         (WebCore):
1357         (WebCore::FormAssociatedElement::insertedIntoTree):
1358         (WebCore::FormAssociatedElement::resetFormOwner):
1359         * html/FormAssociatedElement.h:
1360         (FormAssociatedElement):
1361         * html/HTMLLabelElement.cpp: Remove unused include files
1362         (WebCore::HTMLLabelElement::form): Added.
1363
1364 2012-03-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1365
1366         Use the normalize method of FloatPoint instead of normalizing manually
1367         https://bugs.webkit.org/show_bug.cgi?id=81343
1368
1369         Reviewed by Simon Hausmann.
1370
1371         * platform/graphics/TiledBackingStore.cpp:
1372         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
1373         (WebCore::TiledBackingStore::computeCoverAndKeepRect):
1374
1375 2012-03-16  Kentaro Hara  <haraken@chromium.org>
1376
1377         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl
1378         https://bugs.webkit.org/show_bug.cgi?id=79636
1379
1380         Reviewed by Adam Barth.
1381
1382         For WebKit modularization, this patch moves Notifications-related APIs
1383         from DOMWindow.idl to DOMWindowNotifications.idl.
1384
1385         Tests: fast/notifications/* (No change in test results)
1386
1387         * CMakeLists.txt: Added DOMWindowNotifications.{h,cpp,idl}.
1388         * DerivedSources.make: Ditto.
1389         * DerivedSources.pri: Ditto.
1390         * GNUmakefile.list.am: Ditto.
1391         * Target.pri: Ditto.
1392         * WebCore.gypi: Ditto.
1393         * WebCore.vcproj/WebCore.vcproj: Ditto.
1394
1395         * WebCore.exp.in: Added mangled signatures of webkitNotifications().
1396
1397         * notifications/DOMWindowNotifications.cpp: Added.
1398         (WebCore):
1399         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
1400         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
1401         (WebCore::DOMWindowNotifications::from):
1402         (WebCore::DOMWindowNotifications::webkitNotifications):
1403         (WebCore::DOMWindowNotifications::ensureWebkitNotifications):
1404         (WebCore::DOMWindowNotifications::disconnectFrame):
1405         * notifications/DOMWindowNotifications.h: Added.
1406         (WebCore):
1407         (DOMWindowNotifications):
1408         * notifications/DOMWindowNotifications.idl: Added.
1409
1410         * page/DOMWindow.cpp: Removed ENABLE(NOTIFICATIONS).
1411         (WebCore::DOMWindow::~DOMWindow):
1412         (WebCore::DOMWindow::willDetachPage):
1413         (WebCore::DOMWindow::clear):
1414         * page/DOMWindow.h: Ditto.
1415         (WebCore):
1416         (DOMWindow):
1417         * page/DOMWindow.idl: Ditto.
1418         * page/Frame.cpp: Ditto.
1419         (WebCore::Frame::willDetachPage):
1420         (WebCore::Frame::transferChildFrameToNewDocument):
1421
1422 2012-03-16  Kentaro Hara  <haraken@chromium.org>
1423
1424         [Performance] Optimize innerHTML and outerHTML
1425         https://bugs.webkit.org/show_bug.cgi?id=81214
1426
1427         Reviewed by Adam Barth.
1428
1429         This patch makes innerHTML and outerHTML 2.4 times faster.
1430
1431         Performance test: https://bugs.webkit.org/attachment.cgi?id=132034
1432         The performance test measures body.innerHTML for 3000 lines of HTML,
1433         which is copied from the HTML spec.
1434
1435         - Chromium/Mac without the patch
1436         div.innerHTML: 1658.6 ms
1437         div.outerHTML: 4859.6 ms
1438         body.innerHTML: 640.2 ms
1439         body.outerHTML: 641.8 ms
1440
1441         - Chromium/Mac with the patch
1442         div.innerHTML:  751.0 ms
1443         div.outerHTML: 2096.0 ms
1444         body.innerHTML: 271.2 ms
1445         body.outerHTML: 271.2 ms
1446
1447         - Chromium/Linux without the patch
1448         div.innerHTML:  950.4 ms
1449         div.outerHTML: 2257.8 ms
1450         body.innerHTML: 452.8 ms
1451         body.outerHTML: 457.6 ms
1452
1453         - Chromium/Linux with the patch
1454         div.innerHTML:  582.4 ms
1455         div.outerHTML: 1283.0 ms
1456         body.innerHTML: 233.0 ms
1457         body.outerHTML: 233.4 ms
1458
1459         - AppleWebKit/Mac without the patch
1460         div.innerHTML:  900.6 ms
1461         div.outerHTML: 2245.2 ms
1462         body.innerHTML: 462.6 ms
1463         body.outerHTML: 468.0 ms
1464
1465         - AppleWebKit/Mac with the patch
1466         div.innerHTML:  529.8  ms
1467         div.outerHTML: 1090.2 ms
1468         body.innerHTML: 239.2 ms
1469         body.outerHTML: 239.2 ms
1470
1471         This patch applies the following two optimizations:
1472
1473         (a) Remove redundant copies between Vector<String> and StringBuilders
1474         in MarkupAccumulator::serializeNodes(), MarkupAccumulator::appendStartTag(),
1475         and MarkupAccumulator::appendEndTag().
1476
1477             (Previous behavior)
1478             - Create a StringBuilder for each tag.
1479             - Append a created string in each StringBuilder to Vector<String>,
1480               parsing the DOM tree.
1481             - After the parsing, allocate a StringBuilder whose size is the sum
1482               of all Strings in Vector<String>.
1483             - Append all Strings in Vector<String> to the StringBuilder.
1484             (New behavior)
1485             - Allocate a StringBuilder with a default buffer size.
1486             - Append created strings to the StringBuilder, incrementally parsing
1487               the DOM tree.
1488
1489         (b) Optimize stringBuilder.append().
1490             (b-1) Replace stringBuilder.append("A") with stringBuilder.append('A').
1491                   stringBuilder.append("A") requires to cast the characters to LChar*,
1492                   and then call strlen("A"). stringBuilder.append('A') is faster.
1493             (b-2) Replace stringBuilder.append("AB") with stringBuilder.append('A')
1494                   and stringBuilder.append('B'). In my experiment, appending characters
1495                   one by one is faster than appending the characters at a breath if the
1496                   number of characters is less than 3.
1497             (b-3) Hard-code a string length; i.e. replace stringBuilder.append("ABCDE")
1498                   with stringBuilder.append("ABCDE", 5). While the former requires to call
1499                   strlen("ABCDE"), the latter does not.
1500
1501         (a) improves performance by 170% ~ 200%. (b) improves performance by 30 ~ 40%.
1502
1503         Tests: fast/dom/Range/range-extract-contents.html
1504                fast/dom/serialize-nodes.xhtml
1505                fast/dom/XMLSerializer.html
1506                and all other tests that use innerHTML or outerHTML.
1507                No change in the test results.
1508
1509         * editing/MarkupAccumulator.cpp:
1510         (WebCore::MarkupAccumulator::serializeNodes):
1511         (WebCore::MarkupAccumulator::appendString):
1512         (WebCore::MarkupAccumulator::appendStartTag):
1513         (WebCore::MarkupAccumulator::appendEndTag):
1514         (WebCore::MarkupAccumulator::concatenateMarkup):
1515         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
1516         (WebCore::MarkupAccumulator::appendComment):
1517         (WebCore::MarkupAccumulator::appendDocumentType):
1518         (WebCore::MarkupAccumulator::appendProcessingInstruction):
1519         (WebCore::MarkupAccumulator::appendOpenTag):
1520         (WebCore::MarkupAccumulator::appendAttribute):
1521         (WebCore::MarkupAccumulator::appendCDATASection):
1522         * editing/MarkupAccumulator.h:
1523         (MarkupAccumulator):
1524
1525 2012-03-16  Kihong Kwon  <kihong.kwon@samsung.com>
1526
1527         Support for Battery Status API
1528         https://bugs.webkit.org/show_bug.cgi?id=62698
1529
1530         Battery Status API is implemented under the Navigator class.
1531         Battery Status API has four types of events, and all events are operated based on a callback mechanism.
1532          : onchargingchange, onchargingtimechange, ondischargingtimechange, onlevelchange.
1533         The battery status can be accessed using BatteryManager(navigator.webkitBattery), and battery status is controlled by BatteryController which manages instances of BatteryManager.
1534         When battery status event is raised, BatteryController calls all registered BatteryManager's event dispatcher.
1535         http://www.w3.org/TR/battery-status/
1536
1537         Reviewed by Adam Barth.
1538
1539         Tests: batterystatus/add-listener-from-callback.html
1540                batterystatus/basic-all-types-of-events.html
1541                batterystatus/basic-operation.html
1542                batterystatus/event-after-navigation.html
1543                batterystatus/multiple-frames.html
1544                batterystatus/updates.html
1545                batterystatus/window-property.html
1546
1547         * CMakeLists.txt:
1548         * Modules/battery/BatteryClient.h: Added.
1549         (WebCore):
1550         (BatteryClient):
1551         (WebCore::BatteryClient::~BatteryClient):
1552         * Modules/battery/BatteryController.cpp: Added.
1553         (WebCore):
1554         (WebCore::BatteryController::BatteryController):
1555         (WebCore::BatteryController::~BatteryController):
1556         (WebCore::BatteryController::create):
1557         (WebCore::BatteryController::addListener):
1558         (WebCore::BatteryController::removeListener):
1559         (WebCore::BatteryController::didChangeBatteryStatus):
1560         (WebCore::BatteryController::supplementName):
1561         (WebCore::BatteryController::isActive):
1562         (WebCore::provideBatteryTo):
1563         * Modules/battery/BatteryController.h: Added.
1564         (WebCore):
1565         (BatteryController):
1566         (WebCore::BatteryController::client):
1567         (WebCore::BatteryController::from):
1568         * Modules/battery/BatteryManager.cpp: Added.
1569         (WebCore):
1570         (WebCore::BatteryManager::create):
1571         (WebCore::BatteryManager::~BatteryManager):
1572         (WebCore::BatteryManager::BatteryManager):
1573         (WebCore::BatteryManager::charging):
1574         (WebCore::BatteryManager::chargingTime):
1575         (WebCore::BatteryManager::dischargingTime):
1576         (WebCore::BatteryManager::level):
1577         (WebCore::BatteryManager::didChangeBatteryStatus):
1578         (WebCore::BatteryManager::suspend):
1579         (WebCore::BatteryManager::resume):
1580         (WebCore::BatteryManager::stop):
1581         * Modules/battery/BatteryManager.h: Added.
1582         (WebCore):
1583         (BatteryManager):
1584         (WebCore::BatteryManager::interfaceName):
1585         (WebCore::BatteryManager::scriptExecutionContext):
1586         (WebCore::BatteryManager::batteryControllerDestroyed):
1587         (WebCore::BatteryManager::canSuspend):
1588         (WebCore::BatteryManager::eventTargetData):
1589         (WebCore::BatteryManager::ensureEventTargetData):
1590         (WebCore::BatteryManager::refEventTarget):
1591         (WebCore::BatteryManager::derefEventTarget):
1592         * Modules/battery/BatteryManager.idl: Added.
1593         * Modules/battery/BatteryStatus.cpp: Added.
1594         (WebCore):
1595         (WebCore::BatteryStatus::create):
1596         (WebCore::BatteryStatus::BatteryStatus):
1597         * Modules/battery/BatteryStatus.h: Added.
1598         (WebCore):
1599         (BatteryStatus):
1600         (WebCore::BatteryStatus::charging):
1601         (WebCore::BatteryStatus::chargingTime):
1602         (WebCore::BatteryStatus::dischargingTime):
1603         (WebCore::BatteryStatus::level):
1604         * Modules/battery/NavigatorBattery.cpp: Added.
1605         (WebCore):
1606         (WebCore::NavigatorBattery::NavigatorBattery):
1607         (WebCore::NavigatorBattery::~NavigatorBattery):
1608         (WebCore::NavigatorBattery::webkitBattery):
1609         (WebCore::NavigatorBattery::from):
1610         (WebCore::NavigatorBattery::batteryManager):
1611         * Modules/battery/NavigatorBattery.h: Added.
1612         (WebCore):
1613         (NavigatorBattery):
1614         * Modules/battery/NavigatorBattery.idl: Added.
1615         * dom/EventNames.h:
1616         (WebCore):
1617         * dom/EventTargetFactory.in:
1618         * testing/Internals.cpp:
1619         (WebCore::Internals::setBatteryStatus):
1620         (WebCore):
1621         * testing/Internals.h:
1622         (Internals):
1623         * testing/Internals.idl:
1624
1625 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
1626
1627         Web Inspector: HeapSnapshot: speedup buildReverseIndex.
1628         https://bugs.webkit.org/show_bug.cgi?id=81327
1629
1630         Reviewed by Yury Semikhatsky.
1631
1632         * inspector/front-end/HeapSnapshot.js:
1633         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
1634         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
1635         (WebInspector.HeapSnapshot.prototype._findNearestNodeIndex):
1636         (WebInspector.HeapSnapshot.prototype._getRetainerIndex):
1637         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
1638         (WebInspector.HeapSnapshot.prototype):
1639
1640 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1641
1642         Unreviewed, rolling out r110976.
1643         http://trac.webkit.org/changeset/110976
1644         https://bugs.webkit.org/show_bug.cgi?id=81330
1645
1646         webkit_unit_tests crashes. (Requested by morrita on #webkit).
1647
1648         * loader/cache/CachedCSSStyleSheet.cpp:
1649         (WebCore::CachedCSSStyleSheet::error):
1650         (WebCore):
1651         * loader/cache/CachedCSSStyleSheet.h:
1652         (CachedCSSStyleSheet):
1653         * loader/cache/CachedFont.cpp:
1654         (WebCore):
1655         (WebCore::CachedFont::error):
1656         * loader/cache/CachedFont.h:
1657         (CachedFont):
1658         * loader/cache/CachedImage.cpp:
1659         (WebCore::CachedImage::error):
1660         * loader/cache/CachedResource.h:
1661         (CachedResource):
1662         * loader/cache/CachedScript.cpp:
1663         (WebCore::CachedScript::error):
1664         (WebCore):
1665         * loader/cache/CachedScript.h:
1666         (CachedScript):
1667         * loader/cache/CachedXSLStyleSheet.cpp:
1668         (WebCore::CachedXSLStyleSheet::error):
1669         (WebCore):
1670         * loader/cache/CachedXSLStyleSheet.h:
1671         (CachedXSLStyleSheet):
1672
1673 2012-03-16  Luke Macpherson   <macpherson@chromium.org>
1674
1675         Implement cast between CSSPrimitiveValue and LineClampValue.
1676         https://bugs.webkit.org/show_bug.cgi?id=76806
1677
1678         Reviewed by Andreas Kling.
1679
1680         Covered by many existing LayoutTests.
1681
1682         This simplifies code in CSSStyleSelector and future mapping to CSSStyleApplyProperty.
1683
1684         * css/CSSPrimitiveValueMappings.h:
1685         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1686         (WebCore::CSSPrimitiveValue::operator LineClampValue):
1687         * css/CSSStyleSelector.cpp:
1688         (WebCore::CSSStyleSelector::applyProperty):
1689
1690 2012-03-16  Nat Duca  <nduca@chromium.org>
1691
1692         [chromium] Bump textureUpdatesPerFrame to 32 to favor updating the screen over jank prevention
1693         https://bugs.webkit.org/show_bug.cgi?id=81298
1694
1695         Reviewed by James Robinson.
1696
1697         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1698         (WTF):
1699
1700 2012-03-16  Levi Weintraub  <leviw@chromium.org>
1701
1702         Update usage of LayoutUnits in RenderBlock*
1703         https://bugs.webkit.org/show_bug.cgi?id=80437
1704
1705         Reviewed by Julien Chaffraix.
1706
1707         Updating LayoutUnit usage in RenderBlock and RenderBlockLineLayout. This better readies trunk for
1708         the transition to subpixel layout.
1709
1710         See https://trac.webkit.org/wiki/LayoutUnit for more details.
1711
1712         No new tests. No changed behavior.
1713
1714         * rendering/InlineTextBox.cpp:
1715         (WebCore::InlineTextBox::paint): Adding the paint offset rounding previously in RenderBlock::paint.
1716         * rendering/LayoutTypes.h:
1717         (WebCore::floorToInt): Will floor a LayoutUnit to an integer once we switch to
1718         FractionalLayoutUnits.
1719         (WebCore::boundedMultiply): Method that will return the multiplied result of two LayoutUnits
1720         or the max/min LayoutUnit if the result overflows. Only does a regular multiply while
1721         LayoutUnits are integers instead of FractionalLayoutUnits.
1722         (WebCore):
1723         * rendering/RenderBlock.cpp:
1724         (WebCore::RenderBlock::paintContents): Rounding the paintOffset here didn't work for all
1725         inline blocks. This rounding is actually only needed for InlineTextBoxes, so the logic has
1726         been moved there.
1727         (WebCore::RenderBlock::newLine): Use a LayoutUnit for the y position.
1728         (WebCore::RenderBlock::isPointInOverflowControl): Points for hit testing need to be rounded.
1729         (WebCore::RenderBlock::layoutColumns): Using boundedMultiply for a calculation prone to overflow.
1730         (WebCore::updatePreferredWidth): Reverting back to using ceilf. ceiledLayoutUnit was to be ultimately
1731         converted to just a straight LayoutUnit constructor to preserve precision. This precision doesn't work
1732         for us here as we still paint Boxes/Blocks on pixel boundaries, so we need to expand to a pixel size
1733         that encloses the contained text.
1734         (WebCore::RenderBlock::setPageLogicalOffset): LogicalOffset should be a LayoutUnit.
1735         (WebCore::RenderBlock::marginValuesForChild): Margins should have subpixel resolution.
1736         (WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject): Intervals for floating objects
1737         need to use pixel snapped values to give the proper results.
1738         * rendering/RenderBlock.h:
1739         (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Only moved.
1740         (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): While we can round the left offset,
1741         columns add an extra offset at paint that can't currently be planned for at line-layout time. To
1742         avoid laying out lines that run off the end of columns, we floor the right offset. The resulting
1743         lines will be up to 1 pixel shorter than they potentially could be.
1744         (RenderBlock):
1745         (WebCore::RenderBlock::FloatingObject::pixelSnappedX): Using corresponding pixelSnappedX value from
1746         LayoutRects.
1747         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxX): Ditto.
1748         (WebCore::RenderBlock::FloatingObject::pixelSnappedY): Ditto.
1749         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxY): Ditto.
1750         (WebCore::RenderBlock::FloatingObject::pixelSnappedWidth): Ditto.
1751         (WebCore::RenderBlock::FloatingObject::pixelSnappedHeight): Ditto.
1752         * rendering/RenderBlockLineLayout.cpp:
1753         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): LogicalHeight is a LayoutUnit. Also
1754         flooring textIndentOffset to an integer to match old behavior.
1755         (WebCore::LineWidth::fitBelowFloats): Using LayoutUnits for float logical top and bottoms.
1756         (WebCore::LineLayoutState::endLineLogicalTop): Changing to a LayoutUnit.
1757         (WebCore::LineLayoutState::setEndLineLogicalTop): Ditto.
1758         (LineLayoutState): Ditto.
1759         (WebCore::RenderBlock::linkToEndLineIfNeeded): Calculating overflow with LayoutUnits.
1760         (WebCore::RenderBlock::layoutInlineChildren): LowestAllowedPosition should be subpixel.
1761         (WebCore::RenderBlock::checkLinesForTextOverflow): Reverting ellipsis width calculation to integers
1762         as this value can be seen as representing pixels on screen.
1763
1764 2012-03-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1765
1766         Follow up to: window.innerWidth/Height should not include page scale
1767         https://bugs.webkit.org/show_bug.cgi?id=76555
1768
1769         Reviewed by Simon Hausmann.
1770
1771         Introduce mapping methods for converting between CSS and layout units.
1772
1773         * page/DOMWindow.cpp:
1774         (WebCore::DOMWindow::innerHeight):
1775         (WebCore::DOMWindow::innerWidth):
1776         (WebCore::DOMWindow::scrollX):
1777         (WebCore::DOMWindow::scrollY):
1778         (WebCore::DOMWindow::scrollTo):
1779         * page/FrameView.h:
1780         (FrameView):
1781         (WebCore::FrameView::mapFromLayoutToCSSUnits):
1782         (WebCore):
1783         (WebCore::FrameView::mapFromCSSToLayoutUnits):
1784
1785 2012-03-16  Ian Vollick  <vollick@chromium.org>
1786
1787         [chromium] Threaded opacity animation jump to opacity of 0
1788         https://bugs.webkit.org/show_bug.cgi?id=80744
1789
1790         Reviewed by James Robinson.
1791
1792         Tested in CCLayerTreeHostTestDoNotSkipLayersWithAnimatedOpacity
1793
1794         * platform/graphics/chromium/LayerChromium.cpp:
1795         (WebCore::LayerChromium::LayerChromium):
1796         (WebCore::LayerChromium::opacityIsAnimating):
1797         (WebCore):
1798         (WebCore::LayerChromium::transformIsAnimating):
1799         * platform/graphics/chromium/LayerChromium.h:
1800         (LayerChromium):
1801         (WebCore::LayerChromium::drawOpacityIsAnimating):
1802         (WebCore::LayerChromium::setDrawOpacityIsAnimating):
1803         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
1804         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
1805         * platform/graphics/chromium/RenderSurfaceChromium.h:
1806         (WebCore::RenderSurfaceChromium::drawOpacityIsAnimating):
1807         (WebCore::RenderSurfaceChromium::setDrawOpacityIsAnimating):
1808         (RenderSurfaceChromium):
1809         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1810         (WebCore::CCLayerAnimationController::isAnimatingProperty):
1811         (WebCore):
1812         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
1813         (CCLayerAnimationController):
1814         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp:
1815         (WebCore::CCLayerAnimationControllerImpl::isAnimatingProperty):
1816         (WebCore):
1817         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h:
1818         (CCLayerAnimationControllerImpl):
1819         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1820         (WebCore::CCLayerImpl::CCLayerImpl):
1821         (WebCore::CCLayerImpl::opacityIsAnimating):
1822         (WebCore):
1823         (WebCore::CCLayerImpl::transformIsAnimating):
1824         * platform/graphics/chromium/cc/CCLayerImpl.h:
1825         (CCLayerImpl):
1826         (WebCore::CCLayerImpl::drawOpacityIsAnimating):
1827         (WebCore::CCLayerImpl::setDrawOpacityIsAnimating):
1828         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1829         (WebCore::CCLayerTreeHost::paintLayerContents):
1830         (WebCore::CCLayerTreeHost::updateCompositorResources):
1831         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1832         (WebCore::layerShouldBeSkipped):
1833         (WebCore::subtreeShouldBeSkipped):
1834         (WebCore):
1835         (WebCore::LayerChromium):
1836         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1837         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1838         (WebCore::CCRenderSurface::CCRenderSurface):
1839         * platform/graphics/chromium/cc/CCRenderSurface.h:
1840         (WebCore::CCRenderSurface::drawOpacityIsAnimating):
1841         (WebCore::CCRenderSurface::setDrawOpacityIsAnimating):
1842         (CCRenderSurface):
1843
1844 2012-03-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1845
1846         [TexMap] Reuse textures following the same rules as they do internally.
1847         https://bugs.webkit.org/show_bug.cgi?id=80843
1848
1849         Reviewed by Noam Rosenthal.
1850
1851         BitmapTextures were recently changed to be the same size as their contents.
1852         This would obsolete the logic in acquireTextureFromPool which would
1853         assume that a BitmapTexture has good chances of being reused if its
1854         size is bigger or equal to the new size.
1855
1856         This asks the texture instead if it can be reused which now simply
1857         check for an exact size match.
1858
1859         * platform/graphics/texmap/TextureMapper.cpp:
1860         (WebCore::TextureMapper::acquireTextureFromPool):
1861         * platform/graphics/texmap/TextureMapper.h:
1862         (WebCore::BitmapTexture::canReuseWith):
1863         (WebCore::BitmapTexture::reset):
1864         (WebCore::BitmapTexture::didReset):
1865         * platform/graphics/texmap/TextureMapperGL.cpp:
1866         (WebCore::BitmapTextureGL::canReuseWith):
1867         (WebCore):
1868         * platform/graphics/texmap/TextureMapperGL.h:
1869         (BitmapTextureGL):
1870
1871 2012-03-16  Robert Kroeger  <rjkroege@chromium.org>
1872
1873         Connect up fling event delivery to gesture curve animation framework
1874         https://bugs.webkit.org/show_bug.cgi?id=80858
1875
1876         Reviewed by Adam Barth.
1877
1878         * platform/ScrollAnimatorNone.cpp:
1879         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
1880
1881 2012-03-16  Nate Chapin  <japhet@chromium.org>
1882
1883         Remove duplicate error() impls in CachedResource subclasses
1884         https://bugs.webkit.org/show_bug.cgi?id=81161
1885
1886         Reviewed by Alexey Proskuryakov.
1887
1888         No new tests, refactor only.
1889
1890         * loader/cache/CachedCSSStyleSheet.cpp:
1891         * loader/cache/CachedCSSStyleSheet.h:
1892         * loader/cache/CachedFont.cpp:
1893         * loader/cache/CachedFont.h:
1894         * loader/cache/CachedImage.cpp:
1895         * loader/cache/CachedResource.h: Make checkNotify()
1896              virtual, so the right checkNotify() gets called in error().
1897         * loader/cache/CachedScript.cpp:
1898         * loader/cache/CachedScript.h:
1899         * loader/cache/CachedXSLStyleSheet.cpp:
1900         * loader/cache/CachedXSLStyleSheet.h:
1901
1902 2012-03-16  Dana Jansens  <danakj@chromium.org>
1903
1904         [chromium] Changes to overdraw metrics to allow upload tracking
1905         https://bugs.webkit.org/show_bug.cgi?id=81222
1906
1907         Reviewed by Adrienne Walker.
1908
1909         Stick CCOverdrawMetrics into CCOcclusionTracker, so that it is available
1910         everywhere that culling/drawing/painting is going on. Then we can stop
1911         plumbing a metrics object through CCQuadCuller.
1912
1913         Rename the CCOverdrawMetrics "painting" stuff to "uploading" as this will
1914         measure texture uploads rather than pixels painted in main memory.
1915
1916         Covered by existing tests.
1917
1918         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1919         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1920         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1921         (WebCore::::CCOcclusionTrackerBase):
1922         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1923         (CCOcclusionTrackerBase):
1924         (WebCore::CCOcclusionTrackerBase::overdrawMetrics):
1925         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
1926         (WebCore::CCOverdrawMetrics::didCull):
1927         (WebCore):
1928         (WebCore::CCOverdrawMetrics::didDraw):
1929         (WebCore::CCOverdrawMetrics::recordMetrics):
1930         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
1931         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
1932         (WebCore):
1933         (WebCore::CCOverdrawMetrics::create):
1934         (CCOverdrawMetrics):
1935         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1936         (WebCore::CCQuadCuller::CCQuadCuller):
1937         (WebCore::CCQuadCuller::append):
1938         * platform/graphics/chromium/cc/CCQuadCuller.h:
1939         (CCQuadCuller):
1940         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1941         (WebCore::CCRenderPass::appendQuadsForLayer):
1942         * platform/graphics/chromium/cc/CCRenderPass.h:
1943         (WebCore):
1944         (CCRenderPass):
1945
1946 2012-03-16  Greg Billock  <gbillock@google.com>
1947
1948         Add TransferList IDL modifier, with support in V8 code gen.
1949         https://bugs.webkit.org/show_bug.cgi?id=81127
1950
1951         Reviewed by Adam Barth.
1952
1953         * bindings/scripts/CodeGeneratorV8.pm:
1954         (GenerateFunctionCallback):
1955         (GetIndexOf):
1956         (GenerateParametersCheck):
1957         (GenerateConstructorCallback):
1958         (GenerateNamedConstructorCallback):
1959         (GenerateFunctionCallString):
1960         * bindings/scripts/IDLAttributes.txt:
1961         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
1962         (WebDOMTestSerializedScriptValueInterface::acceptTransferList):
1963         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
1964         (WebDOMTestSerializedScriptValueInterface):
1965         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
1966         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
1967         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
1968         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1969         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
1970         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
1971         (WebCore):
1972         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertySlot):
1973         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertyDescriptor):
1974         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
1975         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1976         (JSTestSerializedScriptValueInterfacePrototype):
1977         (WebCore):
1978         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
1979         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
1980         (-[DOMTestSerializedScriptValueInterface acceptTransferList:transferList:]):
1981         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
1982         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1983         (WebCore::TestSerializedScriptValueInterfaceInternal::acceptTransferListCallback):
1984         (TestSerializedScriptValueInterfaceInternal):
1985         (WebCore):
1986         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
1987         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
1988
1989 2012-03-16  Dana Jansens  <danakj@chromium.org>
1990
1991         [chromium] Quads that become fully opaque after culling should not use blending
1992         https://bugs.webkit.org/show_bug.cgi?id=81235
1993
1994         Reviewed by Adrienne Walker.
1995
1996         Unit test: CCLayerTreeHostImplTest.blendingOffWhenDrawingOpaqueLayers
1997
1998         * platform/graphics/chromium/cc/CCDrawQuad.h:
1999         (WebCore::CCDrawQuad::needsBlending):
2000
2001 2012-03-16  Xiaomei Ji  <xji@chromium.org>
2002
2003         Using ICU break iterator to simplify visual word movement implementation.
2004         https://bugs.webkit.org/show_bug.cgi?id=78856
2005
2006         Reviewed by Ryosuke Niwa.
2007
2008         This patch relies on ICU word break iterator and cursor visual movement by character to get the word break
2009         position in visual order. It reduces the complexity of old implementation.
2010
2011         Test: editing/selection/move-by-word-visually-wrong-left-right.html
2012
2013         * editing/FrameSelection.cpp: Exclude WinCE from visual word movement since isWordTextBreak is not implemented.
2014         (WebCore::FrameSelection::modifyMovingRight):
2015         (WebCore::FrameSelection::modifyMovingLeft):
2016         * editing/visible_units.cpp:
2017         (WebCore):
2018         (WebCore::previousLeafWithSameEditability): Just moving to the top without functionality change.
2019         (WebCore::enclosingNodeWithNonInlineRenderer): ditto.
2020         (WebCore::nextLeafWithSameEditability): ditto.
2021         (WebCore::previousRootInlineBox): return previous RootInlineBox which is in different renderer.
2022         (WebCore::nextRootInlineBox): return next RootInlineBox which is in different renderer.
2023         (WebCore::boxIndexInVector):
2024         (WebCore::previousBoxInLine): returns logically previous box in one line.
2025         (WebCore::logicallyPreviousBox): returns logically previous box.
2026         (WebCore::nextBoxInLine): returns logically next box in one line.
2027         (WebCore::logicallyNextBox): returns logically next box.
2028         (WebCore::wordBreakIteratorForMinOffsetBoundary): create word break iterator for position that is a box's min offset.
2029         (WebCore::wordBreakIteratorForMaxOffsetBoundary): create word break iterator for position that is a box's max offset.
2030         (WebCore::isLogicalStartOfWord): return whether a position is logically start of word.
2031         (WebCore::islogicalEndOfWord): return whether a position is logically end of word.
2032         (WebCore::visualWordPosition): returns the visual left or right word position.
2033         (WebCore::leftWordPosition):
2034         (WebCore::rightWordPosition):
2035         * platform/text/TextBreakIterator.h: Add isWordTextBreak().
2036         (WebCore):
2037         * platform/text/TextBreakIteratorICU.cpp:
2038         (WebCore::isWordTextBreak):
2039         (WebCore):
2040         * platform/text/gtk/TextBreakIteratorGtk.cpp:
2041         (WebCore::isWordTextBreak):
2042         (WebCore):
2043         * platform/text/qt/TextBreakIteratorQt.cpp:
2044         (WebCore::isWordTextBreak):
2045         (WebCore):
2046         * platform/text/wince/TextBreakIteratorWinCE.cpp:
2047         (WebCore::isWordTextBreak):
2048         (WebCore):
2049
2050 2012-03-16  Dana Jansens  <danakj@chromium.org>
2051
2052         [chromium] Don't create a quad for video layers without a frame (avoid use of uninitialized m_format)
2053         https://bugs.webkit.org/show_bug.cgi?id=81250
2054
2055         Reviewed by James Robinson.
2056
2057         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2058         (WebCore::CCVideoLayerImpl::appendQuads):
2059
2060 2012-03-16  Hajime Morrita  <morrita@chromium.org>
2061
2062         Unreviewed attempt to fix Chromium windows build.
2063
2064         * Modules/speech/SpeechRecognition.h:
2065         (SpeechRecognition):
2066
2067 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
2068
2069         Move DOMWindowFileSystem to Modules/filesystem/
2070         https://bugs.webkit.org/show_bug.cgi?id=81030
2071
2072         Reviewed by Adam Barth.
2073
2074         No new tests, all existing tests pass.
2075
2076         * CMakeLists.txt:
2077         * DerivedSources.make:
2078         * DerivedSources.pri:
2079         * GNUmakefile.am:
2080         * GNUmakefile.list.am:
2081         * Modules/filesystem/DOMWindowFileSystem.cpp: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.cpp.
2082         * Modules/filesystem/DOMWindowFileSystem.h: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.h.
2083         * Modules/filesystem/DOMWindowFileSystem.idl: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.idl.
2084         * Target.pri:
2085         * WebCore.gyp/WebCore.gyp:
2086         * WebCore.gypi:
2087         * WebCore.vcproj/WebCore.vcproj:
2088         * WebCore.vcproj/WebCoreCommon.vsprops:
2089         * WebCore.vcproj/copyForwardingHeaders.cmd:
2090         * fileapi/DOMWindowFileSystem.cpp: Removed.
2091         * fileapi/DOMWindowFileSystem.h: Removed.
2092         * fileapi/DOMWindowFileSystem.idl: Removed.
2093
2094 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2095
2096         Unreviewed, rolling out r110951.
2097         http://trac.webkit.org/changeset/110951
2098         https://bugs.webkit.org/show_bug.cgi?id=81316
2099
2100         Does not build on apple-mac (Requested by abarth on #webkit).
2101
2102         * platform/audio/DynamicsCompressor.h:
2103         (DynamicsCompressor):
2104         * webaudio/DynamicsCompressorNode.cpp:
2105         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
2106         (WebCore::DynamicsCompressorNode::process):
2107         * webaudio/DynamicsCompressorNode.h:
2108         (DynamicsCompressorNode):
2109         * webaudio/DynamicsCompressorNode.idl:
2110
2111 2012-03-16  Seo Sanghyeon  <sh4.seo@samsung.com>
2112
2113         Cleanup empty attribute list in IDLs
2114         https://bugs.webkit.org/show_bug.cgi?id=81228
2115
2116         Reviewed by Adam Barth.
2117
2118         No tests. No change in behavior.
2119
2120         * css/WebKitCSSRegionRule.idl:
2121
2122 2012-03-16  Pratik Solanki  <psolanki@apple.com>
2123
2124         onorientationchange event should have JSWindowEventListener attribute
2125         https://bugs.webkit.org/show_bug.cgi?id=79513
2126
2127         Reviewed by Kentaro Hara.
2128
2129         * html/HTMLFrameSetElement.idl:
2130
2131 2012-03-15  Gao Chun  <chun.gao@intel.com>
2132
2133         Expose attack, release as DynamicsCompressorNode's attributes.
2134         https://bugs.webkit.org/show_bug.cgi?id=81221
2135
2136         Reviewed by Chris Rogers.
2137
2138         Test: webaudio/dynamicscompressor-basic.html
2139
2140         * platform/audio/DynamicsCompressor.h:
2141         (DynamicsCompressor):
2142         * webaudio/DynamicsCompressorNode.cpp:
2143         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
2144         (WebCore::DynamicsCompressorNode::process):
2145         * webaudio/DynamicsCompressorNode.h:
2146         (WebCore::DynamicsCompressorNode::attack):
2147         (WebCore::DynamicsCompressorNode::release):
2148         (DynamicsCompressorNode):
2149         * webaudio/DynamicsCompressorNode.idl:
2150
2151 2012-03-15  Hans Wennborg  <hans@chromium.org>
2152
2153         Speech JavaScript API: SpeechRecognition, Controller and Client
2154         https://bugs.webkit.org/show_bug.cgi?id=81096
2155
2156         Reviewed by Adam Barth.
2157
2158         Add implementation stub for SpeechRecognition. Add the
2159         SpeechRecognitionController class and SpeechRecognitionClient
2160         interface.
2161
2162         Test: fast/speech/scripted/basics.html
2163
2164         * Modules/speech/DOMWindowSpeech.idl:
2165         * Modules/speech/SpeechRecognition.cpp: Added.
2166         (WebCore):
2167         (WebCore::SpeechRecognition::create):
2168         (WebCore::SpeechRecognition::start):
2169         (WebCore::SpeechRecognition::stopFunction):
2170         (WebCore::SpeechRecognition::abort):
2171         (WebCore::SpeechRecognition::audioStartCallback):
2172         (WebCore::SpeechRecognition::soundStartCallback):
2173         (WebCore::SpeechRecognition::speechStartCallback):
2174         (WebCore::SpeechRecognition::speechEndCallback):
2175         (WebCore::SpeechRecognition::audioEndCallback):
2176         (WebCore::SpeechRecognition::resultCallback):
2177         (WebCore::SpeechRecognition::noMatchCallback):
2178         (WebCore::SpeechRecognition::resultDeletedCallback):
2179         (WebCore::SpeechRecognition::errorCallback):
2180         (WebCore::SpeechRecognition::startCallback):
2181         (WebCore::SpeechRecognition::endCallback):
2182         (WebCore::SpeechRecognition::interfaceName):
2183         (WebCore::SpeechRecognition::scriptExecutionContext):
2184         (WebCore::SpeechRecognition::SpeechRecognition):
2185         (WebCore::SpeechRecognition::~SpeechRecognition):
2186         * Modules/speech/SpeechRecognition.h: Added.
2187         (WebCore):
2188         (SpeechRecognition):
2189         (WebCore::SpeechRecognition::grammars):
2190         (WebCore::SpeechRecognition::setGrammars):
2191         (WebCore::SpeechRecognition::lang):
2192         (WebCore::SpeechRecognition::setLang):
2193         (WebCore::SpeechRecognition::continuous):
2194         (WebCore::SpeechRecognition::setContinuous):
2195         * Modules/speech/SpeechRecognition.idl:
2196         * Modules/speech/SpeechRecognitionClient.h:
2197         (WebCore):
2198         (SpeechRecognitionClient):
2199         (WebCore::SpeechRecognitionClient::~SpeechRecognitionClient):
2200         * Modules/speech/SpeechRecognitionController.cpp:
2201         (WebCore):
2202         (WebCore::SpeechRecognitionController::supplementName):
2203         (WebCore::SpeechRecognitionController::SpeechRecognitionController):
2204         (WebCore::SpeechRecognitionController::~SpeechRecognitionController):
2205         (WebCore::SpeechRecognitionController::create):
2206         (WebCore::provideSpeechRecognitionTo):
2207         * Modules/speech/SpeechRecognitionController.h: Added.
2208         (WebCore):
2209         (SpeechRecognitionController):
2210         (WebCore::SpeechRecognitionController::start):
2211         (WebCore::SpeechRecognitionController::stop):
2212         (WebCore::SpeechRecognitionController::abort):
2213         (WebCore::SpeechRecognitionController::visibilityHidden):
2214         (WebCore::SpeechRecognitionController::unregisterSpeechRecognition):
2215         (WebCore::SpeechRecognitionController::from):
2216         * WebCore.gypi:
2217         * dom/EventTargetFactory.in:
2218
2219 2012-03-15  Michal Ciepielski  <m.ciepielski@samsung.com>
2220
2221         [EFL] Sets alpha channel for new buffers.
2222         https://bugs.webkit.org/show_bug.cgi?id=77101
2223
2224         Reviewed by Hajime Morita.
2225
2226         No new tests.
2227
2228         By default EFL creates buffers without alpha channel.
2229         This causes improper rendering of HTML controls (i.e. radio buttons, checkboxes).
2230         This commits sets alpha channel for all newly created buffers by EFL.
2231
2232         * platform/efl/RenderThemeEfl.cpp:
2233         (WebCore::RenderThemeEfl::cacheThemePartNew):
2234
2235 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
2236
2237         Unreviewed, rolling out r110941.
2238         http://trac.webkit.org/changeset/110941
2239         https://bugs.webkit.org/show_bug.cgi?id=81307
2240
2241         the revert looks innocent. (Requested by morrita on #webkit).
2242
2243         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2244         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
2245         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2246         (Canvas2DLayerChromium):
2247         * platform/graphics/chromium/ContentLayerChromium.cpp:
2248         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2249         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
2250         * platform/graphics/chromium/ContentLayerChromium.h:
2251         (WebCore):
2252         (ContentLayerChromium):
2253         * platform/graphics/chromium/ImageLayerChromium.cpp:
2254         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2255         * platform/graphics/chromium/ImageLayerChromium.h:
2256         (WebCore):
2257         (ImageLayerChromium):
2258         * platform/graphics/chromium/LayerChromium.h:
2259         (WebCore::LayerChromium::paintContentsIfDirty):
2260         (WebCore::LayerChromium::idlePaintContentsIfDirty):
2261         * platform/graphics/chromium/TiledLayerChromium.cpp:
2262         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2263         (WebCore::TiledLayerChromium::prepareToUpdate):
2264         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2265         * platform/graphics/chromium/TiledLayerChromium.h:
2266         (TiledLayerChromium):
2267         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2268         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
2269         * platform/graphics/chromium/WebGLLayerChromium.h:
2270         (WebGLLayerChromium):
2271         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2272         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
2273         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
2274         (WebCore::CCLayerTreeHost::paintLayerContents):
2275         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2276
2277 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
2278
2279         MediaStream API (JSEP): Introducing SessionDescription
2280         https://bugs.webkit.org/show_bug.cgi?id=81206
2281
2282         Reviewed by Adam Barth.
2283
2284         Patch #3 in a series of patches to change the PeerConnection from ROAP to JSEP,
2285         see bug 80589 for more information.
2286         Adding the SessionDescription JS object and its platform counterpart SessionDescriptionDescriptor.
2287
2288         Not possible to test until the entire JSEP feature is commited.
2289
2290         * GNUmakefile.list.am:
2291         * Modules/mediastream/SessionDescription.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
2292         (WebCore):
2293         (WebCore::SessionDescription::create):
2294         (WebCore::SessionDescription::SessionDescription):
2295         (WebCore::SessionDescription::~SessionDescription):
2296         (WebCore::SessionDescription::addCandidate):
2297         (WebCore::SessionDescription::toSdp):
2298         (WebCore::SessionDescription::descriptor):
2299         * Modules/mediastream/SessionDescription.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
2300         (WebCore):
2301         (SessionDescription):
2302         * Modules/mediastream/SessionDescription.idl: Added.
2303         * WebCore.gypi:
2304         * platform/mediastream/MediaStreamCenter.cpp:
2305         (WebCore::MediaStreamCenter::constructSdp):
2306         (WebCore):
2307         * platform/mediastream/MediaStreamCenter.h:
2308         (WebCore):
2309         (MediaStreamCenter):
2310         * platform/mediastream/SessionDescriptionDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
2311         (WebCore):
2312         (WebCore::SessionDescriptionDescriptor::create):
2313         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
2314         (WebCore::SessionDescriptionDescriptor::~SessionDescriptionDescriptor):
2315         (WebCore::SessionDescriptionDescriptor::addCandidate):
2316         (WebCore::SessionDescriptionDescriptor::toSdp):
2317         (WebCore::SessionDescriptionDescriptor::numberOfAddedCandidates):
2318         (WebCore::SessionDescriptionDescriptor::candidate):
2319         (WebCore::SessionDescriptionDescriptor::initialSdp):
2320         * platform/mediastream/SessionDescriptionDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
2321         (WebCore):
2322         (SessionDescriptionDescriptor):
2323
2324 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
2325
2326         Unreviewed, rolling out r110929.
2327         http://trac.webkit.org/changeset/110929
2328         https://bugs.webkit.org/show_bug.cgi?id=81306
2329
2330         breaking webkit_unit_tests (Requested by morrita on #webkit).
2331
2332         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2333         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
2334         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2335         (Canvas2DLayerChromium):
2336         * platform/graphics/chromium/ContentLayerChromium.cpp:
2337         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2338         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
2339         * platform/graphics/chromium/ContentLayerChromium.h:
2340         (WebCore):
2341         (ContentLayerChromium):
2342         * platform/graphics/chromium/ImageLayerChromium.cpp:
2343         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2344         * platform/graphics/chromium/ImageLayerChromium.h:
2345         (WebCore):
2346         (ImageLayerChromium):
2347         * platform/graphics/chromium/LayerChromium.h:
2348         (WebCore::LayerChromium::paintContentsIfDirty):
2349         (WebCore::LayerChromium::idlePaintContentsIfDirty):
2350         * platform/graphics/chromium/TiledLayerChromium.cpp:
2351         (WebCore):
2352         (WebCore::contentToLayerTransform):
2353         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2354         (WebCore::TiledLayerChromium::prepareToUpdate):
2355         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2356         * platform/graphics/chromium/TiledLayerChromium.h:
2357         (WebCore):
2358         (TiledLayerChromium):
2359         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2360         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
2361         * platform/graphics/chromium/WebGLLayerChromium.h:
2362         (WebGLLayerChromium):
2363         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2364         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
2365         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
2366         (WebCore::CCLayerTreeHost::paintLayerContents):
2367         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2368
2369 2012-03-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2370
2371         REGRESSION(r106232): The resize handler is always called after loading.
2372         https://bugs.webkit.org/show_bug.cgi?id=80242
2373
2374         Reviewed by Kenneth Rohde Christiansen.
2375
2376         Ensure resize-events are not emitted when layout-size changes due to added
2377         scrollbars. For fixed layout, scrollbars are never subtracted or added, so
2378         we can compare fixedLayoutSize directly. For normal layout, use the full
2379         visible rect size which is the same as layout size plus scrollbars.
2380
2381         Test: fast/events/resize-events.html
2382
2383         * page/FrameView.cpp:
2384         (WebCore::FrameView::reset):
2385         (WebCore::FrameView::layout):
2386         (WebCore::FrameView::performPostLayoutTasks):
2387         * page/FrameView.h:
2388         (FrameView):
2389
2390 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
2391
2392         MediaStream API (JSEP): Introducing MediaHints and IceOptions
2393         https://bugs.webkit.org/show_bug.cgi?id=81207
2394
2395         Reviewed by Adam Barth.
2396
2397         Patch #4 in a series of patches to change the PeerConnection from ROAP to JSEP,
2398         see bug 80589 for more information.
2399         Introducing the platform MediaHints and IceOptions helper classes.
2400
2401         Not possible to test until the entire JSEP feature is commited.
2402
2403         * GNUmakefile.list.am:
2404         * WebCore.gypi:
2405         * platform/mediastream/IceOptions.cpp: Added.
2406         (WebCore):
2407         (WebCore::IceOptions::create):
2408         * platform/mediastream/IceOptions.h: Added.
2409         (WebCore):
2410         (IceOptions):
2411         (WebCore::IceOptions::~IceOptions):
2412         (WebCore::IceOptions::useCandidates):
2413         (WebCore::IceOptions::IceOptions):
2414         * platform/mediastream/MediaHints.cpp: Added.
2415         (WebCore):
2416         (WebCore::MediaHints::create):
2417         (WebCore::MediaHints::audio):
2418         (WebCore::MediaHints::video):
2419         * platform/mediastream/MediaHints.h: Added.
2420         (WebCore):
2421         (MediaHints):
2422         (WebCore::MediaHints::~MediaHints):
2423         (WebCore::MediaHints::MediaHints):
2424
2425 2012-03-15  Shinya Kawanaka  <shinyak@chromium.org>
2426
2427         [Crash] Adding <content> into a ShadowRoot causes crash.
2428         https://bugs.webkit.org/show_bug.cgi?id=80020
2429
2430         Reviewed by Hajime Morita.
2431
2432         The problem is <content> tries to select host children though it is not prepared.
2433         Since populating host children for insertion points is performed just before
2434         attaching a shadow tree, we should recalculate whole shadow tree if <content> is
2435         appended as a child.
2436
2437         However, element->appendChild() does not know the element is in a shadow tree or not.
2438         We have to ensure reattaching whole shadow tree here.
2439
2440         So this patch adds some phases to HTMLContentSelector so that we can check node
2441         distribution algorihm is begin processed or not. If not we cannot select anything,
2442         but we have to enable a flag to reattach whole shadow tree.
2443
2444         Tests: fast/dom/shadow/shadow-content-crash-expected.html
2445                fast/dom/shadow/shadow-content-crash.html
2446
2447         * dom/ShadowTree.cpp:
2448         (WebCore::ShadowTree::attach):
2449         (WebCore::ShadowTree::insertionPointFor):
2450         * dom/ShadowTree.h:
2451         (WebCore):
2452         (ShadowTree):
2453         (WebCore::ShadowTree::selector):
2454         * html/shadow/HTMLContentSelector.cpp:
2455         (WebCore::HTMLContentSelector::HTMLContentSelector):
2456         (WebCore::HTMLContentSelector::select):
2457         (WebCore::HTMLContentSelector::willSelect):
2458         (WebCore):
2459         (WebCore::HTMLContentSelector::didSelect):
2460         (WebCore::HTMLContentSelector::populateIfNecessary):
2461         * html/shadow/HTMLContentSelector.h:
2462         (HTMLContentSelector):
2463         (WebCore::HTMLContentSelector::isSelecting):
2464         (WebCore):
2465         (WebCore::HTMLContentSelector::hasPopulated):
2466         * html/shadow/InsertionPoint.cpp:
2467         (WebCore::InsertionPoint::distributeHostChildren):
2468         (WebCore::InsertionPoint::clearDistribution):
2469
2470 2012-03-15  Mike Lawther  <mikelawther@chromium.org>
2471
2472         CSS3 calc: mixed percent/absolute expressions for gradients
2473         https://bugs.webkit.org/show_bug.cgi?id=81182
2474
2475         Reviewed by Ojan Vafai.
2476
2477         * css/CSSGradientValue.cpp:
2478         (WebCore::CSSGradientValue::addStops):
2479         (WebCore::positionFromValue):
2480
2481 2012-03-15  Leo Yang  <leo.yang@torchmobile.com.cn>
2482
2483         [BlackBerry] Sync up MIMETypeRegistry.cpp
2484         https://bugs.webkit.org/show_bug.cgi?id=81191
2485
2486         Reviewed by Rob Buis.
2487
2488         Add png and jpeg to supportedImageMIMETypesForEncoding for BlackBerry.
2489
2490         * platform/MIMETypeRegistry.cpp:
2491         (WebCore::initializeSupportedImageMIMETypesForEncoding):
2492
2493 2012-03-15  Dana Jansens  <danakj@chromium.org>
2494
2495         [chromium] Decide occlusion in paint culling with CCOcclusionTracker
2496         https://bugs.webkit.org/show_bug.cgi?id=81181
2497
2498         Reviewed by Adrienne Walker.
2499
2500         Plumb a CCOcclusionTracker* around instead of a bare Region, so that it
2501         can make a more informed decision if a tile is occluded or not during
2502         paint.
2503
2504         Covered by existing tests.
2505
2506         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2507         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
2508         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2509         (Canvas2DLayerChromium):
2510         * platform/graphics/chromium/ContentLayerChromium.cpp:
2511         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2512         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
2513         * platform/graphics/chromium/ContentLayerChromium.h:
2514         (WebCore):
2515         (ContentLayerChromium):
2516         * platform/graphics/chromium/ImageLayerChromium.cpp:
2517         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2518         * platform/graphics/chromium/ImageLayerChromium.h:
2519         (WebCore):
2520         (ImageLayerChromium):
2521         * platform/graphics/chromium/LayerChromium.h:
2522         (WebCore::LayerChromium::paintContentsIfDirty):
2523         (WebCore::LayerChromium::idlePaintContentsIfDirty):
2524         * platform/graphics/chromium/TiledLayerChromium.cpp:
2525         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2526         (WebCore::TiledLayerChromium::prepareToUpdate):
2527         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2528         * platform/graphics/chromium/TiledLayerChromium.h:
2529         (TiledLayerChromium):
2530         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2531         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
2532         * platform/graphics/chromium/WebGLLayerChromium.h:
2533         (WebGLLayerChromium):
2534         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2535         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
2536         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
2537         (WebCore::CCLayerTreeHost::paintLayerContents):
2538         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2539
2540 2012-03-15  Yoshifumi Inoue  <yosin@chromium.org>
2541
2542         [Forms] The "meter" element should not be a form-associated element.
2543         https://bugs.webkit.org/show_bug.cgi?id=80380
2544
2545         Reviewed by Kent Tamura.
2546
2547         This patch changes base class of HTMLMeterElement to LabelableElement from
2548         HTMLFormControlElement for saving memory space and iteration time of
2549         extra "meter" elements in HTMLFormElement::m_formAssociatedElements
2550         and matching the HTML5 specification for ease of maintenance.
2551
2552         This patch renames isLabelable method to supportLabels and makes isLabelable
2553         as predicate of an instance of LabelableElement or not.
2554
2555         Changes of TextIterator is lead by usage of isFormControlElement. This
2556         changes will be replaced with more meaningful predicate as part of
2557         https://bugs.webkit.org/show_bug.cgi?id=80381
2558
2559         No new tests. Update existing tests to cover this change.
2560
2561         * editing/TextIterator.cpp:
2562         (WebCore::TextIterator::advance): Check HTMLMeterElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
2563         * html/HTMLButton.h:
2564         (WebCore::HTMLButtonElement::supportLabels): Renamed from isLabelable
2565         * html/HTMLElement.h:
2566         (WebCore::HTMLElement::isLabelable): Added. A predicate for an instance of LabelableElement.
2567         * html/HTMLInputElement.h:
2568         (WebCore::HTMLInputElement::supportLabels): Renamed from isLabelable
2569         * html/HTMLKeygenElement.h:
2570         (WebCore::HTMLKeygenElement::supportLabels): Renamed from isLabelable
2571          * html/HTMLLabelElement.cpp:
2572         (WebCore::nodeAsLabelableElement): Changed to return LabelableElement instead of HTMLFormControlElement.
2573         (WebCore::HTMLLabelElement::control): Changed to return LabelableElement instead of HTMLFormControlElement.
2574         * html/HTMLLabelElement.h:
2575         (HTMLLabelElement):
2576         * html/HTMLMeterElement.cpp:
2577         (WebCore::HTMLMeterElement::HTMLMeterElement): Changed base class to LabelableElement.
2578         (WebCore::HTMLMeterElement::create): Remove form parameter.
2579         (WebCore::HTMLMeterElement::formControlType): Remove implementation of virtual method declared in HTMLFormControlElement.
2580         (WebCore::HTMLMeterElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement
2581         (WebCore::HTMLMeterElement::attach): Replace HTMLFormControlElement to LabelableElement
2582         * html/HTMLMeterElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
2583         * html/HTMLMeterElement.h:
2584         (HTMLMeterElement):
2585         (WebCore::HTMLMeterElement::supportLabels): Renamed from isLabelable
2586         * html/HTMLOutputElement.h:
2587         (WebCore::HTMLOutputElement::supportLabels): Renamed from isLabelable
2588         * html/HTMLProgressElement.h:
2589         (WebCore::HTMLProgressElement::supportLabels): Renamed from isLabelable
2590          * html/HTMLSelectElement.h:
2591         (WebCore::HTMLSelectElement::supportLabels): Renamed from isLabelable
2592         * html/HTMLTextAreaElement.h:
2593         (WebCore::HTMLTextAreaElement::supportLabels): Renamed from isLabelable
2594         * html/HiddenInputType.h:
2595         (WebCore::HiddenInputType::supportLabels): Renamed from isLabelable
2596         * html/InputType.h:
2597         (WebCore::InputType::supportLabels): Renamed from isLabelable
2598         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
2599         * html/LabelableElement.cpp:
2600         (WebCore::LabelableElement::labels): Replace isLabelable to supportLabels
2601         * html/LabelableElement.h:
2602         (LabelableElement):
2603
2604 2012-03-15  Adam Klein  <adamk@chromium.org>
2605
2606         REGRESSION(r103452): 100% CPU usage and 5s pause after clicking on a link in Yahoo Mail
2607         https://bugs.webkit.org/show_bug.cgi?id=81141
2608
2609         Reviewed by Ojan Vafai.
2610
2611         Revert the behavior change from r103452: don't fire DOMSubtreeModified
2612         events when an attribute value merely changes. Still fire that event
2613         when an attribute is added or removed from an element.
2614
2615         Though this contradicts the DOM3 spec, it matches legacy WebKit behavior,
2616         and given that Mutation Events are deprecated, it seems unwise to make
2617         any additions to WebKit's implementation of them.
2618
2619         Test: fast/dom/subtree-modified-attributes.html
2620
2621         * dom/Element.cpp:
2622         (WebCore::Element::didAddAttribute): Renamed from didModifyAttribute.
2623         (WebCore::Element::didModifyAttribute): Remove the call to dispatchSubtreeModifiedEvent.
2624         (WebCore):
2625         * dom/Element.h:
2626         (Element):
2627         * dom/ElementAttributeData.cpp:
2628         (WebCore::ElementAttributeData::addAttribute): Call didAddAttribute instead of didModifyAttribute.
2629
2630 2012-03-15  Dana Jansens  <danakj@chromium.org>
2631
2632         [chromium] Move overdraw metrics into a templated class for both paint and draw metrics.
2633         https://bugs.webkit.org/show_bug.cgi?id=81156
2634
2635         Reviewed by Adrienne Walker.
2636
2637         Creates CCOverdrawMetrics which can be called to inform it about
2638         draws/paints. At the end of the frame, the CCOverdrawMetrics
2639         recordMetrics() method will put its data into histograms, a
2640         TRACE_COUNTER for culling information, and a TRACE_EVENT for details
2641         about the number of opaque/translucent pixels.
2642
2643         Covered by existing tests.
2644
2645         * WebCore.gypi:
2646         * platform/chromium/TraceEvent.h:
2647         (TraceEvent):
2648         (WebCore::TraceEvent::addTraceEvent):
2649         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2650         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2651         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Added.
2652         (WebCore):
2653         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
2654         (WebCore::wedgeProduct):
2655         (WebCore::quadArea):
2656         (WebCore::CCOverdrawMetrics::didDraw):
2657         (WebCore::CCOverdrawMetrics::recordMetrics):
2658         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
2659         * platform/graphics/chromium/cc/CCOverdrawMetrics.h: Added.
2660         (WebCore):
2661         (CCOverdrawMetrics):
2662         (WebCore::CCOverdrawMetrics::pixelsDrawnOpaque):
2663         (WebCore::CCOverdrawMetrics::pixelsDrawnTranslucent):
2664         (WebCore::CCOverdrawMetrics::pixelsCulled):
2665         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2666         (WebCore::CCQuadCuller::CCQuadCuller):
2667         (WebCore::CCQuadCuller::append):
2668         * platform/graphics/chromium/cc/CCQuadCuller.h:
2669         (WebCore):
2670         (CCQuadCuller):
2671         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2672         (WebCore::CCRenderPass::appendQuadsForLayer):
2673         * platform/graphics/chromium/cc/CCRenderPass.h:
2674         (WebCore):
2675         (CCRenderPass):
2676
2677 2012-03-15  James Robinson  <jamesr@chromium.org>
2678
2679         [chromium] RateLimiter should hold a reference to its context
2680         https://bugs.webkit.org/show_bug.cgi?id=80761
2681
2682         Reviewed by Stephen White.
2683
2684         * platform/graphics/chromium/RateLimiter.h:
2685         (RateLimiter):
2686
2687 2012-03-15  Adam Klein  <adamk@chromium.org>
2688
2689         Share code in FormAssociatedElement by resetting the form owner whenever insertedIntoTree is called
2690         https://bugs.webkit.org/show_bug.cgi?id=81160
2691
2692         Reviewed by Kent Tamura.
2693
2694         The only difference between the previous insertedIntoTree method and
2695         resetFormOwner was a missing element->inDocument() check in the
2696         former. But that check is actually important, as seen by the included test case.
2697
2698         Test: fast/forms/form-attribute-not-in-document.html
2699
2700         * html/FormAssociatedElement.cpp:
2701         (WebCore::FormAssociatedElement::insertedIntoTree):
2702
2703 2012-03-15  Kentaro Hara  <haraken@chromium.org>
2704
2705         [Refactoring] Rename StringBuilder variables in MarkupAccumulator.{h,cpp}
2706         https://bugs.webkit.org/show_bug.cgi?id=81288
2707
2708         Reviewed by Adam Barth.
2709
2710         This is a refactoring for fixing bug 81214. Currently MarkupAccumulator mixes
2711         'out' and 'result' for variable names of StringBuilder. This patch unifies them
2712         to 'result'.
2713
2714         No tests. No change in behavior.
2715
2716         * editing/MarkupAccumulator.cpp: Renamed 'out' to 'result'.
2717         (WebCore::appendCharactersReplacingEntities):
2718         (WebCore::MarkupAccumulator::serializeNodes): Renamed 'node' to 'targetNode' for clarification
2719         (and for avoiding style check error in MarkupAccumulator.h).
2720         (WebCore::MarkupAccumulator::concatenateMarkup):
2721         (WebCore::MarkupAccumulator::appendNodeValue):
2722         (WebCore::MarkupAccumulator::shouldAddNamespaceAttribute):
2723         (WebCore::MarkupAccumulator::appendNamespace):
2724         (WebCore::MarkupAccumulator::entityMaskForText):
2725         (WebCore::MarkupAccumulator::appendText):
2726         (WebCore::MarkupAccumulator::appendComment):
2727         (WebCore::MarkupAccumulator::appendProcessingInstruction):
2728         (WebCore::MarkupAccumulator::appendElement):
2729         (WebCore::MarkupAccumulator::appendOpenTag):
2730         (WebCore::MarkupAccumulator::appendCloseTag):
2731         (WebCore::MarkupAccumulator::appendAttribute):
2732         (WebCore::MarkupAccumulator::appendCDATASection):
2733         (WebCore::MarkupAccumulator::elementCannotHaveEndTag):
2734         * editing/MarkupAccumulator.h: Removed redundant variable names.
2735         (MarkupAccumulator):
2736         (WebCore):
2737
2738 2012-03-15  Brent Fulgham  <bfulgham@webkit.org>
2739
2740         [WinCairo] Correct <wtf/*.h> include paths.
2741         https://bugs.webkit.org/show_bug.cgi?id=81278
2742
2743         Reviewed by Eric Seidel.
2744
2745         Modify the #include declarations for several Cairo-related files
2746         so that the wtf types are included using the full path.
2747
2748         * platform/graphics/FontPlatformData.h:
2749         * platform/graphics/cairo/OwnPtrCairo.h:
2750         * platform/graphics/cairo/RefPtrCairo.h:
2751
2752 2012-03-15  Anders Carlsson  <andersca@apple.com>
2753
2754         only some tiles rendered when zoomed in
2755         https://bugs.webkit.org/show_bug.cgi?id=81282
2756         <rdar://problem/11058898>
2757
2758         Reviewed by Andreas Kling.
2759
2760         * platform/graphics/ca/mac/TileCache.mm:
2761         (WebCore::TileCache::rectForTileIndex):
2762         Make sure that the tile cache bounds are scaled accordingly.
2763
2764 2012-03-15  Zeno Albisser  <zeno@webkit.org>
2765
2766         [Qt] RenderThemeQt::fileListNameForWidth should override function in base class RenderTheme. (r110560)
2767         https://bugs.webkit.org/show_bug.cgi?id=81107
2768
2769         Add "bool multipleFilesAllowed" to the parameter list of RenderThemeQt::fileListNameForWidth.
2770         This way the base class function is properly overridden.
2771         The need for this change became obvious after r110560 where the OVERRIDE keyword had been
2772         added to the function signature.
2773
2774         Reviewed by Simon Hausmann.
2775
2776         * platform/qt/RenderThemeQt.cpp:
2777         (WebCore::RenderThemeQt::fileListNameForWidth):
2778         * platform/qt/RenderThemeQt.h:
2779         (RenderThemeQt):
2780
2781 2012-03-07  Jon Lee  <jonlee@apple.com>
2782
2783         Move NotificationContents into Notification
2784         https://bugs.webkit.org/show_bug.cgi?id=80487
2785         <rdar://problem/10965519>
2786
2787         Reviewed by Jian Li.
2788
2789         * notifications/Notification.cpp: Alter signature of constructor to take the fields directly instead of
2790         a NotificationContents instance.
2791         (WebCore::Notification::Notification): Derive KURL from string representation of icon.
2792         (WebCore::Notification::create):
2793         * notifications/Notification.h:
2794         (Notification): Remove contents() accessor and replace with get for title and body. iconURL()
2795         already existed, but use local variable instead of going through NotificationContents.
2796         (WebCore::Notification::iconURL):
2797         (WebCore::Notification::title):
2798         (WebCore::Notification::body):
2799         * notifications/NotificationCenter.h:
2800         (WebCore::NotificationCenter::createNotification): Refactor to use new constructor.
2801         * notifications/NotificationContents.h: Removed.
2802
2803         Remove NotificationContents.h from project files
2804         * GNUmakefile.list.am:
2805         * Target.pri:
2806         * WebCore.gypi:
2807         * WebCore.vcproj/WebCore.vcproj:
2808         * WebCore.xcodeproj/project.pbxproj:
2809
2810 2012-03-13  Jon Lee  <jonlee@apple.com>
2811
2812         Deprecate ondisplay()
2813         https://bugs.webkit.org/show_bug.cgi?id=80483
2814         <rdar://problem/10912432>
2815
2816         Reviewed by Jian Li.
2817
2818         The appropriate event listener for notifications is onshow().
2819
2820         * notifications/Notification.h: Wrap ondisplay in ENABLE(LEGACY_NOTIFICATIONS).
2821         * notifications/Notification.idl: Wrap ondisplay in ENABLE_LEGACY_NOTIFICATIONS.
2822
2823 2012-03-14  W. James MacLean  <wjmaclean@chromium.org>
2824
2825         [chromium] Wire up PlatformGestureCurves for CC, ScrollAnimatorNone.
2826         https://bugs.webkit.org/show_bug.cgi?id=80607
2827
2828         Reviewed by James Robinson.
2829
2830         Unit tests added. Layout tests to follow.
2831
2832         Provides implementation of PlatformGestureCurves in Chrome Compositor, and basic
2833         support in ScrollAnimatorNone, for fling gestures.
2834
2835         * GNUmakefile.list.am:
2836         * platform/ActivePlatformGestureAnimation.cpp:
2837         (WebCore::ActivePlatformGestureAnimation::create):
2838         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
2839         (WebCore::ActivePlatformGestureAnimation::animate):
2840         * platform/ActivePlatformGestureAnimation.h:
2841         (ActivePlatformGestureAnimation):
2842         * platform/PlatformGestureCurveTarget.h:
2843         (PlatformGestureCurveTarget):
2844         * platform/ScrollAnimatorNone.cpp:
2845         (WebCore::ScrollAnimatorNone::cancelAnimations):
2846         (WebCore::ScrollAnimatorNone::animationTimerFired):
2847         (WebCore::ScrollAnimatorNone::scrollBy):
2848         (WebCore):
2849         * platform/ScrollAnimatorNone.h:
2850         (WebCore):
2851         (ScrollAnimatorNone):
2852         * platform/TouchFlingPlatformGestureCurve.cpp:
2853         (WebCore::TouchFlingPlatformGestureCurve::apply):
2854         * platform/WheelFlingPlatformGestureCurve.cpp:
2855         (WebCore::WheelFlingPlatformGestureCurve::apply):
2856         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
2857         (WebCore::CCActiveGestureAnimation::create):
2858         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
2859         (WebCore::CCActiveGestureAnimation::animate):
2860         * platform/graphics/chromium/cc/CCActiveGestureAnimation.h:
2861         (CCActiveGestureAnimation):
2862         * platform/graphics/chromium/cc/CCGestureCurve.h:
2863         (CCGestureCurveTarget):
2864         * platform/graphics/chromium/cc/CCInputHandler.h:
2865         (WebCore):
2866         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2867         (WebCore::CCLayerTreeHostImpl::animate):
2868         (WebCore::CCLayerTreeHostImpl::setActiveGestureAnimation):
2869         (WebCore):
2870         (WebCore::CCLayerTreeHostImpl::animateGestures):
2871         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2872         (WebCore):
2873         (WebCore::CCLayerTreeHostImpl::activeGestureAnimation):
2874         (CCLayerTreeHostImpl):
2875
2876 2012-03-15  Patrick Gansterer  <paroga@webkit.org>
2877
2878         [EFL] Make zlib a general build requirement
2879         https://bugs.webkit.org/show_bug.cgi?id=80153
2880
2881         Reviewed by Hajime Morita.
2882
2883         After r109538 WebSocket module needs zlib to support deflate-frame extension.
2884
2885         * PlatformEfl.cmake:
2886
2887 2012-03-15  Robert Kroeger  <rjkroege@chromium.org>
2888
2889         REGRESSION (r110371): broke platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html
2890         https://bugs.webkit.org/show_bug.cgi?id=80825
2891
2892         Reviewed by James Robinson.
2893
2894         * page/EventHandler.cpp:
2895         (WebCore::EventHandler::handleWheelEvent): Corrected a typo.
2896
2897 2012-03-15  Scott Byer  <scottbyer@chromium.org>
2898
2899         Fix crbug 117957 - get settings scrolling with the wheel again.
2900         https://bugs.webkit.org/show_bug.cgi?id=81247
2901
2902         Reviewed by James Robinson.
2903
2904         Tests to follow.
2905
2906         * page/FrameView.cpp:
2907         (WebCore::FrameView::serviceScriptedAnimations):
2908
2909 2012-03-15  David Hyatt  <hyatt@apple.com>
2910
2911         https://bugs.webkit.org/show_bug.cgi?id=81258
2912
2913         Add a preference for enabling the new multi-column layout code that will be based on regions.
2914
2915         Reviewed by Beth Dakin.
2916
2917         * page/Settings.cpp:
2918         (WebCore::Settings::Settings):
2919         * page/Settings.h:
2920         (WebCore::Settings::setRegionBasedColumnsEnabled):
2921         (WebCore::Settings::regionBasedColumnsEnabled):
2922         (Settings):
2923
2924 2012-03-15  Andreas Kling  <kling@webkit.org>
2925
2926         RenderStyle: Return Color objects by value instead of as const references.
2927         <http://webkit.org/b/81180>
2928
2929         Reviewed by Antti Koivisto.
2930
2931         Make RenderStyle getters return "Color" rather than "const Color&". This is preparation
2932         for storing some color values in a more space-efficient fashion.
2933
2934         * css/CSSStyleApplyProperty.cpp:
2935         (WebCore::ApplyPropertyColor::applyInheritValue):
2936         * page/animation/AnimationBase.cpp:
2937         (PropertyWrapperColor):
2938         (WebCore::PropertyWrapperColor::PropertyWrapperColor):
2939         (WebCore::PropertyWrapperColor::blend):
2940         (WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
2941         (PropertyWrapperMaybeInvalidColor):
2942         (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
2943         (WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
2944         (PropertyWrapperSVGPaint):
2945         * platform/graphics/Color.h:
2946         (WebCore::Color::Color):
2947         * rendering/style/RenderStyle.h:
2948
2949 2012-03-15  Jessie Berlin  <jberlin@apple.com>
2950
2951         Assertion failures in WebCore::Page::goBackOrForward causing multiple "crashes" on Lion Intel
2952         Debug WebKit2 testers
2953         https://bugs.webkit.org/show_bug.cgi?id=81159
2954
2955         Rubber-stamped by Brady Eidson.
2956
2957         It is plausible that history could change in between the time a navigation request is
2958         scheduled and the timer is fired, so the request index could be out of the b/f list range.
2959         Hence, the assertion is invalid and should be removed.
2960
2961         * page/Page.cpp:
2962         (WebCore::Page::goBackOrForward):
2963
2964 2012-03-15  Alexey Proskuryakov  <ap@apple.com>
2965
2966         Assertion failures in checkEncodedString when running WebKit2 tests
2967         https://bugs.webkit.org/show_bug.cgi?id=67425
2968         <rdar://problem/11043492>
2969
2970         Reviewed by Anders Carlsson.
2971
2972         * platform/network/cf/ResourceErrorCF.cpp: (WebCore::ResourceError::cfError):
2973         * platform/network/mac/ResourceErrorMac.mm: (WebCore::ResourceError::nsError):
2974         The failing URL is certainly not guaranteed to be valid, so it's not correct to put it back
2975         into a URL as if it's been normalized by KURL.
2976
2977 2012-03-15  Brady Eidson  <beidson@apple.com>
2978
2979         <rdar://problem/11036900> and https://bugs.webkit.org/show_bug.cgi?id=81079
2980         REGRESSION(r107844): Clipboard API only remembers most recent data set on clipboard
2981
2982         Reviewed by Sam Weinig.
2983
2984         Test: editing/pasteboard/copy-two-pasteboard-types-both-work.html
2985
2986         Add the non-destructive "addTypes" to supplement the destructive "setTypes"
2987         * platform/PasteboardStrategy.h:
2988         (PasteboardStrategy):
2989         * platform/PlatformPasteboard.h:
2990         (PlatformPasteboard):
2991         * platform/mac/PlatformPasteboardMac.mm:
2992         (WebCore::PlatformPasteboard::addTypes):
2993         * WebCore.exp.in:
2994
2995         * platform/mac/ClipboardMac.mm:
2996         (WebCore::ClipboardMac::setData): Call the non-destructive "addTypes" instead of
2997           the destructive "setTypes"
2998
2999 2012-03-15  Dana Jansens  <danakj@chromium.org>
3000
3001         [Chromium] REGRESSION(r110596) CCQuadCullerTest.verifyCullChildLinesUpTopLeft fails on Windows
3002         https://bugs.webkit.org/show_bug.cgi?id=81083
3003
3004         Reviewed by Adrienne Walker.
3005
3006         The surface pointer on the occlusion tracker stack is uninitialized, and
3007         can be non-null, but the layer's target surface is null, causing asserts
3008         to fail. Fixes the TestCCOcclusionTrackerImpl to initialize the stack's
3009         surface to be null.
3010
3011         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3012         (WebCore::::enterTargetRenderSurface):
3013         (WebCore::::unoccludedContentRect):
3014         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
3015         (WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
3016
3017 2012-03-15  David Levin  <levin@chromium.org>
3018
3019         Various autoresize fixes.
3020         https://bugs.webkit.org/show_bug.cgi?id=81199
3021
3022         Reviewed by Darin Fisher.
3023
3024         Tested by WebViewTest additions.
3025
3026         * page/FrameView.cpp:
3027         (WebCore::FrameView::autoSizeIfEnabled): Fixed a bug that caused a horizontal
3028         scrollbar to appear when the size was width was fixed and height overflowed which
3029         is one of the tests that was added.
3030
3031 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
3032
3033         Web Inspector: normalize vertical overview bars by longest bar, not by longest frame
3034         https://bugs.webkit.org/show_bug.cgi?id=81231
3035
3036         Reviewed by Vsevolod Vlasov.
3037
3038         * inspector/front-end/TimelineOverviewPane.js:
3039         (WebInspector.TimelineOverviewPane):
3040         (WebInspector.TimelineOverviewPane.prototype.reset):
3041         (WebInspector.TimelineOverviewPane.prototype.accept):
3042         (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
3043         (WebInspector.TimelineVerticalOverview.prototype.reset):
3044         (WebInspector.TimelineVerticalOverview.prototype.update):
3045         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
3046         (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
3047         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
3048
3049 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
3050
3051         Web Inspector: crash in InspectorTimelineAgent when trying to add children to cancelable records
3052         https://bugs.webkit.org/show_bug.cgi?id=81245
3053
3054         Reviewed by Vsevolod Vlasov.
3055
3056         * inspector/InspectorTimelineAgent.cpp:
3057         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
3058         (WebCore):
3059         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
3060         (WebCore::InspectorTimelineAgent::appendRecord):
3061         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
3062         * inspector/InspectorTimelineAgent.h:
3063         (InspectorTimelineAgent):
3064
3065 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
3066
3067         Web Inspector: live locations could be disposed twice.
3068         https://bugs.webkit.org/show_bug.cgi?id=81249
3069
3070         Reviewed by Vsevolod Vlasov.
3071
3072         * inspector/front-end/ScriptMapping.js:
3073         (WebInspector.MainScriptMapping.prototype._unregisterLiveLocation):
3074
3075 2012-03-15  Carlos Garcia Campos  <cgarcia@igalia.com>
3076
3077         [GTK] Implement unicode submenu items
3078         https://bugs.webkit.org/show_bug.cgi?id=81117
3079
3080         Reviewed by Martin Robinson.
3081
3082         * loader/EmptyClients.h:
3083         (WebCore::EmptyEditorClient::shouldShowUnicodeMenu): Just return
3084         false.
3085         * page/ContextMenuController.cpp:
3086         (WebCore::insertUnicodeCharacter): Helper function to insert a
3087         unicode character.
3088         (WebCore::ContextMenuController::contextMenuItemSelected):
3089         Implement unicode menu items using insertUnicodeCharacter() to
3090         insert the apropriate unicode character.
3091         (WebCore::ContextMenuController::createAndAppendUnicodeSubMenu):
3092         Create the unicode submenu.
3093         (WebCore::ContextMenuController::populate): Add unicode submenu
3094         item for editable content.
3095         (WebCore::ContextMenuController::checkOrEnableIfNeeded): Add
3096         unicode submenu items to the switch.
3097         * page/ContextMenuController.h:
3098         * page/EditorClient.h:
3099         (EditorClient): Add shouldShowUnicodeMenu() for GTK platform.
3100         * platform/ContextMenuItem.h:
3101         * platform/LocalizedStrings.h:
3102         * platform/gtk/LocalizedStringsGtk.cpp:
3103         (WebCore::contextMenuItemTagUnicodeInsertLRMMark): Add localized
3104         string for the unicode menu item.
3105         (WebCore::contextMenuItemTagUnicodeInsertRLMMark): Ditto.
3106         (WebCore::contextMenuItemTagUnicodeInsertLREMark): Ditto.
3107         (WebCore::contextMenuItemTagUnicodeInsertRLEMark): Ditto.
3108         (WebCore::contextMenuItemTagUnicodeInsertLROMark): Ditto.
3109         (WebCore::contextMenuItemTagUnicodeInsertRLOMark): Ditto.
3110         (WebCore::contextMenuItemTagUnicodeInsertPDFMark): Ditto.
3111         (WebCore::contextMenuItemTagUnicodeInsertZWSMark): Ditto.
3112         (WebCore::contextMenuItemTagUnicodeInsertZWJMark): Ditto.
3113         (WebCore::contextMenuItemTagUnicodeInsertZWNJMark): Ditto.
3114
3115 2012-03-15  Vsevolod Vlasov  <vsevik@chromium.org>
3116
3117         Web Inspector: MainScriptMapping should detect snippet scripts by means of sourceURL set before evaluation.
3118         https://bugs.webkit.org/show_bug.cgi?id=81031
3119
3120         Reviewed by Pavel Feldman.
3121
3122         * inspector/front-end/SnippetsModel.js:
3123         (WebInspector.SnippetsModel):
3124         (WebInspector.SnippetsModel.prototype._saveSettings):
3125         (WebInspector.SnippetsModel.prototype.deleteSnippet):
3126         (WebInspector.SnippetsModel.prototype._snippetAdded):
3127         (WebInspector.SnippetsModel.prototype._sourceURLForSnippet):
3128         (WebInspector.SnippetsModel.prototype.snippetIdForSourceURL):
3129         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
3130         (WebInspector.Snippet.prototype.evaluate):
3131         (WebInspector.SnippetsScriptMapping):
3132         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation.get if):
3133         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation):
3134         (WebInspector.SnippetsScriptMapping.prototype._releasedUISourceCodes):
3135         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
3136         (WebInspector.SnippetsScriptMapping.prototype._snippetWillBeEvaluated):
3137         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
3138         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
3139
3140 2012-03-15  Kevin Ollivier  <kevino@theolliviers.com>
3141
3142         [wx] Unreviewed. Build fixes for Mac and DOM bindings.
3143
3144         * bindings/cpp/WebDOMEventTarget.cpp:
3145         (toWebKit):
3146         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
3147         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
3148
3149 2012-03-14  Pavel Podivilov  <podivilov@chromium.org>
3150
3151         Web Inspector: extract CompilerScriptMapping from RawSourceCode.
3152         https://bugs.webkit.org/show_bug.cgi?id=81088
3153
3154         Reviewed by Vsevolod Vlasov.
3155
3156         * WebCore.gypi:
3157         * WebCore.vcproj/WebCore.vcproj:
3158         * inspector/compile-front-end.py:
3159         * inspector/front-end/CompilerScriptMapping.js: Added.
3160         (WebInspector.CompilerScriptMapping):
3161         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
3162         (WebInspector.CompilerScriptMapping.prototype.get uiSourceCodeList):
3163         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
3164         (WebInspector.CompilerScriptMapping.prototype.addScript):
3165         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
3166         (WebInspector.CompilerScriptMapping.prototype.reset):
3167         * inspector/front-end/RawSourceCode.js:
3168         (WebInspector.RawSourceCode):
3169         (WebInspector.RawSourceCode.prototype.setFormatted):
3170         (WebInspector.RawSourceCode.prototype._resourceFinished):
3171         (WebInspector.RawSourceCode.prototype._createUISourceCode):
3172         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
3173         * inspector/front-end/ResourceScriptMapping.js:
3174         (WebInspector.ResourceScriptMapping.prototype.addScript):
3175         * inspector/front-end/ScriptMapping.js:
3176         (WebInspector.MainScriptMapping):
3177         * inspector/front-end/WebKit.qrc:
3178         * inspector/front-end/inspector.html:
3179
3180 2012-03-15  Peter Rybin  <peter.rybin@gmail.com>
3181
3182         Web Inspector: Move all includes behind ENABLE(INSPECTOR) guards
3183         https://bugs.webkit.org/show_bug.cgi?id=81132
3184
3185         Reviewed by Yury Semikhatsky.
3186
3187         Include directives are moved several lines down in .cpp files and in
3188         generator templates.
3189
3190         * inspector/CodeGeneratorInspector.py:
3191         * inspector/ContentSearchUtils.cpp:
3192         * inspector/DOMEditor.cpp:
3193         * inspector/DOMNodeHighlighter.cpp:
3194         * inspector/DOMPatchSupport.cpp:
3195         * inspector/IdentifiersFactory.cpp:
3196         * inspector/InjectedScript.cpp:
3197         * inspector/InjectedScriptHost.cpp:
3198         * inspector/InjectedScriptManager.cpp:
3199         * inspector/InspectorAgent.cpp:
3200         * inspector/InspectorApplicationCacheAgent.cpp:
3201         * inspector/InspectorBaseAgent.cpp:
3202         * inspector/InspectorCSSAgent.cpp:
3203         * inspector/InspectorClient.cpp:
3204         * inspector/InspectorConsoleAgent.cpp:
3205         * inspector/InspectorController.cpp:
3206         * inspector/InspectorCounters.cpp:
3207         * inspector/InspectorDOMAgent.cpp:
3208         * inspector/InspectorDOMDebuggerAgent.cpp:
3209         * inspector/InspectorDOMStorageAgent.cpp:
3210         * inspector/InspectorDatabaseAgent.cpp:
3211         * inspector/InspectorDatabaseResource.cpp:
3212         * inspector/InspectorDebuggerAgent.cpp:
3213         * inspector/InspectorFileSystemAgent.cpp:
3214         * inspector/InspectorFrontendClientLocal.cpp:
3215         * inspector/InspectorFrontendHost.cpp:
3216         * inspector/InspectorHistory.cpp:
3217         * inspector/InspectorIndexedDBAgent.cpp:
3218         * inspector/InspectorInstrumentation.cpp:
3219         * inspector/InspectorMemoryAgent.cpp:
3220         * inspector/InspectorPageAgent.cpp:
3221         * inspector/InspectorProfilerAgent.cpp:
3222         * inspector/InspectorResourceAgent.cpp:
3223         * inspector/InspectorRuntimeAgent.cpp:
3224         * inspector/InspectorState.cpp:
3225         * inspector/InspectorStyleSheet.cpp:
3226         * inspector/InspectorStyleTextEditor.cpp:
3227         * inspector/InspectorTimelineAgent.cpp:
3228         * inspector/InspectorValues.cpp:
3229         * inspector/InstrumentingAgents.cpp:
3230         * inspector/NetworkResourcesData.cpp:
3231         * inspector/PageConsoleAgent.cpp:
3232         * inspector/PageDebuggerAgent.cpp:
3233         * inspector/PageRuntimeAgent.cpp:
3234         * inspector/TimelineRecordFactory.cpp:
3235         * inspector/WorkerConsoleAgent.cpp:
3236         * inspector/WorkerDebuggerAgent.cpp:
3237         * inspector/WorkerRuntimeAgent.cpp:
3238
3239 2012-03-15  Yury Semikhatsky  <yurys@chromium.org>
3240
3241         Web Inspector: improve HeapSnapshot._buildReversIndex performance
3242         https://bugs.webkit.org/show_bug.cgi?id=81224
3243
3244         Caching node indexes and node count in local variables instead of
3245         calling getters each time reduces the method run time by
3246         factor of 1.5
3247
3248         Reviewed by Pavel Feldman.
3249
3250         * inspector/front-end/HeapSnapshot.js:
3251         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
3252
3253 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
3254
3255         SVG Animations update baseVal instead of animVal
3256         https://bugs.webkit.org/show_bug.cgi?id=12437
3257
3258         Rubber-stamped by Rob Buis.
3259
3260         Rename constructFromCopy to constructFromVariant, and currentBaseValue to currentBaseValueVariant, to clarify what it actually does.
3261
3262         * svg/SVGAnimateElement.cpp:
3263         (WebCore::SVGAnimateElement::resetToBaseValue):
3264         * svg/SVGAnimatedLength.cpp:
3265         (WebCore::SVGAnimatedLengthAnimator::constructFromVariant):
3266         * svg/SVGAnimatedLength.h:
3267         (SVGAnimatedLengthAnimator):
3268         * svg/SVGAnimatedLengthList.cpp:
3269         (WebCore::SVGAnimatedLengthListAnimator::constructFromVariant):
3270         * svg/SVGAnimatedLengthList.h:
3271         (SVGAnimatedLengthListAnimator):
3272         * svg/SVGAnimatedNumber.cpp:
3273         (WebCore::SVGAnimatedNumberAnimator::constructFromVariant):
3274         * svg/SVGAnimatedNumber.h:
3275         (SVGAnimatedNumberAnimator):
3276         * svg/SVGAnimatedNumberList.cpp:
3277         (WebCore::SVGAnimatedNumberListAnimator::constructFromVariant):
3278         * svg/SVGAnimatedNumberList.h:
3279         (SVGAnimatedNumberListAnimator):
3280         * svg/SVGAnimatedTransformList.cpp:
3281         (WebCore::SVGAnimatedTransformListAnimator::constructFromVariant):
3282         * svg/SVGAnimatedTransformList.h:
3283         (SVGAnimatedTransformListAnimator):
3284         * svg/SVGAnimatedTypeAnimator.h:
3285         (WebCore::SVGAnimatedTypeAnimator::constructFromVariant):
3286         * svg/properties/SVGAnimatedListPropertyTearOff.h:
3287         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValueVariant):
3288         * svg/properties/SVGAnimatedProperty.h:
3289         (SVGAnimatedProperty):
3290         * svg/properties/SVGAnimatedPropertyTearOff.h:
3291         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValueVariant):
3292         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
3293         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValueVariant):
3294
3295 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
3296
3297         Enable animVal support for SVGNumberList
3298         https://bugs.webkit.org/show_bug.cgi?id=81219
3299
3300         Reviewed by Rob Buis.
3301
3302         Enable animVal support for SVGNumberList. Easy patch, we just need to add the missing
3303         constructFromCopy() method to SVGAnumatedNumberListAnimator and report AnimatedNumberList
3304         as supporting animVal.
3305
3306         Covered by existing tests.
3307
3308         * svg/SVGAnimatedNumberList.cpp:
3309         (WebCore::SVGAnimatedNumberListAnimator::constructFromCopy):
3310         (WebCore):
3311         * svg/SVGAnimatedNumberList.h:
3312         (WebCore):
3313         (SVGAnimatedNumberListAnimator):
3314         * svg/SVGAnimatedType.cpp:
3315         (WebCore::SVGAnimatedType::supportsAnimVal):
3316         (WebCore::SVGAnimatedType::setVariantValue):
3317
3318 2012-03-15  Rob Buis  <rbuis@rim.com>
3319
3320         Fix cast-align GCC warnings
3321         https://bugs.webkit.org/show_bug.cgi?id=80790
3322
3323         Reviewed by Nikolas Zimmermann.
3324
3325         * platform/graphics/WOFFFileFormat.cpp:
3326         (WebCore::writeUInt32):
3327         (WebCore::writeUInt16):
3328         (WebCore::convertWOFFToSfnt):
3329
3330 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
3331
3332         Not reviewed. Forgot to preserve copyrights, per reviewer comment.
3333
3334         * svg/SVGAnimatedTransformList.cpp:
3335
3336 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
3337
3338         Enable animVal support for SVGNumber
3339         https://bugs.webkit.org/show_bug.cgi?id=81212
3340
3341         Reviewed by Rob Buis.
3342
3343         Enable animVal support for SVGNumber. This aligns SVGAnimatedStaticPropertyTearOff,
3344         with the other SVGListPropertyTearOff & SVGPropertyTearOff, as all support animVal now.
3345         Converting the rest of the types can be done in small patches now.
3346
3347         Test: svg/animations/svgnumber-animation-4.html
3348
3349         * svg/SVGAnimatedNumber.cpp:
3350         (WebCore::SVGAnimatedNumberAnimator::constructFromCopy):
3351         (WebCore):
3352         * svg/SVGAnimatedNumber.h:
3353         (WebCore):
3354         (SVGAnimatedNumberAnimator):
3355         * svg/SVGAnimatedType.cpp:
3356         (WebCore::SVGAnimatedType::supportsAnimVal):
3357         (WebCore::SVGAnimatedType::setVariantValue):
3358         * svg/properties/SVGAnimatedProperty.h:
3359         (SVGAnimatedProperty):
3360         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
3361         (WebCore::SVGAnimatedStaticPropertyTearOff::animVal):
3362         (WebCore::SVGAnimatedStaticPropertyTearOff::currentAnimatedValue):
3363         (SVGAnimatedStaticPropertyTearOff):
3364         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
3365         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
3366         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
3367         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueWillChange):
3368         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueDidChange):
3369         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
3370
3371 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
3372
3373         Enable animVal support for SVGTransformList
3374         https://bugs.webkit.org/show_bug.cgi?id=80758
3375
3376         Reviewed by Antti Koivisto.
3377
3378         Enable animVal support for SVGTransformList. SVGTransformLists are only animatable
3379         via <animateTransform>, not via <animate> directly. Still we can handle it in the
3380         same framework as all other types used for <animate>, as we also need proper animVal
3381         support for <animateTransform>.
3382
3383         This patch removes the special <animateTransform> implementation, and lets
3384         SVGAnimateTransformElement inherit from SVGAnimateElement, just like its done
3385         for SVGAnimateColorElement & SVGSetElement.
3386
3387         All existing code (calculateFromAndToValues/FromAndByValues/etc..) are moved from
3388         SVGAnimateTransform right into the SVGAnimatedTransformListAnimator.
3389
3390         This doesn't change <animateTransform> behavior, it just simplies the code
3391         and enables animVal support for SVGTransformLists - all covered by existing tests.
3392
3393         * CMakeLists.txt:
3394         * GNUmakefile.list.am:
3395         * Target.pri:
3396         * WebCore.gypi:
3397         * WebCore.xcodeproj/project.pbxproj:
3398         * svg/SVGAllInOne.cpp:
3399         * svg/SVGAnimateElement.cpp:
3400         (WebCore::SVGAnimateElement::SVGAnimateElement):
3401         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
3402         (WebCore::SVGAnimateElement::calculateAnimatedValue):
3403         (WebCore::SVGAnimateElement::applyResultsToTarget):
3404         * svg/SVGAnimateTransformElement.cpp:
3405         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
3406         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
3407         (WebCore::SVGAnimateTransformElement::parseAttribute):
3408         * svg/SVGAnimateTransformElement.h:
3409         (WebCore::SVGAnimateTransformElement::transformType):
3410         (SVGAnimateTransformElement):
3411         * svg/SVGAnimatedTransformList.cpp: Added.
3412         (WebCore):
3413         (WebCore::SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator):
3414         (WebCore::SVGAnimatedTransformListAnimator::constructFromString):
3415         (WebCore::SVGAnimatedTransformListAnimator::constructFromCopy):
3416         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndToValues):
3417         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndByValues):
3418         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
3419         (WebCore::SVGAnimatedTransformListAnimator::calculateDistance):
3420         * svg/SVGAnimatedTransformList.h:
3421         (WebCore):
3422         (SVGAnimatedTransformListAnimator):
3423         (WebCore::SVGAnimatedTransformListAnimator::~SVGAnimatedTransformListAnimator):
3424         * svg/SVGAnimatedType.cpp:
3425         (WebCore::SVGAnimatedType::~SVGAnimatedType):
3426         (WebCore::SVGAnimatedType::createTransformList):
3427         (WebCore):
3428         (WebCore::SVGAnimatedType::transformList):
3429         (WebCore::SVGAnimatedType::valueAsString):
3430         (WebCore::SVGAnimatedType::setValueAsString):
3431         (WebCore::SVGAnimatedType::supportsAnimVal):
3432         (WebCore::SVGAnimatedType::setVariantValue):
3433         * svg/SVGAnimatedType.h:
3434         (WebCore):
3435         (SVGAnimatedType):
3436         * svg/SVGAnimatorFactory.h:
3437         (WebCore::SVGAnimatorFactory::create):
3438         * svg/SVGGradientElement.cpp:
3439         (WebCore::SVGGradientElement::parseAttribute):
3440         * svg/SVGPatternElement.cpp:
3441         (WebCore::SVGPatternElement::parseAttribute):
3442         * svg/SVGStyledTransformableElement.cpp:
3443         (WebCore::SVGStyledTransformableElement::parseAttribute):
3444         * svg/SVGTextElement.cpp:
3445         (WebCore::SVGTextElement::parseAttribute):
3446         * svg/SVGTransform.cpp:
3447         (WebCore::SVGTransform::transformTypePrefixForParsing):
3448         (WebCore):
3449         (WebCore::SVGTransform::valueAsString):
3450         * svg/SVGTransform.h:
3451         (SVGTransform):
3452         * svg/SVGTransformList.cpp:
3453         (WebCore::SVGTransformList::parse):
3454         (WebCore):
3455         * svg/SVGTransformList.h:
3456         (SVGTransformList):
3457         * svg/SVGTransformable.cpp:
3458         (WebCore::SVGTransformable::parseTransformType):
3459         * svg/SVGTransformable.h:
3460         (WebCore):
3461         * svg/SVGViewSpec.cpp:
3462         (WebCore::SVGViewSpec::setTransform):
3463
3464 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
3465
3466         Enable animVal support for SVGLengthList
3467         https://bugs.webkit.org/show_bug.cgi?id=80750
3468
3469         Reviewed by Zoltan Herczeg.
3470
3471         Introduce animVal support for generic SVGList types. This aligns SVGListProperty with SVGProperty
3472         in terms of animVal/baseVal support. Use this to turn on animVal support for SVGLengthList.
3473
3474         Extend all existing SVGLengthList tests to correctly differentiate between baseVal/animVal.
3475
3476         * svg/SVGAnimateElement.cpp:
3477         (WebCore::SVGAnimateElement::calculateAnimatedValue):
3478         * svg/SVGAnimateTransformElement.cpp:
3479         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
3480         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
3481         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
3482         * svg/SVGAnimatedLengthList.cpp:
3483         (WebCore::SVGAnimatedLengthListAnimator::constructFromCopy):
3484         (WebCore):
3485         * svg/SVGAnimatedLengthList.h:
3486         (WebCore):
3487         (SVGAnimatedLengthListAnimator):
3488         * svg/SVGAnimatedType.cpp:
3489         (WebCore::SVGAnimatedType::supportsAnimVal):
3490         (WebCore::SVGAnimatedType::setVariantValue):
3491         * svg/SVGAnimatedType.h:
3492         * svg/SVGAnimationElement.cpp:
3493         (WebCore::SVGAnimationElement::applyAnimatedValue):
3494         * svg/properties/SVGAnimatedListPropertyTearOff.h:
3495         (SVGAnimatedListPropertyTearOff):
3496         (WebCore::SVGAnimatedListPropertyTearOff::baseVal):
3497         (WebCore::SVGAnimatedListPropertyTearOff::animVal):
3498         (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
3499         (WebCore::SVGAnimatedListPropertyTearOff::detachListWrappers):
3500         (WebCore::SVGAnimatedListPropertyTearOff::currentAnimatedValue):
3501         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
3502         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
3503         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
3504         (WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):
3505         (WebCore::SVGAnimatedListPropertyTearOff::animationValueWillChange):
3506         (WebCore::SVGAnimatedListPropertyTearOff::animationValueDidChange):
3507         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
3508         (WebCore::SVGAnimatedPathSegListPropertyTearOff::baseVal):
3509         (WebCore::SVGAnimatedPathSegListPropertyTearOff::animVal):
3510         * svg/properties/SVGAnimatedProperty.h:
3511         (WebCore::SVGAnimatedProperty::isAnimating):
3512         (SVGAnimatedProperty):
3513         (WebCore::SVGAnimatedProperty::animationValueWillChange):
3514         (WebCore::SVGAnimatedProperty::animationValueDidChange):
3515         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
3516         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
3517         * svg/properties/SVGAnimatedPropertyTearOff.h:
3518         (SVGAnimatedPropertyTearOff):
3519         (WebCore::SVGAnimatedPropertyTearOff::baseVal):
3520         (WebCore::SVGAnimatedPropertyTearOff::animVal):
3521         (WebCore::SVGAnimatedPropertyTearOff::currentAnimatedValue):
3522         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
3523         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
3524         (WebCore::SVGAnimatedPropertyTearOff::animationValueWillChange):
3525         (WebCore::SVGAnimatedPropertyTearOff::animationValueDidChange):
3526         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff):
3527         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
3528         (WebCore::SVGAnimatedTransformListPropertyTearOff::baseVal):
3529         (WebCore::SVGAnimatedTransformListPropertyTearOff::animVal):
3530         * svg/properties/SVGListProperty.h:
3531         (WebCore::SVGListProperty::detachListWrappers):
3532         (SVGListProperty):
3533         (WebCore::SVGListProperty::setValuesAndWrappers):
3534         (WebCore::SVGListProperty::clearValues):
3535         (WebCore::SVGListProperty::clearValuesAndWrappers):
3536         (WebCore::SVGListProperty::numberOfItems):
3537         (WebCore::SVGListProperty::initializeValues):
3538         (WebCore::SVGListProperty::initializeValuesAndWrappers):
3539         (WebCore::SVGListProperty::canGetItem):
3540         (WebCore::SVGListProperty::getItemValues):
3541         (WebCore::SVGListProperty::getItemValuesAndWrappers):
3542         (WebCore::SVGListProperty::insertItemBeforeValues):
3543         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
3544         (WebCore::SVGListProperty::canReplaceItem):
3545         (WebCore::SVGListProperty::replaceItemValues):
3546         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
3547         (WebCore::SVGListProperty::canRemoveItem):
3548         (WebCore::SVGListProperty::removeItemValues):
3549         (WebCore::SVGListProperty::removeItemValuesAndWrappers):
3550         (WebCore::SVGListProperty::appendItemValues):
3551         (WebCore::SVGListProperty::appendItemValuesAndWrappers):
3552         (WebCore::SVGListProperty::values):
3553         (WebCore::SVGListProperty::wrappers):
3554         (WebCore::SVGListProperty::SVGListProperty):
3555         * svg/properties/SVGListPropertyTearOff.h:
3556         (SVGListPropertyTearOff):
3557         (WebCore::SVGListPropertyTearOff::create):
3558         (WebCore::SVGListPropertyTearOff::removeItemFromList):
3559         (WebCore::SVGListPropertyTearOff::clear):
3560         (WebCore::SVGListPropertyTearOff::initialize):
3561         (WebCore::SVGListPropertyTearOff::insertItemBefore):
3562         (WebCore::SVGListPropertyTearOff::replaceItem):
3563         (WebCore::SVGListPropertyTearOff::appendItem):
3564         (WebCore::SVGListPropertyTearOff::SVGListPropertyTearOff):
3565         (WebCore::SVGListPropertyTearOff::commitChange):
3566         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
3567         (WebCore::SVGPathSegListPropertyTearOff::clear):
3568         (WebCore::SVGPathSegListPropertyTearOff::getItem):
3569         (WebCore::SVGPathSegListPropertyTearOff::removeItem):
3570         * svg/properties/SVGPathSegListPropertyTearOff.h:
3571         (WebCore::SVGPathSegListPropertyTearOff::create):
3572         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
3573         (SVGPathSegListPropertyTearOff):
3574         (WebCore::SVGPathSegListPropertyTearOff::initialize):
3575         (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
3576         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
3577         (WebCore::SVGPathSegListPropertyTearOff::appendItem):
3578         (WebCore::SVGPathSegListPropertyTearOff::SVGPathSegListPropertyTearOff):
3579         (WebCore::SVGPathSegListPropertyTearOff::commitChange):
3580         * svg/properties/SVGPropertyInfo.h:
3581         * svg/properties/SVGStaticListPropertyTearOff.h:
3582         (SVGStaticListPropertyTearOff):
3583         (WebCore::SVGStaticListPropertyTearOff::clear):
3584         (WebCore::SVGStaticListPropertyTearOff::initialize):
3585         (WebCore::SVGStaticListPropertyTearOff::getItem):
3586         (WebCore::SVGStaticListPropertyTearOff::insertItemBefore):
3587         (WebCore::SVGStaticListPropertyTearOff::replaceItem):
3588         (WebCore::SVGStaticListPropertyTearOff::removeItem):
3589         (WebCore::SVGStaticListPropertyTearOff::appendItem):
3590         (WebCore::SVGStaticListPropertyTearOff::SVGStaticListPropertyTearOff):
3591         (WebCore::SVGStaticListPropertyTearOff::commitChange):
3592         * svg/properties/SVGTransformListPropertyTearOff.h:
3593         (WebCore::SVGTransformListPropertyTearOff::create):
3594         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
3595         (WebCore::SVGTransformListPropertyTearOff::consolidate):
3596         (WebCore::SVGTransformListPropertyTearOff::SVGTransformListPropertyTearOff):
3597
3598 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
3599
3600         AXDescription for HTML5 footer
3601         https://bugs.webkit.org/show_bug.cgi?id=78967
3602
3603         Return a unique role description for the footer element.
3604
3605         Reviewed by Beth Dakin.
3606
3607         Test: platform/mac/accessibility/footer-roledescription.html
3608
3609         * English.lproj/Localizable.strings:+
3610         * accessibility/AccessibilityObject.h:
3611         * accessibility/AccessibilityRenderObject.cpp:
3612         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
3613         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3614         (createAccessibilityRoleMap):
3615         (-[WebAccessibilityObjectWrapper subrole]):
3616         (-[WebAccessibilityObjectWrapper roleDescription]):
3617         * platform/LocalizedStrings.cpp:
3618         (WebCore::AXFooterRoleDescriptionText):
3619         (WebCore):
3620         * platform/LocalizedStrings.h:
3621         (WebCore):
3622         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
3623         (WebCore::AXFooterRoleDescriptionText):
3624         (WebCore):
3625         * platform/efl/LocalizedStringsEfl.cpp:
3626         (WebCore::AXFooterRoleDescriptionText):
3627         (WebCore):
3628         * platform/gtk/LocalizedStringsGtk.cpp:
3629         (WebCore::AXFooterRoleDescriptionText):
3630         (WebCore):
3631
3632 2012-03-14  Mark Rowe  <mrowe@apple.com>
3633
3634         <http://webkit.org/b/81193> Ensure libWebCoreTestSupport.dylib's library identifier is set appropriately for all configurations.
3635
3636         Reviewed by Dan Bernstein.
3637
3638         * Configurations/WebCoreTestSupport.xcconfig: Switch to setting DYLIB_INSTALL_NAME_BASE
3639         rather than LD_DYLIB_INSTALL_NAME. The latter is derived from the former. Ensure that
3640         DYLIB_INSTALL_NAME_BASE is also set for the Production configuration.
3641
3642 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
3643
3644         AXDescription for ARIA role contentinfo incorrect
3645         https://bugs.webkit.org/show_bug.cgi?id=78967
3646
3647         Reviewed by Beth Dakin.
3648
3649         Test: platform/mac/accessibility/aria-grouping-roles.html
3650
3651         * English.lproj/Localizable.strings:
3652         * platform/LocalizedStrings.cpp:
3653         (WebCore::AXARIAContentGroupText):
3654
3655 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
3656
3657         AX: ARIA tables need to support selected rows attribute/select rows changed notification
3658         https://bugs.webkit.org/show_bug.cgi?id=79821
3659
3660         Reviewed by Beth Dakin.
3661
3662         Test: platform/mac/accessibility/selected-rows-table.html
3663
3664         * accessibility/AccessibilityARIAGrid.h:
3665         (WebCore::AccessibilityARIAGrid::isMultiSelectable):
3666         (AccessibilityARIAGrid):
3667         * accessibility/AccessibilityRenderObject.cpp:
3668         (WebCore::AccessibilityRenderObject::ariaSelectedRows):
3669         * accessibility/AccessibilityTableRow.cpp:
3670         (WebCore::AccessibilityTableRow::observableObject):
3671         (WebCore):
3672         * accessibility/AccessibilityTableRow.h:
3673         (AccessibilityTableRow):
3674         * accessibility/mac/AXObjectCacheMac.mm:
3675         (WebCore::AXObjectCache::postPlatformNotification):
3676
3677 2012-03-14  James Robinson  <jamesr@chromium.org>
3678
3679         Platforms without USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) don't need to query the page's displayID
3680         https://bugs.webkit.org/show_bug.cgi?id=81187
3681
3682         Reviewed by Simon Fraser.
3683
3684         * dom/Document.cpp:
3685         (WebCore::Document::webkitRequestAnimationFrame):
3686
3687 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
3688
3689         AX: embedded attachments do not report their parents correctly
3690         https://bugs.webkit.org/show_bug.cgi?id=80132
3691
3692         When a WebHTMLView has embedded attachments in it, the AXParent of those attachments is wrong.
3693         It usually points to the AXScrollView of the web area. That's because there has been no way for WebCore to
3694         communicate that this attachment view should actually make believe that it's parent is within the WebCore AX tree.
3695
3696         We can fix that by overriding the AXParent in overriden attributes for items that are attachments.
3697
3698         Reviewed by Beth Dakin.
3699
3700         Not able to construct a layout test because the problem only manifests itself when an AX client connects to WebKit
3701         through the IPC mechanism.
3702
3703         * accessibility/AccessibilityObject.cpp:
3704         (WebCore::AccessibilityObject::detachFromParent):
3705         * accessibility/AccessibilityObject.h:
3706         (AccessibilityObject):
3707         (WebCore::AccessibilityObject::overrideAttachmentParent):
3708         * accessibility/AccessibilityRenderObject.cpp:
3709         (WebCore::AccessibilityRenderObject::updateAttachmentViewParents):
3710         (WebCore::AccessibilityRenderObject::addChildren):
3711         * accessibility/AccessibilityRenderObject.h:
3712         (AccessibilityRenderObject):
3713         * accessibility/mac/AccessibilityObjectMac.mm:
3714         (WebCore::AccessibilityObject::overrideAttachmentParent):
3715
3716 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
3717
3718         Improve ContainerNode's collectNodes() performance
3719         https://bugs.webkit.org/show_bug.cgi?id=80706
3720
3721         Reviewed by Antti Koivisto.
3722
3723         Bump up the size of stack allocated buffer from 1 to 11. According to the rough study I conducted,
3724         this would cover 99.5% of all node collection.
3725
3726         Note: the actual code change was made in r110797 but I somehow mangled my patches.
3727
3728         * dom/ContainerNode.cpp:
3729         (WebCore):
3730
3731 2012-03-14  Seo Sanghyeon  <sh4.seo@samsung.com>
3732
3733         Cleanup semicolons in IDLs
3734         https://bugs.webkit.org/show_bug.cgi?id=81129
3735
3736         Reviewed by Kentaro Hara.
3737
3738         No tests. No change in behavior.
3739
3740         * svg/SVGAnimateColorElement.idl:
3741         * svg/SVGAnimateElement.idl:
3742         * svg/SVGAnimateTransformElement.idl:
3743         * svg/SVGAnimatedRect.idl:
3744
3745 2012-03-14  Hayato Ito  <hayato@chromium.org>
3746
3747         Make ShadowRoot.activeElement return null if it does not contain a focused element.
3748         https://bugs.webkit.org/show_bug.cgi?id=81097
3749
3750         Reviewed by Dimitri Glazkov.
3751
3752         * dom/TreeScope.cpp:
3753         (WebCore::TreeScope::activeElement):
3754
3755 2012-03-14  Matt Falkenhagen  <falken@chromium.org>
3756
3757         Allow per-script font settings to be specified in layout tests
3758         https://bugs.webkit.org/show_bug.cgi?id=78184
3759
3760         Reviewed by Hajime Morita.
3761
3762         This adds per-script font settings to InternalSettings, so it can be used in layout tests instead of
3763         the per-script font settings support in DumpRenderTree overridePreference, which has only been implemented
3764         for Chromium so far.
3765
3766         Test: changed fast/text/international/locale-sensitive-fonts.html to use InternalSettings
3767         instead of overridePreference.
3768
3769         * WebCore.exp.in: Added symbols.
3770         * platform/text/LocaleToScriptMapping.h: Added scriptNameToCode used by InternalSettings.
3771         (WebCore):
3772         * platform/text/LocaleToScriptMappingDefault.cpp:
3773         (WebCore::scriptNameToCode):
3774         (WebCore::localeToScriptCodeForFontSelection):
3775         * platform/text/LocaleToScriptMappingICU.cpp:
3776         (WebCore::scriptNameToCode):
3777         (WebCore):
3778         * testing/InternalSettings.cpp: Added per-script font settings.
3779         (WebCore):
3780         (WebCore::setFontFamily):
3781         (WebCore::InternalSettings::setStandardFontFamily):
3782         (WebCore::InternalSettings::setSerifFontFamily):
3783         (WebCore::InternalSettings::setSansSerifFontFamily):
3784         (WebCore::InternalSettings::setFixedFontFamily):
3785         (WebCore::InternalSettings::setCursiveFontFamily):
3786         (WebCore::InternalSettings::setFantasyFontFamily):
3787         (WebCore::InternalSettings::setPictographFontFamily):
3788         * testing/InternalSettings.h:
3789         (InternalSettings):
3790         * testing/InternalSettings.idl:
3791
3792 2012-03-14  Kwonjin Jeong  <gram@company100.net>
3793
3794         Remove obsolete constructors of CSSPrimitiveValue class.
3795         https://bugs.webkit.org/show_bug.cgi?id=80971
3796
3797         Remove constructors of CSSPrimitiveValue that can't be
3798         reached.
3799
3800         Reviewed by Andreas Kling.
3801
3802         * css/CSSPrimitiveValueMappings.h:
3803
3804 2012-03-14  Igor Oliveira  <igor.o@sisa.samsung.com>
3805
3806         Split the extra logic out of RenderBlock::updateFirstLetter
3807         https://bugs.webkit.org/show_bug.cgi?id=80772
3808
3809         Reviewed by Julien Chaffraix.
3810
3811         No change in behavior expected.
3812
3813         * rendering/RenderBlock.cpp:
3814         (WebCore::RenderBlock::updateFirstLetterStyle):
3815         (WebCore::RenderBlock::createFirstLetterRenderer):
3816         (WebCore::RenderBlock::updateFirstLetter):
3817         (WebCore):
3818         * rendering/RenderBlock.h:
3819         (RenderBlock):
3820
3821 2012-03-14  Anders Carlsson  <andersca@apple.com>
3822
3823         Fix build.
3824
3825         * html/track/TextTrackList.cpp:
3826
3827 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
3828
3829         Build fix.
3830
3831         * dom/DynamicNodeList.h:
3832         (DynamicSubtreeNodeList):
3833
3834 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
3835
3836         (register|unregister)DynamicSubtreeNodeList should be called only for labels and regions node lists
3837         https://bugs.webkit.org/show_bug.cgi?id=80900
3838
3839         Reviewed by Andreas Kling.
3840
3841         Cleaned up invalidation code for dynamic node lists. It seems like the existing code was utterly confused
3842         about the lifetime of node lists and caches within them. First, register/unregsiterDynamicSubtreeNodeList
3843         are called for all dynamic node lists even though it's only useful for labels and region node lists since
3844         it's a mechanism to allow node lists to be invalidated at a node to which the node list doesn't belong.
3845
3846         Second, some node lists had dedicated member functions on Node to explicitly invalidate caches in
3847         parsedAttribute. However, this is redundant because invalidateNodeListsCacheAfterAttributeChanged should be
3848         able to invalidate caches when the attribute value changes. This patch gets rid of the last instance of such
3849         function in HTMLLabelElement.
3850
3851         And finally, this patch restricts the callers of DynamicSubtreeNodeList::invalidateCache to be member
3852         functions of NodeListsNodeData (now friends of DynamicSubtreeNodeList) to allow futher refactoring.
3853
3854         * dom/DynamicNodeList.cpp:
3855         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Don't register the node list since it's only
3856         useful for labels and region node lists.
3857         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Ditto.
3858         * dom/DynamicNodeList.h:
3859         (DynamicSubtreeNodeList):
3860         * dom/Node.cpp:
3861         (WebCore):
3862         (WebCore::Node::registerDynamicSubtreeNodeList): The comment about now we have to invalidate caches
3863         when there had no caches is incorrect because registerDynamicSubtreeNodeList is called when a node list
3864         is initially created. Also, if the tree scope didn't have any caches, then this is the first node list
3865         to be added to the list, so there's no point in calling InvalidateCaches (no-op).
3866         (WebCore::Node::unregisterDynamicSubtreeNodeList):
3867         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Take care of "for" content attribute.
3868         Also remove the redundant call to removeNodeListCacheIfPossible since we only invalidates node lists
3869         and never remove entries from NodeListsNodeData in this function.
3870         (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): The call to removeNodeListCacheIfPossible
3871         is also redundant here. Also removed the invalidation of m_listsWithCaches since it's already done in
3872         invalidateCaches via invalidateCachesThatDependOnAttributes.
3873         (WebCore::NodeListsNodeData::invalidateCaches): Removed the invalidation of m_labelsNodeListCache. It's
3874         done in invalidateCachesThatDependOnAttributes.
3875         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): Invalidate
3876         m_listsInvalidatedAtDocument, which is renamed from m_listsWithCaches.
3877         (WebCore::NodeListsNodeData::isEmpty):
3878         * dom/Node.h:
3879         (Node):
3880         * dom/NodeRareData.h:
3881         (NodeListsNodeData):
3882         * html/HTMLLabelElement.cpp:
3883         (WebCore): Removed parseAttribute since the invalidation labels node list is now done by
3884         invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.
3885         * html/HTMLLabelElement.h:
3886         (HTMLLabelElement):
3887         * html/LabelsNodeList.cpp:
3888         (WebCore::LabelsNodeList::LabelsNodeList):
3889         (WebCore::LabelsNodeList::~LabelsNodeList):
3890
3891 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3892
3893         Unreviewed, rolling out r110565.
3894         http://trac.webkit.org/changeset/110565
3895         https://bugs.webkit.org/show_bug.cgi?id=81173
3896
3897         chromium deps are now far enough along that the original cl
3898         should work (Requested by thakis on #webkit).
3899
3900         * WebCore.gyp/mac/adjust_visibility.sh:
3901
3902 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3903
3904         Unreviewed, rolling out r110641.
3905         http://trac.webkit.org/changeset/110641
3906         https://bugs.webkit.org/show_bug.cgi?id=81170
3907
3908         Causes an ASAN failure (Requested by abarth on #webkit).
3909
3910         * Target.pri:
3911         * UseV8.cmake:
3912         * WebCore.gypi:
3913         * bindings/scripts/CodeGeneratorJS.pm:
3914         (GenerateHeader):
3915         (GenerateImplementation):
3916         * bindings/scripts/CodeGeneratorV8.pm:
3917         (GenerateHeader):
3918         (GenerateNamedConstructorCallback):
3919         (GenerateImplementation):
3920         * bindings/scripts/IDLAttributes.txt:
3921         * bindings/scripts/test/V8/V8Float64Array.cpp:
3922         (WebCore):
3923         * bindings/scripts/test/V8/V8Float64Array.h:
3924         (V8Float64Array):
3925         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3926         (WebCore):
3927         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3928         (V8TestActiveDOMObject):
3929         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3930         (WebCore):
3931         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3932         (V8TestCustomNamedGetter):
3933         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3934         (WebCore):
3935         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3936         (V8TestEventConstructor):
3937         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3938         (WebCore):
3939         * bindings/scripts/test/V8/V8TestEventTarget.h:
3940         (V8TestEventTarget):
3941         * bindings/scripts/test/V8/V8TestInterface.cpp:
3942         (WebCore):
3943         * bindings/scripts/test/V8/V8TestInterface.h:
3944         (V8TestInterface):
3945         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3946         (WebCore):
3947         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3948         (V8TestMediaQueryListListener):
3949         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3950         (WebCore):
3951         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3952         (V8TestNamedConstructor):
3953         * bindings/scripts/test/V8/V8TestObj.cpp:
3954         (WebCore):
3955         * bindings/scripts/test/V8/V8TestObj.h:
3956         (V8TestObj):
3957         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3958         (WebCore):
3959         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3960         (V8TestSerializedScriptValueInterface):
3961         * bindings/v8/NPV8Object.cpp:
3962         (WebCore::npObjectTypeInfo):
3963         * bindings/v8/V8GCController.cpp:
3964         (WebCore::GrouperVisitor::visitDOMWrapper):
3965         * bindings/v8/WrapperTypeInfo.h:
3966         (WebCore):
3967         (WrapperTypeInfo):
3968         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
3969         (WebCore):
3970         (WebCore::toV8):
3971         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3972         (WebCore::toV8):
3973         (WebCore):
3974         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
3975         (WebCore):
3976         (WebCore::toV8):
3977         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3978         (WebCore):
3979         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3980         (WebCore::toV8):
3981         (WebCore):
3982         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3983         (WebCore::toV8):
3984         * css/CSSStyleSheet.idl:
3985         * css/StyleSheet.idl:
3986         * dom/DOMStringMap.idl:
3987         * dom/NamedNodeMap.idl:
3988         * html/DOMTokenList.idl:
3989         * html/track/TextTrackList.cpp:
3990         * html/track/TextTrackList.idl:
3991
3992 2012-03-13  Jon Lee  <jonlee@apple.com>
3993
3994         Separate NOTIFICATIONS and LEGACY_NOTIFICATIONS
3995         https://bugs.webkit.org/show_bug.cgi?id=80922
3996         <rdar://problem/11035082>
3997
3998         Reviewed by Jian Li.
3999
4000         You can include either NOTIFICATIONS or LEGACY_NOTIFICATIONS and have a complete API.
4001         LEGACY_NOTIFICATIONS should cover all of the previous functionality, and NOTIFICATIONS will cover the
4002         new API. Therefore, APIs that are common between the two will have:
4003         #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
4004
4005         This patch initially sets both to be exactly the same. As other bugs with patches begin to migrate to
4006         the new API, the defines will begin to split. This allows ports to decide which set of APIs to include.
4007
4008         * bindings/scripts/InFilesCompiler.pm: Update the script to handle the "|" flag in a conditional.
4009         (preferredConditional):
4010         (conditionalStringFromAttributeValue):
4011         (generateInterfacesHeader):
4012         (generateHeadersHeader):
4013
4014         Update everything to be #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
4015         * WebCore.exp.in:
4016         * bindings/cpp/WebDOMEventTarget.cpp:
4017         (toWebKit):
4018         * bindings/js/JSDesktopNotificationsCustom.cpp:
4019         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
4020         * dom/EventTargetFactory.in:
4021         * notifications/Notification.cpp:
4022         * notifications/Notification.h:
4023         * notifications/Notification.idl:
4024         * notifications/NotificationCenter.cpp:
4025         * notifications/NotificationCenter.h:
4026         * notifications/NotificationCenter.idl:
4027         * notifications/NotificationContents.h:
4028         * notifications/NotificationController.cpp:
4029         * notifications/NotificationController.h:
4030         * page/DOMWindow.cpp:
4031         (WebCore::DOMWindow::~DOMWindow):
4032         (WebCore::DOMWindow::willDetachPage):
4033         (WebCore::DOMWindow::disconnectDOMWindowProperties):
4034         (WebCore::DOMWindow::clearDOMWindowProperties):
4035         (WebCore):
4036         * page/DOMWindow.h:
4037         (DOMWindow):
4038         * page/DOMWindow.idl:
4039         * page/Frame.cpp:
4040         (WebCore::Frame::willDetachPage):
4041         (WebCore::Frame::transferChildFrameToNewDocument):
4042         * workers/WorkerContext.cpp:
4043         (WebCore::WorkerContext::~WorkerContext):
4044         (WebCore):
4045         * workers/WorkerContext.h:
4046         (WorkerContext):
4047         * workers/WorkerContext.idl:
4048         * workers/WorkerThread.cpp: