b33c792278ae3faf536cad772a953685c540780f
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-23  Kent Tamura  <tkent@chromium.org>
2
3         Add TextFieldDecorator and TextFieldDecorationElement
4         https://bugs.webkit.org/show_bug.cgi?id=80580
5
6         Reviewed by Dimitri Glazkov.
7
8         These classes will be used to add a decoration icon to a text field
9         <input> from outside of WebCore. We have a plan to use them in Chromium
10         port. So this patch doesn't add TextFieldDecorationElement.{cpp,h} to
11         non-Chromium build files.
12
13         How it works:
14         When a shadow subtree for a text field is created, we ask ChromeClient
15         to decorate it. ChromeClient appends a TextFieldDecorationElement to the
16         existing shadow subtree or another shadow tree. A TextFieldDecorator is
17         associated to a TextFieldDecorationElement, and it provides decoration
18         icon images and a click handler.
19
20         No new tests. This patch won't make any behavior change for now.
21
22         * WebCore.gypi: Add TextFieldDecorationElement.cpp and TextFieldDecorationElement.h
23         * dom/Element.h:
24         (WebCore::Element::isTextFieldDecoration):
25         * html/TextFieldInputType.cpp:
26         (WebCore::TextFieldInputType::createShadowSubtree):
27         Calls ChromeClient::willAddTextFieldDecorationsTo() and addTextFieldDecorationsTo().
28         * html/shadow/TextFieldDecorationElement.cpp: Added.
29         (WebCore::TextFieldDecorator::~TextFieldDecorator):
30         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
31         (WebCore::TextFieldDecorationElement::create):
32         (WebCore::TextFieldDecorationElement::isTextFieldDecoration):
33         (WebCore::TextFieldDecorationElement::updateImage):
34         (WebCore::TextFieldDecorationElement::customStyleForRenderer):
35         Sets the size to a square of the font-size.
36         (WebCore::TextFieldDecorationElement::createRenderer):
37         Always creates a RenderImage.
38         (WebCore::TextFieldDecorationElement::attach):
39         Sets an image for appropriate state.
40         (WebCore::TextFieldDecorationElement::isMouseFocusable):
41         (WebCore::TextFieldDecorationElement::defaultEventHandler):
42         Delegate a click event to the corresponding function of TextFieldDecorator.
43         * html/shadow/TextFieldDecorationElement.h: Added.
44         (TextFieldDecorator): Added.
45         (TextFieldDecorationElement): Added.
46         (WebCore::toTextFieldDecorationElement): Added.
47         * page/ChromeClient.h:
48         (WebCore::ChromeClient::willAddTextFieldDecorationsTo): Add an empty implementation.
49         (WebCore::ChromeClient::addTextFieldDecorationsTo): ditto.
50
51 2012-03-23  Adam Klein  <adamk@chromium.org>
52
53         Match DOM4 spec with respect to DocumentFragment insertion
54         https://bugs.webkit.org/show_bug.cgi?id=82089
55
56         Reviewed by Ryosuke Niwa.
57
58         DOM4 specifies the behavior of appendChild, insertBefore, and replaceChild
59         in terms of "mutation algorithms":
60
61         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-algorithms
62
63         This change updates WebKit to match, in particular with regard to DocumentFragments.
64         Previously, ContainerNode would remove nodes one at a time, then add them to the new parent.
65         When combined with MutationObservers, this results in overly-verbose mutation records.
66         Now we create as few records as possible, matching the spec as well as Gecko's implementation
67         of MutationObservers.
68
69         Note that we still need to check validity each time through the loop,
70         since inserting a node may dispatch events. In a future change, I hope
71         to move these events so that they fire only after all nodes are inserted,
72         but that's too much to tackle all in one.
73
74         Tests: fast/mutation/document-fragment-insertion.html
75
76         * dom/ContainerNode.cpp:
77         (WebCore::collectChildrenAndRemoveFromOldParent): New helper method
78         combining collectTargetNodes() with the removal of the collected nodes from
79         their old parent, if any.
80         (WebCore::ContainerNode::insertBefore): Use new helper method instead
81         of removing nodes one at a time from the fragment.
82         (WebCore::ContainerNode::replaceChild): ditto. Also removed some redundant asserts
83         and moved the "do nothing" check out of the loop.
84         (WebCore::ContainerNode::appendChild): Use new helper method.
85
86 2012-03-23  Stephen White  <senorblanco@chromium.org>
87
88         [skia] Switch to Skia's implementation of the feMorphology filter.
89         https://bugs.webkit.org/show_bug.cgi?id=82085
90
91         Reviewed by Dirk Schulze.
92
93         Covered by existing tests in svg/filters/.
94
95         * WebCore.gypi:
96         * platform/graphics/filters/FEMorphology.h:
97         (FEMorphology):
98         * platform/graphics/filters/skia/FEMorphologySkia.cpp: Added.
99         (WebCore):
100         (WebCore::FEMorphology::platformApplySkia):
101
102 2012-03-23  Adam Barth  <abarth@webkit.org>
103
104         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 3)
105         https://bugs.webkit.org/show_bug.cgi?id=82027
106
107         Reviewed by Kentaro Hara.
108
109         Rather than watching for willDetachPage, NotificationCenter can just
110         override ActiveDOMObject::stop directly to be notified when it needs to
111         stop.
112
113         Switching NotificationCenter over to using ActiveDOMObject callbacks
114         frees DOMWindowNotification to implement reconnectFrame.  However, this
115         is only really a victory in princple because NotificationCenter always
116         returns false for canSuspend(), which means we'll never actually use
117         the reconnectFrame functionality.  However, this patch does move us
118         closer to the time when NotificationCenter can implement
119         ActiveDOMObject::suspend/resume to play nice with the PageCache.
120
121         * notifications/DOMWindowNotifications.cpp:
122         (WebCore::DOMWindowNotifications::disconnectFrame):
123         (WebCore::DOMWindowNotifications::reconnectFrame):
124         * notifications/DOMWindowNotifications.h:
125         (DOMWindowNotifications):
126         * notifications/NotificationCenter.cpp:
127         (WebCore::NotificationCenter::NotificationCenter):
128         (WebCore::NotificationCenter::stop):
129         * notifications/NotificationCenter.h:
130         (NotificationCenter):
131
132 2012-03-23  Daniel Cheng  <dcheng@chromium.org>
133
134         [chromium] Support file drag out using DataTransferItemList::add(File)
135         https://bugs.webkit.org/show_bug.cgi?id=81261
136
137         Reviewed by Tony Chang.
138
139         Original patch by Varun Jain <varunjain@chromium.org>.
140         I've updated the original patch to remove 'downloadurl' handling since it's not tested, nor
141         is it necessary for File objects, since File objects correspond to a native filesystem path.
142
143         Test: fast/events/drag-dataTransferItemList-file-handling.html
144
145         * platform/chromium/DataTransferItemListChromium.cpp:
146         (WebCore::DataTransferItemListChromium::add):
147
148 2012-03-23  Zan Dobersek  <zandobersek@gmail.com>
149
150         [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute
151         https://bugs.webkit.org/show_bug.cgi?id=80030
152
153         Reviewed by Martin Robinson.
154
155         Changes in CodeGeneratorGObject.pm:
156         - group implementation of private helpers and guard them inside
157         an ifdef if a root conditional attribute is present.
158         - always define the type of a GObject binding, even if the root
159         conditional feature is not enabled
160         - the methods are generated as well, but are simply stubs if the
161         feature is not enabled, throwing a warning upon interaction.
162         - if the method itself is guarded by a conditional attribute,
163         the stub implementation gains one more level of depth, throwing
164         a warning if the method's conditional feature is not enabled
165         but the root conditional feature is.
166         - small style fixes in random places.
167
168         Also changed are GObject baselines for binding tests.
169
170         No new tests - no new testable functionality.
171
172         * bindings/gobject/GNUmakefile.am:
173         * bindings/scripts/CodeGeneratorGObject.pm:
174         (HumanReadableConditional):
175         (GenerateConditionalWarn):
176         (GenerateProperty):
177         (GenerateProperties):
178         (GenerateFunction):
179         (GenerateFunctions):
180         (GenerateCFile):
181         (GenerateEventTargetIface):
182         (Generate):
183         (WriteData):
184         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
185         (WebKit):
186         (WebKit::kit):
187         (WebKit::wrapFloat64Array):
188         (webkit_dom_float64array_finalize):
189         (webkit_dom_float64array_foo):
190         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
191         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
192         (WebKit):
193         (WebKit::kit):
194         (WebKit::wrapTestActiveDOMObject):
195         (webkit_dom_test_active_dom_object_finalize):
196         (webkit_dom_test_active_dom_object_exciting_function):
197         (webkit_dom_test_active_dom_object_post_message):
198         (webkit_dom_test_active_dom_object_get_exciting_attr):
199         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
200         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
201         (WebKit):
202         (WebKit::kit):
203         (WebKit::core):
204         (WebKit::wrapTestCallback):
205         (webkit_dom_test_callback_finalize):
206         (webkit_dom_test_callback_callback_with_no_param):
207         (webkit_dom_test_callback_callback_with_class1param):
208         (webkit_dom_test_callback_callback_with_class2param):
209         (webkit_dom_test_callback_callback_with_non_bool_return_type):
210         (webkit_dom_test_callback_callback_with_string_list):
211         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
212         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
213         (WebKit):
214         (WebKit::kit):
215         (WebKit::wrapTestCustomNamedGetter):
216         (webkit_dom_test_custom_named_getter_finalize):
217         (webkit_dom_test_custom_named_getter_another_function):
218         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
219         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
220         (WebKit):
221         (WebKit::kit):
222         (WebKit::wrapTestEventConstructor):
223         (webkit_dom_test_event_constructor_finalize):
224         (webkit_dom_test_event_constructor_get_attr1):
225         (webkit_dom_test_event_constructor_get_attr2):
226         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
227         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
228         (WebKit):
229         (WebKit::core):
230         (WebKit::wrapTestEventTarget):
231         (webkit_dom_test_event_target_finalize):
232         (webkit_dom_test_event_target_item):
233         (webkit_dom_test_event_target_dispatch_event):
234         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
235         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
236         (WebKit):
237         (WebKit::kit):
238         (WebKit::core):
239         (WebKit::wrapTestInterface):
240         (webkit_dom_test_interface_finalize):
241         (webkit_dom_test_interface_supplemental_method1):
242         (webkit_dom_test_interface_supplemental_method2):
243         (webkit_dom_test_interface_supplemental_method4):
244         (webkit_dom_test_interface_get_supplemental_str1):
245         (webkit_dom_test_interface_get_supplemental_str2):
246         (webkit_dom_test_interface_set_supplemental_str2):
247         (webkit_dom_test_interface_get_supplemental_node):
248         (webkit_dom_test_interface_set_supplemental_node):
249         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
250         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
251         (WebKit):
252         (WebKit::kit):
253         (WebKit::wrapTestMediaQueryListListener):
254         (webkit_dom_test_media_query_list_listener_finalize):
255         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
256         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
257         (WebKit):
258         (WebKit::kit):
259         (WebKit::wrapTestNamedConstructor):
260         (webkit_dom_test_named_constructor_finalize):
261         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
262         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
263         (WebKit):
264         (WebKit::kit):
265         (WebKit::core):
266         (WebKit::wrapTestObj):
267         (webkit_dom_test_obj_finalize):
268         (webkit_dom_test_obj_set_property):
269         (webkit_dom_test_obj_get_property):
270         (webkit_dom_test_obj_constructed):
271         (webkit_dom_test_obj_class_init):
272         (webkit_dom_test_obj_init):
273         (webkit_dom_test_obj_void_method):
274         (webkit_dom_test_obj_void_method_with_args):
275         (webkit_dom_test_obj_int_method):
276         (webkit_dom_test_obj_int_method_with_args):
277         (webkit_dom_test_obj_obj_method):
278         (webkit_dom_test_obj_obj_method_with_args):
279         (webkit_dom_test_obj_method_with_sequence_arg):
280         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
281         (webkit_dom_test_obj_serialized_value):
282         (webkit_dom_test_obj_idb_key):
283         (webkit_dom_test_obj_options_object):
284         (webkit_dom_test_obj_method_with_exception):
285         (webkit_dom_test_obj_with_script_state_void):
286         (webkit_dom_test_obj_with_script_state_obj):
287         (webkit_dom_test_obj_with_script_state_void_exception):
288         (webkit_dom_test_obj_with_script_state_obj_exception):
289         (webkit_dom_test_obj_with_script_execution_context):
290         (webkit_dom_test_obj_with_script_execution_context_and_script_state):
291         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
292         (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
293         (webkit_dom_test_obj_method_with_optional_arg):
294         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
295         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
296         (webkit_dom_test_obj_method_with_optional_string):
297         (webkit_dom_test_obj_method_with_optional_string_is_undefined):
298         (webkit_dom_test_obj_method_with_optional_string_is_null_string):
299         (webkit_dom_test_obj_conditional_method1):
300         (webkit_dom_test_obj_conditional_method2):
301         (webkit_dom_test_obj_conditional_method3):
302         (webkit_dom_test_obj_class_method):
303         (webkit_dom_test_obj_class_method_with_optional):
304         (webkit_dom_test_obj_overloaded_method1):
305         (webkit_dom_test_obj_convert1):
306         (webkit_dom_test_obj_convert2):
307         (webkit_dom_test_obj_convert3):
308         (webkit_dom_test_obj_convert4):
309         (webkit_dom_test_obj_convert5):
310         (webkit_dom_test_obj_mutable_point_function):
311         (webkit_dom_test_obj_immutable_point_function):
312         (webkit_dom_test_obj_orange):
313         (webkit_dom_test_obj_strict_function):
314         (webkit_dom_test_obj_get_read_only_int_attr):
315         (webkit_dom_test_obj_get_read_only_string_attr):
316         (webkit_dom_test_obj_get_read_only_test_obj_attr):
317         (webkit_dom_test_obj_get_short_attr):
318         (webkit_dom_test_obj_set_short_attr):
319         (webkit_dom_test_obj_get_unsigned_short_attr):
320         (webkit_dom_test_obj_set_unsigned_short_attr):
321         (webkit_dom_test_obj_get_int_attr):
322         (webkit_dom_test_obj_set_int_attr):
323         (webkit_dom_test_obj_get_long_long_attr):
324         (webkit_dom_test_obj_set_long_long_attr):
325         (webkit_dom_test_obj_get_unsigned_long_long_attr):
326         (webkit_dom_test_obj_set_unsigned_long_long_attr):
327         (webkit_dom_test_obj_get_string_attr):
328         (webkit_dom_test_obj_set_string_attr):
329         (webkit_dom_test_obj_get_test_obj_attr):
330         (webkit_dom_test_obj_set_test_obj_attr):
331         (webkit_dom_test_obj_get_xml_obj_attr):
332         (webkit_dom_test_obj_set_xml_obj_attr):
333         (webkit_dom_test_obj_get_create):
334         (webkit_dom_test_obj_set_create):
335         (webkit_dom_test_obj_get_reflected_string_attr):
336         (webkit_dom_test_obj_set_reflected_string_attr):
337         (webkit_dom_test_obj_get_reflected_integral_attr):
338         (webkit_dom_test_obj_set_reflected_integral_attr):
339         (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
340         (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
341         (webkit_dom_test_obj_get_reflected_boolean_attr):
342         (webkit_dom_test_obj_set_reflected_boolean_attr):
343         (webkit_dom_test_obj_get_reflected_url_attr):
344         (webkit_dom_test_obj_set_reflected_url_attr):
345         (webkit_dom_test_obj_get_reflected_custom_integral_attr):
346         (webkit_dom_test_obj_set_reflected_custom_integral_attr):
347         (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
348         (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
349         (webkit_dom_test_obj_get_reflected_custom_url_attr):
350         (webkit_dom_test_obj_set_reflected_custom_url_attr):
351         (webkit_dom_test_obj_get_attr_with_getter_exception):
352         (webkit_dom_test_obj_set_attr_with_getter_exception):
353         (webkit_dom_test_obj_get_attr_with_setter_exception):
354         (webkit_dom_test_obj_set_attr_with_setter_exception):
355         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
356         (webkit_dom_test_obj_set_string_attr_with_getter_exception):
357         (webkit_dom_test_obj_get_string_attr_with_setter_exception):
358         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
359         (webkit_dom_test_obj_get_with_script_state_attribute):
360         (webkit_dom_test_obj_set_with_script_state_attribute):
361         (webkit_dom_test_obj_get_with_script_execution_context_attribute):
362         (webkit_dom_test_obj_set_with_script_execution_context_attribute):
363         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
364         (webkit_dom_test_obj_set_with_script_state_attribute_raises):
365         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
366         (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
367         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
368         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
369         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
370         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
371         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
372         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
373         (webkit_dom_test_obj_get_conditional_attr1):
374         (webkit_dom_test_obj_set_conditional_attr1):
375         (webkit_dom_test_obj_get_conditional_attr2):
376         (webkit_dom_test_obj_set_conditional_attr2):
377         (webkit_dom_test_obj_get_conditional_attr3):
378         (webkit_dom_test_obj_set_conditional_attr3):
379         (webkit_dom_test_obj_get_content_document):
380         (webkit_dom_test_obj_get_mutable_point):
381         (webkit_dom_test_obj_set_mutable_point):
382         (webkit_dom_test_obj_get_immutable_point):
383         (webkit_dom_test_obj_set_immutable_point):
384         (webkit_dom_test_obj_get_strict_float):
385         (webkit_dom_test_obj_set_strict_float):
386         (webkit_dom_test_obj_get_description):
387         (webkit_dom_test_obj_get_id):
388         (webkit_dom_test_obj_set_id):
389         (webkit_dom_test_obj_get_hash):
390         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
391         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
392         (WebKit):
393         (WebKit::kit):
394         (WebKit::core):
395         (WebKit::wrapTestSerializedScriptValueInterface):
396         (webkit_dom_test_serialized_script_value_interface_finalize):
397         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
398         (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
399         (webkit_dom_test_serialized_script_value_interface_get_value):
400         (webkit_dom_test_serialized_script_value_interface_set_value):
401         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
402         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
403         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
404         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
405         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
406
407 2012-03-23  Dana Jansens  <danakj@chromium.org>
408
409         [chromium] Record painted pixel counts for measuring effectiveness of per-tile painting
410         https://bugs.webkit.org/show_bug.cgi?id=82057
411
412         Reviewed by Adrienne Walker.
413
414         Adds painted pixel metrics to CCOverdrawMetrics class, and calls in
415         to report painted areas when updating tiles in the TiledLayerChromium
416         class.
417
418         Unit test: TiledLayerChromiumTest.opaqueContentsRegion
419                    TiledLayerChromiumTest.pixelsPaintedMetrics
420
421         * platform/graphics/chromium/TiledLayerChromium.cpp:
422         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
423         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
424         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
425         (WebCore::CCOverdrawMetrics::didPaint):
426         (WebCore):
427         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
428         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
429         (CCOverdrawMetrics):
430         (WebCore::CCOverdrawMetrics::pixelsPainted):
431
432 2012-03-23  Abhishek Arya  <inferno@chromium.org>
433
434         Crash in RenderBlock::splitBlocks.
435         https://bugs.webkit.org/show_bug.cgi?id=81926
436
437         Reviewed by Julien Chaffraix.
438
439         We are updating the :after content before calling splitFlow. The :after content
440         gets blown away since it will go to the continuation. beforeChild was earlier
441         set to the first child. Being the last anonymous block, its children gets pulled
442         up in collapseAnonymousBoxChild and it gets destroyed. So, we need to update
443         beforeChild value. 
444
445         Test: fast/multicol/span/update-after-content-before-child-crash.html
446
447         * rendering/RenderBlock.cpp:
448         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
449
450 2012-03-23  Dana Jansens  <danakj@chromium.org>
451
452         [chromium] Improved composited debug borders
453         https://bugs.webkit.org/show_bug.cgi?id=82071
454
455         Reviewed by Adrienne Walker.
456
457         Fix the problem with missing debug borders. Since we append quads
458         to the list front to back now, we draw the quads in the list from
459         back to front of the list. Which means if the debug quad is added
460         after the layer it is drawing around, the layer can draw over top
461         of its debug quad. Reverse the ordering when appending to fix it.
462
463         Make the border red around tiles that are checkerboarded. Missing
464         tiles in non-root layers are drawn clear, so this makes them more
465         visible.
466
467         Put a blue border around each render surface, and a purple border
468         on their replicas.
469
470         No new tests.
471
472         * platform/graphics/chromium/cc/CCRenderPass.cpp:
473         (WebCore):
474         (WebCore::CCRenderPass::appendQuadsForLayer):
475         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
476         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
477         (WebCore::CCRenderSurface::hasReplica):
478         (WebCore):
479         (WebCore::CCRenderSurface::createReplicaSharedQuadState):
480         * platform/graphics/chromium/cc/CCRenderSurface.h:
481         (CCRenderSurface):
482         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
483         (WebCore):
484         (WebCore::CCTiledLayerImpl::appendQuads):
485
486 2012-03-23  Simon Fraser  <simon.fraser@apple.com>
487
488         Move code that calls setAcceleratesDrawing() on GraphicsLayers into RenderLayerBacking
489         https://bugs.webkit.org/show_bug.cgi?id=82092
490
491         Reviewed by Dean Jackson.
492
493         A RenderLayerBacking manages several GraphicsLayers, but RenderLayerCompositor
494         was only calling setAcceleratesDrawing() on the one it knows about. Fix by moving
495         this setting code down into RenderLayerBacking.
496         
497         RenderLayerCompositor now caches the setAcceleratesDrawing setting, as it does
498         for other compositing-related settings, so that RenderLayerBacking doesn't have
499         to grovel for Settings every time.
500
501         * rendering/RenderLayerBacking.cpp:
502         (WebCore::RenderLayerBacking::createGraphicsLayer):
503         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
504         * rendering/RenderLayerCompositor.cpp:
505         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
506         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
507         (WebCore::RenderLayerCompositor::updateBacking):
508         * rendering/RenderLayerCompositor.h:
509         (WebCore::RenderLayerCompositor::acceleratedDrawingEnabled):
510         (RenderLayerCompositor):
511
512 2012-03-23  Beth Dakin  <bdakin@apple.com>
513
514         https://bugs.webkit.org/show_bug.cgi?id=82083
515
516         Rubber-stamped by Simon Fraser.
517
518         This patch is just a name change. getExistingScrollAnimator() (which was 
519         added earlier today) is now existingScrollAnimator().
520         * loader/FrameLoader.cpp:
521         (WebCore::FrameLoader::transitionToCommitted):
522         * page/EventHandler.cpp:
523         (WebCore::EventHandler::handleGestureTapDown):
524         * page/FrameView.cpp:
525         (WebCore::FrameView::setAnimatorsAreActive):
526         * platform/ScrollView.cpp:
527         (WebCore::ScrollView::updateScrollbars):
528         * platform/ScrollableArea.cpp:
529         (WebCore::ScrollableArea::willStartLiveResize):
530         (WebCore::ScrollableArea::willEndLiveResize):
531         (WebCore::ScrollableArea::contentAreaWillPaint):
532         (WebCore::ScrollableArea::mouseEnteredContentArea):
533         (WebCore::ScrollableArea::mouseExitedContentArea):
534         (WebCore::ScrollableArea::mouseMovedInContentArea):
535         (WebCore::ScrollableArea::contentAreaDidShow):
536         (WebCore::ScrollableArea::contentAreaDidHide):
537         (WebCore::ScrollableArea::contentsResized):
538         (WebCore::ScrollableArea::serviceScrollAnimations):
539         * platform/ScrollableArea.h:
540         (WebCore::ScrollableArea::existingScrollAnimator):
541
542 2012-03-23  Abhishek Arya  <inferno@chromium.org>
543
544         Crash due to accessing removed parent lineboxes when clearing selection.
545         https://bugs.webkit.org/show_bug.cgi?id=81359
546
547         Reviewed by Eric Seidel.
548
549         Similar to r110323, adds the canUpdateSelectionOnRootLineBoxes
550         check to more places.
551
552         Test: editing/selection/clear-selection-crash.html
553
554         * rendering/RenderObject.cpp:
555         (WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):
556         * rendering/RenderSelectionInfo.h:
557         (WebCore::RenderSelectionInfo::RenderSelectionInfo):
558         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
559
560 2012-03-23  Beth Dakin  <bdakin@apple.com>
561
562         https://bugs.webkit.org/show_bug.cgi?id=82083
563         Too many ScrollAnimators are allocated on pages with frames
564
565         Reviewed by Geoffrey Garen.
566
567         This patch adds a new getter to ScrollableArea called 
568         getExistingScrollAnimator() unlike scrollAnimator() this new function will 
569         just return null if there is not already a ScrollAnimator. Callers should use 
570         this new function when they have business with ScrollAnimator that does not 
571         need to do anything when there are no scrollbars.
572         * loader/FrameLoader.cpp:
573         (WebCore::FrameLoader::transitionToCommitted):
574         * page/EventHandler.cpp:
575         (WebCore::EventHandler::handleGestureTapDown):
576         * page/FrameView.cpp:
577         (WebCore::FrameView::setAnimatorsAreActive):
578         * platform/ScrollView.cpp:
579         (WebCore::ScrollView::updateScrollbars):
580         * platform/ScrollableArea.cpp:
581         (WebCore::ScrollableArea::willStartLiveResize):
582         (WebCore::ScrollableArea::willEndLiveResize):
583         (WebCore::ScrollableArea::contentAreaWillPaint):
584         (WebCore::ScrollableArea::mouseEnteredContentArea):
585         (WebCore::ScrollableArea::mouseExitedContentArea):
586         (WebCore::ScrollableArea::mouseMovedInContentArea):
587         (WebCore::ScrollableArea::contentAreaDidShow):
588         (WebCore::ScrollableArea::contentAreaDidHide):
589         (WebCore::ScrollableArea::willRemoveHorizontalScrollbar):
590         (WebCore::ScrollableArea::contentsResized):
591         (WebCore::ScrollableArea::serviceScrollAnimations):
592         * platform/ScrollableArea.h:
593         (ScrollableArea):
594         (WebCore::ScrollableArea::getExistingScrollAnimator):
595
596 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
597
598         Deal with DOM modifications when evaluating source elements.
599         https://bugs.webkit.org/show_bug.cgi?id=81163
600
601         Reviewed by Alexey Proskuryakov.
602
603         Test: media/video-beforeload-remove-source.html
604
605         * dom/ContainerNode.cpp: Make NodeVector and collectNodes public, renamed as getChildNodes.
606         (WebCore::ContainerNode::takeAllChildrenFrom): collectNodes -> getChildNodes.
607         (WebCore::ContainerNode::willRemove): collectNodes -> getChildNodes.
608         (WebCore::ContainerNode::willRemoveChildren): collectNodes -> getChildNodes.
609         (WebCore::ContainerNode::insertedIntoDocument): collectNodes -> getChildNodes.
610         (WebCore::ContainerNode::removedFromDocument): collectNodes -> getChildNodes.
611         * dom/ContainerNode.h:
612         (WebCore::getChildNodes):
613
614         * editing/ReplaceSelectionCommand.cpp: Remove unused NodeVector declaration.
615
616         * html/HTMLMediaElement.cpp:
617         (WebCore::HTMLMediaElement::HTMLMediaElement): m_nextChildNodeToConsider and m_currentSourceNode
618             are now RefPtrs.
619         (WebCore::HTMLMediaElement::loadTimerFired): Protect HTMLMediaElement from being deleted during
620             a DOM modification during an event callback.
621         (WebCore::HTMLMediaElement::load): Ditto.
622         (WebCore::HTMLMediaElement::selectMediaResource): Set m_nextChildNodeToConsider to the first
623             child node, it will be the first node considered.
624         (WebCore::HTMLMediaElement::havePotentialSourceChild): m_nextChildNodeToConsider and m_currentSourceNode
625             are now RefPtrs.
626         (WebCore::HTMLMediaElement::selectNextSourceChild): Collect all child nodes in a vector before
627             looking for <source> nodes because 'beforeload' event handlers can mutate the DOM. Don't
628             use a <source> that is no longer a child node after 'beforeload'. Use 0 to represent the end
629             of the child node list because m_nextChildNodeToConsider is now a RefPtr so using the previous 
630             sentinel, "this", would cause a retain cycle.
631         (WebCore::HTMLMediaElement::sourceWasAdded):  m_nextChildNodeToConsider and m_currentSourceNode
632             are now RefPtrs.
633         (WebCore::HTMLMediaElement::sourceWillBeRemoved): Ditto.
634         (WebCore::HTMLMediaElement::getPluginProxyParams): Protect HTMLMediaElement from being deleted during
635             a DOM modification during an event callback.
636         * html/HTMLMediaElement.h:
637
638 2012-03-23  Dean Jackson  <dino@apple.com>
639
640         Disable CSS_SHADERS in Apple builds
641         https://bugs.webkit.org/show_bug.cgi?id=81996
642
643         Reviewed by Simon Fraser.
644
645         Remove ENABLE_CSS_SHADERS from FeatureDefines. It's now in Platform.h.
646
647         * Configurations/FeatureDefines.xcconfig:
648
649 2012-03-23  Dave Michael  <dmichael@chromium.org>
650
651         Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
652         https://bugs.webkit.org/show_bug.cgi?id=80428
653
654         Reviewed by Eric Seidel and Ryosuke Niwa.
655
656         Make HTMLPluginElement release its m_NPObject in detach() to break a
657         reference-counting cycle that happens on reload or navigation. With this
658         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
659         was removed. Note that Releasing m_NPObject does not result in a call to
660         the plugin; it simply releases a reference count on the wrapper object
661         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
662         when the render tree is destroyed, when PluginView calls
663         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
664         detach, because it can not result in layout or style changes.
665
666         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
667         window.internals to enable testing.
668
669         Test: plugins/netscape-dom-access-and-reload.html
670
671         * WebCore.exp.in:
672         * html/HTMLPlugInElement.cpp:
673         (WebCore::HTMLPlugInElement::detach):
674         * html/HTMLPlugInElement.h:
675         (HTMLPlugInElement):
676         * testing/Internals.cpp:
677         (WebCore):
678         (WebCore::Internals::numberOfLiveNodes):
679         (WebCore::Internals::numberOfLiveDocuments):
680         * testing/Internals.h:
681         (Internals):
682         * testing/Internals.idl:
683
684 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
685
686         CSSParser doesn't set border-*-width/style/color to initial by border shorthand property
687         https://bugs.webkit.org/show_bug.cgi?id=82040
688
689         Reviewed by Antti Koivisto.
690
691         The border shorthand property sets values for border-width, border-style, and border-color shorthand properties.
692         While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
693         such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can't and the
694         initialization in parseShorthand fails for the border property.
695
696         Fixed the bug by explicitly initializing longhand properties.
697
698         Changing the behavior here is unlikely to break the Web since our behavior already differs from that of Firefox
699         and Internet Explorer. Both of those browsers return the actual initial values such as "medium" and "currentColor".
700         This discrepancy is tracked by https://bugs.webkit.org/show_bug.cgi?id=82078.
701
702         Test: fast/css/border-shorthand-initialize-longhands.html
703
704         * css/CSSParser.cpp:
705         (WebCore::CSSParser::parseValue): Uses borderAbridgedLonghand.
706         (WebCore::CSSParser::parseShorthand): Uses longhand properties for initialization if one is available.
707         This allows us to initialize multiple properties (e.g. border-*-color) for a single property missing in the set.
708         * css/CSSPropertyLonghand.cpp:
709         (WebCore::borderAbridgedLonghand): Added. The longhand here (border-width, border-style, border-color) is
710         "abridged" in the sense that they're still shorthands.
711         * css/CSSPropertyLonghand.h:
712         (WebCore::CSSPropertyLonghand::CSSPropertyLonghand):
713         (CSSPropertyLonghand): Added the version that takes longhand instances for initialization purposes.
714         (WebCore::CSSPropertyLonghand::longhandsForInitialization):
715
716 2012-03-23  Tony Chang  <tony@chromium.org>
717
718         [chromium] rename newwtf target back to wtf
719         https://bugs.webkit.org/show_bug.cgi?id=82064
720
721         Reviewed by Adam Barth.
722
723         No new tests, only renaming a build target.
724
725         * WebCore.gyp/WebCore.gyp:
726
727 2012-03-23  Adrienne Walker  <enne@google.com>
728
729         [chromium] Turn off painting of scrollbars on compositor thread for unsupported platforms
730         https://bugs.webkit.org/show_bug.cgi?id=82066
731
732         Reviewed by James Robinson.
733
734         With threaded compositing, OSX will crash and Windows will have black
735         scrollbars. Fix that by reverting to the previosu behavior of updating
736         scrollbars on the main thread instead.
737
738         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
739         (WebCore::scrollbarLayerDidChange):
740
741 2012-03-23  Dan Bernstein  <mitz@apple.com>
742
743         <rdar://problem/7883987> ASSERTION FAILED: ASSERT(input == AnimationStateInputEndTimerFired || input == AnimationStateInputPlayStatePaused) in AnimationBase::updateStateMachine causing multiple "crashes" on Lion Intel Debug WebKit testers
744         https://bugs.webkit.org/show_bug.cgi?id=81351
745
746         Rubber-stamped by Jessie Berlin.
747
748         * page/animation/AnimationBase.cpp:
749         (WebCore::AnimationBase::updateStateMachine): Replaced the assertion with a LOG_ERROR so that
750         the issue is still noticeable, but it does not automatically make the debug bots red.
751
752 2012-03-23  Mike Lawther  <mikelawther@chromium.org>
753
754         CSS3 calc: image sizing works with mixed percentage/absolute
755         https://bugs.webkit.org/show_bug.cgi?id=82017
756
757         Reviewed by Ojan Vafai.
758
759         Test: css3/calc/img-size-expected.html
760
761         * rendering/RenderBox.cpp:
762         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
763         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
764
765 2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
766
767         REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
768         https://bugs.webkit.org/show_bug.cgi?id=81826
769
770         Reviewed by Tony Chang.
771
772         Covered by tables/mozilla/bugs/bug27038-{1|2}.html.
773
774         This partly reverts r107971: the extra logical height distribution change was not needed
775         to fix the bug (it is needed by the test though). We revert to giving all the extra height
776         to the first tbody and not the first section.
777
778         This is broken but unfortunately some websites are relying on that. Getting a real
779         distribution algorithm is covered by bug 81824. However this is super tricky to get
780         right and I did not want to add more compatibility risks until I have something solid.
781
782         * rendering/RenderTable.cpp:
783         (WebCore::RenderTable::distributeExtraLogicalHeight):
784
785 2012-03-23  Xingnan Wang  <xingnan.wang@intel.com>
786
787         Optimize for IPP in DirectConvolver::process()
788         https://bugs.webkit.org/show_bug.cgi?id=80255
789
790         Reviewed by Chris Rogers.
791
792         Increase ~2X performance by conv() in IPP.
793
794         * platform/audio/DirectConvolver.cpp:
795         (WebCore::DirectConvolver::DirectConvolver):
796         (WebCore::DirectConvolver::process):
797         * platform/audio/DirectConvolver.h:
798         (DirectConvolver):
799
800 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
801
802         MediaStream API (JSEP): Introducing PeerConnection00 and IceCallback
803         https://bugs.webkit.org/show_bug.cgi?id=81657
804
805         Reviewed by Adam Barth.
806
807         Last major WebCore patch for the JSEP PeerConnection, together with the associated
808         IceCallback (they both depend on each other and IceCallback has very few lines of real code).
809
810         My next patch after this one will do a major overhaul of the existing layout tests
811         and add a few new ones.
812
813         * GNUmakefile.list.am:
814         * Modules/mediastream/DOMWindowMediaStream.idl:
815         * Modules/mediastream/IceCallback.h: Added.
816         (WebCore):
817         (IceCallback):
818         (WebCore::IceCallback::~IceCallback):
819         * Modules/mediastream/IceCallback.idl: Added.
820         * Modules/mediastream/PeerConnection00.cpp: Added.
821         (WebCore):
822         (WebCore::PeerConnection00::create):
823         (WebCore::PeerConnection00::PeerConnection00):
824         (WebCore::PeerConnection00::~PeerConnection00):
825         (WebCore::PeerConnection00::hasLocalAudioTrack):
826         (WebCore::PeerConnection00::hasLocalVideoTrack):
827         (WebCore::PeerConnection00::parseMediaHints):
828         (WebCore::PeerConnection00::createOffer):
829         (WebCore::PeerConnection00::createAnswer):
830         (WebCore::PeerConnection00::setLocalDescription):
831         (WebCore::PeerConnection00::setRemoteDescription):
832         (WebCore::PeerConnection00::localDescription):
833         (WebCore::PeerConnection00::remoteDescription):
834         (WebCore::PeerConnection00::startIce):
835         (WebCore::PeerConnection00::processIceMessage):
836         (WebCore::PeerConnection00::readyState):
837         (WebCore::PeerConnection00::iceState):
838         (WebCore::PeerConnection00::addStream):
839         (WebCore::PeerConnection00::removeStream):
840         (WebCore::PeerConnection00::localStreams):
841         (WebCore::PeerConnection00::remoteStreams):
842         (WebCore::PeerConnection00::close):
843         (WebCore::PeerConnection00::didGenerateIceCandidate):
844         (WebCore::PeerConnection00::didChangeReadyState):
845         (WebCore::PeerConnection00::didChangeIceState):
846         (WebCore::PeerConnection00::didAddRemoteStream):
847         (WebCore::PeerConnection00::didRemoveRemoteStream):
848         (WebCore::PeerConnection00::interfaceName):
849         (WebCore::PeerConnection00::scriptExecutionContext):
850         (WebCore::PeerConnection00::stop):
851         (WebCore::PeerConnection00::eventTargetData):
852         (WebCore::PeerConnection00::ensureEventTargetData):
853         (WebCore::PeerConnection00::changeReadyState):
854         (WebCore::PeerConnection00::changeIceState):
855         * Modules/mediastream/PeerConnection00.h: Added.
856         (WebCore):
857         (PeerConnection00):
858         (WebCore::PeerConnection00::refEventTarget):
859         (WebCore::PeerConnection00::derefEventTarget):
860         * Modules/mediastream/PeerConnection00.idl: Added.
861         * WebCore.gypi:
862         * bindings/generic/RuntimeEnabledFeatures.h:
863         (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
864         * bindings/js/JSPeerConnection00Custom.cpp: Added.
865         (WebCore):
866         (WebCore::JSPeerConnection00Constructor::constructJSPeerConnection00):
867         * dom/EventTargetFactory.in:
868
869 2012-03-23  Adrienne Walker  <enne@google.com>
870
871         [chromium] Fix scrollbarLayerLostContext flaky test crash on 10.6
872         https://bugs.webkit.org/show_bug.cgi?id=82062
873
874         Reviewed by James Robinson.
875
876         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
877         (CCScrollbarLayerImpl):
878
879 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
880
881         [chromium] MediaStream API (JSEP): Extending WebMediaStreamCenter
882         https://bugs.webkit.org/show_bug.cgi?id=81924
883
884         Reviewed by Adam Barth.
885
886         Nothing to test, just moving methods.
887
888         * platform/mediastream/MediaStreamCenter.cpp:
889         (WebCore::MediaStreamCenter::constructSDP):
890         (WebCore):
891
892 2012-03-23  Sami Kyostila  <skyostil@chromium.org>
893
894         Reuse buffer allocation if canvas size does not change
895         https://bugs.webkit.org/show_bug.cgi?id=80871
896
897         Reviewed by Stephen White.
898
899         If the user changes the width or height attributes of a canvas element,
900         the contents of the canvas should be cleared and the context state
901         should be reset. This has become a common idiom to clear the canvas
902         "efficiently" at the start of a frame.
903
904         Previously, this code path triggered a full reallocation of the image
905         buffer backing the canvas, leading to reduced performance. This patch
906         implements an optimization where we reuse the previous image buffer
907         allocation if the size of the canvas did not change. Also, instead of
908         clearing the canvas every time its dimensions are touched, we only clear
909         if anything has been drawn into the canvas since it was previously
910         cleared.
911
912         Note that for now this optimization only applies for 2D canvases,
913         since it is not entirely clear how touching the dimensions of a WebGL
914         canvas should work.
915
916         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
917               existing layout tests for canvas resetting.
918
919         * html/HTMLCanvasElement.cpp:
920         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
921         (WebCore::HTMLCanvasElement::reset):
922         (WebCore::HTMLCanvasElement::createImageBuffer): Save the initial
923         graphics context state so we can restore it without creating a new
924         context.
925         (WebCore::HTMLCanvasElement::clearImageBuffer):
926         (WebCore):
927         (WebCore::HTMLCanvasElement::clearCopiedImage):
928         * html/HTMLCanvasElement.h:
929         (HTMLCanvasElement):
930         * html/canvas/CanvasRenderingContext2D.cpp:
931         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
932         compositor when the context is reset, because clearing the image buffer
933         does the same thing. We can also skip the notification if we did not
934         have an image buffer at the time of the reset, because the reset will
935         not have any visual impact in this case. Finally, if the canvas size
936         did change, the notification is also unnecessary because of the call
937         to RenderObject::repaint() from HTMLCanvasElement::reset().
938
939 2012-03-22  Martin Robinson  <mrobinson@igalia.com>
940
941         Fix some code generation warnings on GTK+.
942
943         Reviewed by Gustavo Noronha Silva.
944
945         No new tests. This just fixes warnings.
946
947         * GNUmakefile.am: Remove nonexistent directories from the list IDL directories.
948
949 2012-03-23  Sheriff Bot  <webkit.review.bot@gmail.com>
950
951         Unreviewed, rolling out r111751.
952         http://trac.webkit.org/changeset/111751
953         https://bugs.webkit.org/show_bug.cgi?id=82060
954
955         caused 15% page cycler regression for chromium-linux
956         (Requested by eae on #webkit).
957
958         * css/CSSStyleSelector.cpp:
959         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
960
961 2012-03-23  Kentaro Hara  <haraken@chromium.org>
962
963         Support [ImplementedAs] for attributes
964         https://bugs.webkit.org/show_bug.cgi?id=81605
965
966         Reviewed by Adam Barth.
967
968         [ImplementedAs] just supports methods. [ImplementedAs] should support
969         attributes too.
970
971         Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
972
973         Test: bindings/scripts/test/TestObj.idl
974
975         * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
976         (AttributeNameForGetterAndSetter):
977
978         * bindings/scripts/test/TestObj.idl: Added a test case.
979
980         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
981         (WebDOMTestObj::strawberry):
982         (WebDOMTestObj::setStrawberry):
983         * bindings/scripts/test/CPP/WebDOMTestObj.h:
984         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
985         (webkit_dom_test_obj_get_strawberry):
986         (webkit_dom_test_obj_set_strawberry):
987         (webkit_dom_test_obj_get_property):
988         (webkit_dom_test_obj_class_init):
989         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
990         * bindings/scripts/test/JS/JSTestObj.cpp:
991         (WebCore):
992         (WebCore::jsTestObjStrawberry):
993         (WebCore::setJSTestObjStrawberry):
994         * bindings/scripts/test/JS/JSTestObj.h:
995         (WebCore):
996         * bindings/scripts/test/ObjC/DOMTestObj.h:
997         * bindings/scripts/test/ObjC/DOMTestObj.mm:
998         (-[DOMTestObj strawberry]):
999         (-[DOMTestObj setStrawberry:]):
1000         * bindings/scripts/test/V8/V8TestObj.cpp:
1001         (WebCore::TestObjInternal::strawberryAttrGetter):
1002         (TestObjInternal):
1003         (WebCore::TestObjInternal::strawberryAttrSetter):
1004         (WebCore):
1005
1006 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
1007
1008         The JSC code generator doesn't generate correct code for Constructors
1009         https://bugs.webkit.org/show_bug.cgi?id=82046
1010
1011         Reviewed by Kentaro Hara.
1012
1013         The main bulk of generated code for constructors uses the name jsConstructor
1014         for the created object, and then calls GenerateParametersCheck which generates
1015         code that uses the name castedThis.
1016
1017         * bindings/scripts/CodeGeneratorJS.pm:
1018         (GenerateConstructorDefinition):
1019         * bindings/scripts/test/JS/JSTestInterface.cpp:
1020         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
1021         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1022         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
1023         * bindings/scripts/test/JS/JSTestObj.cpp:
1024         (WebCore::JSTestObjConstructor::finishCreation):
1025         (WebCore::JSTestObjConstructor::constructJSTestObj):
1026         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1027         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
1028         * bindings/scripts/test/TestObj.idl:
1029         * bindings/scripts/test/V8/V8TestObj.cpp:
1030         (WebCore::V8TestObj::constructorCallback):
1031
1032 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
1033
1034         The JSC code generator can't handle boolean arguments for Callbacks
1035         https://bugs.webkit.org/show_bug.cgi?id=82045
1036
1037         Reviewed by Kentaro Hara.
1038
1039         CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
1040         for a Callback, so I added support for boolean values as well.
1041
1042         * bindings/scripts/CodeGeneratorJS.pm:
1043         (GenerateCallbackImplementation):
1044         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
1045         (WebDOMTestCallback::callbackWithBoolean):
1046         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
1047         (WebDOMTestCallback):
1048         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1049         (webkit_dom_test_callback_callback_with_boolean):
1050         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
1051         * bindings/scripts/test/JS/JSTestCallback.cpp:
1052         (WebCore::JSTestCallback::callbackWithBoolean):
1053         (WebCore):
1054         * bindings/scripts/test/JS/JSTestCallback.h:
1055         (JSTestCallback):
1056         * bindings/scripts/test/ObjC/DOMTestCallback.h:
1057         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
1058         (-[DOMTestCallback callbackWithBoolean:]):
1059         * bindings/scripts/test/TestCallback.idl:
1060         * bindings/scripts/test/V8/V8TestCallback.cpp:
1061         (WebCore::V8TestCallback::callbackWithBoolean):
1062         (WebCore):
1063         * bindings/scripts/test/V8/V8TestCallback.h:
1064         (V8TestCallback):
1065
1066 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1067
1068         Touch adjustment forgets some subtarget quads.
1069         https://bugs.webkit.org/show_bug.cgi?id=82044
1070
1071         Reviewed by Kenneth Rohde Christiansen.
1072
1073         Do not uncritically skip all nodes that are ancestors to other test results.
1074         Instead return the inner-most element if multiple nodes have the same distance.
1075
1076         Test: touchadjustment/block-testing.html
1077
1078         * page/TouchAdjustment.cpp:
1079         (WebCore::TouchAdjustment::compileSubtargetList):
1080         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
1081
1082 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1083
1084         TouchAdjustment does not correct for frame position
1085         https://bugs.webkit.org/show_bug.cgi?id=82043
1086
1087         Reviewed by Kenneth Rohde Christiansen.
1088
1089         Convert geometry to window coordinates before calculating distance.
1090
1091         Test: touchadjustment/iframe.html
1092
1093         * page/TouchAdjustment.cpp:
1094         (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
1095
1096 2012-03-23  Vlad Voicu  <vladv@rosedu.org>
1097
1098         Fixed minor WebInspector display issue
1099         Clicking on disabled sections in Styles Sidebar Pane creates new elements.
1100         https://bugs.webkit.org/show_bug.cgi?id=81925
1101
1102         Reviewed by Timothy Hatcher
1103
1104         No new tests should be required.
1105
1106         * inspector/front-end/StylesSidebarPane.js:
1107         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
1108         (WebInspector.StylePropertyTreeElement.prototype):
1109
1110 2012-03-23  Kentaro Hara  <haraken@chromium.org>
1111
1112         Unreviewed, rebaselined run-bindings-tests results.
1113
1114         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1115         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1116         * bindings/scripts/test/JS/JSTestObj.cpp:
1117         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
1118         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
1119         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
1120         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
1121         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
1122         * bindings/scripts/test/V8/V8TestObj.cpp:
1123         (WebCore::TestObjInternal::methodWithCallbackArgCallback):
1124         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
1125         (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
1126         (WebCore::TestObjInternal::overloadedMethod5Callback):
1127         (WebCore::TestObjInternal::overloadedMethodCallback):
1128
1129 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
1130
1131         cssText should use StringBuilder
1132         https://bugs.webkit.org/show_bug.cgi?id=82028
1133
1134         Reviewed by Hajime Morita.
1135
1136         Make StylePropertySet::asText more efficient by deploying StringBuilder;
1137         avoids heap churn by String::operator+ and String::operator+=.
1138
1139         * css/StylePropertySet.cpp:
1140         (WebCore::StylePropertySet::asText):
1141
1142 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
1143
1144         REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
1145         https://bugs.webkit.org/show_bug.cgi?id=82035
1146
1147         Rollout r111754 since it caused a test to fail and the test added by the patch
1148         is failing on Mac WebKit 2.
1149
1150         * WebCore.exp.in:
1151         * html/HTMLPlugInElement.cpp:
1152         (WebCore::HTMLPlugInElement::detach):
1153         (WebCore):
1154         (WebCore::HTMLPlugInElement::removedFromDocument):
1155         * html/HTMLPlugInElement.h:
1156         (HTMLPlugInElement):
1157         * testing/Internals.cpp:
1158         * testing/Internals.h:
1159         (Internals):
1160         * testing/Internals.idl:
1161
1162 2012-03-23  Adam Barth  <abarth@webkit.org>
1163
1164         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
1165         https://bugs.webkit.org/show_bug.cgi?id=82026
1166
1167         Reviewed by Kentaro Hara.
1168
1169         This patch removes DOMWindow::resetNotifications, which was unneeded
1170         special-case logic for clearing the notifications center.  The previous
1171         patch that tried to accomplish the same thing did not override
1172         willDetachPage, which is why it caused crashes.
1173
1174         There's actually a cleaner way to handle these cases, which will let us
1175         implement reconnectFrame, but that will need to wait for the next
1176         patch.
1177
1178         * notifications/DOMWindowNotifications.cpp:
1179         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
1180         (WebCore::DOMWindowNotifications::from):
1181         (WebCore::DOMWindowNotifications::webkitNotifications):
1182         (WebCore):
1183         (WebCore::DOMWindowNotifications::disconnectFrame):
1184         (WebCore::DOMWindowNotifications::willDetachPage):
1185         (WebCore::DOMWindowNotifications::reset):
1186         * notifications/DOMWindowNotifications.h:
1187         (DOMWindowNotifications):
1188         * page/DOMWindow.cpp:
1189         (WebCore::DOMWindow::willDetachPage):
1190         (WebCore::DOMWindow::disconnectDOMWindowProperties):
1191         (WebCore::DOMWindow::clearDOMWindowProperties):
1192         * page/DOMWindow.h:
1193         (DOMWindow):
1194         * page/Frame.cpp:
1195         (WebCore::Frame::willDetachPage):
1196
1197 2012-03-22  Adam Barth  <abarth@webkit.org>
1198
1199         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
1200         https://bugs.webkit.org/show_bug.cgi?id=82015
1201
1202         Reviewed by Kentaro Hara.
1203
1204         This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
1205         DOMWindowNotificiations.idl in preparation for moving notificiations
1206         into Modules.
1207
1208         A future patch will remove DOMWindow::resetNotificaitions in favor of
1209         more general mechanisms.
1210
1211         * CMakeLists.txt:
1212         * DerivedSources.make:
1213         * DerivedSources.pri:
1214         * GNUmakefile.list.am:
1215         * Target.pri:
1216         * WebCore.gypi:
1217         * WebCore.vcproj/WebCore.vcproj:
1218         * WebCore.xcodeproj/project.pbxproj:
1219         * notifications/DOMWindowNotifications.cpp: Added.
1220         (WebCore):
1221         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
1222         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
1223         (WebCore::DOMWindowNotifications::from):
1224         (WebCore::DOMWindowNotifications::webkitNotifications):
1225         (WebCore::DOMWindowNotifications::reset):
1226         (WebCore::DOMWindowNotifications::supplementName):
1227         * notifications/DOMWindowNotifications.h: Added.
1228         (WebCore):
1229         (DOMWindowNotifications):
1230         * notifications/DOMWindowNotifications.idl: Added.
1231         * page/DOMWindow.cpp:
1232         (WebCore::DOMWindow::~DOMWindow):
1233         (WebCore):
1234         (WebCore::DOMWindow::resetNotifications):
1235         * page/DOMWindow.h:
1236         (WebCore):
1237         (DOMWindow):
1238         * page/DOMWindow.idl:
1239
1240 2012-03-22  Li Yin  <li.yin@intel.com>
1241
1242         A client MUST close a connection if it detects a masked frame
1243         https://bugs.webkit.org/show_bug.cgi?id=81361
1244
1245         Reviewed by Kent Tamura.
1246
1247         A server must not mask any frames that it sends to the client.
1248         Change the test case, not mask the frames from server to client.
1249         
1250         Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
1251
1252         * Modules/websockets/WebSocketChannel.cpp:
1253         (WebCore::WebSocketChannel::processFrame):
1254
1255 2012-03-22  Li Yin  <li.yin@intel.com>
1256
1257         [WebSocket]The minimal number of bytes MUST be used to encode the length
1258         https://bugs.webkit.org/show_bug.cgi?id=81443
1259
1260         Reviewed by Kent Tamura.
1261
1262         From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
1263         the minimal number of bytes MUST be used to encode the length
1264         
1265         New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
1266
1267         * Modules/websockets/WebSocketChannel.cpp:
1268         (WebCore::WebSocketChannel::parseFrame):
1269
1270 2012-03-22  Adam Barth  <abarth@webkit.org>
1271
1272         Unreviewed.  Sort xcodeproj file.
1273
1274         * WebCore.xcodeproj/project.pbxproj:
1275
1276 2012-03-22  Mao Yujie  <yujie.mao@intel.com>
1277
1278         Implement strict testing criterion for callback function definition
1279         https://bugs.webkit.org/show_bug.cgi?id=80005
1280
1281         Reviewed by Adam Barth.
1282
1283         Callback function should be defined as the function type instead of
1284         the object type.
1285
1286         LayoutTest: fast/dom/MediaStream/argument-types.html
1287
1288         * bindings/scripts/CodeGeneratorJS.pm:
1289         (GenerateParametersCheckExpression):
1290         (GenerateParametersCheck):
1291         * bindings/scripts/CodeGeneratorV8.pm:
1292         (GenerateParametersCheckExpression):
1293         (GenerateParametersCheck):
1294
1295 2012-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1296
1297         Convert hasGrammarMarker to use Internals interface
1298         https://bugs.webkit.org/show_bug.cgi?id=82004
1299
1300         Reviewed by Ryosuke Niwa.
1301
1302         Remove hasGrammarMarker functions, because it is able to work in the
1303         cross-port way through the Internals interface.
1304
1305         No new tests, since we are improving here the infra-structure
1306         for testing a specific method.
1307
1308         * testing/Internals.cpp:
1309         (WebCore::Internals::hasGrammarMarker):
1310         (WebCore):
1311         * testing/Internals.h:
1312         (Internals):
1313         * testing/Internals.idl:
1314
1315 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
1316
1317         Add exception for the setter of "fftSize" in RealtimeAnalyserNode
1318         https://bugs.webkit.org/show_bug.cgi?id=81748
1319
1320         Reviewed by Chris Rogers.
1321
1322         * Modules/webaudio/RealtimeAnalyser.cpp:
1323         (WebCore::RealtimeAnalyser::setFftSize):
1324         * Modules/webaudio/RealtimeAnalyser.h:
1325         (RealtimeAnalyser):
1326         * Modules/webaudio/RealtimeAnalyserNode.cpp:
1327         (WebCore::RealtimeAnalyserNode::setFftSize):
1328         (WebCore):
1329         * Modules/webaudio/RealtimeAnalyserNode.h:
1330         (RealtimeAnalyserNode):
1331         * Modules/webaudio/RealtimeAnalyserNode.idl:
1332
1333 2012-03-22  Leo Yang  <leo.yang@torchmobile.com.cn>
1334
1335         [BlackBerry] Add HistoryItemViewState for BlackBerry port
1336         https://bugs.webkit.org/show_bug.cgi?id=81867
1337
1338         Reviewed by Rob Buis.
1339
1340         HistoryItemViewState is the blackberry specific field of HistoryItem.
1341         It's used to maintain the porting specific view state.
1342
1343         No new test because the port can't be built yet.
1344
1345         * history/HistoryItem.h:
1346         (HistoryItem):
1347         (WebCore::HistoryItem::viewState):
1348
1349 2012-03-22  SravanKumar Sandela  <ssandela@innominds.com>
1350
1351         Fieldset unexpectedly stretches to minimum intrinsic width
1352         https://bugs.webkit.org/show_bug.cgi?id=79128
1353
1354         Reviewed by Julien Chaffraix.
1355
1356         Fieldset element width will now check if css width is specified explicitly
1357         before stretching to minimum intrinsic width. The reference
1358         can be taken from IE9, instead of FF(FF acknowledged the broken behavior). 
1359
1360         Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
1361                fast/forms/fieldset-width-nostretch-ifspecified.html
1362
1363         * rendering/RenderFieldset.cpp:
1364         (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
1365         (WebCore):
1366         * rendering/RenderFieldset.h:
1367         (RenderFieldset):
1368
1369 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
1370
1371         [chromium] Target surface should be damaged for a new layers even when layer had no changes
1372         https://bugs.webkit.org/show_bug.cgi?id=81879
1373
1374         Reviewed by Adrienne Walker.
1375
1376         Unit test added to CCDamageTrackerTest.
1377
1378         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1379         (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
1380         boolean arg to detect if the layer is new on this update.
1381
1382         (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
1383         damages the target surface if the layer is new.
1384
1385         (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
1386         logic that damages the target surface if the descendant surface is
1387         new; similar logic for the surface's replica if the replica is new.
1388
1389         * platform/graphics/chromium/cc/CCDamageTracker.h:
1390         (CCDamageTracker):
1391
1392 2012-03-22  Charles Wei  <charles.wei@torchmobile.com.cn>
1393
1394         [BlackBerry] Need to store the meta info of a page in the ViewState of the history
1395         https://bugs.webkit.org/show_bug.cgi?id=82000
1396
1397         Reviewed by Rob Buis.
1398
1399         Internally reviewed by George Staikos.
1400
1401         No new tests, BlackBerry porting doesn't build yet upstreaming.
1402
1403         * history/blackberry/HistoryItemViewState.h:
1404         (WebCore::HistoryItemViewState::HistoryItemViewState):
1405         (HistoryItemViewState):
1406
1407 2012-03-22  Adam Klein  <adamk@chromium.org>
1408
1409         [v8] wrapSlow methods should ref underlying object before creating wrapper
1410         https://bugs.webkit.org/show_bug.cgi?id=81919
1411
1412         Reviewed by Adam Barth.
1413
1414         Because instatiating the wrapper can trigger GC, it's important that
1415         wrapSlow() hold a reference to an object when creating a wrapper for
1416         that object. Once the V8 wrapper exists and is associated with the object,
1417         the reference can be handed off (via leakRef) to be handled by the normal
1418         binding code logic (where derefObject is called if the handle is GCed).
1419
1420         Binding tests have been updated to reflect this change.
1421
1422         Testing the change directly is hard. Any test landed today would only
1423         be a valid test until V8's logic about when to GC changes, at which point
1424         it would become dead weight. So I don't think it's worth landing a
1425         layout test along with this.
1426
1427         * bindings/scripts/CodeGeneratorV8.pm:
1428         (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
1429         (GenerateToV8Converters): Get rid of the explicit call to ref() and
1430         instead call leakRef() when adding a RefCounted object to the DOM map.
1431         (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
1432         * bindings/scripts/test/V8/V8Float64Array.cpp:
1433         (WebCore::V8Float64Array::wrapSlow):
1434         * bindings/scripts/test/V8/V8Float64Array.h:
1435         (V8Float64Array):
1436         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1437         (WebCore::V8TestActiveDOMObject::wrapSlow):
1438         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1439         (V8TestActiveDOMObject):
1440         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1441         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1442         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1443         (V8TestCustomNamedGetter):
1444         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1445         (WebCore::V8TestEventConstructor::wrapSlow):
1446         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1447         (V8TestEventConstructor):
1448         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1449         (WebCore::V8TestEventTarget::wrapSlow):
1450         * bindings/scripts/test/V8/V8TestEventTarget.h:
1451         (V8TestEventTarget):
1452         * bindings/scripts/test/V8/V8TestInterface.cpp:
1453         (WebCore::V8TestInterface::wrapSlow):
1454         * bindings/scripts/test/V8/V8TestInterface.h:
1455         (V8TestInterface):
1456         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1457         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1458         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1459         (V8TestMediaQueryListListener):
1460         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1461         (WebCore::V8TestNamedConstructor::wrapSlow):
1462         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1463         (V8TestNamedConstructor):
1464         * bindings/scripts/test/V8/V8TestObj.cpp:
1465         (WebCore::V8TestObj::wrapSlow):
1466         * bindings/scripts/test/V8/V8TestObj.h:
1467         (V8TestObj):
1468         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1469         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1470         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1471         (V8TestSerializedScriptValueInterface):
1472
1473 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1474
1475         [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
1476         https://bugs.webkit.org/show_bug.cgi?id=81887
1477
1478         Reviewed by Rob Buis.
1479
1480         Fixed SQL issue when clearing table logins and table never_remember.
1481
1482         No new tests.
1483
1484         * platform/network/blackberry/CredentialBackingStore.cpp:
1485         (WebCore::CredentialBackingStore::clearLogins):
1486         (WebCore::CredentialBackingStore::clearNeverRemember):
1487
1488 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1489
1490         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
1491         https://bugs.webkit.org/show_bug.cgi?id=80135
1492
1493         Reviewed by Rob Buis.
1494
1495         Modified the interface function authenticationChallenge() in class
1496         PageClientBlackBerry, moved Credential from return value to the
1497         function's reference parameter, and returned a bool to indicate if
1498         user pressed Ok button or not.
1499         Removed the logic which checks m_currentWebChallenge not null,
1500         because we should challenge user again if the last provided credential
1501         is not valid; also added the logic that will popup challenge
1502         dialog again immediately if user press Ok buttton directly without
1503         inputting anything.
1504
1505         No new tests.
1506
1507         * platform/blackberry/PageClientBlackBerry.h:
1508         * platform/network/blackberry/NetworkJob.cpp:
1509         (WebCore::NetworkJob::handleAuthHeader):
1510         (WebCore::NetworkJob::sendRequestWithCredentials):
1511
1512 2012-03-22  Jason Liu  <jason.liu@torchmobile.com.cn>
1513
1514         [BlackBerry] Synchronize platform/network/blackberry
1515         https://bugs.webkit.org/show_bug.cgi?id=81874
1516
1517         We changed a lot in these files locally. But the changes are not upstreamed.
1518         It is not convenient to do the other upstreaming work based on these differences.
1519         So upstream these changes.
1520
1521         Reviewed by Rob Buis.
1522
1523         No new tests. Just synchronize codes.
1524
1525         * platform/network/blackberry/NetworkJob.cpp:
1526         (WebCore::NetworkJob::NetworkJob):
1527         (WebCore::NetworkJob::initialize):
1528         (WebCore::NetworkJob::handleNotifyHeaderReceived):
1529         (WebCore::NetworkJob::handleNotifyDataReceived):
1530         (WebCore::NetworkJob::sendResponseIfNeeded):
1531         (WebCore::NetworkJob::sendRequestWithCredentials):
1532         (WebCore::NetworkJob::handleAbout):
1533         * platform/network/blackberry/NetworkJob.h:
1534         (WebCore::NetworkJob::isError):
1535         (NetworkJob):
1536         * platform/network/blackberry/NetworkManager.cpp:
1537         (WebCore::NetworkManager::startJob):
1538         * platform/network/blackberry/ResourceRequest.h:
1539         (WebCore::ResourceRequest::ResourceRequest):
1540         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1541         (WebCore::platformTargetTypeForRequest):
1542
1543 2012-03-22  Tom Sepez  <tsepez@chromium.org>
1544
1545         XSS Auditor bypass via script tag src=data:, URLS.
1546         https://bugs.webkit.org/show_bug.cgi?id=81948
1547
1548         Reviewed by Adam Barth.
1549
1550         This change fixes an XSSAuditor bypass wherby a script with a data: URL src
1551         attribute could evade detection by using characters from the page to create
1552         a snippet for matching not found in the URL's reflected vector.  This change 
1553         terminates the snippet for matching earlier in these cases.
1554         
1555         Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
1556
1557         * html/parser/XSSAuditor.cpp:
1558         (WebCore::XSSAuditor::decodedSnippetForAttribute):
1559
1560 2012-03-22  Dana Jansens  <danakj@chromium.org>
1561
1562         [chromium] Incorrect assert on animating opacity for a surface
1563         https://bugs.webkit.org/show_bug.cgi?id=81994
1564
1565         Reviewed by Adrienne Walker.
1566
1567         Draw opacity and animation state match on the surface itself. A
1568         surface with animating opacity always has an owning layer without
1569         animation, as the surface does the animation for it.
1570
1571         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1572         (WebCore::CCLayerTreeHost::paintLayerContents):
1573
1574 2012-03-22  Dana Jansens  <danakj@chromium.org>
1575
1576         [chromium] Skip frames when checkerboarding an animation
1577         https://bugs.webkit.org/show_bug.cgi?id=81716
1578
1579         Reviewed by Adrienne Walker.
1580
1581         This will stop drawing frames when prepareToDraw fails, if the draw is
1582         not forced. The expected behaviour is outlined below by the unit tests.
1583
1584         When a draw fails, we:
1585         1. Set m_needsRedraw to try again next vsync
1586         2. Set m_needsCommit because we need more data from webkit to succeed
1587         3. Set m_drawIfPossibleFailed. This allows us to try draw again within
1588         the same vsync *if* a commit finishes during this time.
1589
1590         Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
1591                    CCSchedulerTest.RequestCommitInsideFailedDraw
1592                    CCSchedulerTest.NoBeginFrameWhenDrawFails
1593                    CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
1594                    CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
1595                    CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
1596                    CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
1597                    CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
1598
1599         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1600         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1601         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1602         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1603         (CCLayerTreeHostImpl):
1604         * platform/graphics/chromium/cc/CCScheduler.cpp:
1605         (WebCore::CCScheduler::processScheduledActions):
1606         * platform/graphics/chromium/cc/CCScheduler.h:
1607         (CCSchedulerClient):
1608         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
1609         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
1610         (WebCore::CCSchedulerStateMachine::nextAction):
1611         (WebCore::CCSchedulerStateMachine::updateState):
1612         (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
1613         (WebCore):
1614         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
1615         (CCSchedulerStateMachine):
1616         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1617         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
1618         (WebCore):
1619         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
1620         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
1621         * platform/graphics/chromium/cc/CCThreadProxy.h:
1622         (CCThreadProxy):
1623
1624 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
1625
1626         [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
1627         https://bugs.webkit.org/show_bug.cgi?id=81968
1628
1629         Reviewed by Adrienne Walker.
1630
1631         Added unit test to existing tests for TreeSynchronizer.
1632
1633         When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
1634         the new CCLayerImpl will default to an empty region.
1635
1636         * platform/graphics/chromium/LayerChromium.h:
1637         (WebCore::LayerChromium::nonFastScrollableRegion):
1638         (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
1639         * platform/graphics/chromium/TreeSynchronizer.cpp:
1640         (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
1641
1642 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
1643
1644         [CMake] Unreviewed build fix after r111778.
1645
1646         * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
1647         ${WTF_DIR}/wtf ones.
1648
1649 2012-03-22  Tony Chang  <tony@chromium.org>
1650
1651         Unreviewed, fix chromium build after wtf move.
1652
1653         Only use newwtf, remove references to wtf.
1654
1655         * WebCore.gyp/WebCore.gyp:
1656
1657 2012-03-22  Benjamin Poulain  <bpoulain@apple.com>
1658
1659         Remove an obsolete comment regarding magic frames from Geolocation
1660         https://bugs.webkit.org/show_bug.cgi?id=81871
1661
1662         Reviewed by Alexey Proskuryakov.
1663
1664         Moving a frame into another document is no longer possible after r111361. The comment
1665         is now irrelevant.
1666
1667         * Modules/geolocation/Geolocation.cpp:
1668         (WebCore::Geolocation::stop):
1669
1670 2012-03-22  Csaba Osztrogonác  <ossy@webkit.org>
1671
1672         Actually move WTF files to their new home
1673         https://bugs.webkit.org/show_bug.cgi?id=81844
1674
1675         [Qt] Unreviewed buildfix after r111778.
1676
1677         * Target.pri:
1678
1679 2012-03-22  Kentaro Hara  <haraken@chromium.org>
1680
1681         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
1682         https://bugs.webkit.org/show_bug.cgi?id=81852
1683
1684         Reviewed by Adam Barth.
1685
1686         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
1687
1688         Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
1689         Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
1690         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
1691         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
1692         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
1693         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
1694         ...
1695
1696         This is because [Constructor(...)] does not yet support [Optional] arguments.
1697         It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
1698         https://trac.webkit.org/wiki/WebKitIDL#Constructor
1699
1700         This patch replaces [Optional] with [Optional=DefaultIsUndefined]
1701         in TestSerializedScriptValueInterface.idl.
1702
1703         Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
1704
1705         * bindings/scripts/CodeGeneratorJS.pm:
1706         (GenerateConstructorDefinition):
1707         * bindings/scripts/CodeGeneratorV8.pm:
1708         (GenerateConstructorCallback):
1709         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1710         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
1711         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
1712         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1713         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
1714
1715 2012-03-22  Michal Mocny  <mmocny@google.com>
1716
1717         [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
1718         https://bugs.webkit.org/show_bug.cgi?id=81823
1719
1720         Reviewed by Adrienne Walker.
1721
1722         New UnitTests: LayerRendererChromiumTest
1723
1724         * platform/graphics/chromium/LayerRendererChromium.cpp:
1725         (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1726         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
1727         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1728         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
1729         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1730         (WebCore):
1731         (WebCore::LayerRendererChromium::LayerRendererChromium):
1732         (WebCore::LayerRendererChromium::initialize):
1733         (WebCore::LayerRendererChromium::~LayerRendererChromium):
1734         (WebCore::LayerRendererChromium::setVisible):
1735         (WebCore::LayerRendererChromium::swapBuffers):
1736         (WebCore::LayerRendererChromium::discardFramebuffer):
1737         (WebCore::LayerRendererChromium::ensureFramebuffer):
1738         * platform/graphics/chromium/LayerRendererChromium.h:
1739         (WebCore):
1740         (LayerRendererChromiumClient):
1741         (LayerRendererChromium):
1742         (WebCore::LayerRendererChromium::isFramebufferDiscarded):
1743         (ScopedEnsureFramebufferAllocation):
1744         (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
1745         (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
1746         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1747         (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
1748         (LayerRendererCapabilities):
1749         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1750         (WebCore::CCLayerTreeHostImpl::setVisible):
1751         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1752         (CCLayerTreeHostImpl):
1753         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1754         (WebCore::CCSingleThreadProxy::compositeAndReadback):
1755         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1756         (WebCore::CCThreadProxy::compositeAndReadback):
1757
1758 2012-03-22  Adam Barth  <abarth@webkit.org>
1759
1760         ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
1761         https://bugs.webkit.org/show_bug.cgi?id=80570
1762
1763         Reviewed by Ryosuke Niwa.
1764
1765         These functions use weak iteration patterns, but as far as I can tell,
1766         we never execute script below these functions.  This patch adds ASSERTs
1767         to help us avoid adding events in the future.
1768
1769         * dom/ContainerNode.cpp:
1770         (WebCore::ContainerNode::insertedIntoTree):
1771         (WebCore::ContainerNode::removedFromTree):
1772         * html/HTMLMediaElement.cpp:
1773         (WebCore::HTMLMediaElement::loadInternal):
1774             - There's a somewhat complex call chain from insertedIntoTree into
1775               HTMLMediaElement, and somewhat complex control flow below
1776               loadInternal that eventually leads to the BeforeLoad event being
1777               fired.  In studying this code, I don't see a way for the
1778               BeforeLoad event to be fired during insertedIntoTree, but I've
1779               added this assert here to make sure we don't call loadInternal
1780               when we're not supposed to dispatch events.  This ASSERT should
1781               help us catch these BeforeLoad errors more quickly.
1782
1783 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
1784
1785         Crash in fast/dom/navigator-detached-nocrash.html
1786         https://bugs.webkit.org/show_bug.cgi?id=81773
1787
1788         Reviewed by Adam Barth.
1789
1790         BatteryManager::create() blindly assumes the Navigator* it
1791         receives has a valid Frame, which is not always the case, as made
1792         evident by the crashing test.
1793
1794         Follow abarth's suggestion and just stop
1795         NavigatorBattery::webkitBattery() before it reaches the call to
1796         BatteryManager::create() if that's the case.
1797
1798         No new tests, covered by fast/dom/navigator-detached-nocrash.html.
1799
1800         * Modules/battery/NavigatorBattery.cpp:
1801         (WebCore::NavigatorBattery::webkitBattery):
1802
1803 2012-03-22  Emil A Eklund  <eae@chromium.org>
1804
1805         Unreviewed, add missing include statement for CSSValueList.h.
1806
1807         * css/CSSStyleSelector.h:
1808
1809 2012-03-22  Tony Chang  <tony@chromium.org>
1810
1811         flexbox flexing implementation should match the spec
1812         https://bugs.webkit.org/show_bug.cgi?id=70796
1813
1814         Reviewed by Ojan Vafai.
1815
1816         Match the algorithm in the spec. Handling min/max constraints are slightly improved.
1817         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
1818
1819         New test cases in css3/flexbox/flex-algorithm-min-max.html.
1820
1821         * rendering/RenderFlexibleBox.cpp:
1822         (WebCore::adjustFlexSizeForMinAndMax): Step 5 of resolving flexible lengths.
1823         (WebCore):
1824         (WebCore::RenderFlexibleBox::Violation::Violation):
1825         (RenderFlexibleBox::Violation):
1826         (WebCore::RenderFlexibleBox::freezeViolations): Used by step 6.
1827         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
1828         * rendering/RenderFlexibleBox.h:
1829
1830 2012-03-22  Emil A Eklund  <eae@chromium.org>
1831
1832         Unreviewed, add missing import.
1833
1834         * rendering/RenderThemeMac.mm:
1835
1836 2012-03-22  Anders Carlsson  <andersca@apple.com>
1837
1838         ASSERT(!needsLayout) in RenderView.cpp when visiting http://www.panic.com/blog/
1839         https://bugs.webkit.org/show_bug.cgi?id=81953
1840         <rdar://problem/11086998>
1841
1842         Reviewed by Sam Weinig.
1843
1844         If a page ends up creating CATiledLayers, CA transactions can be committed outside of the normal
1845         CA run loop observer, so we can't call setNeedsDisplay on tile cache layers directly because then
1846         we'll end up calling into painting code before all the layers have been flushed.
1847
1848         Fix this by adding a list of dirty rects to platformCALayerDidCreateTiles and change GraphicsLayerCA to
1849         mark them as dirty. This ensures that any CA transaction commits won't cause newly added layers to be painted.
1850
1851         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1852         (WebCore::LayerClient::platformCALayerDidCreateTiles):
1853         * platform/graphics/ca/GraphicsLayerCA.cpp:
1854         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
1855         * platform/graphics/ca/GraphicsLayerCA.h:
1856         (GraphicsLayerCA):
1857         * platform/graphics/ca/PlatformCALayerClient.h:
1858         (PlatformCALayerClient):
1859         * platform/graphics/ca/mac/TileCache.mm:
1860         (WebCore::TileCache::setScale):
1861         (WebCore::TileCache::revalidateTiles):
1862         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
1863         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
1864
1865 2012-03-19  Robert Hogan  <robert@webkit.org>
1866
1867         Text should overflow when list item height set to 0
1868         https://bugs.webkit.org/show_bug.cgi?id=78726
1869
1870         Reviewed by Julien Chaffraix.
1871
1872         Tests: css2.1/20110323/height-applies-to-010a-expected.html
1873                fast/css/heightless-list-item-expected.html
1874                fast/css/heightless-list-item.html
1875
1876         * rendering/RenderListItem.cpp:
1877         (WebCore::RenderListItem::paint):
1878            If the list item has height:0, only paint it if the list item allows any block or inline content 
1879            to overflow unclipped. The zero-height check is a shortcut to avoid unnecessary painting and 
1880            this seems to be the only case where there's something to do.
1881
1882 2012-03-22  Dave Michael  <dmichael@chromium.org>
1883
1884         HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
1885         https://bugs.webkit.org/show_bug.cgi?id=80428
1886
1887         Reviewed by Eric Seidel.
1888
1889         Make HTMLPluginElement release its m_NPObject in detach() to break a
1890         reference-counting cycle that happens on reload or navigation. With this
1891         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
1892         was removed. Note that Releasing m_NPObject does not result in a call to
1893         the plugin; it simply releases a reference count on the wrapper object
1894         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
1895         when the render tree is destroyed, when PluginView calls
1896         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
1897         detach, because it can not result in layout or style changes.
1898
1899         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
1900         window.internals to enable testing.
1901
1902         Test: plugins/netscape-dom-access-and-reload.html
1903
1904         * WebCore.exp.in:
1905         * html/HTMLPlugInElement.cpp:
1906         (WebCore::HTMLPlugInElement::detach):
1907         * html/HTMLPlugInElement.h:
1908         (HTMLPlugInElement):
1909         * testing/Internals.cpp:
1910         (WebCore::Internals::numberOfLiveDocuments):
1911         (WebCore::Internals::numberOfLiveNodes):
1912         (WebCore):
1913         * testing/Internals.h:
1914         (Internals):
1915         * testing/Internals.idl:
1916
1917 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
1918
1919         [chromium] Make CCDamageTracker robust to empty layer lists
1920         https://bugs.webkit.org/show_bug.cgi?id=81831
1921
1922         Reviewed by Adrienne Walker.
1923
1924         Added a unit test in CCDamageTrackerTest that causes a crash in
1925         the old code. With this patch applied, the crash will not occur.
1926         In theory, that crash should never occur anyway, unless there is a
1927         bug outside the damage tracker, but for robustness it's
1928         appropriate to handle it properly.
1929
1930         In addition to this fix, performed some trivial maintenance on the
1931         damage tracker code.
1932
1933         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1934         (WebCore::CCDamageTracker::updateDamageTrackingState): removed
1935         unclean code that accessed the targetSurface to get necessary
1936         information. Instead, we now pass those args through the damage
1937         tracker's API.
1938
1939         * platform/graphics/chromium/cc/CCDamageTracker.h:
1940         (CCDamageTracker): modified args passed to damage tracker on update.
1941
1942         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1943         (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
1944         modified args passed to damage tracker on update.
1945
1946 2012-03-22  Julien Chaffraix  <jchaffraix@webkit.org>
1947
1948         Enable style sharing for elements with a style attribute
1949         https://bugs.webkit.org/show_bug.cgi?id=81523
1950
1951         Reviewed by Antti Koivisto.
1952
1953         Memory improvement change only.
1954
1955         Overall, this is a performance wash (some benchmarks may regress a bit due to the increase in time taken
1956         by CSSStyleSelector::locateSharedStyle as we try more nodes, others increase their performance due to style sharing).
1957
1958         Instrumenting our style sharing, this should give us some nice memory shavings on some benchmarks:
1959         - HTML5 isn't impacted as it doesn't use much inline style
1960         - page cyclers' intl1 showed a 6% increase in style sharing.
1961
1962         * css/CSSStyleSelector.cpp:
1963         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1964         This method now handles inline style like presentation attributes on the element.
1965
1966         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1967         (WebCore::CSSStyleSelector::locateSharedStyle):
1968         Don't bail out for an element with an inline style declaration.
1969
1970         (WebCore::CSSStyleSelector::stylesEqual):
1971         Generalized attributeStylesEqual to share the logic between attribute and
1972         inline style property set. This means that attribute checks are actually
1973         doing a little extra more work but that didn't impact our benchmarks.
1974
1975 2012-03-22  Kevin Ollivier  <kevino@theolliviers.com>
1976
1977         [wx] Unreviewed. WebDOM build fix after array type changes.
1978
1979         * bindings/scripts/CodeGeneratorCPP.pm:
1980         (ShouldSkipType):
1981
1982 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
1983
1984         Web Inspector: text gutter decorations should move upon edits.
1985         https://bugs.webkit.org/show_bug.cgi?id=81932
1986
1987         Reviewed by Vsevolod Vlasov.
1988
1989         Decorations set by the line number now shift as editing inserts / removes lines.
1990
1991         * inspector/front-end/TextViewer.js:
1992         (WebInspector.TextViewer.prototype._syncLineHeight):
1993         (WebInspector.TextEditorGutterPanel):
1994         (WebInspector.TextEditorGutterPanel.prototype.textChanged):
1995         (WebInspector.TextEditorGutterPanel.prototype.syncClientHeight):
1996         (WebInspector.TextEditorGutterPanel.prototype.addDecoration):
1997         (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
1998
1999 2012-03-21  Robert Hogan  <robert@webkit.org>
2000
2001         CSS 2.1 failure: fixed-table-layout-006 fails
2002         https://bugs.webkit.org/show_bug.cgi?id=78412
2003
2004         Reviewed by Julien Chaffraix.
2005
2006         Tests: css2.1/20110323/fixed-table-layout-006.htm
2007                fast/css/fixed-table-layout-cell-padding.htm
2008
2009         In fixed tables, positive width specified on a column should include borders and padding.
2010         See the thread at http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html. The discussion
2011         there resulted in a whole new set of tests for section 17.5.2.1 in the CSS 2.1 spec. See 
2012         http://test.csswg.org/harness/test/CSS21_DEV/section/17.5.2.1/. This patch allows WebKit
2013         to pass all of them, and all tests for the 17.5.2.1 section as a whole. I'll land them all separately.
2014     
2015         * rendering/FixedTableLayout.cpp:
2016         (WebCore::FixedTableLayout::calcWidthArray): Include border width and cell padding in the width of the column.
2017          Note that borderAndPaddingLogicalWidth() returns the border width for separate and collapsed borders as appropriate.
2018
2019 2012-03-22  Simon Fraser  <simon.fraser@apple.com>
2020
2021         Factor compositing layer updates after scroll into a new method
2022         https://bugs.webkit.org/show_bug.cgi?id=81943
2023
2024         Reviewed by Dean Jackson.
2025
2026         Move some code that updates compositing layers after scrolling
2027         into its own method, for cleanliness.
2028
2029         * rendering/RenderLayer.cpp:
2030         (WebCore::RenderLayer::scrollTo):
2031         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
2032         (WebCore):
2033         * rendering/RenderLayer.h:
2034         (RenderLayer):
2035
2036 2012-03-22  Gavin Barraclough  <barraclough@apple.com>
2037
2038         Add JSValue::isFunction
2039         https://bugs.webkit.org/show_bug.cgi?id=81935
2040
2041         Reviewed by Geoff Garen.
2042
2043         This would be useful in the WebCore bindings code.
2044         Also, remove asFunction, replace with jsCast<JSFunction*>.
2045
2046         * bindings/js/JSInjectedScriptHostCustom.cpp:
2047         (WebCore::JSInjectedScriptHost::functionDetails):
2048         * bindings/js/ScriptCallStackFactory.cpp:
2049         (WebCore::createScriptCallStack):
2050
2051 2012-03-22  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2052
2053         TiledBackingStore: Fix test regressions that appeared with r111560.
2054         https://bugs.webkit.org/show_bug.cgi?id=81519
2055
2056         Reviewed by Kenneth Rohde Christiansen.
2057
2058         The visible rect wasn't intersected with the contents rect anymore which
2059         could lead to an astronomical layer size to check for intersecting tiles.
2060
2061         Add a visibleContentsRect that doesn't do the conversion and use it
2062         in visibleAreaIsCovered.
2063
2064         * platform/graphics/TiledBackingStore.cpp:
2065         (WebCore::TiledBackingStore::visibleContentsRect):
2066         (WebCore):
2067         (WebCore::TiledBackingStore::visibleRect):
2068         (WebCore::TiledBackingStore::visibleAreaIsCovered):
2069         * platform/graphics/TiledBackingStore.h:
2070         (TiledBackingStore):
2071
2072 2012-03-22  Joe Thomas  <joethomas@motorola.com>
2073
2074         Make Length Calculation functions non-inline
2075         https://bugs.webkit.org/show_bug.cgi?id=81733
2076
2077         Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
2078         And these functions are expected to grow again when new length units will be introduced in bug 27160.
2079
2080         A decent rule of thumb is to not inline a function if it is more than 10 lines long. Also it's typically not cost effective to inline
2081         functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
2082
2083         Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
2084
2085         Reviewed by Antti Koivisto.
2086
2087         * CMakeLists.txt:
2088         * GNUmakefile.list.am:
2089         * Target.pri:
2090         * WebCore.gypi:
2091         * WebCore.vcproj/WebCore.vcproj:
2092         * WebCore.xcodeproj/project.pbxproj:
2093         * css/LengthFunctions.cpp: Added.
2094         (WebCore):
2095         (WebCore::miminumValueForLength):
2096         (WebCore::valueForLength):
2097         (WebCore::floatValueForLength):
2098         * css/LengthFunctions.h:
2099         (WebCore):
2100
2101 2012-03-22  Alexis Menard  <alexis.menard@openbossa.org>
2102
2103         Increase code sharing between CSSParser and CSSPropertyLonghand.
2104         https://bugs.webkit.org/show_bug.cgi?id=81587
2105
2106         Reviewed by Antti Koivisto.
2107
2108         Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
2109         make CSSParser use them. It will make the declaration of longhands in one place only.
2110         Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
2111         The map doesn't bring much here and it's cleaner and faster to use the switch.
2112         It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
2113
2114         No new tests : no behavior change.
2115
2116         * css/CSSParser.cpp:
2117         (WebCore::CSSParser::parseValue):
2118         (WebCore::CSSParser::parseAnimationShorthand):
2119         (WebCore::CSSParser::parseTransitionShorthand):
2120         (WebCore::CSSParser::parseShorthand):
2121         Modify the prototype of this function to directly use the CSSPropertyLonghand.
2122         * css/CSSParser.h:
2123         (WebCore):
2124         (CSSParser):
2125         * css/CSSPropertyLonghand.cpp:
2126         (WebCore):
2127         (WebCore::backgroundLonghand):
2128         (WebCore::backgroundPositionLonghand):
2129         (WebCore::backgroundRepeatLonghand):
2130         (WebCore::borderLonghand):
2131         (WebCore::borderBottomLonghand):
2132         (WebCore::borderColorLonghand):
2133         (WebCore::borderImageLonghand):
2134         (WebCore::borderLeftLonghand):
2135         (WebCore::borderRadiusLonghand):
2136         (WebCore::borderRightLonghand):
2137         (WebCore::borderSpacingLonghand):
2138         (WebCore::borderStyleLonghand):
2139         (WebCore::borderTopLonghand):
2140         (WebCore::borderWidthLonghand):
2141         (WebCore::listStyleLonghand):
2142         (WebCore::fontLonghand):
2143         (WebCore::marginLonghand):
2144         (WebCore::outlineLonghand):
2145         (WebCore::overflowLonghand):
2146         (WebCore::paddingLonghand):
2147         (WebCore::webkitAnimationLonghand):
2148         (WebCore::webkitBorderAfterLonghand):
2149         (WebCore::webkitBorderBeforeLonghand):
2150         (WebCore::webkitBorderEndLonghand):
2151         (WebCore::webkitBorderStartLonghand):
2152         (WebCore::webkitColumnsLonghand):
2153         (WebCore::webkitColumnRuleLonghand):
2154         (WebCore::webkitFlexFlowLonghand):
2155         (WebCore::webkitMarginCollapseLonghand):
2156         (WebCore::webkitMarqueeLonghand):
2157         (WebCore::webkitMaskLonghand):
2158         (WebCore::webkitMaskPositionLonghand):
2159         (WebCore::webkitMaskRepeatLonghand):
2160         (WebCore::webkitTextEmphasisLonghand):
2161         (WebCore::webkitTextStrokeLonghand):
2162         (WebCore::webkitTransitionLonghand):
2163         (WebCore::webkitTransformOriginLonghand):
2164         (WebCore::webkitWrapLonghand):
2165         (WebCore::longhandForProperty):
2166         * css/CSSPropertyLonghand.h:
2167         (WebCore):
2168
2169 2012-03-22  Emil A Eklund  <eae@chromium.org>
2170
2171         Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change. 
2172
2173         * css/CSSStyleSelector.h:
2174         (CSSStyleSelector):
2175
2176 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
2177
2178         ReverbConvolver::latencyFrames() should return 0.
2179         https://bugs.webkit.org/show_bug.cgi?id=81806
2180
2181         Reviewed by Chris Rogers.
2182
2183         * platform/audio/ReverbConvolver.cpp:
2184         (WebCore::ReverbConvolver::latencyFrames):
2185
2186 2012-03-22  Tony Chang  <tony@chromium.org>
2187
2188         refactor flexbox in preparation for flex-line-pack
2189         https://bugs.webkit.org/show_bug.cgi?id=81843
2190
2191         Reviewed by Ojan Vafai.
2192
2193         Replace WrapReverseContext with a vector of LineContexts that contain
2194         the same information, plus values needed for flex-align.
2195
2196         alignChildren has been moved to after all the lines have been
2197         positioned. We want to align children after flex-line-pack has changed
2198         the size of each line to avoid unnecessary layouts.
2199
2200         Take 2: Remove the assert. If there are no children, then there are no
2201         flex lines. Instead, assert that child is not null.
2202
2203         No new tests, just refactoring.
2204
2205         * rendering/RenderFlexibleBox.cpp:
2206         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
2207         holds information needed for wrap-reverse and aligning children.
2208         (RenderFlexibleBox::LineContext):
2209         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
2210         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
2211         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
2212         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
2213         * rendering/RenderFlexibleBox.h:
2214
2215 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2216
2217         Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
2218         https://bugs.webkit.org/show_bug.cgi?id=46743
2219
2220         Reviewed by Julien Chaffraix
2221         Based on original patch by Anton D'Auria
2222
2223         In preparation for platform-specific queuing of XMLHttpRequest events,
2224         this patch changes all calls to m_target->dispatchEvent to
2225         XMLHttpRequestProgressEventThrottle::dispatchEvent.
2226         Currently, we queue only one progress event on suspend() if we have
2227         throttled progress events. We should be able to queue all XHR events
2228         that can be generated after suspend(), if the platform network layer
2229         continues to receive data.
2230         XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
2231         download events, so this doesn't change behavior of upload events, which
2232         aren't throttled or queued.
2233
2234         * xml/XMLHttpRequest.cpp:
2235         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
2236         * xml/XMLHttpRequestProgressEventThrottle.cpp:
2237         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
2238         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
2239         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
2240         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
2241         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
2242         * xml/XMLHttpRequestProgressEventThrottle.h:
2243         (XMLHttpRequestProgressEventThrottle):
2244
2245 2012-03-22  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
2246
2247         [EFL] Map BackSpace key code to Unicode value
2248         https://bugs.webkit.org/show_bug.cgi?id=81130
2249
2250         Reviewed by Gustavo Noronha Silva.
2251
2252         Test: fast/events/backspace-navigates-back.html
2253
2254         * platform/efl/EflKeyboardUtilities.cpp:
2255         (WebCore::createKeyMap): Map BackSpace to Unicode value
2256
2257 2012-03-22  Abhishek Arya  <inferno@chromium.org>
2258
2259         Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
2260         https://bugs.webkit.org/show_bug.cgi?id=80297
2261
2262         Reviewed by Julien Chaffraix.
2263
2264         beforeChild might share the same anonymous block parent with other previous
2265         siblings. Before moving the children across ruby bases, we need to make sure
2266         to split the tree across the beforeChild correctly.
2267
2268         Test: fast/ruby/ruby-text-before-child-split.html
2269
2270         * rendering/RenderRubyBase.cpp:
2271         (WebCore::RenderRubyBase::moveChildren):
2272
2273 2012-03-22  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
2274
2275         [Qt] Fix Qt minimal build after r111692
2276
2277         Reviewed by Csaba Osztrogonác.
2278
2279         * bindings/js/JSScriptProfileNodeCustom.cpp:
2280
2281 2012-03-22  Adrienne Walker  <enne@google.com>
2282
2283         [chromium] Fix scrollbar layers holding onto invalid textures after lost context
2284         https://bugs.webkit.org/show_bug.cgi?id=81841
2285
2286         Reviewed by James Robinson.
2287
2288         Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
2289
2290         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2291         (WebCore::CCScrollbarLayerImpl::willDraw):
2292
2293 2012-03-22  Philippe Normand  <pnormand@igalia.com>
2294
2295         [GTK] ASSERT bug in WebAudio (AudioFileReader)
2296         https://bugs.webkit.org/show_bug.cgi?id=81777
2297
2298         Reviewed by Martin Robinson.
2299
2300         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2301         (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
2302         the GstBus floating reference.
2303         (WebCore::AudioFileReader::createBus): Ditto.
2304
2305 2012-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
2306
2307         Unreviewed: Web Inspector: fix syntax error in text.
2308
2309         * English.lproj/localizedStrings.js:
2310         * inspector/front-end/HeapSnapshotProxy.js:
2311         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
2312
2313 2012-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
2314
2315         Unreviewed, rolling out r111688.
2316         http://trac.webkit.org/changeset/111688
2317         https://bugs.webkit.org/show_bug.cgi?id=81912
2318
2319         "Heap profiler test fails" (Requested by yurys on #webkit).
2320
2321         * inspector/front-end/HeapSnapshot.js:
2322         (WebInspector.HeapSnapshot.prototype._buildRetainers):
2323
2324 2012-03-22  Dana Jansens  <danakj@chromium.org>
2325
2326         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
2327         https://bugs.webkit.org/show_bug.cgi?id=81437
2328
2329         Reviewed by Adrienne Walker.
2330
2331         Split CCLayerTreeHostImpl::drawLayers() into two phases:
2332         prepareToDraw() and drawLayers().
2333
2334         When calculating a RenderPass, and we checkerboard a quad on a
2335         layer, bubble this info back up to CCLayerTreeHostImpl. If the
2336         layer is transforming in an animation, then abort the prepareToDraw()
2337         phase and cause it to return false back to the thread proxy.
2338
2339         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
2340
2341         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2342         (WebCore::CCLayerImpl::appendQuads):
2343         * platform/graphics/chromium/cc/CCLayerImpl.h:
2344         (CCLayerImpl):
2345         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2346         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2347         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2348         (WebCore):
2349         (WebCore::CCLayerTreeHostImpl::drawLayers):
2350         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2351         (CCLayerTreeHostImpl):
2352         (FrameData):
2353         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2354         (WebCore::CCQuadCuller::append):
2355         * platform/graphics/chromium/cc/CCQuadCuller.h:
2356         (CCQuadCuller):
2357         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2358         (WebCore::CCRenderPass::appendQuadsForLayer):
2359         * platform/graphics/chromium/cc/CCRenderPass.h:
2360         (CCRenderPass):
2361         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2362         (WebCore::CCScrollbarLayerImpl::appendQuads):
2363         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2364         (CCScrollbarLayerImpl):
2365         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2366         (WebCore::CCSingleThreadProxy::doComposite):
2367         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2368         (WebCore::CCSolidColorLayerImpl::appendQuads):
2369         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2370         (CCSolidColorLayerImpl):
2371         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2372         (WebCore::CCTextureLayerImpl::appendQuads):
2373         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2374         (CCTextureLayerImpl):
2375         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2376         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2377         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2378         (WebCore::CCTiledLayerImpl::appendQuads):
2379         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2380         (CCTiledLayerImpl):
2381         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2382         (WebCore::CCVideoLayerImpl::appendQuads):
2383         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2384         (CCVideoLayerImpl):
2385
2386 2012-03-22  Levi Weintraub  <leviw@chromium.org>
2387
2388         Correct LayoutUnit usage in Accessibility code
2389         https://bugs.webkit.org/show_bug.cgi?id=81789
2390
2391         Reviewed by Eric Seidel.
2392
2393         Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
2394         the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
2395         expose them to the embedder.
2396
2397         No new tests. No change in behavior.
2398
2399         * accessibility/AccessibilityListBox.cpp:
2400         (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
2401         * accessibility/AccessibilityListBox.h:
2402         (AccessibilityListBox):
2403         * accessibility/AccessibilityObject.cpp:
2404         (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
2405         which is always done with integer coordinates.
2406         (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
2407         don't pixel snap floats, so we return an integer bounding box.
2408         (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
2409         (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
2410         up the code to position it at (0,0).
2411         * accessibility/AccessibilityObject.h:
2412         (WebCore::AccessibilityObject::accessibilityHitTest): See above.
2413         (AccessibilityObject):
2414         (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
2415         * accessibility/AccessibilityRenderObject.cpp:
2416         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
2417         screen coordinates and originates in embedder code. Reverting it to take an integer.
2418         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
2419         (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
2420         * accessibility/AccessibilityRenderObject.h:
2421         (AccessibilityRenderObject):
2422         * accessibility/AccessibilityScrollView.cpp:
2423         (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
2424         * accessibility/AccessibilityScrollView.h:
2425         (AccessibilityScrollView):
2426         * accessibility/AccessibilitySlider.cpp:
2427         (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
2428         * accessibility/AccessibilitySlider.h:
2429         (AccessibilitySlider):
2430
2431 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
2432
2433         Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
2434         https://bugs.webkit.org/show_bug.cgi?id=81804
2435
2436         Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
2437         At this momemnt we have no way to see the error in the front-end.
2438
2439         Reviewed by Yury Semikhatsky.
2440
2441         * English.lproj/localizedStrings.js:
2442         * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
2443         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
2444         * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
2445         (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
2446
2447 2012-03-22  Carlos Garcia Campos  <cgarcia@bb-webkit-rel-64.local.igalia.com>
2448
2449         [GTK] Use the angle-bracket form to include wtf headers
2450         https://bugs.webkit.org/show_bug.cgi?id=81884
2451
2452         Reviewed by Eric Seidel.
2453
2454         Use #include <wtf/foo> instead of #include "foo".
2455
2456         * platform/graphics/freetype/FontPlatformData.h:
2457         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2458         * platform/gtk/DataObjectGtk.h:
2459         * platform/network/ResourceHandleInternal.h:
2460         * platform/network/soup/SocketStreamHandleSoup.cpp:
2461
2462 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
2463
2464         Web Inspector: Case of the elements of the xml document should be shown as it is in the console
2465         https://bugs.webkit.org/show_bug.cgi?id=81902
2466
2467         When registering a detached root, DOMAgent always presumes it is a node,
2468         while it can also be a document.
2469
2470         Reviewed by Vsevolod Vlasov.
2471
2472         Test: inspector/console/console-xml-document.html
2473
2474         * inspector/front-end/ConsoleMessage.js:
2475         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2476         * inspector/front-end/DOMAgent.js:
2477         (WebInspector.DOMAgent.prototype._setDetachedRoot):
2478
2479 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
2480
2481         Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
2482         https://bugs.webkit.org/show_bug.cgi?id=81904
2483
2484         Reviewed by Pavel Feldman.
2485
2486         This is another step on the way to cleaner BreakpointManager logic.
2487         Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
2488         This allows us to handle script-uiSourceCode binding separately from
2489         uiSourceCode creation/deletion and to handle unbinding that was not
2490         possible at all before.
2491
2492         * inspector/front-end/CompilerScriptMapping.js:
2493         (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
2494         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
2495         (WebInspector.CompilerScriptMapping.prototype.addScript):
2496         (WebInspector.CompilerScriptMapping.prototype.reset):
2497         * inspector/front-end/ResourceScriptMapping.js:
2498         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
2499         * inspector/front-end/ScriptMapping.js:
2500         (WebInspector.MainScriptMapping):
2501         (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
2502         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
2503         (WebInspector.MainScriptMapping.prototype._handleScriptBound):
2504         (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
2505         * inspector/front-end/SnippetsModel.js:
2506         (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
2507         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
2508         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
2509         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
2510         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
2511         (WebInspector.SnippetsScriptMapping.prototype.reset):
2512
2513 2012-03-22  Vineet Chaudhary  <rgf748@motorola.com>
2514
2515         https://bugs.webkit.org/show_bug.cgi?id=81893
2516         Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
2517
2518         Reviewed by Kentaro Hara.
2519
2520         Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
2521         To remove the custom bindings code.
2522
2523         Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
2524
2525         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
2526         (WebCore::JSScriptProfileNode::callUID):
2527         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
2528         (WebCore):
2529         * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
2530
2531 2012-03-22  Andrey Kosyakov  <caseq@chromium.org>
2532
2533         Web Inspector: only update timeline overview categories strips when these are visible
2534         https://bugs.webkit.org/show_bug.cgi?id=81903
2535
2536         Reviewed by Pavel Feldman.
2537
2538         - factor out category strips update into a separate method;
2539         - only invoke it when "Timeline" overview mode is selected.
2540
2541         * inspector/front-end/TimelineOverviewPane.js:
2542         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
2543         (WebInspector.TimelineOverviewPane.prototype.update):
2544         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
2545
2546 2012-03-22  Levi Weintraub  <leviw@chromium.org>
2547
2548         Update LayoutUnit usage in FrameSelection
2549         https://bugs.webkit.org/show_bug.cgi?id=81754
2550
2551         Reviewed by Eric Seidel.
2552
2553         FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
2554         we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
2555         will still be used when these coordinates are passed down and used locally.
2556
2557         No new tests. No change in behavior.
2558
2559         * editing/FrameSelection.cpp:
2560         (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
2561         (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
2562         modification. Sub-pixel precision will be used when these values are converted to local ones.
2563         (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
2564         (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
2565         (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
2566         Reverting the values to ints.
2567         (WebCore::FrameSelection::recomputeCaretRect): Ditto.
2568         * editing/FrameSelection.h:
2569         (FrameSelection):
2570         * editing/mac/FrameSelectionMac.mm:
2571         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
2572         coordinates as integers.
2573
2574 2012-03-22  Alexei Filippov  <alexeif@chromium.org>
2575
2576         Web Inspector: Speed up the build retainers phase.
2577         https://bugs.webkit.org/show_bug.cgi?id=81763
2578
2579         Replacing the edge iterator with a raw loop makes it
2580         faster by more than 10 times.
2581
2582         Reviewed by Yury Semikhatsky.
2583
2584         * inspector/front-end/HeapSnapshot.js:
2585         (WebInspector.HeapSnapshot.prototype._buildRetainers):
2586
2587 2012-03-22  No'am Rosenthal  <noam.rosenthal@nokia.com>
2588
2589         [Qt][WK2] The background appears to have one extra pixel from the contents
2590         https://bugs.webkit.org/show_bug.cgi?id=81830
2591
2592         Reviewed by Kenneth Rohde Christiansen.
2593
2594         TextureMapperGL applied a 1-offset that was covering for another bug,
2595         which was already fixed.
2596
2597         No new tests, this would be tested once we test GL rendering results.
2598
2599         * platform/graphics/texmap/TextureMapperGL.cpp:
2600         (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
2601
2602 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
2603
2604         Rename touchpad fling curve, add curve parameters to constructor.
2605         https://bugs.webkit.org/show_bug.cgi?id=81820
2606
2607         Reviewed by Adrienne Walker.
2608
2609         Covered by existing unit tests.
2610
2611         * GNUmakefile.list.am:
2612         * WebCore.gypi:
2613         * platform/ScrollAnimatorNone.cpp:
2614         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
2615         * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
2616         (WebCore):
2617         (WebCore::TouchpadFlingPlatformGestureCurve::create):
2618         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
2619         (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
2620         (WebCore::TouchpadFlingPlatformGestureCurve::apply):
2621         * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
2622         (WebCore):
2623         (TouchpadFlingPlatformGestureCurve):
2624
2625 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2626
2627         Web Inspector: make CSS and JavaScript files editable by default.
2628         https://bugs.webkit.org/show_bug.cgi?id=81787
2629
2630         Reviewed by Vsevolod Vlasov.
2631
2632         This change removes cancelEditing and setReadOnly capabilities from source frame.
2633         It removes dblclick handler as well since one does not need to enter editing mode.
2634         It also establishes proper content dispatching so that views are updated with the
2635         resource content. All these are inter-dependent, need to be landed simultaneously.
2636         Drive-by follow up to the r111675 where range is modified prior to the exiting
2637         edit mode.
2638
2639         * inspector/front-end/JavaScriptSourceFrame.js:
2640         (WebInspector.JavaScriptSourceFrame):
2641         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
2642         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
2643         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
2644         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
2645         (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
2646         * inspector/front-end/ResourceView.js:
2647         (WebInspector.ResourceSourceFrame):
2648         (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
2649         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
2650         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
2651         (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
2652         (WebInspector.EditableResourceSourceFrame.prototype.editContent):
2653         (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
2654         * inspector/front-end/ResourcesPanel.js:
2655         (WebInspector.ResourcesPanel.prototype._innerShowView):
2656         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
2657         * inspector/front-end/ScriptsPanel.js:
2658         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
2659         * inspector/front-end/Settings.js:
2660         (WebInspector.ExperimentsSettings):
2661         * inspector/front-end/SourceFrame.js:
2662         (WebInspector.SourceFrame):
2663         (WebInspector.SourceFrame.prototype.wasShown):
2664         (WebInspector.SourceFrame.prototype.willHide):
2665         (WebInspector.SourceFrame.prototype.beforeTextChanged):
2666         (WebInspector.SourceFrame.prototype.setContent):
2667         (WebInspector.SourceFrame.prototype.commitEditing):
2668         (WebInspector.SourceFrame.prototype.didEditContent):
2669         (WebInspector.SourceFrame.prototype.editContent):
2670         * inspector/front-end/TextPrompt.js:
2671         (WebInspector.TextPrompt.prototype._startEditing):
2672         (WebInspector.TextPrompt.prototype._stopEditing):
2673         * inspector/front-end/TextViewer.js:
2674         (WebInspector.TextViewer):
2675         (WebInspector.TextViewer.prototype._registerShortcuts):
2676         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
2677
2678 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2679
2680         [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
2681         https://bugs.webkit.org/show_bug.cgi?id=81889
2682
2683         Reviewed by Kenneth Rohde Christiansen.
2684
2685         On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
2686
2687         * rendering/RenderObject.cpp:
2688         (WebCore::RenderObject::styleWillChange):
2689
2690 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2691
2692         Web Inspector: dispatch styleSheetChanged event synchronously.
2693         https://bugs.webkit.org/show_bug.cgi?id=81892
2694
2695         Reviewed by Vsevolod Vlasov.
2696
2697         Today, backend generates stylesheet change event synchronously from within set* command.
2698         But CSSStyleModel defers its dispatching until the stylesheet content is available. This
2699         prevents us from ignoring update events from within commands that initiated those updates.
2700
2701         This change makes stylesheet change event dispatch synchronously and delegates stylesheet
2702         content fetching to the event client.
2703
2704         * inspector/front-end/CSSStyleModel.js:
2705         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
2706         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
2707         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
2708         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
2709         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
2710         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
2711         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
2712         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
2713
2714 2012-03-21  Ian Vollick  <vollick@chromium.org>
2715
2716         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
2717         https://bugs.webkit.org/show_bug.cgi?id=81692
2718
2719         Reviewed by Adrienne Walker.
2720
2721         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
2722
2723         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2724
2725 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2726
2727         Web Inspector: allow on-hover popover while in edit mode.
2728         https://bugs.webkit.org/show_bug.cgi?id=81898
2729
2730         Reviewed by Vsevolod Vlasov.
2731
2732         This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
2733         concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
2734
2735         * inspector/front-end/DetailedHeapshotView.js:
2736         * inspector/front-end/ElementsPanel.js:
2737         * inspector/front-end/JavaScriptSourceFrame.js:
2738         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
2739         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
2740         (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
2741         * inspector/front-end/NetworkPanel.js:
2742         * inspector/front-end/ObjectPopoverHelper.js:
2743         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
2744         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
2745         * inspector/front-end/Popover.js:
2746         (WebInspector.PopoverHelper.prototype.isPopoverVisible):
2747         * inspector/front-end/TimelinePanel.js:
2748
2749 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2750
2751         Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
2752         https://bugs.webkit.org/show_bug.cgi?id=81896
2753
2754         Reviewed by Vsevolod Vlasov.
2755
2756         There is a bug that collapses selection prior to exiting change mode, we should never
2757         collapse edit area prior committing.
2758
2759         * inspector/front-end/TextEditorModel.js:
2760         (WebInspector.TextEditorModel.endsWithBracketRegex.):
2761         * inspector/front-end/TextViewer.js:
2762         (WebInspector.TextViewer):
2763         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
2764         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
2765         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
2766
2767 2012-03-22  Zoltan Herczeg  <zherczeg@webkit.org>
2768
2769         Merge SVGImageBufferTools to SVGRenderingContext
2770         https://bugs.webkit.org/show_bug.cgi?id=81890
2771
2772         Reviewed by Nikolas Zimmermann.
2773
2774         Copy the code to SVGRenderingContext and delete
2775         SVGImageBufferTools[.cpp.h]. Update build systems,
2776         no functionality change. This is the first step
2777         towards making SVGImageBufferTools stageful.
2778
2779         Existing tests cover this issue.
2780
2781         * CMakeLists.txt:
2782         * GNUmakefile.list.am:
2783         * Target.pri:
2784         * WebCore.gypi:
2785         * WebCore.xcodeproj/project.pbxproj:
2786         * platform/graphics/filters/FETile.cpp:
2787         (WebCore::FETile::platformApplySoftware):
2788         * rendering/svg/RenderSVGAllInOne.cpp:
2789         * rendering/svg/RenderSVGInlineText.cpp:
2790         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
2791         * rendering/svg/RenderSVGResourceClipper.cpp:
2792         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2793         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
2794         * rendering/svg/RenderSVGResourceFilter.cpp:
2795         (WebCore::RenderSVGResourceFilter::applyResource):
2796         * rendering/svg/RenderSVGResourceGradient.cpp:
2797         (WebCore::createMaskAndSwapContextForTextGradient):
2798         (WebCore::clipToTextMask):
2799         * rendering/svg/RenderSVGResourceMasker.cpp:
2800         (WebCore::RenderSVGResourceMasker::applyResource):
2801         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
2802         * rendering/svg/RenderSVGResourcePattern.cpp:
2803         (WebCore::RenderSVGResourcePattern::applyResource):
2804         (WebCore::RenderSVGResourcePattern::createTileImage):
2805         * rendering/svg/SVGImageBufferTools.cpp: Removed.
2806         * rendering/svg/SVGImageBufferTools.h: Removed.
2807         * rendering/svg/SVGInlineTextBox.cpp:
2808         * rendering/svg/SVGRenderingContext.cpp:
2809         (WebCore::currentContentTransformation):
2810         (WebCore):
2811         (WebCore::SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem):
2812         (WebCore::SVGRenderingContext::createImageBuffer):
2813         (WebCore::SVGRenderingContext::createImageBufferForPattern):
2814         (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
2815         (WebCore::SVGRenderingContext::clipToImageBuffer):
2816         (WebCore::SVGRenderingContext::clampedAbsoluteTargetRect):
2817         (WebCore::SVGRenderingContext::clampedAbsoluteSize):
2818         (WebCore::SVGRenderingContext::clear2DRotation):
2819         * rendering/svg/SVGRenderingContext.h:
2820         (SVGRenderingContext):
2821         (WebCore::SVGRenderingContext::calculateImageBufferRect):
2822         * svg/graphics/filters/SVGFEImage.cpp:
2823         (WebCore::FEImage::platformApplySoftware):
2824
2825 2012-03-22  Hyowon Kim  <hw1008.kim@samsung.com>
2826
2827         [EFL] Add PageClientEfl to WebCoreSupport.
2828         https://bugs.webkit.org/show_bug.cgi?id=80748
2829
2830         Reviewed by Noam Rosenthal.
2831
2832         * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
2833         (WebCore):
2834         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2835         (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
2836         * plugins/efl/PluginViewEfl.cpp:
2837         (WebCore::PluginView::platformGetValue): Use PageClientEfl.
2838
2839 2012-03-22  Kaustubh Atrawalkar  <kaustubh@motorola.com>
2840
2841         blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees
2842         https://bugs.webkit.org/show_bug.cgi?id=81102
2843
2844         Reviewed by Hajime Morita.
2845
2846         This implementation will support blur for a focused element when its shadowHost's blur() is called.
2847         To achieve this Element::blur() function is modified to blur the focused node in it's treeScope.
2848
2849         Test: fast/dom/shadow/shadow-root-blur.html
2850
2851         * dom/Element.cpp:
2852         (WebCore::Element::blur): Modified to blur current treeScope's focused node.
2853         * dom/ShadowRoot.h:
2854         (WebCore::ShadowRoot::activeElement): Rework for code sharing.
2855         * dom/TreeScope.cpp:
2856         (WebCore::TreeScope::focusedNode): Added new function to share code for getting focused node.
2857         * dom/TreeScope.h:
2858         (TreeScope): New function declartion.
2859         * html/HTMLDocument.cpp:
2860         (WebCore::HTMLDocument::activeElement): Rework for code sharing.
2861
2862 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
2863
2864         Web Inspector: RawSourceCode does not need uiSourceCode lists because it never has more than one.
2865         https://bugs.webkit.org/show_bug.cgi?id=81894
2866
2867         RawSourceCode never has more than one uiSourceCode, uiSourceCodeList
2868         are just remains of older implementation. This patch switches RawSourceCode
2869         and SourceMappings from uiSourceCodeList to uiSourceCode.
2870
2871         Reviewed by Pavel Feldman.
2872
2873         * inspector/front-end/RawSourceCode.js:
2874         (WebInspector.RawSourceCode.prototype.uiSourceCode):
2875         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2876         (WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
2877         (WebInspector.RawSourceCode.SourceMapping.prototype.uiSourceCode):
2878         (WebInspector.RawSourceCode.PlainSourceMapping):
2879         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
2880         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
2881         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCode):
2882         (WebInspector.RawSourceCode.FormattedSourceMapping):
2883         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
2884         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
2885         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCode):
2886         * inspector/front-end/ResourceScriptMapping.js:
2887         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
2888         (WebInspector.ResourceScriptMapping.prototype.addScript):
2889         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
2890         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
2891         (WebInspector.ResourceScriptMapping.prototype.reset):
2892
2893 2012-03-22  Mario Sanchez Prada  <msanchez@igalia.com>
2894
2895         [GTK] Fix the only remaining coding style issue in GTK accessibility code
2896         https://bugs.webkit.org/show_bug.cgi?id=81885
2897
2898         Reviewed by Xan Lopez.
2899
2900         Add needed extra line and remove an unneeded one.
2901
2902         * accessibility/gtk/AccessibilityObjectAtk.cpp:
2903
2904 2012-03-22  Kent Tamura  <tkent@chromium.org>
2905
2906         Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
2907         https://bugs.webkit.org/show_bug.cgi?id=81866
2908
2909         Reviewed by Hajime Morita.
2910
2911         We need to expand the controlClipRect because the existing shadow
2912         tree of a text field can be wrapped by another shadow tree. e.g.
2913
2914         A current situation:
2915
2916         <input>
2917           ┗ ShadowRoot
2918              ┗ container element
2919         ┌────────────┐<input>'s border box
2920         │┌──────────┐│
2921         ││container box       ││
2922         │└──────────┘│
2923         └────────────┘
2924
2925         Wrapped by another ShadowRoot:
2926
2927         <input>
2928           ┗ New ShadowRoot
2929              ┣ <shadow> represents the existing shadow tree
2930              ┃  ┗ container element
2931              ┗ D: an additional decoration element
2932         ┌────────────┐<input>'s border box
2933         │┌───────┬──┐│
2934         ││container box │ D  ││
2935         │└───────┴──┘│
2936         └────────────┘
2937         In this case, if we clip child renderers by container box, D is not
2938         drawn. We should clip by the content box of the <input>.
2939
2940         A search field has an exceptional behavior. It can have the container
2941         box of which height is taller than the content box height. The
2942         controlClipRect should contain both of the container box and the content
2943         box in this case. In other cases, the container box is equivalent to the
2944         content box. So the code always unites them.
2945
2946         No new tests. This won't make any behavior change for now.
2947
2948         * rendering/RenderTextControlSingleLine.cpp:
2949         (WebCore::RenderTextControlSingleLine::controlClipRect):
2950
2951 2012-03-22  Yoshifumi Inoue  <yosin@chromium.org>
2952
2953         [Forms] The option element should not be form associated element.
2954         https://bugs.webkit.org/show_bug.cgi?id=79764
2955
2956         Reviewed by Kent Tamura.
2957
2958         This patch changes base class of HTMLOptionELement to HTMLElement
2959         from HTMLFormControlElement for saving memory space and iteration
2960         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
2961         and matching the HTML5 specification for ease of maintenance.
2962
2963         This patch changes behavior of handling of CSS pseudo classes "invalid"
2964         and "valid". The "option" elements no longer use these CSS pseudo classes
2965         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
2966
2967         Changes of TextIterator is lead by usage of isFormControlElement. This
2968         changes will be replaced with more meaningful predicate as part of
2969         https://bugs.webkit.org/show_bug.cgi?id=80381
2970
2971         No new tests but updated select-live-pseudo-selectors.html test.
2972
2973         * css/CSSStyleSelector.cpp:
2974         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2975         * css/SelectorChecker.cpp:
2976         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2977         * html/HTMLKeygenElement.cpp:
2978         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2979         * html/HTMLOptionElement.cpp:
2980         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2981         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2982         (WebCore::HTMLOptionElement::attach): Changeid base class.
2983         (WebCore::HTMLOptionElement::detach): Changed base class.
2984         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2985         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2986         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2987         * html/HTMLOptionElement.h:
2988         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2989         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2990         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2991
2992 2012-03-21  Pavel Podivilov  <podivilov@chromium.org>
2993
2994         Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
2995         https://bugs.webkit.org/show_bug.cgi?id=81780
2996
2997         Reviewed by Pavel Feldman.
2998
2999         * WebCore.gypi:
3000         * WebCore.vcproj/WebCore.vcproj:
3001         * inspector/compile-front-end.py:
3002         * inspector/front-end/CompilerScriptMapping.js:
3003         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
3004         (WebInspector.SourceMapParserPayload):
3005         (WebInspector.SourceMapParser):
3006         (WebInspector.SourceMapParser.prototype.load):
3007         (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
3008         (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
3009         (WebInspector.SourceMapParser.prototype.sources):
3010         (WebInspector.SourceMapParser.prototype.loadSourceCode):
3011         (WebInspector.SourceMapParser.prototype._findMapping):
3012         (WebInspector.SourceMapParser.prototype._parseMappingPayload):
3013         (WebInspector.SourceMapParser.prototype._parseSections):
3014         (WebInspector.SourceMapParser.prototype._parseMap):
3015         (WebInspector.SourceMapParser.prototype._isSeparator):
3016         (WebInspector.SourceMapParser.prototype._decodeVLQ):
3017         (WebInspector.SourceMapParser.prototype._canonicalizeURL):
3018         (WebInspector.SourceMapParser.StringCharIterator):
3019         (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
3020         (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
3021         (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
3022         * inspector/front-end/CompilerSourceMapping.js: Removed.
3023         * inspector/front-end/WebKit.qrc:
3024         * inspector/front-end/inspector.html:
3025
3026 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
3027
3028         Web Inspector: IndexedDB transaction is not closed when requesting data.
3029         https://bugs.webkit.org/show_bug.cgi?id=81837
3030
3031         Reviewed by Pavel Feldman.
3032
3033         * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
3034         (WebCore):
3035
3036 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
3037
3038         Web Inspector: event listeners section is broken for about:blank page
3039         https://bugs.webkit.org/show_bug.cgi?id=81795
3040
3041         Parse about:blank as a valid URL.
3042
3043         Reviewed by Pavel Feldman.
3044
3045         Test: inspector/elements/event-listeners-about-blank.html
3046
3047         * inspector/front-end/utilities.js:
3048         (String.prototype.asParsedURL):
3049
3050 2012-03-21  Dan Bernstein  <mitz@apple.com>
3051
3052         REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
3053         https://bugs.webkit.org/show_bug.cgi?id=81870
3054
3055         Reverted r111635, the fix for bug 81843.
3056
3057         * rendering/RenderFlexibleBox.cpp:
3058         (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
3059         (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
3060         (RenderFlexibleBox::WrapReverseContext):
3061         (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
3062         (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
3063         (WebCore::RenderFlexibleBox::layoutFlexItems):
3064         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
3065         (WebCore::RenderFlexibleBox::alignChildren):
3066         (WebCore::RenderFlexibleBox::flipForWrapReverse):
3067         * rendering/RenderFlexibleBox.h:
3068
3069 2012-03-21  Emil A Eklund  <eae@chromium.org>
3070
3071         Unreviewed change touching CustomFilterProgram.h to try
3072         to force the chromium-win bots to rebuilt it and pick up
3073         on the fact that CSS_SHADERS is not set (since r111610). 
3074
3075         * platform/graphics/filters/CustomFilterProgram.h:
3076
3077 2012-03-21  Vangelis Kokkevis  <vangelis@chromium.org>
3078
3079         [chromium] FPS counter causes garbage to be displayed at top left corner
3080         https://bugs.webkit.org/show_bug.cgi?id=81851
3081
3082         The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
3083         no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
3084         This patch does an explicit clearRect before the HUD contents are painted.
3085
3086         Reviewed by Adrienne Walker.
3087
3088         TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
3089
3090         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3091         (WebCore::CCHeadsUpDisplay::draw):
3092
3093 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
3094
3095         Touch a file to make Chromium Windows bots happy.
3096
3097         * css/CSSValueKeywords.in:
3098
3099 2012-03-19  Igor Oliveira  <igor.o@sisa.samsung.com>
3100
3101         Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
3102         https://bugs.webkit.org/show_bug.cgi?id=38025
3103
3104         Implement updateAnimationTimerForRender. This reduces unnecessary animation
3105         steps on the current RenderObject by checking the value of timeToNextService
3106         before starting a new timer.
3107
3108         Reviewed by Dean Jackson.
3109
3110         Test: animations/animation-welcome-safari.html
3111
3112         * page/animation/AnimationController.cpp:
3113         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
3114         (WebCore):
3115         (WebCore::AnimationController::updateAnimations):
3116         * page/animation/AnimationControllerPrivate.h:
3117         (AnimationControllerPrivate):
3118
3119 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
3120
3121         Unreviewed, rolling out r111616.
3122         http://trac.webkit.org/changeset/111616
3123         https://bugs.webkit.org/show_bug.cgi?id=81862
3124
3125         broke chromium mac (Requested by eae on #webkit).
3126
3127         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3128         (WebCore::CCLayerImpl::appendQuads):
3129         * platform/graphics/chromium/cc/CCLayerImpl.h:
3130         (CCLayerImpl):
3131         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3132         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3133         (WebCore::CCLayerTreeHostImpl::drawLayers):
3134         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3135         (CCLayerTreeHostImpl):
3136         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3137         (WebCore::CCQuadCuller::append):
3138         * platform/graphics/chromium/cc/CCQuadCuller.h:
3139         (CCQuadCuller):
3140         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3141         (WebCore::CCRenderPass::appendQuadsForLayer):
3142         * platform/graphics/chromium/cc/CCRenderPass.h:
3143         (CCRenderPass):
3144         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
3145         (WebCore::CCScrollbarLayerImpl::appendQuads):
3146         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
3147         (CCScrollbarLayerImpl):
3148         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3149         (WebCore::CCSingleThreadProxy::doComposite):
3150         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
3151         (WebCore::CCSolidColorLayerImpl::appendQuads):
3152         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
3153         (CCSolidColorLayerImpl):
3154         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3155         (WebCore::CCTextureLayerImpl::appendQuads):
3156         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
3157         (CCTextureLayerImpl):
3158         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3159         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
3160         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3161         (WebCore::CCTiledLayerImpl::appendQuads):
3162         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3163         (CCTiledLayerImpl):
3164         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3165         (WebCore::CCVideoLayerImpl::appendQuads):
3166         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3167         (CCVideoLayerImpl):
3168
3169 2012-03-21  Beth Dakin  <bdakin@apple.com>
3170
3171         https://bugs.webkit.org/show_bug.cgi?id=80322
3172         Implement image-set
3173
3174         Reviewed by Dean Jackson.
3175
3176         This initial implementation of -webkit-image-set. 
3177         http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
3178         The idea behind the feature is to allow authors to provide multiple variants 
3179         of the same image at differing resolutions, and to allow the User Agent to 
3180         choose the resource that is most appropriate at the time. This patch will 
3181         choose the most appropriate image based on device scale factor.
3182
3183         CSSImageSetValue inherits from CSSValueList and behaves a lot like 
3184         CSSImageValue.
3185         * WebCore.xcodeproj/project.pbxproj:
3186         * css/CSSImageSetValue.h: Added.
3187         (WebCore):
3188         (CSSImageSetValue):
3189         (WebCore::CSSImageSetValue::create):
3190         (WebCore::CSSImageSetValue::isPending):
3191         (ImageWithScale):
3192         (WebCore::CSSImageSetValue::compareByScaleFactor):
3193         * css/CSSImageSetValue.cpp: Added.
3194         (WebCore):
3195         (WebCore::CSSImageSetValue::CSSImageSetValue):
3196         (WebCore::CSSImageSetValue::~CSSImageSetValue):
3197         (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
3198         (WebCore::CSSImageSetValue::customCssText):
3199
3200         fillImageSet() iterates through the value list and turns the information into 
3201         a sorted Vector of ImageWithScales (which is a struct containing image URLs 
3202         and scale factors).
3203         (WebCore::CSSImageSetValue::fillImageSet):
3204
3205         cachedImageSet() finds which image is most appropriate based on the device 
3206         scale factor, and it loads only that image. In the future, additional scale 
3207         factors will be taken into account.
3208         (WebCore::CSSImageSetValue::bestImageForScaleFactor):
3209         (WebCore::CSSImageSetValue::cachedImageSet):
3210
3211         parseImageSet() is called everywhere in the CSSParser that a regular image or 
3212         generated image can be found.
3213         * css/CSSParser.cpp:
3214         (WebCore::CSSParser::parseValue):
3215         (WebCore::CSSParser::parseContent):
3216         (WebCore::CSSParser::parseFillImage):
3217         (WebCore::CSSParser::parseBorderImage):
3218         (WebCore):
3219         (WebCore::CSSParser::parseImageSet):
3220         * css/CSSParser.h:
3221
3222         Since CSSImageSetValue is implemented as a value list, 
3223         ApplyPropertyFillLayer::applyValue() needs to be more specific when it's 
3224         looking for a list of multiple URLs.
3225         * css/CSSStyleApplyProperty.cpp:
3226         (WebCore::ApplyPropertyFillLayer::applyValue):
3227
3228         Handle image-set as a valid image value.
3229         * css/CSSStyleSelector.cpp:
3230         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3231         * css/CSSStyleSelector.h:
3232         (CSSStyleSelector):
3233         * css/CSSValue.cpp:
3234         (WebCore::CSSValue::cssText):
3235         (WebCore::CSSValue::destroy):
3236         * css/CSSValue.h:
3237         (CSSValue):
3238         (WebCore::CSSValue::isImageSetValue):
3239
3240         computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
3241         * loader/cache/CachedImage.cpp:
3242         (WebCore::CachedImage::computeIntrinsicDimensions):
3243         * loader/cache/CachedImage.h:
3244         (CachedImage):
3245         * platform/graphics/GeneratedImage.h:
3246         (GeneratedImage):
3247         * platform/graphics/GeneratorGeneratedImage.cpp:
3248         (WebCore::GeneratedImage::computeIntrinsicDimensions):
3249         * platform/graphics/Image.cpp:
3250         (WebCore::Image::computeIntrinsicDimensions):
3251         * platform/graphics/Image.h:
3252         (Image):
3253         * platform/graphics/cg/PDFDocumentImage.cpp:
3254         (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
3255         * platform/graphics/cg/PDFDocumentImage.h:
3256         (PDFDocumentImage):
3257         * svg/graphics/SVGImage.cpp:
3258         (WebCore::SVGImage::computeIntrinsicDimensions):
3259         * svg/graphics/SVGImage.h:
3260         (SVGImage):
3261
3262         Inherits from StyleImage and returns a scaled size for imageSize() and 
3263         computeIntrinsicDimensions().
3264         * rendering/style/StyleCachedImageSet.cpp: Added.
3265         (WebCore):
3266         (WebCore::StyleCachedImageSet::StyleCachedImageSet):
3267         (WebCore::StyleCachedImageSet::cssValue):
3268         (WebCore::StyleCachedImageSet::canRender):
3269         (WebCore::StyleCachedImageSet::isLoaded):
3270         (WebCore::StyleCachedImageSet::errorOccurred):
3271         (WebCore::StyleCachedImageSet::imageSize):
3272         (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
3273         (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
3274         (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
3275         (WebCore::StyleCachedImageSet::usesImageContainerSize):
3276         (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
3277         (WebCore::StyleCachedImageSet::addClient):
3278         (WebCore::StyleCachedImageSet::removeClient):
3279         (WebCore::StyleCachedImageSet::image):
3280         * rendering/style/StyleCachedImageSet.h: Added.
3281         (WebCore):
3282         (StyleCachedImageSet):
3283         (WebCore::StyleCachedImageSet::create):
3284         (WebCore::StyleCachedImageSet::data):
3285         (WebCore::StyleCachedImageSet::cachedImage):
3286
3287         Handle image-set.
3288         * rendering/style/StyleImage.h:
3289         (WebCore::StyleImage::isCachedImageSet):
3290         (WebCore::StyleImage::StyleImage):
3291         (StyleImage):
3292         * rendering/style/StylePendingImage.h:
3293         (StylePendingImage):
3294         (WebCore::StylePendingImage::cssImageSetValue):
3295
3296 2012-03-21  David Barton  <dbarton@mathscribe.com>
3297
3298         MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
3299         https://bugs.webkit.org/show_bug.cgi?id=81850
3300
3301         Reviewed by Eric Seidel.
3302
3303         This prepares these files for bug fixes, and eventually combining their common code. To
3304         understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
3305         simpler than RenderMathMLRoot.cpp.
3306
3307         No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
3308
3309         * rendering/mathml/RenderMathMLRoot.cpp:
3310         (WebCore):
3311         (WebCore::RenderMathMLRoot::addChild):
3312         (WebCore::RenderMathMLRoot::paint):
3313         (WebCore::RenderMathMLRoot::layout):
3314         * rendering/mathml/RenderMathMLRoot.h:
3315         (WebCore):
3316         (RenderMathMLRoot):
3317         * rendering/mathml/RenderMathMLSquareRoot.cpp:
3318         (WebCore):
3319         (WebCore::RenderMathMLSquareRoot::paint):
3320         (WebCore::RenderMathMLSquareRoot::layout):
3321         * rendering/mathml/RenderMathMLSquareRoot.h:
3322         (WebCore):
3323         (RenderMathMLSquareRoot):
3324         * rendering/mathml/RenderMathMLSubSup.h:
3325         (WebCore):
3326
3327 2012-03-21  Tony Chang  <tony@chromium.org>
3328
3329         refactor flexbox in preparation for flex-line-pack
3330         https://bugs.webkit.org/show_bug.cgi?id=81843
3331
3332         Reviewed by Ojan Vafai.
3333
3334         Replace WrapReverseContext with a vector of LineContexts that contain
3335         the same information, plus values needed for flex-align.
3336
3337         alignChildren has been moved to after all the lines have been
3338         positioned. We want to align children after flex-line-pack has changed
3339         the size of each line to avoid unnecessary layouts.
3340
3341         No new tests, just refactoring.
3342
3343         * rendering/RenderFlexibleBox.cpp:
3344         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
3345         holds information needed for wrap-reverse and aligning children.
3346         (RenderFlexibleBox::LineContext):
3347         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
3348         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
3349         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
3350         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
3351         * rendering/RenderFlexibleBox.h:
3352
3353 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
3354
3355         BDI element should have dir=auto by default
3356         https://bugs.webkit.org/show_bug.cgi?id=68773
3357
3358         Reviewed by Daniel Bates.
3359
3360         Treat bdi elements without dir content attribute as if they have dir=auto per spec:
3361         http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
3362
3363         The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
3364
3365         It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
3366         selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
3367         directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
3368         elements can be overridden by dir content attribute, we must change and only change the default value.
3369
3370         Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
3371                fast/text/international/bdi-dir-default-to-auto.html
3372
3373         * GNUmakefile.list.am:
3374         * Target.pri:
3375         * WebCore.gypi:
3376         * WebCore.vcproj/WebCore.vcproj:
3377         * WebCore.xcodeproj/project.pbxproj:
3378         * css/CSSStyleSelector.cpp:
3379         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3380         * html/HTMLBDIElement.h: Added.
3381         (WebCore):
3382         (HTMLBDIElement):
3383         (WebCore::HTMLBDIElement::create):
3384         (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
3385         bdi elements are treated as if it has dir=auto by default.
3386         * html/HTMLElement.cpp:
3387         (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
3388         has dir content attribute.
3389         (WebCore):
3390         (WebCore::setHasDirAutoFlagRecursively):
3391         (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
3392         as if it has dir=auto (bdi or element with dir=auto).
3393         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
3394         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
3395         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
3396         * html/HTMLElement.h:
3397         (HTMLElement):
3398         * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
3399         to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
3400
3401 2012-03-21  Luke Macpherson  <macpherson@chromium.org>
3402
3403         Use CSSPrimitiveValue::convertToLength() in a few places.
3404         https://bugs.webkit.org/show_bug.cgi?id=81492
3405
3406         Reviewed by Eric Seidel.
3407
3408         No new tests - refactoring only.
3409
3410         CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
3411         in many places in CSSStyleSelector. This patch removes some of that code duplication.
3412
3413         * css/CSSStyleApplyProperty.cpp:
3414         (WebCore::ApplyPropertyVerticalAlign::applyValue):
3415         * css/CSSStyleSelector.cpp:
3416         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3417
3418 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
3419
3420         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
3421
3422         * rendering/svg/RenderSVGRoot.cpp:
3423
3424 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
3425
3426         Build fix for !ENABLE(INSPECTOR) after r104831.
3427
3428         * bindings/js/ScriptDebugServer.cpp:
3429         (WebCore::ScriptDebugServer::dispatchDidParseSource):
3430
3431 2012-03-21  Xiaomei Ji  <xji@chromium.org>
3432
3433         visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
3434         https://bugs.webkit.org/show_bug.cgi?id=81408
3435
3436         Reviewed by Ryosuke Niwa.
3437
3438         Cache logically ordered leaf boxes under a particular root box.
3439         Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
3440         clear-ed before use).
3441
3442         * editing/visible_units.cpp:
3443         (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
3444         (WebCore::CachedLogicallyOrderedLeafBoxes::size):
3445         (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
3446         (WebCore):
3447         (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
3448         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
3449         (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
3450         (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
3451         (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
3452         (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
3453         (WebCore::logicallyNextBox):
3454         (WebCore::wordBreakIteratorForMinOffsetBoundary):
3455         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
3456         (WebCore::visualWordPosition):
3457
3458 2012-03-21  Dana Jansens  <danakj@chromium.org>
3459
3460         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
3461         https://bugs.webkit.org/show_bug.cgi?id=81437
3462
3463         Reviewed by Adrienne Walker.
3464
3465         Split CCLayerTreeHostImpl::drawLayers() into two phases:
3466         prepareToDraw() and drawLayers().
3467
3468         When calculating a RenderPass, and we checkerboard a quad on a
3469         layer, bubble this info back up to CCLayerTreeHostImpl. If the
3470         layer is transforming in an animation, then abort the prepareToDraw()
3471         phase and cause it to return false back to the thread proxy.
3472
3473         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
3474
3475         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3476         (WebCore::CCLayerImpl::appendQuads):
3477         * platform/graphics/chromium/cc/CCLayerImpl.h:
3478         (CCLayerImpl):
3479         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3480         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3481         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3482         (WebCore):
3483         (WebCore::CCLayerTreeHostImpl::drawLayers):
3484         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3485         (CCLayerTreeHostImpl):
3486         (FrameData):
3487         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3488         (WebCore::CCQuadCuller::append):
3489         * platform/graphics/chromium/cc/CCQuadCuller.h:
3490         (CCQuadCuller):
3491         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3492         (WebCore::CCRenderPass::appendQuadsForLayer):
3493         * platform/graphics/chromium/cc/CCRenderPass.h:
3494         (CCRenderPass):
3495         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
3496         (WebCore::CCScrollbarLayerImpl::appendQuads):
3497         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
3498         (CCScrollbarLayerImpl):
3499         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3500         (WebCore::CCSingleThreadProxy::doComposite):
3501         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
3502         (WebCore::CCSolidColorLayerImpl::appendQuads):
3503         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
3504         (CCSolidColorLayerImpl):
3505         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3506         (WebCore::CCTextureLayerImpl::appendQuads):
3507         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
3508         (CCTextureLayerImpl):
3509         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3510         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
3511         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3512         (WebCore::CCTiledLayerImpl::appendQuads):
3513         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3514         (CCTiledLayerImpl):
3515         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3516         (WebCore::CCVideoLayerImpl::appendQuads):
3517         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3518         (CCVideoLayerImpl):
3519
3520 2012-03-21  Enrica Casucci  <enrica@apple.com>
3521
3522         WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
3523         https://bugs.webkit.org/show_bug.cgi?id=81835
3524         <rdar://problem/11082749>
3525
3526         Reviewed by Brady Eidson.
3527
3528         When writing the URL in the pasteboard for the WebURLWithTitles format,
3529         we use the user visible string instead of the original URL.
3530         In case of URL with Unicode characters, we lose the encoding.
3531         
3532         Added TestWebKitAPI test.
3533
3534         * platform/mac/PasteboardMac.mm:
3535         (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
3536
3537 2012-03-21  Levi Weintraub  <leviw@chromium.org>
3538
3539         Correct LayoutUnit usage in VisiblePosition.cpp
3540         https://bugs.webkit.org/show_bug.cgi?id=81775
3541
3542         Reviewed by Eric Seidel.
3543
3544         Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
3545         and properly using LayoutUnits for local coordinates.
3546
3547         No new tests. No change in behavior.
3548
3549         * editing/VisiblePosition.cpp:
3550         (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
3551         header. Local coordinates are in LayoutUnits.
3552         (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
3553         (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
3554
3555 2012-03-21  Adam Klein  <adamk@chromium.org>
3556
3557         "this" argument for MutationCallbacks should be the MutationObserver
3558         https://bugs.webkit.org/show_bug.cgi?id=81712
3559
3560         Reviewed by Adam Barth.
3561
3562         Test: fast/mutation/callback-arguments.html
3563
3564         * bindings/js/JSCallbackData.cpp:
3565         (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
3566         an explicit this argument and have the old method call the new one.
3567         * bindings/js/JSCallbackData.h:
3568         (JSCallbackData):
3569         * bindings/js/JSMutationCallbackCustom.cpp:
3570         (WebCore::JSMutationCallback::handleEvent): Call the new overload.
3571         * bindings/v8/custom/V8CustomVoidCallback.cpp:
3572         (WebCore::invokeCallback): Add an overload that takes an explicit this
3573         argument and have the old method call the new one.
3574         * bindings/v8/custom/V8CustomVoidCallback.h:
3575         (WebCore):
3576         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
3577         (WebCore::V8MutationCallback::handleEvent): Call the new overload.
3578
3579 2012-03-21  Alexandru Chiculita  <achicu@adobe.com>
3580
3581         [CSS Shaders] Make CSS Shaders compile on Chromium
3582         https://bugs.webkit.org/show_bug.cgi?id=81435
3583
3584         Reviewed by Stephen White.
3585
3586         This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
3587         The only way to test the functionality now is to use the overridePreference from dump render tree.
3588
3589         Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
3590         HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
3591         get recreated anyway.
3592
3593         No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
3594         I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force 
3595         enable the feature at runtime. 
3596
3597         * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
3598         (WebCore::cachedResourceTypeToTargetType):
3599
3600         * platform/graphics/filters/FECustomFilter.cpp:
3601         (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
3602         (WebCore::FECustomFilter::create):
3603         (WebCore::FECustomFilter::initializeContext):
3604         (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
3605         Other drivers didn't complain about it, but it was clearly a bug.
3606         (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
3607         projection matrix only on Chromium, so that we get the correct result.
3608
3609         * rendering/FilterEffectRenderer.cpp:
3610         (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
3611
3612 2012-03-21  Mark Pilgrim  <pilgrim@chromium.org>
3613
3614         Realphabetize about webaudio move
3615         https://bugs.webkit.org/show_bug.cgi?id=81825
3616
3617         Reviewed by Adam Barth.
3618
3619         No new tests, all existing tests pass.
3620
3621         * CMakeLists.txt:
3622
3623 2012-03-21  Anders Carlsson  <andersca@apple.com>
3624
3625         Evict tiles from pages in background tabs
3626         https://bugs.webkit.org/show_bug.cgi?id=81829
3627         <rdar://problem/10866152>
3628
3629         Reviewed by Andreas Kling.
3630
3631         When the tile cache for a page is no longer in a window (which happens when it's moved to 
3632         a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation 
3633         will ensure that tiles outside of the visible rect will be dropped.
3634
3635         * platform/graphics/ca/mac/TileCache.h:
3636         (TileCache):
3637         * platform/graphics/ca/mac/TileCache.mm:
3638         (WebCore::TileCache::tileCacheLayerBoundsChanged):
3639         (WebCore::TileCache::setIsInWindow):
3640         (WebCore::TileCache::tileCoverageRect):
3641         (WebCore):
3642         (WebCore::TileCache::scheduleTileRevalidation):
3643         (WebCore::TileCache::revalidateTiles):
3644
3645 2012-03-21  Stephen Chenney  <schenney@chromium.org>
3646
3647         SVG layout leaves objects still needing layout
3648         https://bugs.webkit.org/show_bug.cgi?id=81006
3649
3650         Reviewed by Nikolas Zimmermann.
3651
3652         Change the layout of SVG objects such that resources that trigger
3653         layout of other objects are handled in a distinct pass, and then
3654         objects still requiring layout are laid out again.
3655
3656         Test: svg/custom/delete-text-innerText-crash.html
3657
3658         * rendering/svg/RenderSVGResourceContainer.cpp:
3659         (WebCore::RenderSVGResourceContainer::layout):
3660         * rendering/svg/RenderSVGResourceMarker.cpp:
3661         (WebCore::RenderSVGResourceMarker::layout):
3662         * rendering/svg/RenderSVGRoot.cpp:
3663         (WebCore::RenderSVGRoot::layout):
3664         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
3665         (WebCore):
3666         * rendering/svg/RenderSVGRoot.h:
3667         (RenderSVGRoot):
3668
3669 2012-03-21  Tim Horton  <timothy_horton@apple.com>
3670
3671         Make use of CG rounded-rect primitives
3672         https://bugs.webkit.org/show_bug.cgi?id=79932
3673         <rdar://problem/9274953>
3674
3675         Reviewed by Simon Fraser.
3676
3677         Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
3678
3679         Dispatch to potentially platform-specific rounded rectangle path
3680         construction from addPathForRoundedRect. Make use of this to call
3681         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
3682         corners are all equivalent.
3683
3684         The origin of the stroke dash differs between the bezier approach
3685         and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
3686         takes a new parameter allowing code which is sensitive to stroke dash
3687         origin (i.e. SVG) to fall back to the old behavior if need be.
3688
3689         Make use of the new Path::addRoundedRect() parameter to fall back to
3690         the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
3691         in order to continue complying with the spec.
3692
3693         No new tests, as this is covered by many that use rounded corners,
3694         and is only a performance improvement.
3695
3696         * WebCore.exp.in:
3697         * platform/graphics/Path.cpp:
3698         (WebCore::Path::addRoundedRect):
3699         (WebCore):
3700         (WebCore::Path::addPathForRoundedRect):
3701         * platform/graphics/Path.h:
3702         (Path):
3703         * platform/graphics/cg/PathCG.cpp:
3704         (WebCore::Path::platformAddPathForRoundedRect):
3705         (WebCore):
3706         * platform/mac/WebCoreSystemInterface.h:
3707         * platform/mac/WebCoreSystemInterface.mm:
3708         * rendering/svg/SVGPathData.cpp:
3709         (WebCore::updatePathFromRectElement):
3710
3711 2012-03-21  David Reveman  <reveman@chromium.org>
3712
3713         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
3714         https://bugs.webkit.org/show_bug.cgi?id=80988
3715
3716         Reviewed by Adrienne Walker.
3717
3718         Expose EXT_occlusion_query API to WebKit compositor. Add
3719         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
3720         enums.
3721
3722         * platform/graphics/chromium/Extensions3DChromium.h:
3723         (Extensions3DChromium):
3724
3725 2012-03-21  Tony Chang  <tony@chromium.org>
3726
3727         compute the sign of flexibility for new flexbox
3728         https://bugs.webkit.org/show_bug.cgi?id=81722
3729
3730         Reviewed by Ojan Vafai.
3731
3732         This implements the computation of the sign of flexibility used by the
3733         new flexing algorithm.
3734         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
3735
3736         No new tests, we don't use the sign of flexibility yet.
3737
3738         * rendering/RenderFlexibleBox.cpp:
3739         (WebCore::RenderFlexibleBox::layoutFlexItems):
3740         (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
3741         adjusted for min/max as well as not adjusted.
3742         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
3743         spec text better.
3744         * rendering/RenderFlexibleBox.h: Added enum for flex sign.
3745
3746 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
3747
3748         Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
3749         https://bugs.webkit.org/show_bug.cgi?id=81669
3750
3751         Reviewed by Pavel Feldman.
3752
3753         * inspector/front-end/BreakpointManager.js:
3754         (WebInspector.BreakpointManager.get for):
3755         (WebInspector.BreakpointManager):
3756         (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
3757         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
3758         (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
3759         (WebInspector.BreakpointManager.prototype.setBreakpoint):
3760         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
3761         (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
3762         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
3763         (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
3764         (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
3765         (WebInspector.BreakpointManager.prototype._uiBreakpoints):
3766         (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
3767         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
3768         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
3769         (WebInspector.BreakpointManager.prototype._breakpoints):
3770         (WebInspector.BreakpointManager.prototype._breakpoint):
3771         (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
3772         (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
3773         (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
3774         (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
3775         (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
3776         (WebInspector.BreakpointManager.prototype.debuggerReset):
3777         (WebInspector.Breakpoint.prototype.serialize):
3778         (WebInspector.Breakpoint.prototype.get uiBreakpoint):
3779         (WebInspector.Breakpoint.prototype.createUIBreakpoint):
3780         (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
3781         (WebInspector.UIBreakpoint):
3782         * inspector/front-end/DebuggerPresentationModel.js:
3783         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
3784         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
3785         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
3786         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
3787         * inspector/front-end/ScriptsPanel.js:
3788
3789 2012-03-21  Anders Carlsson  <andersca@apple.com>
3790
3791         TileCache needs to know if its containing page is in a window
3792         https://bugs.webkit.org/show_bug.cgi?id=81821
3793
3794         Reviewed by Andreas Kling.
3795
3796         This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
3797
3798         * page/FrameView.cpp:
3799         (WebCore::FrameView::didMoveOnscreen):
3800         (WebCore::FrameView::willMoveOffscreen):
3801         * page/Page.cpp:
3802         (WebCore::Page::Page):
3803         (WebCore::Page::didMoveOnscreen):
3804         (WebCore::Page::willMoveOffscreen):
3805         * page/Page.h:
3806         (WebCore::Page::isOnscreen):
3807         (Page):
3808         * platform/graphics/TiledBacking.h:
3809         (TiledBacking):
3810         * platform/graphics/ca/mac/TileCache.h:
3811         (TileCache):
3812         * platform/graphics/ca/mac/TileCache.mm:
3813         (WebCore::TileCache::TileCache):
3814         (WebCore::TileCache::setIsInWindow):
3815         (WebCore):
3816         * rendering/RenderLayerBacking.cpp:
3817         (WebCore::RenderLayerBacking::RenderLayerBacking):
3818
3819 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
3820
3821         Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
3822         https://bugs.webkit.org/show_bug.cgi?id=81744
3823
3824         Reviewed by Chris Rogers.
3825
3826         * platform/audio/ReverbConvolverStage.cpp:
3827         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3828
3829 2012-03-21  Xiaomei Ji  <xji@chromium.org>
3830
3831         [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
3832         https://bugs.webkit.org/show_bug.cgi?id=79961
3833
3834         Reviewed by Adam Barth.
3835
3836         Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
3837
3838         * platform/graphics/Font.h:
3839         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
3840         * platform/graphics/mac/ComplexTextController.cpp:
3841         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
3842         * platform/graphics/win/UniscribeController.cpp:
3843         (WebCore::UniscribeController::shapeAndPlaceItem):
3844
3845 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
3846
3847         Build fix for !ENABLE(INSPECTOR) after r111005.
3848
3849         * inspector/ContentSearchUtils.h:
3850
3851 2012-03-21  Ulan Degenbaev  <ulan@chromium.org>
3852
3853         [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
3854         https://bugs.webkit.org/show_bug.cgi?id=81200
3855
3856         Reviewed by Adam Barth.
3857
3858         Pass a hint to V8::IdleNotification that requests more aggressive GC
3859         when a main frame context is disposed and requests incremental GC otherwise.
3860
3861         * bindings/v8/V8DOMWindowShell.cpp:
3862         (WebCore::V8DOMWindowShell::disposeContextHandles):
3863         * bindings/v8/V8GCForContextDispose.cpp:
3864         (WebCore::V8GCForContextDispose::V8GCForContextDispose):
3865         (WebCore::V8GCForContextDispose::notifyContextDisposed):
3866         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
3867         * bindings/v8/V8GCForContextDispose.h:
3868         (V8GCForContextDispose):
3869
3870 2012-03-21  Nat Duca  <nduca@chromium.org>
3871
3872         [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
3873         https://bugs.webkit.org/show_bug.cgi?id=81790
3874
3875         Reviewed by James Robinson.
3876
3877         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3878         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
3879
3880 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
3881
3882         Add multichannel support in RealtimeAnalyser
3883         https://bugs.webkit.org/show_bug.cgi?id=81745
3884
3885         Reviewed by Chris Rogers.
3886
3887         * Modules/webaudio/RealtimeAnalyser.cpp:
3888         (WebCore::RealtimeAnalyser::writeInput):
3889         (WebCore):
3890
3891 2012-03-21  Eric Carlson  <eric.carlson@apple.com>
3892
3893         Removing HTMLTrackElement does not delete TextTrack
3894         https://bugs.webkit.org/show_bug.cgi?id=80873
3895
3896         Reviewed by Antti Koivisto.
3897
3898         No new tests, but media/track/track-language-preference.html has been updated
3899         to test this fix.
3900
3901         * html/HTMLMediaElement.cpp:
3902         (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
3903         (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
3904         called before the track is removed, to allow the TextTrack to be removed.
3905         * html/HTMLMediaElement.h:
3906
3907         * html/HTMLTrackElement.cpp:
3908         (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
3909         (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
3910         * html/HTMLTrackElement.h:
3911
3912         * html/track/LoadableTextTrack.cpp:
3913         (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
3914         document in the calcualtion.
3915
3916 2012-03-21  Zeno Albisser  <zeno@webkit.org>
3917
3918         [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
3919         https://bugs.webkit.org/show_bug.cgi?id=81750
3920
3921         Building WebCore on mac currently creates an archive that is bigger than
3922         4GB. But ranlib fails to create a symbol table for such a big archive,
3923         even on 64bit machines.
3924         Therefore we start using SVGAllInOne.cpp when building debug
3925         on mac. This reduces the size of the archive by about 300MB.
3926
3927         Reviewed by Tor Arne Vestbø.
3928
3929         * Target.pri:
3930
3931 2012-03-21  Tommy Widenflycht  <tommyw@google.com>
3932
3933         [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
3934         https://bugs.webkit.org/show_bug.cgi?id=81339
3935
3936         Reviewed by Adam Barth.
3937
3938         Not possible to test until the entire JSEP feature is commited.
3939
3940         * Modules/mediastream/IceCandidate.cpp:
3941         (WebCore::IceCandidate::toSdp):
3942         * Modules/mediastream/SessionDescription.cpp:
3943         (WebCore::SessionDescription::toSdp):
3944         * platform/mediastream/IceCandidateDescriptor.cpp:
3945         (WebCore::IceCandidateDescriptor::toSDP):
3946         * platform/mediastream/IceCandidateDescriptor.h:
3947         (IceCandidateDescriptor):
3948         * platform/mediastream/MediaStreamCenter.cpp:
3949         (WebCore::MediaStreamCenter::constructSDP):
3950         * platform/mediastream/MediaStreamCenter.h:
3951         (MediaStreamCenter):
3952         * platform/mediastream/SessionDescriptionDescriptor.cpp:
3953         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
3954         (WebCore::SessionDescriptionDescriptor::toSDP):
3955         (WebCore::SessionDescriptionDescriptor::initialSDP):
3956         * platform/mediastream/SessionDescriptionDescriptor.h:
3957         (SessionDescriptionDescriptor):
3958
3959 2012-03-21  Yuta Kitamura  <yutak@chromium.org>
3960
3961         Use RFC version of WebSocket protocol by default
3962         https://bugs.webkit.org/show_bug.cgi?id=81718
3963
3964         Reviewed by Kent Tamura.
3965
3966         Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
3967         RFC version of WebSocket protocol by default.
3968
3969         All the existing ports already use the RFC protocol as of now, so this change will not make
3970         any impact (hopefully).
3971
3972         No new tests. No change in functionality.
3973
3974         * page/Settings.cpp:
3975         (WebCore::Settings::Settings):
3976
3977 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
3978
3979         Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
3980         https://bugs.webkit.org/show_bug.cgi?id=81798
3981
3982         Reviewed by Pavel Feldman.
3983
3984         * bindings/js/JSInjectedScriptHostCustom.cpp:
3985         (WebCore::getJSListenerFunctions):
3986         * bindings/js/ScriptEventListener.cpp:
3987         (WebCore::eventListenerHandlerBody):
3988         (WebCore::eventListenerHandlerLocation):
3989         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3990         (WebCore::getJSListenerFunctions):
3991         * inspector/InspectorDOMAgent.cpp:
3992         (WebCore::InspectorDOMAgent::getEventListeners):
3993
3994 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
3995
3996         EventListener::Type enum has unused member InspectorDOMAgentType
3997         https://bugs.webkit.org/show_bug.cgi?id=81794
3998
3999         Reviewed by Pavel Feldman.
4000
4001         * dom/EventListener.h:
4002
4003 2012-03-21  Tom Hudson  <tomhudson@google.com>
4004
4005         Incremental cleanup of BitmapImage: inlined virtual functions
4006         https://bugs.webkit.org/show_bug.cgi?id=81688
4007
4008         Reviewed by James Robinson.
4009
4010         No change in functionality, so no new tests.
4011
4012         Move virtual functions defined in headers into .cpp files.
4013
4014         * WebCore.gypi:
4015         * platform/graphics/BitmapImage.cpp:
4016         (WebCore::BitmapImage::isBitmapImage):
4017         (WebCore):
4018         (WebCore::BitmapImage::hasSingleSecurityOrigin):
4019         (WebCore::BitmapImage::nativeImageForCurrentFrame):
4020         (WebCore::BitmapImage::currentFrameHasAlpha):
4021         (WebCore::BitmapImage::notSolidColor):
4022         (WebCore::BitmapImage::decodedSize):
4023         (WebCore::BitmapImage::mayFillWithSolidColor):
4024         (WebCore::BitmapImage::solidColor):
4025         * platform/graphics/BitmapImage.h:
4026         (BitmapImage):
4027         * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
4028         (WebCore):
4029         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
4030         (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
4031         (WebCore::BitmapImageSingleFrameSkia::size):
4032         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
4033         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
4034         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
4035         (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
4036         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
4037         (BitmapImageSingleFrameSkia):
4038
4039 2012-03-21  Alexey Proskuryakov  <ap@apple.com>
4040
4041         Remove obsolete File attributes
4042         https://bugs.webkit.org/show_bug.cgi?id=79383
4043
4044         Reviewed by Hajime Morita.
4045
4046         * bindings/objc/PublicDOMInterfaces.h:
4047         * fileapi/File.h:
4048         * fileapi/File.idl:
4049         Removed fileName and fileSize, they have different names now.