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