[Soup] utilize multipart/x-mixed-replace support recently added to libsoup
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
2
3         [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
4         https://bugs.webkit.org/show_bug.cgi?id=94515
5
6         Reviewed by Martin Robinson.
7
8         The multipart/x-mixed-replace content type is often used for providing
9         "push" server support, with each part in the multipart response
10         replacing the previous one in the rendering. Soup recently acquired
11         support for multipart/x-mixed replace, which this change utilizes.
12
13         Covered by existing multipart/x-mixed-replace tests.
14
15         * platform/network/ResourceHandleInternal.h:
16         (ResourceHandleInternal): add new member to this class, the multipart input stream
17         * platform/network/soup/ResourceHandleSoup.cpp:
18         (WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
19         cleanup
20         (WebCore::nextPartCallback): callback that handles reporting the new response delivered
21         with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
22         (WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
23         requesting the next part
24         (WebCore::readCallback): when reading has finished, request the next part when
25         handling a multipart/x-mixed-replace response
26         * platform/network/soup/ResourceResponse.h:
27         (ResourceResponse): add declaration for new method
28         * platform/network/soup/ResourceResponseSoup.cpp:
29         (WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
30         method, instead of dealing with the message headers directly
31         (WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
32         updateFromSoupMessage, so this same code can be reused for updating responses for
33         multipart/x-mixed-replace responses parts
34
35 2012-12-10  Zoltan Nyul  <zoltan.nyul@intel.com>
36
37         Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
38         https://bugs.webkit.org/show_bug.cgi?id=103886
39
40         Reviewed by Kenneth Rohde Christiansen.
41
42         Export symbol for WebCore::Page::setViewMode on Mac.
43
44         No new tests, no behavior change for layout tests.
45
46         * WebCore.exp.in:
47
48 2012-12-10  Martin Robinson  <mrobinson@igalia.com>
49
50         [GTK] Bring Harfbuzz-ng support to Gtk
51         https://bugs.webkit.org/show_bug.cgi?id=92098
52
53         Reviewed by Gustavo Noronha Silva.
54
55         Enable HarfBuzz support by default. With the Freetype backend we no longer
56         fall back to Pango for rendering complex text.
57
58         No new tests. This is covered by existing tests.
59
60         * GNUmakefile.am: Add HarfBuzz include directories and define.
61         * GNUmakefile.list.am: Add HarfBuzz files to source list and remove
62         Pango ones.
63         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
64         (WebCore::FontPlatformData::operator==): To properly render fallback
65         fonts via HarfBuzz , it's important that we actually ask Fontconfig
66         whether or not two patterns are the same. This ensures that when patterns
67         are just copies of one another they only take up one slot in the font cache
68         and appear to be the same font to HarfBuzzShaper.
69
70 2012-12-10  Alexander Pavlov  <apavlov@chromium.org>
71
72         Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
73         https://bugs.webkit.org/show_bug.cgi?id=104542
74
75         Reviewed by Vsevolod Vlasov.
76
77         Remove inadvertent object property assignment.
78
79         * inspector/front-end/OverridesView.js:
80
81 2012-12-10  Michael BrĂ¼ning  <michael.bruning@digia.com>
82
83         [Qt] Builds for Mac are tied to the OS system instead of the SDK version.
84         https://bugs.webkit.org/show_bug.cgi?id=104529
85
86         Reviewed by Simon Hausmann.
87
88         Using work by Eike Ziller <eike.ziller@digia.com>.
89
90         The build system now first tries to assign the correct system libraries
91         for the SDK being used for Mac builds. If this does not yield any
92         result, it falls back to using the Mac OS version to determine the
93         correct library.
94
95         No new tests (not applicable).
96
97         * WebCore.pri:
98
99 2012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>
100
101         Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.
102
103         * rendering/RenderingAllInOne.cpp:
104
105 2012-12-10  Eugene Klyuchnikov  <eustas@chromium.org>
106
107         Web Inspector: Network: newly added items are not filtered.
108         https://bugs.webkit.org/show_bug.cgi?id=104021
109
110         Reviewed by Vsevolod Vlasov.
111
112         Extracted method to higlight/hide record according to filter.
113         Used this method to process newly created records.
114
115         * inspector/front-end/NetworkPanel.js:
116         (WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
117         (WebInspector.NetworkLogView.prototype.performFilter): Refactored.
118
119 2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
120
121         Web Inspector: Unreviewed: move reportMemoryUsage to public section.
122
123         * rendering/RenderBlock.h:
124         (RenderBlock):
125         * rendering/RenderBox.h:
126         (RenderBox):
127
128 2012-12-08  Pavel Feldman  <pfeldman@chromium.org>
129
130         Web Inspector: adds an option to remove toolbar icons.
131         https://bugs.webkit.org/show_bug.cgi?id=95654
132
133         Reviewed by Vsevolod Vlasov.
134
135         - removes compact mode in favor or dock-to-bottom
136         - introduces setting for hiding toolbar icons
137
138         * inspector/front-end/DockController.js:
139         (WebInspector.DockController.prototype._toggleDockState):
140         * inspector/front-end/Settings.js:
141         (WebInspector.ExperimentsSettings):
142         * inspector/front-end/Toolbar.js:
143         (WebInspector.Toolbar.prototype.setDockedToBottom):
144         (WebInspector.Toolbar.prototype._toolbarDragStart):
145         (WebInspector.Toolbar.prototype._toolbarDrag):
146         * inspector/front-end/helpScreen.css:
147         (body.dock-to-bottom .help-content):
148         * inspector/front-end/inspector.css:
149         (body.dock-to-bottom #toolbar):
150         (body.no-toolbar-icons #toolbar):
151         (body.dock-to-bottom.port-qt #toolbar):
152         (body.dock-to-bottom.inactive #toolbar):
153         (body.no-toolbar-icons .toolbar-item.toggleable):
154         (body.dock-to-bottom .toolbar-item.toggleable):
155         (body.dock-to-bottom .toolbar-icon):
156         (body.no-toolbar-icons .toolbar-icon):
157         (body.no-toolbar-icons #main):
158         (body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
159         (body.dock-to-bottom .toolbar-item:active .toolbar-icon):
160         (body.dock-to-bottom .toolbar-label):
161         (body.dock-to-bottom #search-toolbar-label):
162         (body.no-toolbar-icons .toolbar-label):
163         (body.no-toolbar-icons #toolbar-dropdown):
164         (#toolbar-dropdown .scrollable-content):
165         (#toolbar-dropdown .toolbar-item.toggleable:hover):
166         (body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
167         (body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
168         (body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
169         (body.dock-to-bottom .toolbar-item.network .toolbar-icon):
170         (body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
171         (body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
172         (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
173         (body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
174         (body.dock-to-bottom .toolbar-item.console .toolbar-icon):
175         (body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
176         (body.dock-to-bottom #main):
177
178 2012-12-10  Kent Tamura  <tkent@chromium.org>
179
180         Refactoring: Remove HTMLFormControlElement::autofocus
181         https://bugs.webkit.org/show_bug.cgi?id=104524
182
183         Reviewed by Kentaro Hara.
184
185         autofocus function is used only by HTMLFormControlElement itself, no
186         sub-classes override it, and it is not exposed via an IDL attribute,
187
188         No new tests. This doesn't make any behavior changes.
189
190         * html/HTMLFormControlElement.cpp:
191         (WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
192         * html/HTMLFormControlElement.h: Remove autofocus().
193
194 2012-12-10  Jonathan Liu  <net147@gmail.com>
195
196         Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
197         https://bugs.webkit.org/show_bug.cgi?id=104426
198
199         Reviewed by Simon Hausmann.
200
201         The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
202         LLP64 is used there. This would result in compile error due to
203         narrowing conversion of 64-bit pointer to signed long int which is
204         32-bit.
205
206         * platform/graphics/GraphicsTypes3D.h:
207
208 2012-12-10  Kent Tamura  <tkent@chromium.org>
209
210         Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
211         https://bugs.webkit.org/show_bug.cgi?id=104508
212
213         Reviewed by Kentaro Hara.
214
215         We have a lot of code like element->disabled || element->readOnly().
216         isDisabledOrReadOnly makes them simpler.
217
218         No new tests. This make no behaivor change.
219
220         * html/HTMLFormControlElement.h:
221         (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
222         Added. Note that the implmentation of disabled() is not just "return m_disabled;".
223
224         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
225         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
226         Use isDisabledOrReadOnly.
227         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
228         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
229         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
230         * html/ColorInputType.cpp:
231         (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
232         (WebCore::ColorInputType::didChooseColor): Ditto.
233         * html/HTMLFormControlElement.cpp:
234         (WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
235         * html/HTMLTextAreaElement.h:
236         (WebCore::HTMLTextAreaElement::valueMissing): Ditto.
237         * html/RangeInputType.cpp:
238         (WebCore::RangeInputType::handleMouseDownEvent): Ditto.
239         (WebCore::RangeInputType::handleTouchEvent): Ditto.
240         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
241         * html/SearchInputType.cpp:
242         (WebCore::SearchInputType::handleKeydownEvent): Ditto.
243         * html/TextFieldInputType.cpp:
244         (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
245         (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
246         * html/shadow/TextControlInnerElements.cpp:
247         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
248         (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
249         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
250         * html/shadow/TextFieldDecorationElement.cpp:
251         (WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
252         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
253         (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.
254
255 2012-12-10  Pavel Feldman  <pfeldman@chromium.org>
256
257         Web Inspector: console broken? - console.dirxml behaves like console.log
258         https://bugs.webkit.org/show_bug.cgi?id=104245
259
260         Reviewed by Vsevolod Vlasov.
261
262         Do not generate preview for dirxml.
263
264         * inspector/front-end/ConsoleMessage.js:
265         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
266
267 2012-12-10  Kent Tamura  <tkent@chromium.org>
268
269         Refactoring: Remove HTMLFormControlElement::setDisabled
270         https://bugs.webkit.org/show_bug.cgi?id=104510
271
272         Reviewed by Kentaro Hara.
273
274         Remove it because the number of call sites is only one, and the
275         setDisabled implementation is equivalent to setBooleanAttribute.
276
277         No new tests. This should not make behavior changes.
278
279         * html/HTMLFormControlElement.cpp: Remove setDisabled.
280         * html/HTMLFormControlElement.h: Ditto.
281         * html/FileInputType.cpp:
282         (WebCore::FileInputType::disabledAttributeChanged):
283         Replace setDisabled with setBooleanAttribute.
284
285 2012-12-10  Hajime Morrita  <morrita@google.com>
286
287         [Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
288         https://bugs.webkit.org/show_bug.cgi?id=104514
289
290         Reviewed by Kentaro Hara.
291
292         InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
293         query to distributed nodes, which is what ContentDistribution
294         represents. We can move them to better home.
295
296         No new tests. No behavior change.
297
298         * html/shadow/ContentDistributor.cpp:
299         (WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
300         (WebCore):
301         (WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
302         * html/shadow/ContentDistributor.h:
303         (ContentDistribution):
304         * html/shadow/InsertionPoint.cpp:
305         * html/shadow/InsertionPoint.h:
306         (WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
307         (WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution
308
309 2012-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
310
311         [GTK] accessibility/language-attribute.html is failing
312         https://bugs.webkit.org/show_bug.cgi?id=98369
313
314         Reviewed by Chris Fleizach.
315
316         The test is failing for two reasons: Not exposing the language
317         for accessible objects and AccessibilityUIElement::language() not
318         being implemented.
319
320         No new tests; instead, unskipped the previously-failing test.
321
322         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
323         (getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute
324
325 2012-12-09  Takashi Sakamoto  <tasak@google.com>
326
327         [Shadow DOM]: reset-style-inheritance doesn't work for insertion point
328         https://bugs.webkit.org/show_bug.cgi?id=103711
329
330         Reviewed by Hajime Morita.
331
332         reset-style-inheritance can be specified by using insertion points'
333         attribute, e.g. <content reset-style-inheritance>.
334         c.f. shadow dom spec:
335         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
336
337         No new tests. Updated an existing test,
338         fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
339         this feature.
340
341         * html/HTMLAttributeNames.in:
342         Added HTMLNames::reset_style_inheritanceAttr.
343         * html/shadow/InsertionPoint.cpp:
344         (WebCore::InsertionPoint::InsertionPoint):
345         (WebCore::InsertionPoint::parseAttribute):
346         Since both shadow and content elements have to support
347         reset-style-inheritance, added InsertionPoint::parseAttribute.
348         (WebCore::InsertionPoint::resetStyleInheritance):
349         (WebCore::InsertionPoint::setResetStyleInheritance):
350         Modified to update reset-style-inheritance attribute value.
351         * html/shadow/InsertionPoint.h:
352         (InsertionPoint):
353         Removed m_shouldResetStyleInheritance. Instead, use
354         reset-style-inheritance attribute value.
355
356 2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
357
358         Native Memory Instrumentation: instrument a part of RenderObject class tree.
359         https://bugs.webkit.org/show_bug.cgi?id=103564
360
361         Reviewed by Eric Seidel.
362
363         Many RenderObject descendants have OwnPtrs and RefPtrs members.
364         Looks like we have to instrument all the RenderObject classes and visit
365         all the render objects instead of counting entire render arena memory.
366
367         * WebCore.exp.in:
368         * dom/Node.cpp:
369         (WebCore::Node::reportMemoryUsage):
370         * dom/WebCoreMemoryInstrumentation.cpp:
371         (WebCore):
372         * inspector/InspectorMemoryAgent.cpp:
373         (WebCore::reportRenderTreeInfo):
374         (WebCore):
375         * platform/PlatformMemoryInstrumentation.cpp:
376         (WebCore):
377         * platform/PlatformMemoryInstrumentation.h:
378         (PlatformMemoryTypes):
379         * platform/graphics/GraphicsLayer.cpp:
380         (WebCore::GraphicsLayer::reportMemoryUsage):
381         (WebCore):
382         * platform/graphics/GraphicsLayer.h:
383         (GraphicsLayer):
384         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
385         (WebCore::GraphicsLayerChromium::reportMemoryUsage):
386         (WebCore):
387         * platform/graphics/chromium/GraphicsLayerChromium.h:
388         (GraphicsLayerChromium):
389         * rendering/RenderBlock.cpp:
390         (WebCore::RenderBlock::reportMemoryUsage):
391         (WebCore):
392         * rendering/RenderBlock.h:
393         (RenderBlock):
394         * rendering/RenderBox.cpp:
395         (WebCore::RenderBox::reportMemoryUsage):
396         (WebCore):
397         * rendering/RenderBox.h:
398         (RenderBox):
399         * rendering/RenderInline.cpp:
400         (WebCore::RenderInline::reportMemoryUsage):
401         (WebCore):
402         * rendering/RenderInline.h:
403         (RenderInline):
404         * rendering/RenderLayer.cpp:
405         (WebCore::RenderLayer::reportMemoryUsage):
406         (WebCore):
407         * rendering/RenderLayer.h:
408         (RenderLayer):
409         * rendering/RenderLayerBacking.cpp:
410         (WebCore::RenderLayerBacking::reportMemoryUsage):
411         (WebCore):
412         * rendering/RenderLayerBacking.h:
413         (RenderLayerBacking):
414         * rendering/RenderLayerCompositor.cpp:
415         (WebCore::RenderLayerCompositor::reportMemoryUsage):
416         (WebCore):
417         * rendering/RenderLayerCompositor.h:
418         (RenderLayerCompositor):
419         * rendering/RenderLayerModelObject.cpp:
420         (WebCore::RenderLayerModelObject::reportMemoryUsage):
421         (WebCore):
422         * rendering/RenderLayerModelObject.h:
423         (RenderLayerModelObject):
424         * rendering/RenderObject.cpp:
425         (WebCore::RenderObject::reportMemoryUsage):
426         (WebCore):
427         * rendering/RenderObject.h:
428         (RenderObject):
429         * rendering/RenderText.cpp:
430         (WebCore::RenderText::reportMemoryUsage):
431         (WebCore):
432         * rendering/RenderText.h:
433         (RenderText):
434         * rendering/RenderView.cpp:
435         (WebCore::RenderView::reportMemoryUsage):
436         (WebCore):
437         * rendering/RenderView.h:
438         (RenderView):
439
440 2012-12-09  Ryosuke Niwa  <rniwa@webkit.org>
441
442         REGRESSION (r137003): failures in MicroData tests on EFL, GTK
443         https://bugs.webkit.org/show_bug.cgi?id=104469
444
445         Reviewed by Darin Adler.
446
447         Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
448         in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
449         worked at all since the return type of namedItem was different.
450
451         Existing tests cover this.
452
453         * bindings/js/JSHTMLCollectionCustom.cpp:
454         (WebCore::JSHTMLCollection::nameGetter):
455         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
456         (WebCore::V8HTMLCollection::namedPropertyGetter):
457
458 2012-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
459
460         [GTK] accessibility/placeholder.html is failing
461         https://bugs.webkit.org/show_bug.cgi?id=98373
462
463         Reviewed by Martin Robinson.
464
465         The test was failing because the placeholder text was not supported and
466         AccessibilityUIElement::stringAttributeValue() was not implemented.
467
468         No new tests; instead the failing test was unskipped.
469
470         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
471         (webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
472         of the AtkObject, as is done in Gtk+ 3.
473
474 2012-12-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
475
476         [EFL] [WebGL] Path is not resized correctly.
477         https://bugs.webkit.org/show_bug.cgi?id=104458.
478
479         Reviewed by Kenneth Rohde Christiansen.
480
481         In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
482         The operations done to flip the image (translation and scale) are done before rectangle with correct size
483         is added to current path. This resulted in updating pixels at wrong positions.
484
485         Covered by existing tests.
486
487         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
488         (WebCore::GraphicsContext3D::paintToCanvas):
489
490 2012-12-09  Joone Hur  <joone.hur@intel.com>
491
492         [GTK][AC] build fix after r130525 and r133332
493         https://bugs.webkit.org/show_bug.cgi?id=104491
494
495         Reviewed by Martin Robinson.
496
497         Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.
498
499         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
500         * platform/gtk/RedirectedXCompositeWindow.cpp:
501         * platform/gtk/RedirectedXCompositeWindow.h:
502
503 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
504
505         [GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
506         https://bugs.webkit.org/show_bug.cgi?id=104492
507
508         Reviewed by Martin Robinson.
509
510         * bindings/scripts/CodeGeneratorGObject.pm:
511         (GenerateCFile):
512         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
513         (WebKit::kit):
514         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
515         (WebKit::kit):
516         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
517         (WebKit::kit):
518         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
519         (WebKit::kit):
520         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
521         (WebKit::kit):
522         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
523         (WebKit::kit):
524         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
525         (WebKit::kit):
526         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
527         (WebKit::kit):
528         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
529         (WebKit::kit):
530         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
531         (WebKit::kit):
532         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
533         (WebKit::kit):
534         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
535         (WebKit::kit):
536         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
537         (WebKit::kit):
538         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
539         (WebKit::kit):
540
541 2012-12-09  Pavel Feldman  <pfeldman@chromium.org>
542
543         Web Inspector: do not treat object as equal to itself when logging to console
544         https://bugs.webkit.org/show_bug.cgi?id=104487
545
546         Reviewed by Alexander Pavlov.
547
548         Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.
549
550         Test: inspector/console/console-object-preview.html
551
552         * inspector/ConsoleMessage.cpp:
553         (WebCore::ConsoleMessage::isEqual):
554
555 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
556
557         Remove unused code in GObject DOM bindings generator
558         https://bugs.webkit.org/show_bug.cgi?id=104490
559
560         Reviewed by Martin Robinson.
561
562         * bindings/scripts/CodeGeneratorGObject.pm:
563         (GenerateProperties): Remove code to install event listeners and
564         signals.
565
566 2012-12-09  Zan Dobersek  <zandobersek@gmail.com>
567
568         Unreviewed update for the GObject bindings after r137074 and r137078.
569
570         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
571         (webkit_dom_test_event_target_dispatch_event):
572         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
573         (webkit_dom_test_interface_supplemental_method2):
574         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
575         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
576         (webkit_dom_test_obj_method_with_exception):
577         (webkit_dom_test_obj_with_script_state_void_exception):
578         (webkit_dom_test_obj_with_script_state_obj_exception):
579         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
580         (webkit_dom_test_obj_strict_function):
581         (webkit_dom_test_obj_get_attr_with_getter_exception):
582         (webkit_dom_test_obj_set_attr_with_setter_exception):
583         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
584         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
585         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
586         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
587         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
588
589 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
590
591         Fix the GError check in GObject DOM bindings.
592
593         Reviewed by Xan Lopez.
594
595         Previous commit introduced a check to make sure the passed GError
596         is valid in all DOM methods receiving an error.
597
598         * bindings/scripts/CodeGeneratorGObject.pm:
599         (GetGReturnMacro): Check that the passed GError either is NULL or
600         the pointer has been initialized to NULL.
601
602 2012-12-09  Leo Yang  <leoyang@rim.com>
603
604         [BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
605         https://bugs.webkit.org/show_bug.cgi?id=104449
606
607         Reviewed by Rob Buis.
608
609         Name change no new tests.
610
611         * platform/network/blackberry/rss/RSSFilterStream.cpp:
612         (WebCore::RSSFilterStream::handleRSSContent):
613
614 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
615
616         [GTK] Clean up g_return macros usage in GObject DOM bindings
617         https://bugs.webkit.org/show_bug.cgi?id=101079
618
619         Reviewed by Xan Lopez.
620
621         Several improvements:
622
623           - Move g_return macros at the beginning of the methods.
624           - Use them only to check parameters of public API.
625           - Use GObject macros to check GObjects.
626           - Check also GError parameters.
627           - Use early returns in kit and core methods, since they should
628             work even if g_return macros are disabled handling NULL
629             gracefully.
630
631         * bindings/scripts/CodeGeneratorGObject.pm:
632         (GetGReturnMacro):
633         (GenerateFunction):
634         (GenerateCFile):
635         (Generate):
636         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
637         (WebKit::kit):
638         (WebKit::core):
639         (WebKit::wrapFloat64Array):
640         (webkit_dom_float64array_foo):
641         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
642         (WebKit::kit):
643         (WebKit::core):
644         (WebKit::wrapTestActiveDOMObject):
645         (webkit_dom_test_active_dom_object_exciting_function):
646         (webkit_dom_test_active_dom_object_post_message):
647         (webkit_dom_test_active_dom_object_get_exciting_attr):
648         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
649         (WebKit::kit):
650         (WebKit::core):
651         (WebKit::wrapTestCallback):
652         (webkit_dom_test_callback_callback_with_no_param):
653         (webkit_dom_test_callback_callback_with_class1param):
654         (webkit_dom_test_callback_callback_with_class2param):
655         (webkit_dom_test_callback_callback_with_non_bool_return_type):
656         (webkit_dom_test_callback_callback_with_string_list):
657         (webkit_dom_test_callback_callback_with_boolean):
658         (webkit_dom_test_callback_callback_requires_this_to_pass):
659         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
660         (WebKit::kit):
661         (WebKit::core):
662         (WebKit::wrapTestCustomNamedGetter):
663         (webkit_dom_test_custom_named_getter_another_function):
664         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
665         (WebKit::kit):
666         (WebKit::core):
667         (WebKit::wrapTestEventConstructor):
668         (webkit_dom_test_event_constructor_get_attr1):
669         (webkit_dom_test_event_constructor_get_attr2):
670         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
671         (WebKit::kit):
672         (WebKit::core):
673         (WebKit::wrapTestEventTarget):
674         (webkit_dom_test_event_target_item):
675         (webkit_dom_test_event_target_dispatch_event):
676         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
677         (WebKit::kit):
678         (WebKit::core):
679         (WebKit::wrapTestException):
680         (webkit_dom_test_exception_get_name):
681         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
682         (WebKit::kit):
683         (WebKit::core):
684         (WebKit::wrapTestInterface):
685         (webkit_dom_test_interface_supplemental_method1):
686         (webkit_dom_test_interface_supplemental_method2):
687         (webkit_dom_test_interface_supplemental_method4):
688         (webkit_dom_test_interface_get_supplemental_str1):
689         (webkit_dom_test_interface_get_supplemental_str2):
690         (webkit_dom_test_interface_set_supplemental_str2):
691         (webkit_dom_test_interface_get_supplemental_node):
692         (webkit_dom_test_interface_set_supplemental_node):
693         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
694         (WebKit::kit):
695         (WebKit::core):
696         (WebKit::wrapTestMediaQueryListListener):
697         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
698         (WebKit::kit):
699         (WebKit::core):
700         (WebKit::wrapTestNamedConstructor):
701         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
702         (WebKit::kit):
703         (WebKit::core):
704         (WebKit::wrapTestNode):
705         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
706         (WebKit::kit):
707         (WebKit::core):
708         (WebKit::wrapTestObj):
709         (webkit_dom_test_obj_void_method):
710         (webkit_dom_test_obj_void_method_with_args):
711         (webkit_dom_test_obj_long_method):
712         (webkit_dom_test_obj_long_method_with_args):
713         (webkit_dom_test_obj_obj_method):
714         (webkit_dom_test_obj_obj_method_with_args):
715         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
716         (webkit_dom_test_obj_serialized_value):
717         (webkit_dom_test_obj_idb_key):
718         (webkit_dom_test_obj_options_object):
719         (webkit_dom_test_obj_method_with_exception):
720         (webkit_dom_test_obj_with_script_state_void):
721         (webkit_dom_test_obj_with_script_state_obj):
722         (webkit_dom_test_obj_with_script_state_void_exception):
723         (webkit_dom_test_obj_with_script_state_obj_exception):
724         (webkit_dom_test_obj_with_script_execution_context):
725         (webkit_dom_test_obj_with_script_execution_context_and_script_state):
726         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
727         (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
728         (webkit_dom_test_obj_method_with_optional_arg):
729         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
730         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
731         (webkit_dom_test_obj_method_with_optional_string):
732         (webkit_dom_test_obj_method_with_optional_string_is_undefined):
733         (webkit_dom_test_obj_method_with_optional_string_is_null_string):
734         (webkit_dom_test_obj_conditional_method1):
735         (webkit_dom_test_obj_conditional_method2):
736         (webkit_dom_test_obj_conditional_method3):
737         (webkit_dom_test_obj_class_method):
738         (webkit_dom_test_obj_class_method_with_optional):
739         (webkit_dom_test_obj_overloaded_method1):
740         (webkit_dom_test_obj_convert1):
741         (webkit_dom_test_obj_convert2):
742         (webkit_dom_test_obj_convert4):
743         (webkit_dom_test_obj_convert5):
744         (webkit_dom_test_obj_mutable_point_function):
745         (webkit_dom_test_obj_immutable_point_function):
746         (webkit_dom_test_obj_orange):
747         (webkit_dom_test_obj_strict_function):
748         (webkit_dom_test_obj_variadic_string_method):
749         (webkit_dom_test_obj_variadic_double_method):
750         (webkit_dom_test_obj_variadic_node_method):
751         (webkit_dom_test_obj_get_read_only_long_attr):
752         (webkit_dom_test_obj_get_read_only_string_attr):
753         (webkit_dom_test_obj_get_read_only_test_obj_attr):
754         (webkit_dom_test_obj_get_short_attr):
755         (webkit_dom_test_obj_set_short_attr):
756         (webkit_dom_test_obj_get_unsigned_short_attr):
757         (webkit_dom_test_obj_set_unsigned_short_attr):
758         (webkit_dom_test_obj_get_long_attr):
759         (webkit_dom_test_obj_set_long_attr):
760         (webkit_dom_test_obj_get_long_long_attr):
761         (webkit_dom_test_obj_set_long_long_attr):
762         (webkit_dom_test_obj_get_unsigned_long_long_attr):
763         (webkit_dom_test_obj_set_unsigned_long_long_attr):
764         (webkit_dom_test_obj_get_string_attr):
765         (webkit_dom_test_obj_set_string_attr):
766         (webkit_dom_test_obj_get_test_obj_attr):
767         (webkit_dom_test_obj_set_test_obj_attr):
768         (webkit_dom_test_obj_get_xml_obj_attr):
769         (webkit_dom_test_obj_set_xml_obj_attr):
770         (webkit_dom_test_obj_get_create):
771         (webkit_dom_test_obj_set_create):
772         (webkit_dom_test_obj_get_reflected_string_attr):
773         (webkit_dom_test_obj_set_reflected_string_attr):
774         (webkit_dom_test_obj_get_reflected_integral_attr):
775         (webkit_dom_test_obj_set_reflected_integral_attr):
776         (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
777         (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
778         (webkit_dom_test_obj_get_reflected_boolean_attr):
779         (webkit_dom_test_obj_set_reflected_boolean_attr):
780         (webkit_dom_test_obj_get_reflected_url_attr):
781         (webkit_dom_test_obj_set_reflected_url_attr):
782         (webkit_dom_test_obj_get_reflected_custom_integral_attr):
783         (webkit_dom_test_obj_set_reflected_custom_integral_attr):
784         (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
785         (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
786         (webkit_dom_test_obj_get_reflected_custom_url_attr):
787         (webkit_dom_test_obj_set_reflected_custom_url_attr):
788         (webkit_dom_test_obj_get_attr_with_getter_exception):
789         (webkit_dom_test_obj_set_attr_with_getter_exception):
790         (webkit_dom_test_obj_get_attr_with_setter_exception):
791         (webkit_dom_test_obj_set_attr_with_setter_exception):
792         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
793         (webkit_dom_test_obj_set_string_attr_with_getter_exception):
794         (webkit_dom_test_obj_get_string_attr_with_setter_exception):
795         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
796         (webkit_dom_test_obj_get_with_script_state_attribute):
797         (webkit_dom_test_obj_set_with_script_state_attribute):
798         (webkit_dom_test_obj_get_with_script_execution_context_attribute):
799         (webkit_dom_test_obj_set_with_script_execution_context_attribute):
800         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
801         (webkit_dom_test_obj_set_with_script_state_attribute_raises):
802         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
803         (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
804         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
805         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
806         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
807         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
808         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
809         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
810         (webkit_dom_test_obj_get_conditional_attr1):
811         (webkit_dom_test_obj_set_conditional_attr1):
812         (webkit_dom_test_obj_get_conditional_attr2):
813         (webkit_dom_test_obj_set_conditional_attr2):
814         (webkit_dom_test_obj_get_conditional_attr3):
815         (webkit_dom_test_obj_set_conditional_attr3):
816         (webkit_dom_test_obj_get_any_attribute):
817         (webkit_dom_test_obj_set_any_attribute):
818         (webkit_dom_test_obj_get_content_document):
819         (webkit_dom_test_obj_get_mutable_point):
820         (webkit_dom_test_obj_set_mutable_point):
821         (webkit_dom_test_obj_get_immutable_point):
822         (webkit_dom_test_obj_set_immutable_point):
823         (webkit_dom_test_obj_get_strawberry):
824         (webkit_dom_test_obj_set_strawberry):
825         (webkit_dom_test_obj_get_strict_float):
826         (webkit_dom_test_obj_set_strict_float):
827         (webkit_dom_test_obj_get_description):
828         (webkit_dom_test_obj_get_id):
829         (webkit_dom_test_obj_set_id):
830         (webkit_dom_test_obj_get_hash):
831         (webkit_dom_test_obj_get_replaceable_attribute):
832         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
833         (WebKit::kit):
834         (WebKit::core):
835         (WebKit::wrapTestSerializedScriptValueInterface):
836         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
837         (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
838         (webkit_dom_test_serialized_script_value_interface_get_value):
839         (webkit_dom_test_serialized_script_value_interface_set_value):
840         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
841         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
842         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
843         (webkit_dom_test_serialized_script_value_interface_get_ports):
844         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
845
846 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
847
848         [GTK] Use a private struct and placement new syntax in GObject DOM bindings
849         https://bugs.webkit.org/show_bug.cgi?id=101074
850
851         Reviewed by Xan Lopez.
852
853         It allows to use RefPtr for the wrapped object and it simplifies
854         the code. Only the classes deriving from WebKitDOMObject keep a
855         reference of the wrapped object in a private struct. The wrapped
856         object is added to the cache in GObjectClass::constructor() and
857         removed in GObjectClass::finalize().
858
859         * bindings/gobject/WebKitDOMBinding.cpp:
860         (WebKit::createWrapper):
861         (WebKit::kit):
862         (WebKit::wrapEventTarget):
863         * bindings/scripts/CodeGeneratorGObject.pm:
864         (GetParentImplClassName):
865         (GenerateProperties):
866         (GenerateCFile):
867         (Generate):
868         (WriteData):
869         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
870         (WebKit::kit):
871         (WebKit::core):
872         (WebKit::wrapFloat64Array):
873         (webkit_dom_float64array_class_init):
874         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
875         (_WebKitDOMTestActiveDOMObjectPrivate):
876         (WebKit::kit):
877         (WebKit::core):
878         (WebKit::wrapTestActiveDOMObject):
879         (webkit_dom_test_active_dom_object_finalize):
880         (webkit_dom_test_active_dom_object_constructor):
881         (webkit_dom_test_active_dom_object_class_init):
882         (webkit_dom_test_active_dom_object_init):
883         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
884         (_WebKitDOMTestCallbackPrivate):
885         (WebKit::kit):
886         (WebKit::core):
887         (WebKit::wrapTestCallback):
888         (webkit_dom_test_callback_finalize):
889         (webkit_dom_test_callback_constructor):
890         (webkit_dom_test_callback_class_init):
891         (webkit_dom_test_callback_init):
892         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
893         (_WebKitDOMTestCustomNamedGetterPrivate):
894         (WebKit::kit):
895         (WebKit::core):
896         (WebKit::wrapTestCustomNamedGetter):
897         (webkit_dom_test_custom_named_getter_finalize):
898         (webkit_dom_test_custom_named_getter_constructor):
899         (webkit_dom_test_custom_named_getter_class_init):
900         (webkit_dom_test_custom_named_getter_init):
901         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
902         (_WebKitDOMTestEventConstructorPrivate):
903         (WebKit::kit):
904         (WebKit::core):
905         (WebKit::wrapTestEventConstructor):
906         (webkit_dom_test_event_constructor_finalize):
907         (webkit_dom_test_event_constructor_constructor):
908         (webkit_dom_test_event_constructor_class_init):
909         (webkit_dom_test_event_constructor_init):
910         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
911         (_WebKitDOMTestEventTargetPrivate):
912         (WebKit::kit):
913         (WebKit::core):
914         (WebKit::wrapTestEventTarget):
915         (webkit_dom_test_event_target_finalize):
916         (webkit_dom_test_event_target_constructor):
917         (webkit_dom_test_event_target_class_init):
918         (webkit_dom_test_event_target_init):
919         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
920         (_WebKitDOMTestExceptionPrivate):
921         (WebKit::kit):
922         (WebKit::core):
923         (WebKit::wrapTestException):
924         (webkit_dom_test_exception_finalize):
925         (webkit_dom_test_exception_constructor):
926         (webkit_dom_test_exception_class_init):
927         (webkit_dom_test_exception_init):
928         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
929         (_WebKitDOMTestInterfacePrivate):
930         (WebKit::kit):
931         (WebKit::core):
932         (WebKit::wrapTestInterface):
933         (webkit_dom_test_interface_finalize):
934         (webkit_dom_test_interface_constructor):
935         (webkit_dom_test_interface_class_init):
936         (webkit_dom_test_interface_init):
937         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
938         (_WebKitDOMTestMediaQueryListListenerPrivate):
939         (WebKit::kit):
940         (WebKit::core):
941         (WebKit::wrapTestMediaQueryListListener):
942         (webkit_dom_test_media_query_list_listener_finalize):
943         (webkit_dom_test_media_query_list_listener_constructor):
944         (webkit_dom_test_media_query_list_listener_class_init):
945         (webkit_dom_test_media_query_list_listener_init):
946         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
947         (_WebKitDOMTestNamedConstructorPrivate):
948         (WebKit::kit):
949         (WebKit::core):
950         (WebKit::wrapTestNamedConstructor):
951         (webkit_dom_test_named_constructor_finalize):
952         (webkit_dom_test_named_constructor_constructor):
953         (webkit_dom_test_named_constructor_class_init):
954         (webkit_dom_test_named_constructor_init):
955         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
956         (WebKit::kit):
957         (WebKit::core):
958         (WebKit::wrapTestNode):
959         (webkit_dom_test_node_class_init):
960         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
961         (_WebKitDOMTestObjPrivate):
962         (WebKit::kit):
963         (WebKit::core):
964         (WebKit::wrapTestObj):
965         (webkit_dom_test_obj_finalize):
966         (webkit_dom_test_obj_constructor):
967         (webkit_dom_test_obj_class_init):
968         (webkit_dom_test_obj_init):
969         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
970         (_WebKitDOMTestOverloadedConstructorsPrivate):
971         (WebKit::kit):
972         (WebKit::core):
973         (WebKit::wrapTestOverloadedConstructors):
974         (webkit_dom_test_overloaded_constructors_finalize):
975         (webkit_dom_test_overloaded_constructors_constructor):
976         (webkit_dom_test_overloaded_constructors_class_init):
977         (webkit_dom_test_overloaded_constructors_init):
978         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
979         (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
980         (WebKit::kit):
981         (WebKit::core):
982         (WebKit::wrapTestSerializedScriptValueInterface):
983         (webkit_dom_test_serialized_script_value_interface_finalize):
984         (webkit_dom_test_serialized_script_value_interface_constructor):
985         (webkit_dom_test_serialized_script_value_interface_class_init):
986         (webkit_dom_test_serialized_script_value_interface_init):
987
988 2012-12-09  Jon Lee  <jonlee@apple.com>
989
990         [WK2] Move button image to injected bundle
991         https://bugs.webkit.org/show_bug.cgi?id=104107
992         <rdar://problem/12813842>
993
994         Reviewed by Simon Fraser.
995
996         Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
997         kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
998         otherwise use no image at all.
999
1000         * rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
1001         variable since it is unneeded.
1002         * rendering/RenderSnapshottedPlugIn.cpp:
1003         (WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
1004         array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
1005         ask the chrome client for the image.
1006         (WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
1007         available.
1008         (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
1009         box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
1010         (WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.
1011
1012         * page/ChromeClient.h:
1013         (WebCore::ChromeClient::plugInStartLabelImage): Added.
1014
1015         * WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
1016         * WebCore.xcodeproj/project.pbxproj: Remove start button assets.
1017         * Resources/startButton.png: Removed.
1018         * Resources/startButton@2x.png: Removed.
1019
1020 2012-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1021
1022         Unreviewed, rolling out r137053.
1023         http://trac.webkit.org/changeset/137053
1024         https://bugs.webkit.org/show_bug.cgi?id=104471
1025
1026         Broke PerformanceTests/Parser/html-parser.html (Requested by
1027         mkwst_ on #webkit).
1028
1029         * bindings/ScriptControllerBase.cpp:
1030         (WebCore::ScriptController::canExecuteScripts):
1031
1032 2012-12-09  Kangil Han  <kangil.han@samsung.com>
1033
1034         Fix unused parameter compile warnings
1035         https://bugs.webkit.org/show_bug.cgi?id=104463
1036
1037         Reviewed by Kentaro Hara.
1038
1039         Remove compile warning messages by omitting parameter name.
1040
1041         * platform/graphics/surfaces/GraphicsSurface.cpp:
1042         (WebCore::GraphicsSurface::GraphicsSurface):
1043
1044 2012-12-08  Rakesh KN  <rakeshchaitan@gmail.com>
1045
1046         Build break if SVG is disabled
1047         https://bugs.webkit.org/show_bug.cgi?id=104452
1048
1049         Reviewed by Darin Adler.
1050
1051         Build breaking after r136975 if SVG is disabled.
1052         No new tests required.
1053
1054         * rendering/FilterEffectRenderer.cpp:
1055         (WebCore::FilterEffectRenderer::buildReferenceFilter):
1056         As document is not an argument anymore, removing UNUSED_PARAM against it.
1057         * rendering/FilterEffectRenderer.h:
1058         Added forward declaration for RenderObject.
1059
1060 2012-12-08  Mike West  <mkwst@chromium.org>
1061
1062         Log to console when script is blocked by sandbox attributes.
1063         https://bugs.webkit.org/show_bug.cgi?id=104365
1064
1065         Reviewed by Ojan Vafai.
1066
1067         Adds a console message to cover script execution blocked within the
1068         context of a sandboxed frame which lacks the 'allow-scripts' permission.
1069
1070         * bindings/ScriptControllerBase.cpp:
1071         (WebCore::ScriptController::canExecuteScripts):
1072             Log a warning when sandboxing flags block script execution.
1073
1074 2012-12-08  No'am Rosenthal  <noam@webkit.org>
1075
1076         Use background color for GraphicsLayers when applicable
1077         https://bugs.webkit.org/show_bug.cgi?id=103786
1078
1079         Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
1080         1. The layer doesn't paint its own content, other than background/decoration.
1081         2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
1082         3. The image has only a background color, and no background image.
1083         4. background-composite is set to source-over, and background-clip is anything apart from text.
1084         5. The port supports setContentsToBackgroundColor.
1085
1086         This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
1087         for that layer, but instead draw that solid color directly.
1088         In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
1089         a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
1090         background-clip property.
1091
1092         Reviewed by Simon Fraser.
1093
1094         Tests: compositing/background-color/background-color-alpha.html
1095                compositing/background-color/background-color-change-to-text.html
1096                compositing/background-color/background-color-composite.html
1097                compositing/background-color/background-color-container.html
1098                compositing/background-color/background-color-content-clip.html
1099                compositing/background-color/background-color-padding-change.html
1100                compositing/background-color/background-color-padding-clip.html
1101                compositing/background-color/background-color-simple.html
1102                compositing/background-color/background-color-text-change.html
1103                compositing/background-color/background-color-text-clip.html
1104
1105         * platform/graphics/GraphicsLayer.h:
1106         (WebCore::GraphicsLayer::supportsBackgroundColorContent):
1107             Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
1108             Currently only the MAC implementation and TextureMapper falls under that category.
1109
1110         * rendering/RenderBox.h:
1111         (WebCore::RenderBox::paddingBoxRect):
1112             Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
1113             background-clip: padding.
1114
1115         * rendering/RenderLayerBacking.cpp:
1116         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1117             Update the background color if needed, for every configuration change.
1118             This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
1119
1120         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1121             Move the contentsRect logic to updateContentsRect.
1122
1123         (WebCore::RenderLayerBacking::updateContentsRect):
1124             Use the background box when directly compositing backgrounds.
1125
1126         (WebCore::RenderLayerBacking::updateBackgroundColor):
1127             Set the background color if applicable, otherwise set to trasnparent and clear.
1128             This was not needed in the past because background colors were only used for the special case of full-screen.
1129
1130         (WebCore::supportsDirectBoxDecorationsComposition):
1131             Helper function to determine whether a particular background can be directly composited. Right now only 
1132             background color can be composited, and only if the GraphicsLayer implementation supports background colors.
1133             Also we don't yet support background-clip: text and any background-composite other than source-over.
1134
1135         (WebCore::RenderLayerBacking::paintsBoxDecorations):
1136             Apply the new supportsDirectBoxDecorationsComposition logic.
1137
1138         (WebCore::RenderLayerBacking::contentsBox):
1139             Remove unnecessary local variable.
1140
1141         (WebCore::backgroundRectForBox):
1142         (WebCore::RenderLayerBacking::backgroundBox):
1143             Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
1144             The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
1145             GraphicsLayer::contentsRect expects snapped pixels.
1146
1147
1148 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
1149
1150         Build fix for WinCE after r137011.
1151
1152         * platform/graphics/GraphicsContext.h:
1153         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1154         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1155         (WebCore::GraphicsContext::drawBitmap):
1156         * platform/graphics/wince/ImageBufferWinCE.cpp:
1157         (WebCore::BufferedImage::draw):
1158         (WebCore::ImageBuffer::draw):
1159         * platform/graphics/wince/ImageWinCE.cpp:
1160         (WebCore::BitmapImage::getHBITMAPOfSize):
1161         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1162         (WebCore::BitmapImage::draw):
1163         * platform/graphics/wince/SharedBitmap.cpp:
1164         (WebCore::SharedBitmap::draw):
1165         * platform/graphics/wince/SharedBitmap.h:
1166
1167 2012-12-08  Gavin Peters  <gavinp@chromium.org>
1168
1169         Add status events on <link rel=prerender> elements.
1170         https://bugs.webkit.org/show_bug.cgi?id=96474
1171
1172         Reviewed by Adam Barth.
1173
1174         The new PrerenderStatusEvent is sent to link elements when
1175         prerenders are started by the embedder, and also sent when they
1176         are stopped. Pages using this feature can now serialize launching
1177         prerenders, and track timing performance.
1178
1179         Tested in a new WebKitUnitTest for the chromium port.
1180
1181         * GNUmakefile.list.am:
1182         * Target.pri:
1183         * WebCore.gypi:
1184         * WebCore.vcproj/WebCore.vcproj:
1185         * WebCore.xcodeproj/project.pbxproj:
1186         * dom/EventNames.h:
1187         (WebCore):
1188         * html/HTMLLinkElement.cpp:
1189         (WebCore):
1190         (WebCore::HTMLLinkElement::didStartLinkPrerender):
1191         (WebCore::HTMLLinkElement::didStopLinkPrerender):
1192         (WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
1193         (WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
1194         * html/HTMLLinkElement.h:
1195         (HTMLLinkElement):
1196         * loader/LinkLoader.cpp:
1197         (WebCore::LinkLoader::didStartPrerender):
1198         (WebCore):
1199         (WebCore::LinkLoader::didStopPrerender):
1200         (WebCore::LinkLoader::didSendLoadForPrerender):
1201         (WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
1202         (WebCore::LinkLoader::loadLink):
1203         * loader/LinkLoader.h:
1204         (LinkLoader):
1205         * loader/LinkLoaderClient.h:
1206         (LinkLoaderClient):
1207         * loader/Prerenderer.cpp:
1208         (WebCore::Prerenderer::render):
1209         * loader/Prerenderer.h:
1210         (WebCore):
1211         (Prerenderer):
1212         * platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
1213         (WebCore):
1214         (PrerenderClient):
1215         (WebCore::PrerenderClient::~PrerenderClient):
1216         * platform/PrerenderHandle.h:
1217         (WebCore):
1218         (PrerenderHandle):
1219         * platform/chromium/Prerender.cpp:
1220         (WebCore::Prerender::Prerender):
1221         (WebCore::Prerender::removeClient):
1222         (WebCore):
1223         (WebCore::Prerender::add):
1224         (WebCore::Prerender::cancel):
1225         (WebCore::Prerender::abandon):
1226         (WebCore::Prerender::didStartPrerender):
1227         (WebCore::Prerender::didStopPrerender):
1228         (WebCore::Prerender::didSendLoadForPrerender):
1229         (WebCore::Prerender::didSendDOMContentLoadedForPrerender):
1230         * platform/chromium/Prerender.h:
1231         (WebKit):
1232         (WebCore):
1233         (Prerender):
1234         * platform/chromium/PrerenderHandle.cpp:
1235         (WebCore::PrerenderHandle::create):
1236         (WebCore::PrerenderHandle::PrerenderHandle):
1237         (WebCore::PrerenderHandle::~PrerenderHandle):
1238         (WebCore::PrerenderHandle::removeClient):
1239         (WebCore):
1240         * platform/chromium/support/WebPrerender.cpp:
1241         (WebKit::WebPrerender::toPrerender):
1242         (WebKit):
1243         (WebKit::WebPrerender::assign):
1244         (WebKit::WebPrerender::isNull):
1245         (WebKit::WebPrerender::didStartPrerender):
1246         (WebKit::WebPrerender::didStopPrerender):
1247         (WebKit::WebPrerender::didSendLoadForPrerender):
1248         (WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):
1249
1250 2012-12-08  Gustavo Noronha Silva  <gns@gnome.org>
1251
1252         Reviewed by Martin Robinson.
1253
1254         Update the Chromium/Chrome version we advertise in our User-Agent
1255         string to version 25, to better match our current reality.
1256
1257         * platform/gtk/UserAgentGtk.cpp:
1258         (WebCore::standardUserAgent):
1259
1260 2012-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1261
1262         Unreviewed, rolling out r137006.
1263         http://trac.webkit.org/changeset/137006
1264         https://bugs.webkit.org/show_bug.cgi?id=104446
1265
1266         Broke plugin painting on Mac (youtube, etc.) (Requested by
1267         thorton_ on #webkit).
1268
1269         * platform/graphics/GraphicsLayer.h:
1270         (GraphicsLayer):
1271         * rendering/RenderBox.h:
1272         * rendering/RenderLayerBacking.cpp:
1273         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1274         (WebCore::clipBox):
1275         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1276         (WebCore::RenderLayerBacking::updateDrawsContent):
1277         (WebCore::RenderLayerBacking::updateBackgroundColor):
1278         (WebCore::RenderLayerBacking::paintsBoxDecorations):
1279         (WebCore::RenderLayerBacking::contentChanged):
1280         (WebCore::RenderLayerBacking::updateImageContents):
1281         (WebCore::RenderLayerBacking::contentsBox):
1282         * rendering/RenderLayerBacking.h:
1283         (RenderLayerBacking):
1284
1285 2012-12-08  Wei James  <james.wei@intel.com>
1286
1287         Remove incorrect ASSERT for m_error in CachedResource
1288         https://bugs.webkit.org/show_bug.cgi?id=104333
1289
1290         Reviewed by Nate Chapin.
1291
1292         This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901 
1293         When the request is canceled, m_error.isNull() should be true.
1294
1295         run webkit_unit_tests Debug build.
1296
1297         * loader/cache/CachedResource.cpp:
1298         (WebCore::CachedResource::stopLoading):
1299
1300 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
1301
1302         Qt Linux Minimal build fix after r136975.
1303
1304         * dom/ElementRareData.h:
1305         (ElementRareData):
1306
1307 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
1308
1309         Qt Linux Minimal build fix attempt after r136959.
1310
1311         * inspector/InspectorInstrumentation.h:
1312         (WebCore::InspectorInstrumentation::layerTreeDidChange):
1313         (WebCore::InspectorInstrumentation::renderLayerDestroyed):
1314
1315 2012-12-08  Xan Lopez  <xlopez@igalia.com>
1316
1317         Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).
1318
1319         * dom/NodeRareData.h:
1320         (NodeRareData):
1321
1322 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
1323
1324         Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).
1325
1326         * dom/NodeRareData.h:
1327         (NodeRareData):
1328
1329 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
1330
1331         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.
1332
1333         * rendering/svg/SVGResources.cpp:
1334         (WebCore::SVGResources::buildCachedResources):
1335
1336 2012-12-08  Adam Klein  <adamk@chromium.org>
1337
1338         HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
1339         https://bugs.webkit.org/show_bug.cgi?id=104407
1340
1341         Reviewed by Eric Seidel.
1342
1343         When parsing via innerHTML, ensure that all operations (including the
1344         initial fragment creation) occur in the proper document to avoid,
1345         e.g., images loading while being parsed into the template contents.
1346         This matches the parsing behavior during page load.
1347
1348         Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html
1349
1350         * editing/markup.cpp:
1351         (WebCore::createFragmentForInnerOuterHTML):
1352
1353 2012-12-08  ChangSeok Oh  <shivamidow@gmail.com>
1354
1355         Assertion failed at WebCore::RedirectedXCompositeWindow::context()
1356         https://bugs.webkit.org/show_bug.cgi?id=104349
1357
1358         Reviewed by Martin Robinson.
1359
1360         We should return GLContext if m_needsContext is CreateGLContext. By the way
1361         CreateGLContext is a enum value and its default value is 0. So checking
1362         ASSERT(m_needsContext) causes a crash on debug build.
1363         ASSERT(m_needsContext == CreateGLContext) is better here.
1364
1365         No new tests since we can verify this with already existing AC tests.
1366
1367         * platform/gtk/RedirectedXCompositeWindow.cpp:
1368         (WebCore::RedirectedXCompositeWindow::context):
1369
1370 2012-12-07  Rik Cabanier  <cabanier@adobe.com>
1371
1372         Extend platform layer so it can pass blend modes to the compositing calls
1373         https://bugs.webkit.org/show_bug.cgi?id=104176
1374
1375         Reviewed by Dirk Schulze.
1376
1377         Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 
1378
1379         No new tests, no new functionality.
1380
1381         * html/HTMLCanvasElement.cpp:
1382         (WebCore::HTMLCanvasElement::paint):
1383         * platform/graphics/BitmapImage.h:
1384         * platform/graphics/CrossfadeGeneratedImage.cpp:
1385         (WebCore::CrossfadeGeneratedImage::draw):
1386         * platform/graphics/CrossfadeGeneratedImage.h:
1387         (CrossfadeGeneratedImage):
1388         * platform/graphics/GeneratedImage.h:
1389         (GeneratedImage):
1390         * platform/graphics/GeneratorGeneratedImage.cpp:
1391         (WebCore::GeneratorGeneratedImage::draw):
1392         * platform/graphics/GeneratorGeneratedImage.h:
1393         (GeneratorGeneratedImage):
1394         * platform/graphics/GraphicsContext.cpp:
1395         (WebCore::GraphicsContext::drawImage):
1396         (WebCore):
1397         (WebCore::GraphicsContext::drawImageBuffer):
1398         (WebCore::GraphicsContext::setCompositeOperation):
1399         * platform/graphics/GraphicsContext.h:
1400         (WebCore::GraphicsContextState::GraphicsContextState):
1401         (GraphicsContextState):
1402         (GraphicsContext):
1403         * platform/graphics/Image.cpp:
1404         (WebCore::Image::draw):
1405         (WebCore::Image::drawTiled):
1406         * platform/graphics/Image.h:
1407         (Image):
1408         * platform/graphics/ImageBuffer.h:
1409         (ImageBuffer):
1410         * platform/graphics/cairo/BitmapImageCairo.cpp:
1411         (WebCore::BitmapImage::draw):
1412         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1413         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1414         * platform/graphics/cairo/ImageBufferCairo.cpp:
1415         (WebCore::ImageBuffer::draw):
1416         * platform/graphics/cg/BitmapImageCG.cpp:
1417         (WebCore::BitmapImage::draw):
1418         * platform/graphics/cg/GraphicsContextCG.cpp:
1419         (WebCore::GraphicsContext::drawNativeImage):
1420         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1421         * platform/graphics/cg/ImageBufferCG.cpp:
1422         (WebCore::ImageBuffer::draw):
1423         * platform/graphics/cg/PDFDocumentImage.cpp:
1424         (WebCore::PDFDocumentImage::draw):
1425         * platform/graphics/cg/PDFDocumentImage.h:
1426         (PDFDocumentImage):
1427         * platform/graphics/qt/GraphicsContextQt.cpp:
1428         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1429         * platform/graphics/qt/ImageBufferQt.cpp:
1430         (WebCore::ImageBuffer::draw):
1431         * platform/graphics/qt/ImageQt.cpp:
1432         (WebCore::BitmapImage::draw):
1433         * platform/graphics/qt/StillImageQt.cpp:
1434         (WebCore::StillImage::draw):
1435         * platform/graphics/qt/StillImageQt.h:
1436         (StillImage):
1437         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
1438         (BitmapImageSingleFrameSkia):
1439         * platform/graphics/skia/GraphicsContextSkia.cpp:
1440         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1441         * platform/graphics/skia/ImageBufferSkia.cpp:
1442         (WebCore::ImageBuffer::draw):
1443         * platform/graphics/skia/ImageSkia.cpp:
1444         (WebCore::BitmapImage::draw):
1445         (WebCore::BitmapImageSingleFrameSkia::draw):
1446         * platform/graphics/win/ImageCGWin.cpp:
1447         (WebCore::BitmapImage::getHBITMAPOfSize):
1448         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1449         * svg/graphics/SVGImage.cpp:
1450         (WebCore::SVGImage::drawSVGToImageBuffer):
1451         (WebCore::SVGImage::draw):
1452         (WebCore::SVGImage::nativeImageForCurrentFrame):
1453         * svg/graphics/SVGImage.h:
1454         (SVGImage):
1455
1456 2012-12-07  Alpha Lam  <hclam@chromium.org>
1457
1458         [chromium] ImageDecodingStore should cache partially decoded images
1459         https://bugs.webkit.org/show_bug.cgi?id=103796
1460
1461         Reviewed by Stephen White.
1462
1463         Implement caching for incomplete images, meaning the image is partially
1464         decoded. The image is cached together with partially decoded ImageDecoder.
1465         This allows decoding to resume in a later time.
1466
1467         Caching logic for incomplete images is implemented in ImageDecodingStore.
1468
1469         Logic for resuming image decoding is implemented in ImageFrameGenerator.
1470
1471         ImageDecodingStore allows storing incomplete image with the decoder.
1472         The cache entry can be used in a later time to read and write (i.e. resume
1473         decoding.) To avoid the same entry being written and read at the same time,
1474         an incomplete entry can be used by one user only. Concurrent access to
1475         an incomplete entry should never happen and is checked by an assert.
1476         An entry can becomes complete when decoding is finished. In this case
1477         the associated decoder is deleted. Once an entry becomes complete concurrent
1478         read is allowed.
1479
1480         ImageFrameGenerator performs the logic to resume image decoding. It
1481         performs the following operations in sequence:
1482         - Try to lookup a complete image
1483         - Try to perform scaling on a complete image
1484         - Try to lookup an incomplete image and resume decoding & scaling
1485         - Everything fails, start decoding from scratch
1486         The entire sequence of operations in under a mutex, hence there will be
1487         no more than 1 user of an incomplete cache entry at the same time.
1488
1489         New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.
1490
1491         * platform/graphics/chromium/ImageDecodingStore.cpp:
1492         (WebCore::ImageDecodingStore::lockCache):
1493         Change of method definition to return an image and ImageDecoder.
1494         (WebCore::ImageDecodingStore::unlockCache):
1495         (WebCore::ImageDecodingStore::insertAndLockCache):
1496         (WebCore::ImageDecodingStore::overwriteAndLockCache):
1497         New method to allow an incomplete cache entry be overwritten.
1498         (WebCore):
1499         * platform/graphics/chromium/ImageDecodingStore.h:
1500         (ImageDecodingStore):
1501         (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
1502         (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
1503         (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
1504         (WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
1505         (WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
1506         (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
1507         New method to allow an incomplete image be overwitten.
1508         (CacheEntry):
1509         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1510         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1511         (WebCore::ImageFrameGenerator::decodeAndScale):
1512         (WebCore::ImageFrameGenerator::tryToLockCompleteCache):
1513         (WebCore::ImageFrameGenerator::tryToScale):
1514         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
1515         New method to lookup an incomplete cache entry and resume decoding.
1516         (WebCore):
1517         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
1518         (WebCore::ImageFrameGenerator::decoder):
1519         New helper method to do decoding for a full sized image.
1520         (WebCore::ImageFrameGenerator::prepareData):
1521         New helper method to prepare data safely.
1522         * platform/graphics/chromium/ImageFrameGenerator.h:
1523         (ImageFrameGenerator):
1524         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1525         (WebCore::LazyDecodingPixelRef::onLockPixels):
1526         * platform/graphics/chromium/ScaledImageFragment.h:
1527         (WebCore::ScaledImageFragment::setIsComplete):
1528
1529 2012-12-07  Alexis Menard  <alexis@webkit.org>
1530
1531         Enable CSS3 position offset for CSS Masking.
1532         https://bugs.webkit.org/show_bug.cgi?id=104252
1533
1534         Reviewed by Dirk Schulze.
1535
1536         To follow CSS3 background-position, mask-position should also support
1537         the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
1538         Now the code is shared between background and mask I renamed the
1539         functions used to be more generic. Note that the feature flag is not
1540         meant to stay and will be removed in a following commit.
1541
1542         No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
1543         cover the new feature.
1544
1545         * css/CSSComputedStyleDeclaration.cpp:
1546         (WebCore::createPositionListForLayer):
1547         * css/CSSParser.cpp:
1548         (WebCore::isFillPositionKeyword):
1549         (WebCore::CSSParser::parse4ValuesFillPosition):
1550         (WebCore::CSSParser::parse3ValuesFillPosition):
1551         (WebCore::CSSParser::isPotentialPositionValue):
1552         (WebCore::CSSParser::parseFillPosition):
1553         (WebCore::CSSParser::parse2ValuesFillPosition):
1554         (WebCore::CSSParser::parseFillProperty):
1555         (WebCore::CSSParser::parseTransformOriginShorthand):
1556         (WebCore::CSSParser::parseRadialGradient):
1557         (WebCore::CSSParser::parsePerspectiveOrigin):
1558         * css/CSSParser.h:
1559         * css/CSSToStyleMap.cpp:
1560         (WebCore::CSSToStyleMap::mapFillXPosition):
1561         (WebCore::CSSToStyleMap::mapFillYPosition):
1562
1563 2012-12-07  No'am Rosenthal  <noam@webkit.org>
1564
1565         Use background color for GraphicsLayers when applicable
1566         https://bugs.webkit.org/show_bug.cgi?id=103786
1567
1568         Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
1569         1. The layer doesn't paint its own content, other than background/decoration.
1570         2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
1571         3. The image has only a background color, and no background image.
1572         4. background-composite is set to source-over, and background-clip is anything apart from text.
1573         5. The port supports setContentsToBackgroundColor.
1574
1575         This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
1576         for that layer, but instead draw that solid color directly.
1577         In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
1578         a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
1579         background-clip property.
1580
1581         Reviewed by Simon Fraser.
1582
1583         Tests: compositing/background-color/background-color-alpha.html
1584                compositing/background-color/background-color-change-to-text.html
1585                compositing/background-color/background-color-composite.html
1586                compositing/background-color/background-color-container.html
1587                compositing/background-color/background-color-content-clip.html
1588                compositing/background-color/background-color-padding-change.html
1589                compositing/background-color/background-color-padding-clip.html
1590                compositing/background-color/background-color-simple.html
1591                compositing/background-color/background-color-text-change.html
1592                compositing/background-color/background-color-text-clip.html
1593
1594         * platform/graphics/GraphicsLayer.h:
1595         (WebCore::GraphicsLayer::supportsBackgroundColorContent):
1596             Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
1597             Currently only the MAC implementation and TextureMapper falls under that category.
1598
1599         * rendering/RenderBox.h:
1600         (WebCore::RenderBox::paddingBoxRect):
1601             Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
1602             background-clip: padding.
1603
1604         * rendering/RenderLayerBacking.cpp:
1605         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1606             Update the background color if needed, for every configuration change.
1607             This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
1608
1609         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1610             Move the contentsRect logic to updateContentsRect.
1611
1612         (WebCore::RenderLayerBacking::updateContentsRect):
1613             Use the background box when directly compositing backgrounds.
1614
1615         (WebCore::RenderLayerBacking::updateBackgroundColor):
1616             Set the background color if applicable, otherwise set to trasnparent and clear.
1617             This was not needed in the past because background colors were only used for the special case of full-screen.
1618
1619         (WebCore::supportsDirectBoxDecorationsComposition):
1620             Helper function to determine whether a particular background can be directly composited. Right now only 
1621             background color can be composited, and only if the GraphicsLayer implementation supports background colors.
1622             Also we don't yet support background-clip: text and any background-composite other than source-over.
1623
1624         (WebCore::RenderLayerBacking::paintsBoxDecorations):
1625             Apply the new supportsDirectBoxDecorationsComposition logic.
1626
1627         (WebCore::RenderLayerBacking::contentsBox):
1628             Remove unnecessary local variable.
1629
1630         (WebCore::backgroundRectForBox):
1631         (WebCore::RenderLayerBacking::backgroundBox):
1632             Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
1633             The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
1634             GraphicsLayer::contentsRect expects snapped pixels.
1635
1636
1637 2012-12-06  Ryosuke Niwa  <rniwa@webkit.org>
1638
1639         Shrink the size of NodeRareData by moving pointers into separate objects
1640         https://bugs.webkit.org/show_bug.cgi?id=104312
1641
1642         Reviewed by Andreas Kling.
1643
1644         This patch does three things:
1645         1. Move ChildNodeList back into NodeListsNodeData.
1646         2. Move m_mutationObserverRegistry & m_transientMutationObserverRegistry into a separate object owned by NodeRareData.
1647         3. Move m_itemProp, m_itemRef, m_itemType & into a separate object owned by NodeRareData.
1648
1649         Moving m_childNodeList from NodeRareData to NodeListsNodeData also has a nice side-effect of making ChildNodeList
1650         behave more like other LiveNodeLists.
1651
1652         This patch also fixes Mac build when microdata is enabled.
1653
1654         There should be no user-visible behavior change.
1655
1656         * dom/ChildNodeList.cpp:
1657         (WebCore::ChildNodeList::~ChildNodeList):
1658         * dom/Node.cpp:
1659         (WebCore::Node::childNodes): Moved the code to create ChildNodeList into NodeListsNodeData to match other node lists.
1660         (WebCore::Node::invalidateNodeListCachesInAncestors):
1661         (WebCore): Removed removeCachedChildNodeList.
1662         * dom/Node.h:
1663         (Node):
1664         * dom/NodeRareData.cpp:
1665         (WebCore): Assert the size of NodeRareData at compilation time.
1666         (WebCore::NodeListsNodeData::reportMemoryUsage):
1667         (WebCore::NodeRareData::reportMemoryUsage):
1668         * dom/NodeRareData.h:
1669         (WebCore::NodeListsNodeData::clearChildNodeListCache): Moved from NodeRareData.
1670         (WebCore::NodeListsNodeData::ensureChildNodeList): Extracted from Node::childNodes.
1671         (WebCore::NodeListsNodeData::removeChildNodeList): Added.
1672         (WebCore::NodeListsNodeData::NodeListsNodeData): Initialize m_childNodeList.
1673         (WebCore::NodeRareData::NodeMutationObserverData): Extracted from NodeRareData.
1674         (WebCore::NodeRareData::NodeMutationObserverData::create):
1675         (WebCore::NodeRareData::NodeMicroDataTokenLists): Ditto.
1676         (WebCore::NodeRareData::NodeMicroDataTokenLists::create):
1677         (WebCore::NodeRareData::NodeRareData):
1678         (WebCore::NodeRareData::ensureNodeLists): Merged setNodeLists since it's not called elsewhere.
1679         (WebCore::NodeRareData::mutationObserverRegistry):
1680         (WebCore::NodeRareData::ensureMutationObserverRegistry): Added.
1681         (WebCore::NodeRareData::transientMutationObserverRegistry):
1682         (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
1683         (WebCore::NodeRareData::ensureMicroDataTokenLists):
1684         (NodeRareData):
1685         (WebCore::NodeRareData::itemProp):
1686         (WebCore::NodeRareData::setItemProp):
1687         (WebCore::NodeRareData::itemRef):
1688         (WebCore::NodeRareData::setItemRef):
1689         (WebCore::NodeRareData::itemType):
1690         (WebCore::NodeRareData::setItemType):
1691         * html/HTMLPropertiesCollection.cpp:
1692         (WebCore::HTMLPropertiesCollection::propertyNodeList): Renamed from namedItem since its return type, PropertyNodeList,
1693         is different from that, Node, of LiveNodeList::namedItem. It was shadowing the function name instead of overriding.
1694         * html/HTMLPropertiesCollection.h:
1695         (HTMLPropertiesCollection):
1696         * html/HTMLPropertiesCollection.idl:
1697
1698 2012-12-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1699
1700         Unreviewed, rolling out r136993.
1701         http://trac.webkit.org/changeset/136993
1702         https://bugs.webkit.org/show_bug.cgi?id=104415
1703
1704         This patch breaks the mac build (Requested by cabanier on
1705         #webkit).
1706
1707         * html/HTMLCanvasElement.cpp:
1708         (WebCore::HTMLCanvasElement::paint):
1709         * platform/graphics/BitmapImage.h:
1710         * platform/graphics/CrossfadeGeneratedImage.cpp:
1711         (WebCore::CrossfadeGeneratedImage::draw):
1712         * platform/graphics/CrossfadeGeneratedImage.h:
1713         (CrossfadeGeneratedImage):
1714         * platform/graphics/GeneratedImage.h:
1715         (GeneratedImage):
1716         * platform/graphics/GeneratorGeneratedImage.cpp:
1717         (WebCore::GeneratorGeneratedImage::draw):
1718         * platform/graphics/GeneratorGeneratedImage.h:
1719         (GeneratorGeneratedImage):
1720         * platform/graphics/GraphicsContext.cpp:
1721         (WebCore::GraphicsContext::drawImage):
1722         (WebCore::GraphicsContext::drawImageBuffer):
1723         (WebCore::GraphicsContext::setCompositeOperation):
1724         * platform/graphics/GraphicsContext.h:
1725         (WebCore::GraphicsContextState::GraphicsContextState):
1726         (GraphicsContextState):
1727         (GraphicsContext):
1728         * platform/graphics/Image.cpp:
1729         (WebCore::Image::draw):
1730         (WebCore::Image::drawTiled):
1731         * platform/graphics/Image.h:
1732         (Image):
1733         * platform/graphics/ImageBuffer.h:
1734         (ImageBuffer):
1735         * platform/graphics/cairo/BitmapImageCairo.cpp:
1736         (WebCore::BitmapImage::draw):
1737         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1738         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1739         * platform/graphics/cairo/ImageBufferCairo.cpp:
1740         (WebCore::ImageBuffer::draw):
1741         * platform/graphics/cg/BitmapImageCG.cpp:
1742         (WebCore::BitmapImage::draw):
1743         * platform/graphics/cg/GraphicsContextCG.cpp:
1744         (WebCore::GraphicsContext::drawNativeImage):
1745         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1746         * platform/graphics/cg/ImageBufferCG.cpp:
1747         (WebCore::ImageBuffer::draw):
1748         * platform/graphics/cg/PDFDocumentImage.cpp:
1749         (WebCore::PDFDocumentImage::draw):
1750         * platform/graphics/cg/PDFDocumentImage.h:
1751         (PDFDocumentImage):
1752         * platform/graphics/qt/GraphicsContextQt.cpp:
1753         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1754         * platform/graphics/qt/ImageBufferQt.cpp:
1755         (WebCore::ImageBuffer::draw):
1756         * platform/graphics/qt/ImageQt.cpp:
1757         (WebCore::BitmapImage::draw):
1758         * platform/graphics/qt/StillImageQt.cpp:
1759         (WebCore::StillImage::draw):
1760         * platform/graphics/qt/StillImageQt.h:
1761         (StillImage):
1762         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
1763         (BitmapImageSingleFrameSkia):
1764         * platform/graphics/skia/GraphicsContextSkia.cpp:
1765         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1766         * platform/graphics/skia/ImageBufferSkia.cpp:
1767         (WebCore::ImageBuffer::draw):
1768         * platform/graphics/skia/ImageSkia.cpp:
1769         (WebCore::BitmapImage::draw):
1770         (WebCore::BitmapImageSingleFrameSkia::draw):
1771         * platform/graphics/win/ImageCGWin.cpp:
1772         (WebCore::BitmapImage::getHBITMAPOfSize):
1773         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1774         * svg/graphics/SVGImage.cpp:
1775         (WebCore::SVGImage::drawSVGToImageBuffer):
1776         (WebCore::SVGImage::draw):
1777         (WebCore::SVGImage::nativeImageForCurrentFrame):
1778         * svg/graphics/SVGImage.h:
1779         (SVGImage):
1780
1781 2012-12-07  Alexey Proskuryakov  <ap@apple.com>
1782
1783         There is no need to change cached resource storage policy through ResourceHandleClient
1784         https://bugs.webkit.org/show_bug.cgi?id=104413
1785
1786         Reviewed by Brady Eidson.
1787
1788         This code was only needed to prevent storing responses to disk in private browsing
1789         mode, but we now have a storage session to take care of that in a cleaner and more
1790         reliable way.
1791
1792         * loader/ResourceLoader.cpp:
1793         * loader/ResourceLoader.h: (WebCore::ResourceLoader::receivedCancellation):
1794         * platform/network/ResourceHandleClient.h:
1795         * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse):
1796         * platform/network/mac/ResourceHandleMac.mm:
1797         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
1798
1799 2012-12-07  Adam Klein  <adamk@chromium.org>
1800
1801         MutationRecord addedNodes/removedNodes should never be null
1802         https://bugs.webkit.org/show_bug.cgi?id=98921
1803
1804         Reviewed by Ryosuke Niwa.
1805
1806         Per an update to the DOM4 spec that matches Gecko's behavior,
1807         addedNodes/removedNodes should be empty NodeLists on 'attributes'
1808         and 'characterData' records, rather than null.
1809
1810         This is accomplished with lazy initialization of addedNodes/removedNodes
1811         attributes on 'attributes'/'characterData' records and the
1812         addition of a new StaticNodeList::createEmpty() factory method.
1813
1814         * dom/MutationRecord.cpp:
1815         * dom/MutationRecord.h:
1816         (MutationRecord):
1817         * dom/StaticNodeList.h:
1818         (WebCore::StaticNodeList::adopt):
1819         (StaticNodeList):
1820         (WebCore::StaticNodeList::createEmpty):
1821         (WebCore::StaticNodeList::StaticNodeList):
1822
1823 2012-12-07  Brent Fulgham  <bfulgham@webkit.org>
1824
1825         Unreviewed build correction after 136959.
1826
1827         The initialization list should follow the same compiler macro
1828         exclusions as the class members.
1829
1830         * inspector/InstrumentingAgents.h: Add USE(ACCELERATED_COMPOSITING)
1831           guards around m_inspectorLayerTreeAgent as this does not exist
1832           when the guard is false.
1833
1834 2012-12-07  Rik Cabanier  <cabanier@adobe.com>
1835
1836         Extend platform layer so it can pass blend modes to the compositing calls
1837         https://bugs.webkit.org/show_bug.cgi?id=104176
1838
1839         Reviewed by Dirk Schulze.
1840
1841         Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 
1842
1843         No new tests, no new functionality.
1844
1845         * html/HTMLCanvasElement.cpp:
1846         (WebCore::HTMLCanvasElement::paint):
1847         * platform/graphics/BitmapImage.h:
1848         * platform/graphics/CrossfadeGeneratedImage.cpp:
1849         (WebCore::CrossfadeGeneratedImage::draw):
1850         * platform/graphics/CrossfadeGeneratedImage.h:
1851         (CrossfadeGeneratedImage):
1852         * platform/graphics/GeneratedImage.h:
1853         (GeneratedImage):
1854         * platform/graphics/GeneratorGeneratedImage.cpp:
1855         (WebCore::GeneratorGeneratedImage::draw):
1856         * platform/graphics/GeneratorGeneratedImage.h:
1857         (GeneratorGeneratedImage):
1858         * platform/graphics/GraphicsContext.cpp:
1859         (WebCore::GraphicsContext::drawImage):
1860         (WebCore):
1861         (WebCore::GraphicsContext::drawImageBuffer):
1862         (WebCore::GraphicsContext::setCompositeOperation):
1863         * platform/graphics/GraphicsContext.h:
1864         (WebCore::GraphicsContextState::GraphicsContextState):
1865         (GraphicsContextState):
1866         (GraphicsContext):
1867         * platform/graphics/Image.cpp:
1868         (WebCore::Image::draw):
1869         (WebCore::Image::drawTiled):
1870         * platform/graphics/Image.h:
1871         (Image):
1872         * platform/graphics/ImageBuffer.h:
1873         (ImageBuffer):
1874         * platform/graphics/cairo/BitmapImageCairo.cpp:
1875         (WebCore::BitmapImage::draw):
1876         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1877         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1878         * platform/graphics/cairo/ImageBufferCairo.cpp:
1879         (WebCore::ImageBuffer::draw):
1880         * platform/graphics/cg/BitmapImageCG.cpp:
1881         (WebCore::BitmapImage::draw):
1882         * platform/graphics/cg/GraphicsContextCG.cpp:
1883         (WebCore::GraphicsContext::drawNativeImage):
1884         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1885         * platform/graphics/cg/ImageBufferCG.cpp:
1886         (WebCore::ImageBuffer::draw):
1887         * platform/graphics/cg/PDFDocumentImage.cpp:
1888         (WebCore::PDFDocumentImage::draw):
1889         * platform/graphics/cg/PDFDocumentImage.h:
1890         (PDFDocumentImage):
1891         * platform/graphics/qt/GraphicsContextQt.cpp:
1892         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1893         * platform/graphics/qt/ImageBufferQt.cpp:
1894         (WebCore::ImageBuffer::draw):
1895         * platform/graphics/qt/ImageQt.cpp:
1896         (WebCore::BitmapImage::draw):
1897         * platform/graphics/qt/StillImageQt.cpp:
1898         (WebCore::StillImage::draw):
1899         * platform/graphics/qt/StillImageQt.h:
1900         (StillImage):
1901         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
1902         (BitmapImageSingleFrameSkia):
1903         * platform/graphics/skia/GraphicsContextSkia.cpp:
1904         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1905         * platform/graphics/skia/ImageBufferSkia.cpp:
1906         (WebCore::ImageBuffer::draw):
1907         * platform/graphics/skia/ImageSkia.cpp:
1908         (WebCore::BitmapImage::draw):
1909         (WebCore::BitmapImageSingleFrameSkia::draw):
1910         * platform/graphics/win/ImageCGWin.cpp:
1911         (WebCore::BitmapImage::getHBITMAPOfSize):
1912         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1913         * svg/graphics/SVGImage.cpp:
1914         (WebCore::SVGImage::drawSVGToImageBuffer):
1915         (WebCore::SVGImage::draw):
1916         (WebCore::SVGImage::nativeImageForCurrentFrame):
1917         * svg/graphics/SVGImage.h:
1918         (SVGImage):
1919
1920 2012-12-07  Alec Flett  <alecflett@chromium.org>
1921
1922         IndexedDB: propagate transaction_ids through open/upgradeneeded
1923         https://bugs.webkit.org/show_bug.cgi?id=103922
1924
1925         Reviewed by Tony Chang.
1926
1927         Make sure front-end is always generating the transaction id,
1928         so that it can be relied upon as an alternative to the
1929         to-be-deprecated IDBTransactionBackendInterface pointer.
1930
1931         No new tests, this is one stage in a larger refactor.
1932
1933         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1934         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
1935         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
1936         (IDBDatabaseBackendImpl::VersionChangeOperation):
1937         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
1938         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::transactionId):
1939         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
1940         (IDBDatabaseBackendImpl::PendingOpenCall):
1941         (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
1942         (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::transactionId):
1943         (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
1944         (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
1945         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
1946         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1947         (WebCore::IDBDatabaseBackendImpl::createTransaction):
1948         (WebCore::IDBDatabaseBackendImpl::openConnection):
1949         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1950         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
1951         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1952         (IDBDatabaseBackendImpl):
1953         * Modules/indexeddb/IDBFactory.cpp:
1954         (WebCore::IDBFactory::openInternal):
1955         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
1956         (WebCore::IDBFactoryBackendImpl::open):
1957
1958 2012-12-07  Dima Gorbik  <dgorbik@apple.com>
1959
1960         Implement general ::cue pseudo element for the <video>
1961         https://bugs.webkit.org/show_bug.cgi?id=104043
1962
1963         Reviewed by Eric Carlson.
1964
1965         Implemented the ::cue pseudo element to be able to style all WebVTT cues.
1966         Added the subcontainer with a '::cue' pseudoId in between the TextTrackContainerElement and WebVTT nodes to separate
1967         user agent default styles from user defined styles for the cue elements.
1968
1969         Test: media/track/track-css-all-cues.html
1970
1971         * css/CSSSelector.cpp: ::cue pseudo selector doesn't have a valid prefix but should be allowed in the user-agent stylesheet.
1972         (WebCore::CSSSelector::parsePseudoType):
1973         * html/shadow/MediaControlElements.cpp:
1974         (WebCore):
1975         (WebCore::MediaControlTextTrackContainerElement::createSubtrees): create a subcontainer and set its pseudoId to '::cue'.
1976         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): append WebVTT nodes to the newly created subcontainer.
1977         * html/shadow/MediaControlElements.h:
1978         (MediaControlTextTrackContainerElement):
1979         * html/shadow/MediaControls.cpp:
1980         (WebCore::MediaControls::createTextTrackDisplay): initiate creating subtrees for the MediaControlTextTrackContainerElement.
1981         * html/shadow/MediaControlsChromium.cpp:
1982         (WebCore::MediaControlsChromium::createTextTrackDisplay):
1983
1984 2012-12-06  Geoffrey Garen  <ggaren@apple.com>
1985
1986         Crash in JSC::Bindings::RootObject::globalObject() sync'ing notes in Evernote
1987         https://bugs.webkit.org/show_bug.cgi?id=104321
1988         <rdar://problem/12770497>
1989
1990         Reviewed by Sam Weinig.
1991
1992         Missed a null check.
1993
1994         * bindings/objc/WebScriptObject.mm:
1995         (-[WebScriptObject JSObject]): If our root object has been cleared, don't
1996         try to dereference it. This happens in Evernote during tear-down.
1997
1998         This matches the behavior of other methods in the same class.
1999
2000         (_isSafeScript returns false if the root object has been cleared.)
2001
2002         If we believe _isSafeScript is a good idea, it's probably the right test
2003         to use here (as opposed to just null-checking _rootObject) because this API
2004         gives the client unlimited access to the underlying JavaScript object.
2005
2006 2012-12-07  Stephen Chenney  <schenney@chromium.org>
2007
2008         XMLSerializer is too aggressive in adding prefixes
2009         https://bugs.webkit.org/show_bug.cgi?id=104387
2010
2011         Reviewed by Ryosuke Niwa.
2012
2013         We have been adding "xlink:" and "xmlns:" and "xml:" prefixes to any
2014         attribute that is in one of those namespaces but which did not already
2015         have the matching prefix. This appears to be in error, at least
2016         compared to other browsers.
2017
2018         The correct behavior appears to be to add the prefix only if there is
2019         no existing prefix. If there is an existing prefix, we now leave it alone.
2020
2021         No new tests. Existing test expanded.
2022
2023         * editing/MarkupAccumulator.cpp:
2024         (WebCore::MarkupAccumulator::appendAttribute): Only replace the prefix
2025         attribute name prefix if it is empty, and in one of the recognised
2026         namespaces.
2027
2028 2012-12-07  Jon Lee  <jonlee@apple.com>
2029
2030         Display the auto-start label image after a delay
2031         https://bugs.webkit.org/show_bug.cgi?id=104173
2032         <rdar://problem/12820071>
2033
2034         Reviewed by Dan Bernstein.
2035
2036         Treat the button now as a label. Once the user has hovered over the plug-in, wait a little while before showing the label.
2037
2038         * rendering/RenderSnapshottedPlugIn.h:
2039         (RenderSnapshottedPlugIn): Add a one-shot timer, and a variable representing whether the label should
2040         be drawn. Remove the variable that determines whether the label is active.
2041
2042         * rendering/RenderSnapshottedPlugIn.cpp:
2043         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Set the time to a delay of 1 second.
2044         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the label only when we should.
2045         (WebCore::RenderSnapshottedPlugIn::paintLabel): The label should only paint in its hovered state.
2046         (WebCore::startLabelImage): Renamed.
2047         (WebCore::RenderSnapshottedPlugIn::repaintLabel): Renamed.
2048         (WebCore::RenderSnapshottedPlugIn::hoverDelayTimerFired): Now that the timer has fired, we should paint
2049         the label. Repaint.
2050         (WebCore::RenderSnapshottedPlugIn::handleEvent): Update event handling. Click event handler is the
2051         same, except we move the label check inside so that if the click is not the left label we don't
2052         fall through to the other irrevelant if clauses.
2053             For the mouse down handler, make sure to check for the left label. If the hover timer is still running,
2054         stop it, so that we don't draw a label while the user is in the middle of a mouse gesture.
2055             Redo mouse over and out. On mouse over we start the delay timer. On mouse out we stop the delay timer
2056         if it is still running, reset state, and paint the label out.
2057         (WebCore::RenderSnapshottedPlugIn::layout): Refactor.
2058
2059         * Resources/startButtonPressed.png: Removed.
2060         * Resources/startButtonPressed@2x.png: Removed.
2061         * WebCore.xcodeproj/project.pbxproj:
2062
2063 2012-12-07  Scott Violet  <sky@chromium.org>
2064
2065         [chromium] Remove linux theme related files and switch to default
2066         https://bugs.webkit.org/show_bug.cgi?id=103897
2067
2068         Reviewed by Dimitri Glazkov.
2069
2070         Linux related theme files are now named Default.
2071
2072         No new tests, code cleanup.
2073
2074         * WebCore.gyp/WebCore.gyp: Update files
2075         * WebCore.gypi: Update files
2076         * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
2077         * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
2078         * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
2079         * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
2080         * rendering/RenderThemeChromiumAndroid.cpp:
2081         (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
2082         * rendering/RenderThemeChromiumAndroid.h: Change superclass
2083         * rendering/RenderThemeChromiumLinux.cpp: Removed.
2084         * rendering/RenderThemeChromiumLinux.h: Removed.
2085
2086 2012-12-07  Eric Carlson  <eric.carlson@apple.com>
2087
2088         Captions menu doesn't update to track changes
2089         https://bugs.webkit.org/show_bug.cgi?id=104393
2090
2091         Reviewed by Dean Jackson.
2092
2093         Flag the captions menu as needing an update when tracks are added or removed. Don't actually
2094         change the menu until it needs to be displayed.
2095
2096         No new tests, media/video-controls-captions-trackmenu.html was updated to test this.
2097
2098         * html/HTMLMediaElement.cpp:
2099         (WebCore::HTMLMediaElement::addTextTrack): Call closedCaptionTracksChanged().
2100         (WebCore::HTMLMediaElement::didRemoveTrack): Ditto.
2101         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
2102
2103         * html/shadow/MediaControlElements.cpp:
2104         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
2105             Intialize m_trackListHasChanged.
2106         (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Call rebuildTrackListMenu if
2107             the track list has changed.
2108         (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Renamed from resetTrackListMenu.
2109         * html/shadow/MediaControlElements.h:
2110         (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): Just set m_trackListHasChanged.
2111
2112         * html/shadow/MediaControls.h:
2113         (WebCore::MediaControls::closedCaptionTracksChanged): New, do nothing for base class.
2114
2115         * html/shadow/MediaControlsApple.cpp:
2116         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Update the track list before 
2117             showing it.
2118         (WebCore::MediaControlsApple::closedCaptionTracksChanged):
2119         * html/shadow/MediaControlsApple.h:
2120
2121 2012-12-07  Stephen White  <senorblanco@chromium.org>
2122
2123         CSS url() filters with forward references don't work
2124         https://bugs.webkit.org/show_bug.cgi?id=90405
2125
2126         Based on a patch by Keyar Hood.
2127
2128         Reviewed by Dirk Schulze.
2129
2130         In order for CSS to reference SVG filters that will occur later in
2131         the document, or will be added at a future time, we need a way to
2132         notify the target element (the one the filter style is applied to)
2133         when the correct SVG filter is added to the DOM.
2134         There is already code for SVG elements that handles this problem, in
2135         SVGResourcesCache. This patch allows any element to have a reference to
2136         an SVG element in SVGResourceCache.
2137
2138         Tests: css3/filters/effect-reference-after.html
2139                css3/filters/effect-reference-delete-crash.html
2140                css3/filters/effect-reference-delete.html
2141                css3/filters/effect-reference-rename.html
2142                css3/filters/effect-reference-reset-style-delete-crash.html
2143                svg/filters/filter-cycle.html
2144
2145         * dom/Element.cpp:
2146         (WebCore::Element::hasPendingResources): Added
2147         (WebCore::Element::setHasPendingResources): Added
2148         (WebCore::Element::clearHasPendingResources): Added
2149         * dom/Element.h:
2150         Accessors for ElementRareData's new bit flag.
2151         (WebCore::Element::buildPendingResource):
2152         Virtual function to override for referenced elements (moved from SVGElement).
2153         * dom/ElementRareData.h:
2154         (WebCore::ElementRareData::ElementRareData):
2155         Add a new bit flag to indicate whether the element depends on pending resources or not.
2156         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2157         (WebCore::BitmapTextureImageBuffer::applyFilters):
2158         Changed to the new function signature for FilterEffectRenderer::build().
2159         * rendering/FilterEffectRenderer.cpp:
2160         (WebCore::FilterEffectRenderer::buildReferenceFilter):
2161         Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.  If the referenced filter cannot be found, add its id as a pending reference.
2162         (WebCore::FilterEffectRenderer::build):
2163         Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.
2164         * rendering/FilterEffectRenderer.h:
2165         Change to signatures of build() and buildReferenceFilter() to pass
2166         a RenderObject instead of a Document.
2167         * rendering/RenderLayer.cpp:
2168         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
2169         Use the new semantics for FilterEffectRenderer::build().
2170         * rendering/RenderObject.cpp:
2171         (WebCore::RenderObject::willBeDestroyed):
2172         Notify the cache if a RenderObject is destroyed.
2173         * rendering/svg/RenderSVGResourceContainer.cpp:
2174         (WebCore::RenderSVGResourceContainer::registerResource):
2175         Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
2176         on the element, since we want to support generic Elements.
2177         * rendering/svg/SVGResources.cpp:
2178         (WebCore::SVGResources::buildCachedResources):
2179         Add support for building filters on non-SVG elements.
2180         * rendering/svg/SVGResourcesCache.cpp:
2181         (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
2182         Do cycle detection only on SVG elements.
2183         (WebCore::SVGResourcesCache::clientStyleChanged):
2184         For non-SVG elements, set a synthetic style change when parent resources
2185         are invalidated.
2186         (WebCore::SVGResourcesCache::resourceDestroyed):
2187         Add support for non-SVG Elements.
2188         * svg/SVGDocumentExtensions.cpp:
2189         (WebCore::SVGDocumentExtensions::addPendingResource):
2190         (WebCore::SVGDocumentExtensions::isElementPendingResources):
2191         (WebCore::SVGDocumentExtensions::isElementPendingResource):
2192         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
2193         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
2194         Changed to allow use of Element instead of SVGElement.
2195         (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
2196         Moved from SVGElement, and made to work on any Element.  This way,
2197         we avoid adding this function to Element itself.
2198         * svg/SVGDocumentExtensions.h:
2199         SVGElement -> Element.
2200         * svg/SVGElement.cpp:
2201         * svg/SVGElement.h:
2202         All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
2203         * svg/SVGElementRareData.h:
2204         (WebCore::SVGElementRareData::SVGElementRareData):
2205         m_hasPendingResources add accessors moved to ElementRareData.
2206         * svg/SVGStyledElement.cpp:
2207         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
2208         SVGElement -> Element, and call SVGDocumentExtensions for
2209         clearHasPendingResourcesIfPossible().
2210
2211 2012-12-07  Eberhard Graether  <egraether@google.com>
2212
2213         Web Inspector: Add shortcut to set visibility:hidden on elements in the ElementsPanel
2214         https://bugs.webkit.org/show_bug.cgi?id=104146
2215
2216         Reviewed by Pavel Feldman.
2217
2218         This change adds the shortcut H to set and unset visibility:hidden on the inline style
2219         of elements in the Elementspanel. This feature makes it easier to look for elements that
2220         cause bad rendering performance, because visibility:hidden does not paint the element,
2221         but preserves the layout.
2222
2223         No new tests.
2224
2225         * English.lproj/localizedStrings.js:
2226         * inspector/front-end/CSSStyleModel.js:
2227         (WebInspector.CSSStyleModel.prototype.toggleInlineVisibility):
2228         * inspector/front-end/ElementsPanelDescriptor.js:
2229         (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
2230         * inspector/front-end/ElementsTreeOutline.js:
2231         (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
2232         * inspector/front-end/KeyboardShortcut.js:
2233
2234 2012-12-07  Andreas Kling  <akling@apple.com>
2235
2236         Improve our decoded data size estimation for style sheets.
2237         <http://webkit.org/b/104388>
2238
2239         Reviewed by Antti Koivisto.
2240
2241         Tweak how we estimate the total decoded size of a given style sheet. (We were guessing at about 30% of actual size.)
2242         This is just used as a hint to the WebCore cache.
2243
2244         * css/StylePropertySet.cpp:
2245         (WebCore::StylePropertySet::averageSizeInBytes):
2246         * css/StyleRule.cpp:
2247         (WebCore::StyleRule::averageSizeInBytes):
2248
2249 2012-12-07  Robert Hogan  <robert@webkit.org>
2250
2251         REGRESSION(r127163): Content is offset to the right at rea.ru
2252         https://bugs.webkit.org/show_bug.cgi?id=103116
2253
2254         Reviewed by David Hyatt.
2255
2256         The top margin edge of a self-collapsing block that clears a float intrudes up into it by the height of the margin,
2257         so to ensure any child floats of the self-collapsing block only go as far as the top content edge 
2258         add the margin back in to the block's current height before placing them.
2259
2260         Tests: fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html
2261                fast/block/margin-collapse/self-collapsing-block-with-float-child.html
2262
2263         * rendering/RenderBlockLineLayout.cpp:
2264         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2265
2266 2012-12-07  Alexis Menard  <alexis@webkit.org>
2267
2268         Improve r136754 by hardening checks of expected values for background-position.
2269         https://bugs.webkit.org/show_bug.cgi?id=104380
2270
2271         Reviewed by Antti Koivisto.
2272
2273         r136754 was landed to fix the problem of checking successively two calc
2274         values with validUnit. It was asserting as validUnit expect you to use
2275         the parsed value of the calc after the call. In this case we pre-check the
2276         background-position longhand to count how many values it has to then
2277         call the right parsing functions accordingly. While r136754 is not
2278         wrong it is better to harden isPotentialPositionValue with the real
2279         expected units and keywords. For this matter we can reuse the
2280         ReleaseParsedCalcValueCondition enum which was created with the same
2281         idea as this patch. If you are not interested of the calc parsed
2282         value when calling validUnit() you can now specify it, I believe it is
2283         good to have it explicit to avoid mistake in the future.
2284
2285         No new tests : this is covered by css3/*, fast/backgrounds/*.
2286
2287         * css/CSSParser.cpp:
2288         (WebCore::CSSParser::validCalculationUnit):
2289         (WebCore::CSSParser::validUnit):
2290         (WebCore::CSSParser::isPotentialPositionValue):
2291         * css/CSSParser.h:
2292         (WebCore::CSSParser::validUnit):
2293         (CSSParser):
2294
2295 2012-12-07  Brent Fulgham  <bfulgham@webkit.org>
2296
2297         Remove unnecessary casts in transformations.
2298         https://bugs.webkit.org/show_bug.cgi?id=104376
2299
2300         Reviewed by Simon Fraser.
2301
2302         Several casts from float-to-double are performed prior to
2303         storing the result in a double type. These casts are unnecessary
2304         overhead and reduce the clarity of the source code.
2305
2306         No new tests. Covered by existing CSS test cases.
2307
2308         * platform/graphics/transforms/RotateTransformOperation.cpp:
2309         * platform/graphics/transforms/TransformationMatrix.cpp:
2310
2311 2012-12-07  Antoine Quint  <graouts@apple.com>
2312
2313         Provide the backend for exposing the layer tree to the Web Inspector
2314         https://bugs.webkit.org/show_bug.cgi?id=103513
2315
2316         Reviewed by Pavel Feldman.
2317
2318         The purpose of this patch is to provide a new agent enabling the Web Inspector to interface
2319         with WebCore to access information about the render layer tree and, more specifically, expose
2320         useful information about layers backed by textures composited on the GPU such as metrics and
2321         backing store. Thus we now provide a LayerTreeAgent which will inform the front-end of 
2322         changes to the render layer tree via a new layerTreeDidChange event, providing an object
2323         containing the entire hierarchy of RenderLayers for the inspected document. This hierarchy 
2324         can be queried at any time using the .getLayerTree() method on the LayerTreeAgent. Finally, 
2325         the LayerTreeAgent also exposes a .nodeIdForLayerId() method allowing to get the id of the 
2326         node associated with the RenderLayer with the provided layer id.
2327         
2328         In terms of implementation, RenderLayerCompositor has been changed such that in its 
2329         updateCompositingLayers() method we call the layerTreeDidChange method on the 
2330         InspectorLayerTreeAgent instance via the InspectorInstrumentation.
2331
2332         Test: inspector-protocol/layer-tree.html
2333
2334         * CMakeLists.txt:
2335         * GNUmakefile.list.am:
2336         * Target.pri:
2337         * WebCore.gypi:
2338         * WebCore.vcproj/WebCore.vcproj:
2339         * WebCore.xcodeproj/project.pbxproj:
2340         * inspector/Inspector.json: Define new types IntRect (x, y, width, height) and Layer, which 
2341         holds the information for a RenderLayer (layerId, bounds, isComposited, memory, 
2342         compositedBounds) and its children (childLayers). We also define the methods of the 
2343         LayerTreeAgent object (enable, disable, getLayerTree, nodeIdForLayerId) and the 
2344         layerTreeDidChange event it  
2345         fires.
2346         * inspector/InspectorAllInOne.cpp:
2347         * inspector/InspectorController.cpp:
2348         (WebCore::InspectorController::InspectorController):
2349         * inspector/InspectorDOMAgent.cpp:
2350         (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend): New method facilitating 
2351         pushing the node associated with a given RenderLayer to the front-end.
2352         (WebCore):
2353         * inspector/InspectorDOMAgent.h:
2354         (InspectorDOMAgent):
2355         * inspector/InspectorInstrumentation.cpp:
2356         (WebCore):
2357         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
2358         (WebCore::InspectorInstrumentation::layerTreeDidChangeImpl):
2359         (WebCore::InspectorInstrumentation::renderLayerDestroyedImpl):
2360         * inspector/InspectorInstrumentation.h:
2361         (WebCore):
2362         (InspectorInstrumentation):
2363         (WebCore::InspectorInstrumentation::layerTreeDidChange):
2364         (WebCore::InspectorInstrumentation::renderLayerDestroyed):
2365         * inspector/InspectorLayerTreeAgent.cpp: Added.
2366         (WebCore):
2367         (LayerTreeAgentState):
2368         (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
2369         (WebCore::InspectorLayerTreeAgent::~InspectorLayerTreeAgent):
2370         (WebCore::InspectorLayerTreeAgent::setFrontend):
2371         (WebCore::InspectorLayerTreeAgent::clearFrontend):
2372         (WebCore::InspectorLayerTreeAgent::restore):
2373         (WebCore::InspectorLayerTreeAgent::reset):
2374         (WebCore::InspectorLayerTreeAgent::enable):
2375         (WebCore::InspectorLayerTreeAgent::disable):
2376         (WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
2377         (WebCore::InspectorLayerTreeAgent::renderLayerDestroyed):
2378         (WebCore::InspectorLayerTreeAgent::getLayerTree):
2379         (WebCore::InspectorLayerTreeAgent::buildObjectForRootLayer):
2380         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Build the entire hierarchy of 
2381         RenderLayers from the provided RenderLayer.
2382         (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
2383         (WebCore::InspectorLayerTreeAgent::bind):
2384         (WebCore::InspectorLayerTreeAgent::unbind):
2385         (WebCore::InspectorLayerTreeAgent::nodeIdForLayerId):
2386         * inspector/InspectorLayerTreeAgent.h: Added.
2387         (WebCore):
2388         (InspectorLayerTreeAgent):
2389         (WebCore::InspectorLayerTreeAgent::create):
2390         * inspector/InstrumentingAgents.h:
2391         (WebCore):
2392         (WebCore::InstrumentingAgents::InstrumentingAgents):
2393         (InstrumentingAgents):
2394         (WebCore::InstrumentingAgents::inspectorLayerTreeAgent):
2395         (WebCore::InstrumentingAgents::setInspectorLayerTreeAgent):
2396         * rendering/RenderLayerCompositor.cpp:
2397         (WebCore::RenderLayerCompositor::updateCompositingLayers): Call the layerTreeDidChange method 
2398         on the LayerTreeAgent via the InspectorInstrumentation to inform the front-end that the 
2399         RenderLayer hierarchy has changed.
2400         (WebCore):
2401         (WebCore::RenderLayerCompositor::layerBecameNonComposited): Call the renderLayerDestroyed 
2402         method on the LayerTreeAgent via the InspectorInstrumentation to unbind the layer that is 
2403         being destroyed.
2404         * rendering/RenderLayerCompositor.h:
2405         (RenderLayerCompositor):
2406
2407 2012-12-07  Joshua Bell  <jsbell@chromium.org>
2408
2409         IndexedDB: Check SSV version when opening database
2410         https://bugs.webkit.org/show_bug.cgi?id=102243
2411
2412         Reviewed by Tony Chang.
2413
2414         Ensure that the data format (SerializedScriptValue) isn't "from the future" when opening
2415         a backing store. Treat an unknown version the same as an unknown schema version.
2416
2417         Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)
2418
2419         * Modules/indexeddb/IDBBackingStore.cpp:
2420         (WebCore):
2421         (WebCore::isSchemaKnown): Check data version as well.
2422         (WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
2423         * Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for "DataVersion" global metadata entry.
2424         (IDBLevelDBCoding):
2425         (WebCore::IDBLevelDBCoding::compare):
2426         (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
2427         * Modules/indexeddb/IDBLevelDBCoding.h:
2428         (DataVersionKey):
2429         (IDBLevelDBCoding):
2430         * bindings/js/SerializedScriptValue.cpp:
2431         (SerializedScriptValue::wireFormatVersion): New method (JSC side).
2432         * bindings/js/SerializedScriptValue.h:
2433         * bindings/v8/SerializedScriptValue.cpp:
2434         (WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
2435         (WebCore):
2436         * bindings/v8/SerializedScriptValue.h:
2437         (SerializedScriptValue):
2438
2439 2012-12-07  Andreas Kling  <akling@apple.com>
2440
2441         Throw away StyleResolvers that haven't been used for a long time.
2442         <http://webkit.org/b/104314>
2443
2444         Reviewed by Antti Koivisto.
2445
2446         A lot of memory gets tied up in StyleResolver and the structures and caches that hang from it.
2447         Add a mechanism to throw it away after it's been unused for a while (1 minute.)
2448         This frees up large amounts of memory on inactive pages (background tabs) and static content.
2449
2450         We already have a number of scenarios where the document style is invalidated by throwing away
2451         the StyleResolver so the major code paths are prepared for having a null StyleResolver* on occasion.
2452
2453         ~20MB progression on Membuster3.
2454
2455         * css/StyleResolver.cpp:
2456         (WebCore::StyleResolver::styleForElement):
2457         (WebCore::StyleResolver::styleForKeyframe):
2458         (WebCore::StyleResolver::pseudoStyleForElement):
2459         (WebCore::StyleResolver::styleForPage):
2460
2461             Call document()->didAccessStyleResolver() from the relevant parts of StyleResolver's public API.
2462             This prevents Document from throwing the StyleResolver away for 1 minute after it's used.
2463
2464         * dom/Document.h:
2465         * dom/Document.cpp:
2466         (WebCore::Document::Document):
2467         (WebCore::Document::createStyleResolver):
2468         (WebCore::Document::didAccessStyleResolver):
2469         (WebCore::Document::styleResolverThrowawayTimerFired):
2470
2471             Add a mechanism to call clearStyleResolver() on a refreshing timer.
2472
2473         * dom/Element.cpp:
2474         (WebCore::Element::attributeChanged):
2475
2476             If an attribute change occurs while the document doesn't have a StyleResolver, dirty the element style
2477             since we can't be sure that the attribute change didn't affect any rules.
2478
2479 2012-12-07  Antonio Gomes  <a1.gomes@sisa.samsung.com>
2480
2481         REGRESSION(r136947): Made two tests fail on all platforms (Requested by tonikitoo-ll on #webkit).
2482         https://bugs.webkit.org/show_bug.cgi?id=104368
2483
2484         Unreviewed partial rollout.
2485
2486         r136947 was too aggressive in the sense of fixing RenderBox::canBeScrolledAndHasScrollableArea
2487         as part of itself. Revert the related changes in order to fix both
2488         fast/events/autoscroll-should-not-stop-on-keypress.html and
2489         fast/events/autoscroll-in-textfield.html
2490
2491         * rendering/RenderBox.cpp:
2492         (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
2493         * rendering/RenderBox.h:
2494
2495 2012-12-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2496
2497         [TexMap] Can not do multiple accelerated animations
2498         https://bugs.webkit.org/show_bug.cgi?id=104364
2499
2500         Reviewed by Kenneth Rohde Christiansen.
2501
2502         By removing all animations with the same name, it is not possible to animate more than one property accelerated. 
2503         Instead only remove any animations with both same name and property.
2504
2505         Covered by animations/opacity-transform-animation.html.
2506
2507         * platform/graphics/GraphicsLayerAnimation.cpp:
2508         (WebCore::GraphicsLayerAnimations::add):
2509         (WebCore::GraphicsLayerAnimations::remove):
2510         * platform/graphics/GraphicsLayerAnimation.h:
2511         (GraphicsLayerAnimations):
2512
2513 2012-12-07  Sujin Park  <sujjin.park@gmail.com>
2514
2515         [EFL] Fix build warning in StyleResolver.cpp using gcc 4.7.2
2516         https://bugs.webkit.org/show_bug.cgi?id=104262
2517
2518         Reviewed by Alexis Menard.
2519
2520         EFL port treats build warning as compile error and there are
2521         maybe-uninitialized when building with gcc 4.7.2.
2522         This patch adds default case to resolve a build break.
2523
2524         * css/StyleResolver.cpp:
2525         (WebCore::getFontAndGlyphOrientation):
2526
2527 2012-12-06  Alexander Pavlov  <apavlov@chromium.org>
2528
2529         Web Inspector: [Chromium] Ctrl + ']' "Goto right panel" keyboard shortcut doesn't work
2530         https://bugs.webkit.org/show_bug.cgi?id=104250
2531
2532         Reviewed by Pavel Feldman.
2533
2534         Ignore "keypress" event resulting from a WM_CHAR message emitted by Win7 upon Ctrl + ']' keypress.
2535
2536         * inspector/front-end/InspectorView.js:
2537         (WebInspector.InspectorView.prototype._keyPress): Ignore all events with charCode < 32.
2538
2539 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
2540
2541         Web Inspector: provide a way to reload page with given script preprocessor.
2542         https://bugs.webkit.org/show_bug.cgi?id=80992
2543
2544         Reviewed by Yury Semikhatsky.
2545
2546         This change introduces a way to inject 'preprocessor' script that would process
2547         each JavaScript file before it gets into the VM for compilation. That way inspector
2548         can expose capabilities such as assessing code coverage or tracing all the calls.
2549
2550         Preprocessor script is stored in the page agent where it waits for reload to happen.
2551         Upon reload, ScriptDebugServer is using it to patch the script sources.
2552
2553         
2554         Test: inspector/debugger/debugger-script-preprocessor.html
2555
2556         * bindings/js/ScriptDebugServer.h:
2557         (WebCore::ScriptDebugServer::setScriptPreprocessor):
2558         (ScriptDebugServer):
2559         * bindings/v8/DebuggerScript.js:
2560         * bindings/v8/ScriptDebugServer.cpp:
2561         (ScriptDebugServer::ScriptPreprocessor):
2562         (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
2563         (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
2564         (WebCore::ScriptDebugServer::ScriptPreprocessor::~ScriptPreprocessor):
2565         (WebCore):
2566         (WebCore::ScriptDebugServer::~ScriptDebugServer):
2567         (WebCore::ScriptDebugServer::setScriptSource):
2568         (WebCore::ScriptDebugServer::setScriptPreprocessor):
2569         (WebCore::ScriptDebugServer::handleV8DebugEvent):
2570         * bindings/v8/ScriptDebugServer.h:
2571         (ScriptDebugServer):
2572         * bindings/v8/custom/V8InjectedScriptManager.cpp:
2573         (WebCore::InjectedScriptManager::createInjectedScript):
2574         * inspector/Inspector.json:
2575         * inspector/InspectorController.cpp:
2576         (WebCore::InspectorController::InspectorController):
2577         * inspector/InspectorDebuggerAgent.h:
2578         (InspectorDebuggerAgent):
2579         * inspector/InspectorPageAgent.cpp:
2580         (WebCore::InspectorPageAgent::reload):
2581         (WebCore::InspectorPageAgent::frameNavigated):
2582         * inspector/InspectorPageAgent.h:
2583         (WebCore::InspectorPageAgent::page):
2584         (WebCore::InspectorPageAgent::scriptPreprocessor):
2585         (InspectorPageAgent):
2586         * inspector/PageDebuggerAgent.cpp:
2587         (WebCore::PageDebuggerAgent::create):
2588         (WebCore::PageDebuggerAgent::PageDebuggerAgent):
2589         (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
2590         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
2591         (WebCore::PageDebuggerAgent::injectedScriptForEval):
2592         (WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
2593         (WebCore):
2594         * inspector/PageDebuggerAgent.h:
2595         (WebCore):
2596         (PageDebuggerAgent):
2597
2598 2012-12-07  Alexander Pavlov  <apavlov@chromium.org>
2599
2600         Web Inspector: the "Sources" column is always empty in CSS selector profiles
2601         https://bugs.webkit.org/show_bug.cgi?id=104225
2602
2603         Reviewed by Pavel Feldman.
2604
2605         r112923 and preceding changesets modified the CSSOM wrapper creation for StyleRules in a way
2606         that would not specify the parent CSSStyleSheet for the CSSStyleRules created. Instead,
2607         styleResolver->ensureFullCSSOMWrapperForInspector(rule) is now used to make sure the CSSStyleRule
2608         has a valid parent CSSStyleSheet.
2609
2610         Test: inspector/profiler/selector-profiler-url.html
2611
2612         * css/StyleResolver.cpp:
2613         (WebCore::StyleResolver::collectMatchingRulesForList):
2614         (WebCore::StyleResolver::applyProperties):
2615         * inspector/InspectorInstrumentation.cpp:
2616         (WebCore):
2617         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
2618         (WebCore::InspectorInstrumentation::willProcessRuleImpl):
2619         * inspector/InspectorInstrumentation.h:
2620         (WebCore):
2621         (InspectorInstrumentation):
2622         (WebCore::InspectorInstrumentation::willMatchRule):
2623         (WebCore::InspectorInstrumentation::willProcessRule):
2624
2625 2012-12-05  Antonio Gomes  <a1.gomes@sisa.samsung.com>
2626
2627         Rework bug 97927 to not depend on RenderLayer::allowsScrolling
2628         https://bugs.webkit.org/show_bug.cgi?id=103999
2629
2630         Reviewed by James Robinson.
2631
2632         Patch makes it possible for methods like
2633         RenderLayer::{updateScrollbarsAfterLayout,updateScrollbarsAfterStyleChange}
2634         to not depend on RenderLayer::allowsScrolling to determine if a layer should
2635         be added or removed from its FrameView's ScrollableArea set.
2636
2637         Following the same logic, the patch also fixes RenderBox::canBeScrolledAndHasScrollableArea
2638         method to take into account the box' scroll allowance in a given direction only
2639         when it overflows. This allows simplifying custom methods like InRegionScrollerPrivate::canScrollRenderBox
2640         (@WebKit/blackberry/Api/InRegionScroller.cpp).
2641
2642         The naming pattern for the newly added methods were chosen to keep the consistency
2643         with the existing ones, in the same class.
2644
2645         No new test: it is already covered by ScrollingCoordinatorChromiumTest.clippedBodyTest.
2646
2647         * rendering/RenderBox.cpp:
2648         (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
2649         * rendering/RenderBox.h:
2650         (RenderBox):
2651         (WebCore::RenderBox::hasScrollableOverflowX):
2652         (WebCore::RenderBox::hasScrollableOverflowY):
2653         * rendering/RenderLayer.cpp:
2654         (WebCore::RenderLayer::hasScrollableHorizontalOverflow):
2655         (WebCore):
2656         (WebCore::RenderLayer::hasScrollableVerticalOverflow):
2657         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
2658         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
2659         * rendering/RenderLayer.h:
2660         (RenderLayer):
2661
2662 2012-12-07  Max Feil  <mfeil@rim.com>
2663
2664         [BlackBerry] make "isVideo" information available to platform media player
2665         https://bugs.webkit.org/show_bug.cgi?id=104334
2666
2667         Reviewed by Rob Buis.
2668
2669         The platform player needs to know whether the element is <video>
2670         or <audio>, so it can make certain decisions before metadata
2671         is ready. This is part of a performance optimization refactor
2672         which does not change functionality so no new tests are required.
2673
2674         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2675         (WebCore::MediaPlayerPrivate::load):
2676
2677 2012-12-07  Kondapally Kalyan  <kalyan.kondapally@intel.com>
2678
2679         [EFL] [AC] Implement ImageExtractor::extractImage in GraphicsContext3DEfl.
2680         https://bugs.webkit.org/show_bug.cgi?id=104271.
2681
2682         Reviewed by Kenneth Rohde Christiansen.
2683
2684         This patch implements ImageExtractor::extractImage in GraphicsContext3DEfl.
2685
2686         Covered by existing tests.
2687
2688         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2689         (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
2690         (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
2691
2692 2012-12-06  Carlos Garcia Campos  <cgarcia@igalia.com>
2693
2694         Use always the order iterator from data member in RenderFlexibleBox
2695         https://bugs.webkit.org/show_bug.cgi?id=104112
2696
2697         Reviewed by Tony Chang.
2698
2699         Some methods receive it as parameter and others use the data
2700         member.
2701
2702         * rendering/RenderFlexibleBox.cpp:
2703         (WebCore::RenderFlexibleBox::layoutBlock):
2704         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
2705         (WebCore::RenderFlexibleBox::layoutFlexItems):
2706         (WebCore::RenderFlexibleBox::computeNextFlexLine):
2707         (WebCore::RenderFlexibleBox::alignFlexLines):
2708         (WebCore::RenderFlexibleBox::alignChildren):
2709         (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
2710         (WebCore::RenderFlexibleBox::flipForWrapReverse):
2711         * rendering/RenderFlexibleBox.h:
2712
2713 2012-12-07  Kent Tamura  <tkent@chromium.org>
2714
2715         Improve confusing code in BaseMultipleFieldsDateAndTimeInputType
2716         https://bugs.webkit.org/show_bug.cgi?id=104353
2717
2718         Reviewed by Kentaro Hara.
2719
2720         This doesn't change any behavior because call sites of
2721         isEditControlOwnerDisabled and isEditControlOwnerReadOnly treat them
2722         similarly.
2723
2724         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2725         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
2726         Checks element()->disabled, not readOnly.
2727         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
2728         Checks element()->readOnly, not disabled.
2729
2730 2012-12-07  Jon Lee  <jonlee@apple.com>
2731
2732         Build fix.
2733
2734         * plugins/PlugInOriginHash.cpp:
2735         (WebCore::PlugInOriginHash::hash):
2736
2737 2012-12-04  Jon Lee  <jonlee@apple.com>
2738
2739         Add PlugInOriginHash
2740         https://bugs.webkit.org/show_bug.cgi?id=103655
2741         <rdar://problem/12778949>
2742
2743         Reviewed by Alexey Proskuryakov.
2744
2745         Add the concept of plug-in origin hashes, which are based on a combination of the base domains of the
2746         page's main frame and the plug-in, and the plug-in MIME type.
2747
2748         * plugins/PlugInOriginHash.cpp: Added.
2749         (WebCore::addCaseFoldedCharacters): Add the case-folded string to the hash.
2750         (WebCore::PlugInOriginHash::hash): The hash is based on the concatenation of the page's host, the plug-in
2751         URL's host, and the MIME type. We use StringHasher to get all 32-bits of the hash, since using StringImpl's hash
2752         masks out 8 of the hash bits to make room for bit flags.
2753         * plugins/PlugInOriginHash.h: Added.
2754
2755         * CMakeLists.txt:
2756         * GNUmakefile.list.am:
2757         * Target.pri:
2758         * WebCore.gypi:
2759         * WebCore.vcproj/WebCore.vcproj:
2760         * WebCore.xcodeproj/project.pbxproj:
2761
2762 2012-12-06  Kent Tamura  <tkent@chromium.org>
2763
2764         Refactoring: Clean up placeholder attribute usage
2765         https://bugs.webkit.org/show_bug.cgi?id=104337
2766
2767         Reviewed by Kentaro Hara.
2768
2769         No new tests. This doesn't change any behavior.
2770
2771         * html/HTMLInputElement.cpp: Remove placeholder and setPlacehodler.
2772         * html/HTMLInputElement.h: Ditto.
2773         * html/HTMLTextFormControlElement.cpp:
2774         (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
2775         We can use fastGetAttribute for placeholder.
2776         (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
2777         Ditto.
2778
2779 2012-12-06  Kent Tamura  <tkent@chromium.org>
2780
2781         Refactoring: Rename HTMLFormControlElement::required to isRequired
2782         https://bugs.webkit.org/show_bug.cgi?id=104336
2783
2784         Reviewed by Kentaro Hara.
2785
2786         m_required should be m_isRequired, and required() should be
2787         isRequired. It's safe to rename them because HTML*Element::required IDL
2788         attributes are [Reflected].
2789         http://www.webkit.org/coding/coding-style.html#names-bool
2790
2791         * accessibility/AccessibilityNodeObject.cpp:
2792         (WebCore::AccessibilityNodeObject::isRequired):
2793         * css/StyleResolver.cpp:
2794         (WebCore::StyleResolver::canShareStyleWithControl):
2795         * dom/CheckedRadioButtons.cpp:
2796         (WebCore::RadioButtonGroup::add):
2797         (WebCore::RadioButtonGroup::requiredAttributeChanged):
2798         (WebCore::RadioButtonGroup::remove):
2799         * html/CheckboxInputType.cpp:
2800         (WebCore::CheckboxInputType::valueMissing):
2801         * html/FileInputType.cpp:
2802         (WebCore::FileInputType::valueMissing):
2803         * html/HTMLFormControlElement.cpp:
2804         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2805         (WebCore::HTMLFormControlElement::parseAttribute):
2806         (WebCore::HTMLFormControlElement::isRequired):
2807         * html/HTMLFormControlElement.h:
2808         (HTMLFormControlElement):
2809         * html/HTMLInputElement.cpp:
2810         (WebCore::HTMLInputElement::isRequiredFormControl):
2811         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
2812         * html/HTMLSelectElement.cpp:
2813         (WebCore::HTMLSelectElement::valueMissing):
2814         (WebCore::HTMLSelectElement::isRequiredFormControl):
2815         * html/HTMLTextAreaElement.h:
2816         (WebCore::HTMLTextAreaElement::isRequiredFormControl):
2817         * html/TextFieldInputType.cpp:
2818         (WebCore::TextFieldInputType::valueMissing):
2819
2820 2012-12-06  Hajime Morrita  <morrita@google.com>
2821
2822         [Shadow DOM] Implement Element::shadowRoot with prefix
2823         https://bugs.webkit.org/show_bug.cgi?id=102912
2824
2825         Reviewed by Dimitri Glazkov.
2826
2827         - Added Element::shadowRoot() which return the youngest author shadow root.
2828         - Renamed existing Node::shadowRoot() to containingShadowRoot() to avoid name shadowing.
2829           The name shadowRoot() is confusing anyway so this is good opportunity to rename it.
2830
2831         Test: fast/dom/shadow/shadow-aware-shadow-root.html
2832
2833         * css/SelectorChecker.cpp:
2834         (WebCore::SelectorChecker::checkSelector):
2835         * css/StyleScopeResolver.cpp:
2836         (WebCore::StyleScopeResolver::scopeFor):
2837         (WebCore::StyleScopeResolver::addHostRule):
2838         * dom/Element.cpp:
2839         (WebCore::Element::shadowRoot):
2840         (WebCore):
2841         * dom/Element.h:
2842         (Element):
2843         * dom/Element.idl:
2844         * dom/ElementShadow.cpp:
2845         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet):
2846         * dom/Node.cpp:
2847         (WebCore::Node::rendererIsEditable):
2848         (WebCore::Node::shadowHost):
2849         (WebCore::Node::shadowAncestorNode):
2850         (WebCore::Node::containingShadowRoot):
2851         * dom/Node.h:
2852         (Node):
2853         * dom/Range.cpp:
2854         (WebCore::Range::shadowRoot):
2855         * dom/ShadowRoot.cpp:
2856         (WebCore::ShadowRoot::insertedInto):
2857         (WebCore::ShadowRoot::removedFrom):
2858         * dom/ShadowRoot.h:
2859         (WebCore::ShadowRoot::isAccessible):
2860         * editing/TextIterator.cpp:
2861         (WebCore::TextIterator::handleReplacedElement):
2862         * editing/htmlediting.cpp:
2863         (WebCore::indexForVisiblePosition):
2864         * html/HTMLStyleElement.cpp:
2865         (WebCore::HTMLStyleElement::scopedAttributeChanged):
2866         (WebCore::HTMLStyleElement::registerWithScopingNode):
2867         (WebCore::HTMLStyleElement::removedFrom):
2868         * html/shadow/ContentDistributor.cpp:
2869         (WebCore::ContentDistributor::distribute):
2870         * html/shadow/HTMLContentElement.cpp:
2871         (WebCore::HTMLContentElement::parseAttribute):
2872         (WebCore::HTMLContentElement::insertedInto):
2873         (WebCore::HTMLContentElement::removedFrom):
2874         * html/shadow/HTMLShadowElement.cpp:
2875         (WebCore::HTMLShadowElement::insertedInto):
2876         (WebCore::HTMLShadowElement::removedFrom):
2877         * html/shadow/InsertionPoint.cpp:
2878         (WebCore::InsertionPoint::attach):
2879         (WebCore::InsertionPoint::detach):
2880         (WebCore::InsertionPoint::isActive):
2881         (WebCore::InsertionPoint::childrenChanged):
2882         (WebCore::InsertionPoint::insertedInto):
2883         (WebCore::InsertionPoint::removedFrom):
2884         (WebCore::InsertionPoint::setResetStyleInheritance):
2885         * page/EventHandler.cpp:
2886         (WebCore::instanceAssociatedWithShadowTreeElement):
2887         * svg/SVGElement.cpp:
2888         (WebCore::SVGElement::correspondingElement):
2889         (WebCore::collectInstancesForSVGElement):
2890
2891 2012-12-06  Michael Pruett  <michael@68k.org>
2892
2893         IndexedDB: Replace int64 with int64_t
2894         https://bugs.webkit.org/show_bug.cgi?id=104338
2895
2896         Reviewed by Kentaro Hara.
2897
2898         Cleaning up coding inconsistencies, no change in behavior.
2899
2900         Tests: storage/indexeddb/*
2901
2902         * Modules/indexeddb/IDBFactory.cpp:
2903         (WebCore::IDBFactory::openInternal):
2904
2905 2012-12-06  James Simonsen  <simonjam@chromium.org>
2906
2907         [Resource Timing] Allow detailed timing on same origin sites
2908         https://bugs.webkit.org/show_bug.cgi?id=104328
2909
2910         Reviewed by Tony Gentilcore.
2911
2912         This block was lost when I moved it to PerformanceResourceTiming.cpp.
2913
2914         Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_attribute_order.html
2915
2916         * page/PerformanceResourceTiming.cpp:
2917         (WebCore::passesTimingAllowCheck):
2918
2919 2012-12-06  Rick Byers  <rbyers@chromium.org>
2920
2921         CSS cursor property should support webkit-image-set
2922         https://bugs.webkit.org/show_bug.cgi?id=99493
2923
2924         Reviewed by Beth Dakin.
2925
2926         Add support for image scale factors attached to custom mouse cursor images
2927         behind ENABLE(MOUSE_CURSOR_SCALE).
2928
2929         This required refactoring CSSCursorImageValue to derive directly from
2930         CSSValue since it can contain either a CSSImageValue or a CSSImageSetValue.
2931         If it contains an image-set, then we can plumb directly through to the
2932         CSSImageSetValue.  If it contains an image, then either we can plumb directly
2933         through to the CSSImageValue, or if the URL represents an SVG cursor we have
2934         to intercept the image loading in order to substitute the actual SVG image URL
2935         and do the appropriate lifetime management.
2936
2937         Tests: fast/css/cursor-parsing-image-set.html
2938                fast/events/mouse-cursor-image-set.html
2939
2940         * Configurations/FeatureDefines.xcconfig: Add ENABLE_MOUSE_CURSOR_SCALE - disabled
2941         * GNUmakefile.features.am: ditto
2942         * css/CSSCursorImageValue.cpp: Refactor to inherit directly from CSSValue and support image sets
2943         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
2944         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
2945         (WebCore::CSSCursorImageValue::customCssText):
2946         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2947         (WebCore::CSSCursorImageValue::cachedImage):
2948         (WebCore::CSSCursorImageValue::cachedOrPendingImage):
2949         (WebCore::CSSCursorImageValue::isSVGCursor):
2950         (WebCore::CSSCursorImageValue::cachedImageURL):
2951         (WebCore::CSSCursorImageValue::clearCachedImage):
2952         (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
2953         * css/CSSCursorImageValue.h: Remove cursor-specific hacks
2954         (WebCore::CSSCursorImageValue::create):
2955         (CSSCursorImageValue):
2956         * css/CSSImageValue.cpp:
2957         (WebCore::CSSImageValue::cachedImage):
2958         * css/CSSImageValue.h:
2959         (CSSImageValue):
2960         * css/CSSParser.cpp:
2961         (WebCore::CSSParser::parseValue): Parse cursor(-webkit-image-set(...)) rules
2962         * css/CSSValue.h:
2963         (WebCore::CSSValue::isImageValue):
2964         * css/StyleBuilder.cpp:
2965         (WebCore::ApplyPropertyCursor::applyValue):
2966         * css/StyleResolver.cpp: Hook up new CSSCursorImageValue support since it can't be handled like other images any more.
2967         (WebCore::StyleResolver::styleImage):
2968         (WebCore::StyleResolver::cursorOrPendingFromValue):
2969         (WebCore::StyleResolver::loadPendingImage):
2970         * css/StyleResolver.h:
2971         (StyleResolver):
2972         * page/EventHandler.cpp:
2973         (WebCore::EventHandler::selectCursor): Handle StyleCachedImageSet images and plumb scale factor through
2974         * platform/Cursor.cpp:
2975         (WebCore::Cursor::Cursor): Add imageScaleFactor
2976         * platform/Cursor.h: Add imageScaleFactor
2977         (Cursor):
2978         (WebCore::Cursor::imageScaleFactor):
2979         * platform/chromium/CursorChromium.cpp: Add imageScaleFactor
2980         (WebCore::Cursor::Cursor):
2981         (WebCore::Cursor::operator=):
2982         * rendering/style/CursorData.h: Clarify hotspot units
2983         (CursorData):
2984         * rendering/style/StyleCachedImage.h:
2985         (StyleCachedImage::cachedImage): Override new virtual.
2986         * rendering/style/StyleCachedImageSet.h:
2987         (StyleCachedImageSet::cachedImage): Override new virtual.
2988         * rendering/style/StyleImage.h:
2989         (StyleImage::cachedImage): Add new virtual method to avoid lots of casts and typechecks.
2990         * rendering/style/StylePendingImage.h: Add CSSCursorImageValue support
2991         (WebCore::StylePendingImage::cssCursorImageValue):
2992         * testing/Internals.cpp:
2993         (WebCore::Internals::getCurrentCursorInfo): Print non-identity scale factors for testing
2994
2995 2012-12-06  Hayato Ito  <hayato@chromium.org>
2996
2997         Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
2998         https://bugs.webkit.org/show_bug.cgi?id=102681
2999
3000         Reviewed by Dimitri Glazkov.
3001
3002         Make sure that event's relatedTarget re-targeting occurs for mouse
3003         events created by event.initMouseEvent().  Since user-generated
3004         mouse events can have a relatedTarget which is same to the target
3005         node, the algorithm which calculates event's ancestors is also
3006         updated so that ancestors are not shrunk wrongly.
3007
3008         Test: fast/events/dispatch-synthetic-mouseevent.html
3009               fast/dom/shadow/shadow-dom-event-dispatching.html
3010
3011         * dom/EventDispatcher.cpp:
3012         (WebCore::EventRelatedTargetAdjuster::adjust):
3013         * dom/MouseEvent.cpp:
3014         (WebCore::MouseEventDispatchMediator::create):
3015         (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
3016         (WebCore::MouseEventDispatchMediator::dispatchEvent):
3017         * dom/MouseEvent.h:
3018         (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
3019         (MouseEventDispatchMediator):
3020         * dom/Node.cpp:
3021         (WebCore::Node::dispatchEvent):
3022
3023 2012-12-06  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3024
3025         Disabled file input box stops a certain other div from being rendered
3026         https://bugs.webkit.org/show_bug.cgi?id=104226
3027
3028         Reviewed by Dimitri Glazkov.
3029
3030         The bug was caused by setNeedsStyleRecalc() call during style recalculation,
3031         which resulted in inconsistent ChildNeedsStyleRecalc flags in DOM tree.
3032
3033         When reattach of file input happens during style recalculation,
3034         RenderFileUploadControl::updateFromElement() is called from attach().
3035         It may change the disabled state of the upload button in its shadow tree,
3036         but it triggers style recalculation.
3037
3038         This patch solves this issue by setting disabled state of the upload button in
3039         FileInputType::disabledAttributeChanged instead of RenderFileUploadControl.
3040
3041         Test: fast/forms/file/sibling-of-disabled-file-input.html
3042
3043         * html/FileInputType.cpp:
3044         (WebCore::FileInputType::disabledAttributeChanged): Added.
3045         * html/FileInputType.h:
3046         (FileInputType): Declare disabledAttributeChanged.
3047         * rendering/RenderFileUploadControl.cpp:
3048         (WebCore::RenderFileUploadControl::updateFromElement): Remove call to button->setDisabled().
3049
3050 2012-12-06  Dominic Cooney  <dominicc@chromium.org>
3051
3052         Element.pseudo property should be prefixed
3053         https://bugs.webkit.org/show_bug.cgi?id=104060
3054
3055         Reviewed by Hajime Morita.
3056
3057         Other Shadow DOM properties are prefixed; pseudo should be too.
3058
3059         Covered by updated tests in fast/dom/shadow.
3060
3061         * dom/Element.idl:
3062
3063 2012-12-06  Andrei Bucur  <abucur@adobe.com>
3064
3065         [CSS Regions] Remove the sanitize mechanism from LineFragmentationData
3066         https://bugs.webkit.org/show_bug.cgi?id=104234
3067
3068         Reviewed by David Hyatt.
3069
3070         Remove previous work that ensured an invalid region is never returned by the containingRegion getter. After r136793 the blocks always
3071         relayout children if the region chain changes. This means the sanitize() method is only necessary when all the regions are removed.
3072         This case is treated separately in layoutInlineChildren.
3073
3074         Tests: no new functionality, no bug fixed.
3075
3076         * rendering/RenderBlock.cpp:
3077         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
3078         * rendering/RenderBlockLineLayout.cpp:
3079         (WebCore::RenderBlock::layoutInlineChildren):
3080         * rendering/RootInlineBox.cpp:
3081         (WebCore::RootInlineBox::containingRegion):
3082         (WebCore):
3083         (WebCore::RootInlineBox::setContainingRegion):
3084         * rendering/RootInlineBox.h:
3085         (RootInlineBox):
3086         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
3087         (LineFragmentationData):
3088
3089 2012-12-06  Kenneth Russell  <kbr@google.com>
3090
3091         Associate URLs with GraphicsContext3D instances created for WebGL
3092         https://bugs.webkit.org/show_bug.cgi?id=103793
3093
3094         Reviewed by Adam Barth.
3095
3096         Pass down the URL of the topmost frame's document creating the
3097         WebGL context to the platform layer through
3098         GraphicsContext3D::Attributes.
3099
3100         Not feasible to write a layout test for this change; has no
3101         user-visible effect. Tested manually with failure injection in
3102         Chromium port.
3103
3104         * html/canvas/WebGLRenderingContext.cpp:
3105         (WebCore):
3106         (WebCore::WebGLRenderingContext::create):
3107             Pass top document's URL in context creation attributes.
3108         * platform/chromium/support/GraphicsContext3DChromium.cpp:
3109         (WebCore::GraphicsContext3D::create):
3110             Pass URL through WebKit API.
3111         * platform/graphics/GraphicsContext3D.h:
3112         (Attributes):
3113             Add top document's URL to context creation attributes.
3114
3115 2012-12-06  Philip Rogers  <pdr@google.com>
3116
3117         Unify SVG's animation and target tracking systems.
3118         https://bugs.webkit.org/show_bug.cgi?id=102655
3119
3120         Reviewed by Dirk Schulze.
3121
3122         This patch unifies our animation target tracking system and regular target tracking system.
3123         This simplifies the code, fixes a bug, and cleans up a historically security-sensitive area.
3124
3125         Background: When <use>, <mpath>, <animate>, etc. reference another element using
3126         xlink:href="#id", we need to track when #id changes to #otherId, when #id is removed, etc.
3127         This bookkeeping of element -> target is done in SVGDocumentExtensions. Additionally, when
3128         a target changes that causes layout (e.g., rect.x is changed), all dependent elements with
3129         renderers are notified (<animate> has no renderer and will not use this).
3130
3131         Previously, xlink:href changes were lazily resolved when targetElement() was called, target
3132         changes were tracked using the animation tracking framework, and pending targets did not
3133         work (e.g., <animate xlink:href="#p"><!--animate is now pending #p --><rect id="p"/>).
3134
3135         After this patch, we no longer lazily resolve targetElement() but instead change it when
3136         our xlink:href attribute changes. Instead of using the animation tracking framework in
3137         SVGDocumentExtensions, we now use the regular target tracking framework. Lastly, by using
3138         the regular target tracking framework we are able to hook into the pending resource handling
3139         which fixes a bug (see the test).
3140
3141         A test has been added to test that the order of animation elements does not matter. A second
3142         test has been added to show we do not regress a pending-while-pending case.
3143
3144         Tests: svg/animations/svg-animation-order.html
3145                svg/custom/svg-pending-twice.html
3146
3147         * svg/SVGAnimateElement.cpp:
3148         (WebCore::SVGAnimateElement::setTargetElement):
3149
3150             setTargetElement and setAttributeName now work similarly. When the corresponding attribute
3151             changes, we update our internal state (target or attributeName) and save it instead of
3152             looking these values up on each iteration.
3153
3154         (WebCore::SVGAnimateElement::setAttributeName):
3155         (WebCore):
3156         (WebCore::SVGAnimateElement::resetAnimatedPropertyType):
3157         * svg/SVGAnimateElement.h:
3158         (SVGAnimateElement):
3159         * svg/SVGAnimationElement.cpp:
3160         (WebCore::SVGAnimationElement::setAttributeType):
3161         (WebCore::SVGAnimationElement::setTargetElement):
3162         (WebCore::SVGAnimationElement::setAttributeName):
3163         * svg/SVGAnimationElement.h:
3164         (SVGAnimationElement):
3165         * svg/SVGDocumentExtensions.cpp:
3166         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
3167         (WebCore):
3168         * svg/SVGDocumentExtensions.h:
3169         (SVGDocumentExtensions):
3170         * svg/SVGElement.cpp:
3171         (WebCore::SVGElement::~SVGElement):
3172         (WebCore::SVGElement::removedFrom):
3173         (WebCore::SVGElement::attributeChanged):
3174         * svg/SVGElementInstance.cpp:
3175         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
3176
3177             This can be removed after r131631 landed.
3178
3179         * svg/SVGMPathElement.cpp:
3180         (WebCore::SVGMPathElement::buildPendingResource):
3181         * svg/SVGTextPathElement.cpp:
3182         (WebCore::SVGTextPathElement::buildPendingResource):
3183
3184             A bug was discovered in review with our resource tracking in a pending-while-pending
3185             case. SVGMpathElement and SVGTextPathElement have been updated to fix this as well.
3186
3187         * svg/animation/SVGSMILElement.cpp:
3188
3189             The changes in SVGSMILElement should look very similar to SVGFEImageElement,
3190             SVGMPathElement, etc. The idea is to build pending resources when added or
3191             removed from the document, or when the href attribute changes.
3192
3193         (WebCore::SVGSMILElement::~SVGSMILElement):
3194         (WebCore):
3195         (WebCore::SVGSMILElement::clearResourceReferences):
3196         (WebCore::SVGSMILElement::buildPendingResource):
3197         (WebCore::SVGSMILElement::insertedInto):
3198         (WebCore::SVGSMILElement::removedFrom):
3199         (WebCore::SVGSMILElement::svgAttributeChanged):
3200         (WebCore::SVGSMILElement::setAttributeName):
3201         (WebCore::SVGSMILElement::setTargetElement):
3202         * svg/animation/SVGSMILElement.h:
3203         (WebCore):
3204         (WebCore::SVGSMILElement::targetElement):
3205         (SVGSMILElement):
3206
3207 2012-12-06  Jon Lee  <jonlee@apple.com>
3208
3209         Retry snapshots if they are too empty
3210         https://bugs.webkit.org/show_bug.cgi?id=104174
3211         <rdar://problem/12820146>
3212
3213         Reviewed by Simon Fraser.
3214
3215         * html/HTMLPlugInImageElement.cpp:
3216         (WebCore::HTMLPlugInImageElement::updateSnapshot): Change the state machine check so that even
3217         when the plug-in is displaying a snapshot, the snapshot can still be updated. This allows for the
3218         retries to be drawn.
3219
3220 2012-12-06  Adam Klein  <adamk@chromium.org>
3221
3222         [HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
3223         https://bugs.webkit.org/show_bug.cgi?id=104181
3224
3225         Reviewed by Adam Barth.
3226
3227         Note that this patch also adds IDL attributes/custom code to tie the lifetime
3228         of the content DocumentFragment wrapper to the lifetime of the template element wrapper
3229         via a hidden JS property.
3230
3231         Based on a patch by Rafael Weinstein.
3232
3233         Test: fast/dom/HTMLTemplateElement/contentWrappers.html
3234
3235         * DerivedSources.cpp:
3236         * Target.pri:
3237         * UseJSC.cmake:
3238         * WebCore.gypi:
3239         * WebCore.xcodeproj/project.pbxproj:
3240         * bindings/js/JSBindingsAllInOne.cpp:
3241         * bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
3242         (WebCore):
3243         (WebCore::JSHTMLTemplateElement::content):
3244         * bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
3245         * dom/Element.h:
3246         (Element): Annotate cloneNode() with OVERRIDE
3247         * html/HTMLTemplateElement.cpp:
3248         (WebCore::HTMLTemplateElement::cloneNode):
3249         * html/HTMLTemplateElement.h:
3250         (HTMLTemplateElement): override cloneNode
3251         * html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.
3252
3253 2012-12-06  Brent Fulgham  <bfulgham@webkit.org>
3254
3255         [Windows, WinCairo] Unreviewed build correction.
3256
3257         Exclude 'DocumentSharedObjectPool.cpp' from build, since it is
3258         built as part of DOMAllInOne.cpp.  The build (besides wasting
3259         time) generates a bunch of build warnings for duplicate symbols.
3260
3261         * WebCore.vcproj/WebCore.vcproj: Mark DocumentSharedObjectPool.cpp
3262         to not build independently of DOMAllInOne.cpp.
3263
3264 2012-12-06  David Grogan  <dgrogan@chromium.org>
3265
3266         IndexedDB: Abort transactions because of leveldb errors part 4
3267         https://bugs.webkit.org/show_bug.cgi?id=103964
3268
3269         Reviewed by Tony Chang.
3270
3271         deleteDatabase, open, and deleteObjectStore will now fire more aborts
3272         and errors in case of leveldb problems
3273
3274         * Modules/indexeddb/IDBBackingStore.cpp:
3275         (WebCore::getVarInt): Make return value indicate leveldb error.
3276         (WebCore::getString): ditto.
3277         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
3278         Change return value to indicate leveldb error.
3279
3280         (WebCore::IDBBackingStore::deleteDatabase):
3281         Already had the desired return value semantics. As a consumer of
3282         getIDBDatabaseMetadata, will return an error (causing an abort) more
3283         often.
3284
3285         (WebCore::IDBBackingStore::deleteObjectStore):
3286         Needed return value change. Will return error to DatabaseBackend to
3287         indicate leveldb problems.
3288
3289         * Modules/indexeddb/IDBBackingStore.h:
3290         (IDBBackingStore):
3291         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3292         (WebCore::IDBDatabaseBackendImpl::openInternal):
3293         Pass leveldb errors up to callers, who already handle internal errors.
3294
3295         (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
3296         Abort transaction if there were leveldb problems deleting an object
3297         store.
3298
3299 2012-12-06  David Grogan  <dgrogan@chromium.org>
3300
3301         IndexedDB: Add webkitErrorMessage to IDBTransaction
3302         https://bugs.webkit.org/show_bug.cgi?id=104199
3303
3304         Reviewed by Tony Chang.
3305
3306         Don't drop error messages on the floor.
3307
3308         Expose an error message on IDBTransaction to give developers more
3309         information than the opaque error code currently available. This is
3310         exactly what is done in IDBRequest. 
3311
3312         Tests - transaction-error.html
3313
3314         * Modules/indexeddb/IDBDatabaseError.h:
3315         (WebCore::IDBDatabaseError::create):
3316         * Modules/indexeddb/IDBRequest.cpp:
3317         (WebCore::IDBRequest::dispatchEvent):
3318         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
3319         * Modules/indexeddb/IDBTransaction.cpp:
3320         (WebCore::IDBTransaction::setError):
3321         (WebCore):
3322         (WebCore::IDBTransaction::webkitErrorMessage):
3323         (WebCore::IDBTransaction::onAbort):
3324         * Modules/indexeddb/IDBTransaction.h:
3325         (IDBTransaction):
3326         * Modules/indexeddb/IDBTransaction.idl:
3327
3328 2012-12-06  Alexander Shalamov  <alexander.shalamov@intel.com>
3329
3330         XMLHttpRequest Content-Type should be taken from Blob type
3331         https://bugs.webkit.org/show_bug.cgi?id=99983
3332
3333         Reviewed by Alexey Proskuryakov.
3334
3335         Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
3336         http://www.w3.org/TR/XMLHttpRequest/#the-send-method
3337
3338         Added test that check if content type is set correctly when blob object is sent.
3339
3340         Test: http/tests/xmlhttprequest/post-blob-content-type.html
3341
3342         * xml/XMLHttpRequest.cpp:
3343         (WebCore::XMLHttpRequest::send):
3344             Set correct MIME type for Blob objects.
3345         * WebCore.vcproj/WebCore.vcproj:
3346             Added ParsedContentType to project file.
3347
3348 2012-12-06  Min Qin  <qinmin@chromium.org>
3349
3350         Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
3351         https://bugs.webkit.org/show_bug.cgi?id=103555
3352
3353         Reviewed by Stephen White.
3354
3355         Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
3356         No test added for now as impl side paiting is still WIP.
3357
3358         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
3359         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
3360         (WebCore::LazyDecodingPixelRef::PrepareToDecode):
3361         (WebCore):
3362         (WebCore::LazyDecodingPixelRef::Decode):
3363         * platform/graphics/chromium/LazyDecodingPixelRef.h:
3364         (LazyDecodingPixelRef):
3365
3366 2012-12-06  Kentaro Hara  <haraken@chromium.org>
3367
3368         [V8] Make an Isolate mandatory in v8UnsignedInteger()
3369         https://bugs.webkit.org/show_bug.cgi?id=104235
3370
3371         Reviewed by Adam Barth.
3372
3373         No tests. No change in behavior.
3374
3375         * bindings/v8/ArrayValue.cpp:
3376         (WebCore::ArrayValue::get):
3377         * bindings/v8/V8Binding.h:
3378         (WebCore::v8UnsignedInteger):
3379         * bindings/v8/V8LazyEventListener.cpp:
3380         (WebCore::V8LazyEventListener::prepareListenerObject):
3381
3382 2012-12-06  David Hyatt  <hyatt@apple.com>
3383
3384         [New Multicolumn] Add requiresBalancing booleans to track which column sets need to rebalance.
3385         https://bugs.webkit.org/show_bug.cgi?id=104297
3386
3387         Reviewed by Simon Fraser.
3388
3389         Add requiresBalancing booleans to RenderMultiColumnBlock and RenderMultiColumnSet. For now the former is just propagated
3390         to the latter, but eventually RenderMultiColumnSets will have a notion of balancing that has to be independent of the
3391         owning block (e.g., maybe only the last set rebalances, or maybe only a set that contains the content between two forced
3392         breaks wants to rebalance, etc.).
3393
3394         * rendering/RenderMultiColumnBlock.cpp:
3395         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
3396         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
3397         (WebCore::RenderMultiColumnBlock::ensureColumnSets):
3398         * rendering/RenderMultiColumnBlock.h:
3399         (WebCore::RenderMultiColumnBlock::requiresBalancing):
3400         (RenderMultiColumnBlock):
3401         * rendering/RenderMultiColumnSet.cpp:
3402         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
3403         * rendering/RenderMultiColumnSet.h:
3404         (WebCore::RenderMultiColumnSet::requiresBalancing):
3405         (WebCore::RenderMultiColumnSet::setRequiresBalancing):
3406         (RenderMultiColumnSet):
3407         (WebCore::toRenderMultiColumnSet):
3408         (WebCore):
3409
3410 2012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>
3411
3412         Unreviewed, rolling out r136871.
3413         http://trac.webkit.org/changeset/136871
3414         https://bugs.webkit.org/show_bug.cgi?id=104293
3415
3416         crashes on bots and memory leaks (Requested by esprehn on
3417         #webkit).
3418
3419         * dom/Document.h:
3420         (WebCore::Node::treeScope):
3421         * dom/Element.cpp:
3422         (WebCore::Element::createRareData):
3423         * dom/ElementRareData.h:
3424         (ElementRareData):
3425         (WebCore::ElementRareData::ElementRareData):
3426         * dom/Node.cpp:
3427         (WebCore::Node::setTreeScope):
3428         (WebCore::Node::ensureRareData):
3429         (WebCore::Node::createRareData):
3430         (WebCore::Node::clearRareData):
3431         * dom/Node.h:
3432         (WebCore::NodeRareDataBase::~NodeRareDataBase):
3433</