2010-01-18 Ilya Tikhonovsky <loislo@chromium.org>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
2
3         Reviewed by Pavel Feldman.
4
5         WebInspector: Timeline panel scrolling speed can be 2 times faster.
6         https://bugs.webkit.org/show_bug.cgi?id=33794
7
8         * inspector/front-end/TimelinePanel.js:
9         (WebInspector.TimelinePanel.prototype._scheduleRefresh):
10         (WebInspector.TimelinePanel.prototype._refreshRecords):
11         (WebInspector.TimelineCalculator):
12         (WebInspector.TimelineCalculator.prototype.calculateWindow):
13         (WebInspector.TimelineCalculator.prototype.reset):
14         (WebInspector.TimelineCalculator.prototype.updateBoundaries):
15         (WebInspector.TimelineRecordGraphRow.prototype.update):
16
17 2010-01-18  Steve Block  <steveblock@google.com>
18
19         Reviewed by Adam Barth.
20
21         Moves JSC-specific version of JavaInstance from bridge/jni/jni_instance to bridge/jni/jsc/JavaInstanceJSC
22         https://bugs.webkit.org/show_bug.cgi?id=33672
23
24         No new tests, refactoring only.
25
26         * Android.jscbindings.mk: Modified. Removed jni_instance.cpp and added JavaInstanceJSC.cpp
27         * GNUmakefile.am: Modified. Removed jni_instance.h and added JavaInstanceJSC.h
28         * WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_instance.[cpp|h] and added JavaInstanceJSC.[cpp|h]
29         * bindings/js/ScriptControllerMac.mm: Modified. Includes JavaInstanceJSC.h
30         * bridge/jni/jni_instance.cpp: Removed.
31         * bridge/jni/jni_instance.h: Removed.
32         * bridge/jni/jni_runtime.h: Modified. Includes JavaInstanceJSC.h
33         * bridge/jni/jsc/JavaInstanceJSC.cpp: Copied from WebCore/bridge/jni/jni_instance.cpp.
34         * bridge/jni/jsc/JavaInstanceJSC.h: Copied from WebCore/bridge/jni/jni_instance.h.
35
36 2010-01-18  Peter Kasting  <pkasting@google.com>
37
38         Reviewed by Adam Barth.
39
40         Simplify image decoders slightly by using OwnPtr instead of raw pointers
41         and eliminating a basically-useless wrapper class in the GIF decoder.
42         https://bugs.webkit.org/show_bug.cgi?id=28751
43
44         * platform/graphics/qt/ImageDecoderQt.cpp:
45         (WebCore::ImageDecoderQt::ImageDecoderQt):
46         (WebCore::ImageDecoderQt::~ImageDecoderQt):
47         (WebCore::ImageDecoderQt::setData):
48         (WebCore::ImageDecoderQt::internalReadImage):
49         (WebCore::ImageDecoderQt::failRead):
50         * platform/graphics/qt/ImageDecoderQt.h:
51         * platform/image-decoders/gif/GIFImageDecoder.cpp:
52         (WebCore::GIFImageDecoder::GIFImageDecoder):
53         (WebCore::GIFImageDecoder::~GIFImageDecoder):
54         (WebCore::GIFImageDecoder::setData):
55         (WebCore::GIFImageDecoder::frameCount):
56         (WebCore::GIFImageDecoder::repetitionCount):
57         (WebCore::GIFImageDecoder::decode):
58         (WebCore::GIFImageDecoder::decodingHalted):
59         (WebCore::GIFImageDecoder::initFrameBuffer):
60         (WebCore::GIFImageDecoder::haveDecodedRow):
61         (WebCore::GIFImageDecoder::gifComplete):
62         * platform/image-decoders/gif/GIFImageDecoder.h:
63         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
64         (WebCore::JPEGImageDecoder::JPEGImageDecoder):
65         (WebCore::JPEGImageDecoder::~JPEGImageDecoder):
66         (WebCore::JPEGImageDecoder::setData):
67         (WebCore::JPEGImageDecoder::decode):
68         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
69         * platform/image-decoders/png/PNGImageDecoder.cpp:
70         (WebCore::PNGImageDecoder::PNGImageDecoder):
71         (WebCore::PNGImageDecoder::~PNGImageDecoder):
72         (WebCore::PNGImageDecoder::setData):
73         (WebCore::PNGImageDecoder::decode):
74         (WebCore::PNGImageDecoder::headerAvailable):
75         (WebCore::PNGImageDecoder::rowAvailable):
76         * platform/image-decoders/png/PNGImageDecoder.h:
77
78 2010-01-18  Daniel Cheng  <dcheng@google.com>
79
80         Reviewed by Adam Roben.
81
82         DataTransfer interface broken on Windows--types member is always
83         undefined, and getData() does not work.
84         https://bugs.webkit.org/show_bug.cgi?id=30527
85
86         * platform/win/ClipboardWin.cpp:
87         (WebCore::addMimeTypesForFormat): pass FORMATETC as a const ref.
88         (WebCore::ClipboardWin::types): fix calls to IEnumFORMATETC.
89         (WebCore::ClipboardWin::hasData): fix calls to IEnumFORMATETC.
90
91 2010-01-18  Mikhail Naganov  <mnaganov@chromium.org>
92
93         Reviewed by Timothy Hatcher.
94
95         Don't show Profiles welcome screen on panel switch,
96         if a profile view is shown.
97
98         https://bugs.webkit.org/show_bug.cgi?id=33799
99
100         * inspector/front-end/ProfilesPanel.js:
101         (WebInspector.ProfilesPanel.prototype.show):
102
103 2010-01-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
104
105         Reviewed by Simon Hausmann.
106
107         [Qt] Force qmake to generate a single makefile for DerivedSources.pro
108
109         * DerivedSources.pro:
110
111 2010-01-18  Jonathan Dixon  <joth@chromium.org>
112
113         Reviewed by Adam Barth.
114
115         Add support for enabling navigator.geolocation at runtime in the V8 bindings.
116         Adds the [EnabledAtRuntime] modifier to the navigator IDL.
117         https://bugs.webkit.org/show_bug.cgi?id=33467
118
119         * WebCore.gypi:
120         * bindings/v8/RuntimeEnabledFeatures.cpp:
121         * bindings/v8/RuntimeEnabledFeatures.h:
122         (WebCore::RuntimeEnabledFeatures::setGeolocationEnabled):
123         (WebCore::RuntimeEnabledFeatures::geolocationEnabled):
124         * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
125         (WebCore::V8Navigator::GeolocationEnabled):
126         * page/Navigator.cpp:
127         (WebCore::Navigator::geolocation):
128         * page/Navigator.idl:
129
130 2010-01-18  Alexander Pavlov  <apavlov@chromium.org>
131
132         Reviewed by Pavel Feldman.
133
134         Improve Resources panel performance for lots of resources
135
136         DOM properties are extracted into const's, comparisons are faster.
137         https://bugs.webkit.org/show_bug.cgi?id=33790
138
139         * inspector/front-end/AbstractTimelinePanel.js:
140         (WebInspector.AbstractTimelinePanel.prototype._updateDividersLabelBarPosition):
141         * inspector/front-end/Resource.js:
142         (WebInspector.Resource.CompareByStartTime):
143         (WebInspector.Resource.CompareByResponseReceivedTime):
144         (WebInspector.Resource.CompareByEndTime):
145         (WebInspector.Resource.CompareByDuration):
146         (WebInspector.Resource.CompareByLatency):
147         (WebInspector.Resource.CompareBySize):
148         * inspector/front-end/ResourcesPanel.js:
149         (WebInspector.ResourceGraph.prototype.refreshLabelPositions):
150
151 2010-01-18  Daniel Bates  <dbates@rim.com>
152
153         Reviewed by Eric Seidel.
154
155         https://bugs.webkit.org/show_bug.cgi?id=33726
156
157         Following up on changes made with respect to bug #33498, we should
158         fix the the style errors found by the style bot.
159         
160         Moreover, this fixes all the style errors found by check-webkit-style
161         except the use of an underline in the variable name _niflags. We should
162         fix this in a second run through for all the other variables names that
163         contain an underline because there are many.
164
165         No functionality was changed. So, no new tests.
166
167         * rendering/style/SVGRenderStyle.h:
168         (WebCore::SVGRenderStyle::create):
169         (WebCore::SVGRenderStyle::copy):
170         (WebCore::SVGRenderStyle::operator!=):
171         (WebCore::SVGRenderStyle::hasStroke):
172         (WebCore::SVGRenderStyle::hasFill):
173         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
174         (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
175         (WebCore::SVGRenderStyle::NonInheritedFlags::operator==):
176         (WebCore::SVGRenderStyle::NonInheritedFlags::operator!=):
177         (WebCore::SVGRenderStyle::NonInheritedFlags::):
178         (WebCore::SVGRenderStyle::):
179         (WebCore::SVGRenderStyle::setBitDefaults):
180
181 2010-01-18  Andrei Popescu  <andreip@google.com>
182
183         Reviewed by Adam Barth.
184
185         [Android] DOMWrapperMap::Visitor needs virtual destructor
186         https://bugs.webkit.org/show_bug.cgi?id=33675
187
188         Add protected virtual dtor to DOMWrapperMap::Visitor. See bug for further discussion.
189
190         No new tests needed, functionality not changed.
191
192         * bindings/v8/V8DOMMap.h:
193         (WebCore::DOMWrapperMap::Visitor::~Visitor): Added.
194
195 2010-01-18  Simon Hausmann  <simon.hausmann@nokia.com>
196
197         Unreviewed Symbian build fix.
198
199         If we don't link with def files, then we have to pass EXPORTUNFROZEN,
200         so that the build system still creates the .dso files in
201         release/armv5/lib and we can actually link against the created QtWebKit
202         dlls.
203
204         Thanks Iain for the help!
205
206         * WebCore.pro:
207
208 2010-01-17  Srinidhi Shreedhara  <srinidhi.shreedhara@nokia.com>
209
210         Reviewed by Simon Hausmann.
211
212         [Qt] [Symbian] SetWindow call in npapi plugin does not happen when the cooridnates are negative
213         https://bugs.webkit.org/show_bug.cgi?id=33573
214
215         * plugins/symbian/PluginViewSymbian.cpp:
216         (WebCore::PluginView::setNPWindowIfNeeded): Remove tests for negative
217         coordinates for early return.
218
219 2010-01-17  Oliver Hunt  <oliver@apple.com>
220
221         Reviewed by Dan Bernstein.
222
223         REGRESSION (r52449): SVG mask wrongly clipped when not at origin for recent nightly build
224         https://bugs.webkit.org/show_bug.cgi?id=33782
225
226         Test: svg/custom/transformedMaskFails.svg
227
228         When computing the bounds for elements in a mask, we iterate through
229         all of our children requesting their repaint bounds using
230         repaintRectInLocalCoordinates(), but we were not converting that
231         rect into our own coordinate system, thus leading to an incorrect
232         repaint rect.  This patch simply adds the missing localToParent
233         transform.
234
235         * svg/SVGMaskElement.cpp:
236         (WebCore::SVGMaskElement::drawMaskerContent):
237
238 2010-01-17  Maciej Stachowiak  <mjs@apple.com>
239
240         Reviewed by Dan Bernstein.
241
242         Avoid slow access to AX objects on attribute access when AX is off
243         https://bugs.webkit.org/show_bug.cgi?id=33779
244
245         ~4% Dromaeo attributes test speedup
246
247         * dom/Element.cpp:
248         (WebCore::Element::updateAfterAttributeChanged): Don't do expensive lookup of
249         AX object cache unless accessibility is on and an AX-related attribute is
250         changed.
251
252 2010-01-17  Kevin Watters  <kevinwatters@gmail.com>
253
254         Reviewed by Kevin Ollivier.
255
256         [wx] On Win and GTK, we need to manually apply the transforms when falling back
257         to GDI / GDK drawing, but this is not needed on Mac since we always use CG there.
258         
259         https://bugs.webkit.org/show_bug.cgi?id=33730
260
261         * platform/wx/RenderThemeWx.cpp:
262         (WebCore::RenderThemeWx::paintButton):
263
264 2010-01-17  Martin Robinson  <martin.james.robinson@gmail.com>
265
266         Reviewed by Gustavo Noronha Silva.
267
268         [GTK] GtkWebKit incompatible with rgba colormaps
269         https://bugs.webkit.org/show_bug.cgi?id=20736
270
271         Fix GTK theme rendering onto drawables with RGBA colormaps. Now
272         each type of colormap has its own collection of GtkWidgets.
273
274         This fix does not introduce any functionality changes, so does not
275         includes new tests.
276
277         * platform/gtk/RenderThemeGtk.cpp:
278         (WebCore::RenderThemeGtk::RenderThemeGtk):
279         (WebCore::RenderThemeGtk::~RenderThemeGtk):
280         (WebCore::RenderThemeGtk::partsForDrawable):
281         (WebCore::adjustMozillaStyle):
282         (WebCore::setMozillaState):
283         (WebCore::paintMozillaGtkWidget):
284         (WebCore::setToggleSize):
285         (WebCore::RenderThemeGtk::setCheckboxSize):
286         (WebCore::RenderThemeGtk::paintCheckbox):
287         (WebCore::RenderThemeGtk::setRadioSize):
288         (WebCore::RenderThemeGtk::paintRadio):
289         (WebCore::RenderThemeGtk::paintButton):
290         (WebCore::RenderThemeGtk::adjustMenuListStyle):
291         (WebCore::RenderThemeGtk::paintMenuList):
292         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
293         (WebCore::RenderThemeGtk::paintTextField):
294         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
295         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
296         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
297         * platform/gtk/RenderThemeGtk.h:
298         * platform/gtk/gtk2drawing.c:
299         (moz_gtk_use_theme_parts):
300         (ensure_window_widget):
301         (setup_widget_prototype):
302         (ensure_button_widget):
303         (ensure_hpaned_widget):
304         (ensure_vpaned_widget):
305         (ensure_toggle_button_widget):
306         (ensure_button_arrow_widget):
307         (ensure_checkbox_widget):
308         (ensure_radiobutton_widget):
309         (ensure_scrollbar_widget):
310         (ensure_spin_widget):
311         (ensure_scale_widget):
312         (ensure_entry_widget):
313         (moz_gtk_get_combo_box_inner_button):
314         (moz_gtk_get_combo_box_button_inner_widgets):
315         (ensure_combo_box_widgets):
316         (moz_gtk_get_combo_box_entry_inner_widgets):
317         (moz_gtk_get_combo_box_entry_arrow):
318         (ensure_combo_box_entry_widgets):
319         (ensure_handlebox_widget):
320         (ensure_toolbar_widget):
321         (ensure_toolbar_separator_widget):
322         (ensure_tooltip_widget):
323         (ensure_tab_widget):
324         (ensure_progress_widget):
325         (ensure_statusbar_widget):
326         (ensure_frame_widget):
327         (ensure_menu_bar_widget):
328         (ensure_menu_bar_item_widget):
329         (ensure_menu_popup_widget):
330         (ensure_menu_item_widget):
331         (ensure_image_menu_item_widget):
332         (ensure_menu_separator_widget):
333         (ensure_check_menu_item_widget):
334         (ensure_tree_view_widget):
335         (ensure_tree_header_cell_widget):
336         (ensure_expander_widget):
337         (ensure_scrolled_window_widget):
338         (moz_gtk_checkbox_get_metrics):
339         (moz_gtk_radio_get_metrics):
340         (moz_gtk_splitter_get_metrics):
341         (moz_gtk_toggle_paint):
342         (moz_gtk_scrollbar_button_paint):
343         (moz_gtk_scrollbar_trough_paint):
344         (moz_gtk_scrollbar_thumb_paint):
345         (moz_gtk_spin_paint):
346         (moz_gtk_spin_updown_paint):
347         (moz_gtk_scale_paint):
348         (moz_gtk_scale_thumb_paint):
349         (moz_gtk_gripper_paint):
350         (moz_gtk_hpaned_paint):
351         (moz_gtk_vpaned_paint):
352         (moz_gtk_caret_paint):
353         (moz_gtk_treeview_paint):
354         (moz_gtk_tree_header_cell_paint):
355         (moz_gtk_tree_header_sort_arrow_paint):
356         (moz_gtk_treeview_expander_paint):
357         (moz_gtk_expander_paint):
358         (moz_gtk_combo_box_paint):
359         (moz_gtk_downarrow_paint):
360         (moz_gtk_combo_box_entry_button_paint):
361         (moz_gtk_container_paint):
362         (moz_gtk_toggle_label_paint):
363         (moz_gtk_toolbar_paint):
364         (moz_gtk_toolbar_separator_paint):
365         (moz_gtk_tooltip_paint):
366         (moz_gtk_resizer_paint):
367         (moz_gtk_frame_paint):
368         (moz_gtk_progressbar_paint):
369         (moz_gtk_progress_chunk_paint):
370         (moz_gtk_get_tab_thickness):
371         (moz_gtk_tab_paint):
372         (moz_gtk_tabpanels_paint):
373         (moz_gtk_tab_scroll_arrow_paint):
374         (moz_gtk_menu_bar_paint):
375         (moz_gtk_menu_popup_paint):
376         (moz_gtk_menu_separator_paint):
377         (moz_gtk_menu_item_paint):
378         (moz_gtk_menu_arrow_paint):
379         (moz_gtk_check_menu_item_paint):
380         (moz_gtk_window_paint):
381         (moz_gtk_get_widget_border):
382         (moz_gtk_get_combo_box_entry_button_size):
383         (moz_gtk_get_tab_scroll_arrow_size):
384         (moz_gtk_get_downarrow_size):
385         (moz_gtk_get_toolbar_separator_width):
386         (moz_gtk_get_expander_size):
387         (moz_gtk_get_treeview_expander_size):
388         (moz_gtk_get_menu_separator_height):
389         (moz_gtk_get_scalethumb_metrics):
390         (moz_gtk_get_scrollbar_metrics):
391         (moz_gtk_images_in_menus):
392         (moz_gtk_widget_paint):
393         (moz_gtk_get_scrollbar_widget):
394         (moz_gtk_shutdown):
395         (moz_gtk_destroy_theme_parts_widgets):
396         * platform/gtk/gtkdrawing.h:
397
398 2010-01-16  Maciej Stachowiak  <mjs@apple.com>
399
400         Reviewed by Oliver Hunt.
401
402         Cache JS string values made from DOM strings (Dromaeo speedup)
403         https://bugs.webkit.org/show_bug.cgi?id=33768
404         <rdar://problem/7353576>
405
406         Added a new cache for JSString values that are created from Strings or AtomicStrings
407         in the DOM. It's common for the same string to be retrieved from the DOM repeatedly,
408         and it is wasteful to make a new JS-level string value every time.
409         
410         The string cache is per-world, and thus thread-safe and not a
411         vector for accidental information exchange.
412         
413         ~30% speedup on Dromaeo Attributes test, also substantially helps other Dromaeo DOM tests.
414
415         * bindings/js/JSDOMBinding.cpp:
416         (WebCore::jsStringCache): Helper function to get the string cache for the current world.
417         (WebCore::jsString): Some new overloads including the caching version.
418         (WebCore::stringWrapperDestroyed): Finalizer callback - remove from relevant caches.
419         * bindings/js/JSDOMBinding.h:
420         (WebCore::jsString): Prototype new overloads (and define a few inline).
421         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
422         (WebCore::JSJavaScriptCallFrame::type): Explicitly make a UString.
423         * bindings/js/ScriptFunctionCall.cpp:
424         (WebCore::ScriptFunctionCall::appendArgument): Ditto.
425         * WebCore.base.exp: Add new JSString overloads that WebCore gets to see.
426
427 2010-01-16  Oliver Hunt  <oliver@apple.com>
428
429         Reviewed by Nikolas Zimmermann.
430
431         SVG Markers are getting culled incorrectly
432         https://bugs.webkit.org/show_bug.cgi?id=33767
433
434         Use applyTransformToPaintInfo to transform the paintInfo, otherwise
435         the paint rect is not updated leading to incorrect culling.
436
437         * svg/graphics/SVGResourceMarker.cpp:
438         (WebCore::SVGResourceMarker::draw):
439
440 2010-01-15  John Sullivan  <sullivan@apple.com>
441
442         https://bugs.webkit.org/show_bug.cgi?id=33751 and <rdar://problem/7538330>
443         Zip code field is misidentified as street address because id attribute isn't checked.
444
445         Reviewed by Darin Adler
446
447         No new tests. I believe this code is used only by Safari AutoFill, but in any case
448         it does not affect page rendering or anything else at the WebCore/WebKit level.
449
450         * page/Frame.cpp:
451         (WebCore::matchLabelsAgainstString):
452         New function, split out from matchLabelsAgainstElement.
453         (WebCore::Frame::matchLabelsAgainstElement):
454         Now calls matchLabelsAgainstString for the id attribute if no match is found for the name attribute.
455         
456         * page/mac/FrameMac.mm:
457         (WebCore::matchLabelsAgainstString):
458         Same as above. This is a parallel copy of the function using Mac-specific data structures.
459         (WebCore::Frame::matchLabelsAgainstElement):
460         Ditto.
461
462 2010-01-16  Timothy Hatcher  <timothy@apple.com>
463
464         Use String.trim() instead of a regex in the Web Inspector.
465
466         https://bugs.webkit.org/show_bug.cgi?id=33765
467
468         Reviewed by George Staikos.
469
470         * inspector/front-end/ElementsPanel.js:
471         (WebInspector.ElementsPanel.prototype.performSearch): Use .trim().
472         * inspector/front-end/ObjectPropertiesSection.js:
473         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Ditto.
474         * inspector/front-end/ProfileView.js:
475         * inspector/front-end/SourceFrame.js:
476         (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): Ditto.
477         * inspector/front-end/StylesSidebarPane.js:
478         (WebInspector.StylePropertyTreeElement.prototype): Ditto.
479         * inspector/front-end/utilities.js:
480         (String.prototype.trimLeadingWhitespace): Removed.
481         (String.prototype.trimTrailingWhitespace): Removed.
482         (String.prototype.trimWhitespace): Removed.
483
484 2010-01-16  Oliver Hunt  <oliver@apple.com>
485
486         Reviewed by Nikolas Zimmermann.
487
488         Copying TransformationMatrix consumed a lot of cpu time while scroll with cursor over content
489         https://bugs.webkit.org/show_bug.cgi?id=33766
490
491         Make localToParentTransform return by reference to avid copy overhead.
492         This is a little gnarly in places as it means we need to be able to 
493         return temporary values in a few implementations, so we have to add
494         class fields to hold them, heppily the classes that these effect are
495          sufficiently uncommon for this to be okay.
496
497         * rendering/RenderForeignObject.cpp:
498         (WebCore::RenderForeignObject::localToParentTransform):
499         * rendering/RenderForeignObject.h:
500         * rendering/RenderObject.cpp:
501         (WebCore::RenderObject::localTransform):
502         (WebCore::RenderObject::localToParentTransform):
503         * rendering/RenderObject.h:
504         * rendering/RenderPath.cpp:
505         (WebCore::RenderPath::localToParentTransform):
506         (WebCore::RenderPath::nodeAtFloatPoint):
507         * rendering/RenderPath.h:
508         * rendering/RenderSVGImage.h:
509         (WebCore::RenderSVGImage::localToParentTransform):
510         * rendering/RenderSVGRoot.cpp:
511         (WebCore::RenderSVGRoot::localToParentTransform):
512         * rendering/RenderSVGRoot.h:
513         * rendering/RenderSVGText.h:
514         (WebCore::RenderSVGText::localToParentTransform):
515         * rendering/RenderSVGTransformableContainer.cpp:
516         (WebCore::RenderSVGTransformableContainer::localToParentTransform):
517         * rendering/RenderSVGTransformableContainer.h:
518         * rendering/RenderSVGViewportContainer.cpp:
519         (WebCore::RenderSVGViewportContainer::localToParentTransform):
520         * rendering/RenderSVGViewportContainer.h:
521
522 2010-01-16  Darin Adler  <darin@apple.com>
523
524         Reviewed by Oliver Hunt and Alexey Proskuryakov.
525
526         ValidityState can hold a stale pointer to control
527         https://bugs.webkit.org/show_bug.cgi?id=33729
528         rdar://problem/7545114
529
530         Test: fast/forms/ValidityState-removed-control.html
531
532         * html/HTMLFormControlElement.h: Use OwnPtr instead of
533         RefPtr to point to the ValidityState object.
534
535         * html/ValidityState.cpp: Use a constant instead of a
536         macro for the email validation regular expression.
537         (WebCore::ValidityState::validationMessage): Use
538         m_control instead of control function; we don't need
539         a function for this. Also marked const.
540         (WebCore::ValidityState::typeMismatch): Ditto.
541         Fixed some minor style problems.
542         (WebCore::ValidityState::rangeUnderflow): Ditto.
543         (WebCore::ValidityState::rangeOverflow): Ditto.
544         (WebCore::ValidityState::stepMismatch): Ditto.
545         (WebCore::ValidityState::valid): Ditto.
546         (WebCore::ValidityState::isValidEmailAddress):
547         Changed local variable names for clarity. Got rid of
548         an unneeded global variable.
549
550         * html/ValidityState.h: Removed RefCounted as a base
551         class, deriving from Noncopyable instead. Changed
552         creation to use PassOwnPtr instead of PassRefPtr.
553         Eliminated unneeded control function. Added ref and
554         deref functions that forward the reference counting
555         to the control. Moved constructor here and made it
556         inline.
557
558 2010-01-15  Alexey Proskuryakov  <ap@apple.com>
559
560         Reviewed by Darin Adler.
561
562         https://bugs.webkit.org/show_bug.cgi?id=33752
563         Assertion failure when getting a href attribute with prefix
564
565         This was due to a temporary change made in 2005 (r9639) - checks in checkSetPrefix were
566         disabled during introduction of QualifiedName, but never re-enabled.
567
568         Tests: fast/dom/bad-href-attribute.html
569                fast/dom/node-prefix-setter-namespace-exception.html
570
571         * dom/Attr.cpp: (WebCore::Attr::setPrefix):
572         * dom/Element.cpp: (WebCore::Element::setPrefix):
573         * dom/Node.cpp: (WebCore::Node::checkSetPrefix):
574         Re-enabled the checks. Also, changed the prefix setter to treat "" as null, matching Firefox
575         (DOM 3 Core spec says this behavior is implementation defined).
576
577 2010-01-16  Brady Eidson  <beidson@apple.com>
578
579         Reviewed by Darin Adler.
580
581         <rdar://problem/7536748> and https://bugs.webkit.org/show_bug.cgi?id=33571
582         History traversals to a new document do not get the popstate event
583
584         State objects now live-on in their HistoryItem indefinitely.
585         This means any back/forward navigation might result in a popstate event, not just to 
586         pre-existing documents as was previously the case.
587
588         * history/HistoryItem.cpp:
589         (WebCore::HistoryItem::documentDetached): State objects are held beyond Document lifetime.
590        
591         * loader/FrameLoader.cpp:
592         (WebCore::FrameLoader::begin): If there is a pending state object for this Frame load, pass it
593           on to the Document after the Document is created.
594         (WebCore::FrameLoader::transitionToCommitted): If the current history item has a state object,
595           set it as the FrameLoad's pending state object.
596         * loader/FrameLoader.h:
597         
598         * page/Page.cpp:
599         (WebCore::Page::goToItem): Remove a now-invalid ASSERT.
600
601 2010-01-15  Simon Fraser  <simon.fraser@apple.com>
602
603         Reviewed by Dan Bernstein and Adele Peterson.
604
605         Support reflections on composited layers
606         https://bugs.webkit.org/show_bug.cgi?id=31885
607         
608         Implement reflections (via -webkit-box-reflect:) on compositing layers.
609         
610         We add to the GraphicsLayer the notion of having a replica, and being a replicated layer.
611         The replica layer is not parented in the tree, but referenced by another layer.
612         RenderLayerBacking sets this up when it finds RenderLayers for reflections.
613         
614         GraphicsLayerCA implements rendering of replica layers by cloning CA layers,
615         and copying their properties, including animations and contents. Deep reflections
616         are supported by a hash of clone layers on each GraphicsLayerCA, indexed by
617         the path down the tree to each replica instance.
618         
619         When GraphicsLayerCA properties are changed, in most cases the clones must also
620         be updated.
621
622         Tests: compositing/masks/direct-image-mask.html
623                compositing/reflections/animation-inside-reflection.html
624                compositing/reflections/compositing-change-inside-reflection.html
625                compositing/reflections/deeply-nested-reflections.html
626                compositing/reflections/masked-reflection-on-composited.html
627                compositing/reflections/nested-reflection-anchor-point.html
628                compositing/reflections/nested-reflection-animated.html
629                compositing/reflections/nested-reflection-mask-change.html
630                compositing/reflections/nested-reflection-on-overflow.html
631                compositing/reflections/nested-reflection-opacity.html
632                compositing/reflections/nested-reflection-size-change.html
633                compositing/reflections/nested-reflection-transformed.html
634                compositing/reflections/nested-reflection-transition.html
635                compositing/reflections/nested-reflection.html
636                compositing/reflections/reflection-opacity.html
637                compositing/reflections/reflection-ordering.html
638                compositing/reflections/reflection-positioning.html
639                compositing/reflections/transform-inside-reflection.html
640
641         * platform/graphics/GraphicsLayer.h:
642         (WebCore::GraphicsLayer::isReplicated): Returns true when this layer has a replicated layer.
643         (WebCore::GraphicsLayer::replicatedLayerPosition):
644         (WebCore::GraphicsLayer::setReplicatedLayerPosition): The position of the replica layer must be 
645         special-cased; we cannot just copy the position of the original.
646         (WebCore::GraphicsLayer::didDisplay): Method that indicates that the contents of the layer changed,
647         which gives us a chance to update clone layers.
648         (WebCore::GraphicsLayer::replicaLayer): reference to the replica layer.
649         (WebCore::GraphicsLayer::replicatedLayer): reference to the layer that this (replica) layer is replicating.
650         (WebCore::GraphicsLayer::setReplicatedLayer):
651
652         * platform/graphics/GraphicsLayer.cpp:
653         (WebCore::GraphicsLayer::GraphicsLayer):
654         (WebCore::GraphicsLayer::setReplicatedByLayer): Hook up a replica with its replicated layer.
655         (WebCore::GraphicsLayer::dumpProperties):
656
657         * platform/graphics/mac/GraphicsLayerCA.h:
658         (WebCore::GraphicsLayerCA::primaryLayer): Returns a CALayer, since structural layers may not be WebLayers.
659         (WebCore::GraphicsLayerCA::isReplicatedRootClone): Given a cloneID (string representation of the path to a clone
660         down the tree, which is a bitstring of 1 (replica), or 0 (non-replica)), returns true if this ID represents the
661         root of a replica tree.
662         (WebCore::GraphicsLayerCA::primaryLayerClones): Returns a pointer to the hash map of clones of the primary layers.
663
664         (WebCore::GraphicsLayerCA::ReplicaState::ReplicaState): Small struct used to track original/clone branching
665         down the tree during recursion, to build cloneID paths.
666
667         (WebCore::GraphicsLayerCA::hasCloneLayers): returns true if this layer has clone layers.
668
669         * platform/graphics/mac/GraphicsLayerCA.mm:
670         (WebCore::GraphicsLayerCA::~GraphicsLayerCA): remove the clone layers.
671         (WebCore::GraphicsLayerCA::setChildren): call noteSublayersChanged() since we may have to update replicas too.
672         (WebCore::GraphicsLayerCA::addChild): ditto
673         (WebCore::GraphicsLayerCA::addChildAtIndex): ditto
674         (WebCore::GraphicsLayerCA::addChildBelow): ditto
675         (WebCore::GraphicsLayerCA::addChildAbove): ditto
676         (WebCore::GraphicsLayerCA::replaceChild): ditto
677         (WebCore::GraphicsLayerCA::removeFromParent): ditto
678         (WebCore::GraphicsLayerCA::setMaskLayer): call propagateLayerChangeToReplicas()
679         (WebCore::GraphicsLayerCA::setReplicatedLayer): note replica changed.
680         (WebCore::GraphicsLayerCA::setReplicatedByLayer): ditto
681         (WebCore::GraphicsLayerCA::moveOrCopyAllAnimationsForProperty): Enhanced to allow moving or copying animations.
682         (WebCore::GraphicsLayerCA::moveOrCopyAnimationsForProperty): Ditto.
683         (WebCore::GraphicsLayerCA::setContentsToImage): call noteSublayersChanged()
684         (WebCore::GraphicsLayerCA::setContentsToVideo): call noteSublayersChanged()
685         (WebCore::GraphicsLayerCA::didDisplay): here is our chance to copy updated contents to clone layers.
686         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
687         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): pre-order commit, for things that need to be
688             committed before we recurse on children.
689         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers): post-order commit, for things that need to be
690             committed after we recurse on children, like clones.
691         (WebCore::GraphicsLayerCA::updateLayerNames): New method to match the other 'update' methods.
692         (WebCore::GraphicsLayerCA::updateSublayerList): Insert replica layers into the hierarchy.
693         (WebCore::GraphicsLayerCA::updateLayerPosition): update clones.
694         (WebCore::GraphicsLayerCA::updateLayerSize): ditto
695         (WebCore::GraphicsLayerCA::updateAnchorPoint): ditto
696         (WebCore::GraphicsLayerCA::updateTransform): ditto
697         (WebCore::GraphicsLayerCA::updateChildrenTransform): ditto
698         (WebCore::GraphicsLayerCA::updateMasksToBounds): ditto
699         (WebCore::GraphicsLayerCA::updateContentsOpaque): ditto
700         (WebCore::GraphicsLayerCA::updateBackfaceVisibility): ditto
701         (WebCore::GraphicsLayerCA::updateStructuralLayer): call ensureStructuralLayer()
702         (WebCore::moveAnimation): utility to move a CAAnimation from one layer to another.
703         (WebCore::GraphicsLayerCA::ensureStructuralLayer): refactored code which creates enclosing CALayers for reflection
704         flattening, or CATransformLayers for preserve-3d.
705         (WebCore::GraphicsLayerCA::structuralLayerPurpose): indicates why we need a structural layer.
706         (WebCore::GraphicsLayerCA::updateLayerDrawsContent): update clones
707         (WebCore::GraphicsLayerCA::updateContentsImage): ditto
708         (WebCore::GraphicsLayerCA::updateContentsRect): ditto
709         (WebCore::GraphicsLayerCA::updateMaskLayer): ditto
710         (WebCore::GraphicsLayerCA::updateReplicatedLayers): This is where we ask for the tree of layers for the replica
711         and its children, and attach them as sublayers.
712         (WebCore::GraphicsLayerCA::ReplicaState::cloneID): Build a bitstring from the array of original/clone values; this
713         string serves to identify clones in the hash map.
714         (WebCore::GraphicsLayerCA::replicatedLayerRoot): Request the tree of clone layers, set its position and transform,
715         and return it.
716         (WebCore::GraphicsLayerCA::setAnimationOnLayer): update clones
717         (WebCore::GraphicsLayerCA::removeAnimationFromLayer): ditto
718         (WebCore::GraphicsLayerCA::pauseAnimationOnLayer): ditto
719         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): udpate sublayers.
720         (WebCore::GraphicsLayerCA::suspendAnimations): update clones.
721         (WebCore::GraphicsLayerCA::resumeAnimations): ditto
722         (WebCore::GraphicsLayerCA::animatedLayerClones): return the hash map for clones of the appropriate layer for the given property.
723         (WebCore::GraphicsLayerCA::ensureCloneLayers): create and return clones for the CALayers for this layer.
724         (WebCore::GraphicsLayerCA::removeCloneLayers): clear out the clone layers.
725         (WebCore::GraphicsLayerCA::positionForCloneRootLayer): the root of a clonal subtree needs its position and transform to be special-cased,
726         since it doesn't just copy those properties from the original.
727         (WebCore::GraphicsLayerCA::propagateLayerChangeToReplicas): push the change flags onto the replica.
728         (WebCore::GraphicsLayerCA::fetchCloneLayers): recurse down sublayers, creating clones of the CALayers along the way, and returning
729         the root of the clone tree.
730         (WebCore::copyAnimation): utility to copy an animation from one layer to another. Animations can be shared between layers.
731         (WebCore::GraphicsLayerCA::cloneLayer): utility to clone a CALayer, copying those properties which GraphicsLayerCA makes use of
732         (WebCore::GraphicsLayerCA::setOpacityInternal): push opacity changes to clones.
733         (WebCore::GraphicsLayerCA::updateOpacityOnLayer): ditto
734         (WebCore::GraphicsLayerCA::noteSublayersChanged): set the ChildrenChanged flag, and proprate changes to the replica, if any.
735
736         * platform/graphics/mac/WebLayer.mm:
737         (-[WebLayer display]): override -display so we know when to update the contents of clone layers
738
739         * platform/graphics/mac/WebTiledLayer.mm:
740         (-[WebTiledLayer display]): ditto.
741
742         * rendering/RenderLayer.h:
743         (WebCore::RenderLayer::isReflection): New method that returns true if the renderer is a replica.
744
745         * rendering/RenderLayer.cpp:
746         (WebCore::RenderLayer::RenderLayer): initialize m_isReflection
747         (WebCore::RenderLayer::updateReflectionStyle): call setIsReflection
748
749         * rendering/RenderLayerBacking.cpp:
750         (WebCore::RenderLayerBacking::createGraphicsLayer): Put a name on the reflection layer.
751         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Hook up the GraphicsLayers for the reflection.
752         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Reflection overrides preserve-3d (you have to flatten to reflect).
753         Also hook up updating the reflection layer geometry, and the relica position.
754         
755         (WebCore::RenderLayerBacking::paintIntoLayer): We no longer paint the reflection in software.
756
757         * rendering/RenderLayerCompositor.cpp:
758         (WebCore::RenderLayerCompositor::computeCompositingRequirements): Hook reflection layers into the compositing logic.
759         (WebCore::RenderLayerCompositor::canAccelerateVideoRendering): No longer have to push video into software if it's reflected.
760         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Update the bounds of the reflection layer.
761         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): ditto
762         (WebCore::RenderLayerCompositor::requiresCompositingWhenDescendantsAreCompositing): a compositing descendant forces
763         a reflection ancestor to composite now.
764         (WebCore::RenderLayerBacking::containsPaintedContent): Reflection layers don't paint anything.
765         (WebCore::RenderLayerBacking::isDirectlyCompositedImage): No need to fall out of direct compositing mode
766         for masks or reflections any more.
767         (WebCore::RenderLayerBacking::paintIntoLayer): No need to paint the reflection manually now.
768
769         * rendering/RenderObject.h:
770         (WebCore::RenderObject::isReplica):
771         * rendering/RenderReplica.h:
772         (WebCore::RenderReplica::isReplica):
773         New method used to determine if a render is a replica.
774
775 2010-01-15  Carol Szabo  <carol.szabo@nokia.com>
776
777         Reviewed by Darin Adler.
778
779         CSS2.1 Counters not updated when new elements are inserted in the DOM.
780         https://bugs.webkit.org/show_bug.cgi?id=32884
781
782         Test: fast/css/counters/adding-nodes.html
783
784         * rendering/CounterNode.cpp:
785         (WebCore::CounterNode::insertAfter):
786         Modified to handle the addition of nodes with children. Needed when formerly 
787         root nodes become descendants of a new node.
788         * rendering/RenderCounter.cpp:
789         (WebCore::makeCounterNode):
790         Changed to handle the case when root counter nodes lose their root 
791         status as a result of a new root counter node creation. 
792         (WebCore::destroyCounterNodeWithoutMapRemoval):
793         Refactored more code into destroyCounterNodeChildren and renamed the
794         function according to its new action.
795         (WebCore::RenderCounter::destroyCounterNodes):
796         Simplified to share more code with the new destroyCounterNode.
797         (WebCore::RenderCounter::destroyCounterNode):
798         Added to allow for selective counterNode destruction.
799         (WebCore::RenderCounter::rendererSubtreeAttached):
800         Added to refresh counter values in response to DOM changes.
801         For renderers with no attached counters the execution time of this
802         function cannot be discerned in comparison with the time needed to
803         add a node or change the style of a node.
804         (WebCore::updateCounters):
805         Helper function for rendererSubtreeAttached. Updates the counters
806         attached to a Renderer in response to the renderer or its ancestors
807         being attached to the renderer tree.
808         * rendering/RenderCounter.h:
809         * rendering/RenderObject.cpp:
810         (WebCore::RenderObject::addChild):
811         Changed to update counter values if needed.
812
813 2010-01-15  Alejandro G. Castro  <alex@igalia.com>
814
815         Reviewed by Xan Lopez.
816
817         Original patch by David Ronis <david.ronis@mcgill.ca>
818
819         Upgrade 1.1.17->1.1.18 fails: GTK_WIDGET_TOPLEVEL' was not declared in this scope
820         https://bugs.webkit.org/show_bug.cgi?id=33486
821
822         Deprecated symbols replaced for gtk+ versions over 2.18.
823
824         * platform/gtk/PlatformScreenGtk.cpp:
825         (WebCore::getVisual):
826         (WebCore::screenRect):
827
828 2010-01-15  Oliver Hunt  <oliver@apple.com>
829
830         Reviewed by Sam Weinig.
831
832         Bad DOM performance in large SVG files
833         https://bugs.webkit.org/show_bug.cgi?id=30055
834
835         Improve the performance of the early culling check by avoiding save/restore
836         of graphics state in culled case.
837
838         * rendering/RenderPath.cpp:
839         (WebCore::RenderPath::paint):
840
841 2010-01-15  Eric Seidel  <eric@webkit.org>
842
843         No review, rolling out r53344.
844         http://trac.webkit.org/changeset/53344
845         https://bugs.webkit.org/show_bug.cgi?id=32920
846
847         Broke the Chromium Mac builder.
848
849         * WebCore.gypi:
850         * bindings/scripts/CodeGeneratorV8.pm:
851         * bindings/v8/SerializedScriptValue.cpp: Removed.
852         * bindings/v8/SerializedScriptValue.h:
853         (WebCore::SerializedScriptValue::create):
854         (WebCore::SerializedScriptValue::release):
855         (WebCore::SerializedScriptValue::toString):
856         (WebCore::SerializedScriptValue::SerializedScriptValue):
857         * bindings/v8/custom/V8DOMWindowCustom.cpp:
858         (WebCore::V8DOMWindow::postMessageCallback):
859         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
860         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
861         * bindings/v8/custom/V8HistoryCustom.cpp:
862         (WebCore::V8History::pushStateCallback):
863         (WebCore::V8History::replaceStateCallback):
864         * bindings/v8/custom/V8MessageEventCustom.cpp:
865         (WebCore::V8MessageEvent::initMessageEventCallback):
866         * bindings/v8/custom/V8MessagePortCustom.cpp:
867         (WebCore::V8MessagePort::postMessageCallback):
868         * bindings/v8/custom/V8PopStateEventCustom.cpp:
869         (WebCore::V8PopStateEvent::initPopStateEventCallback):
870         (WebCore::V8PopStateEvent::stateAccessorGetter):
871         * bindings/v8/custom/V8WorkerCustom.cpp:
872         (WebCore::V8Worker::postMessageCallback):
873
874 2010-01-15  Darin Fisher  <darin@chromium.org>
875
876         Reviewed by Brady Eidson.
877
878         history.length does not return number of elements in history list
879         https://bugs.webkit.org/show_bug.cgi?id=24472
880
881         Test: fast/history/history-length.html
882
883         * page/Page.cpp:
884         (WebCore::Page::getHistoryLength):
885
886 2010-01-15  Dmitry Titov  <dimich@chromium.org>
887
888         Reviewed by Darin Adler.
889
890         Need to ensure that Document::postTask does not provide the Task with a dangling pointer to destroyed Document
891         https://bugs.webkit.org/show_bug.cgi?id=31633
892
893         Don't see a way to add test for it, we don't have a way to reproduce the issue currently.
894
895         * dom/Document.cpp:
896         (WebCore::DocumentWeakReference::DocumentWeakReference):
897         (WebCore::DocumentWeakReference::document):
898         (WebCore::DocumentWeakReference::clear):
899         (WebCore::Document::Document): Create a weak reference to this Document.
900         (WebCore::Document::~Document): Clear the weak pointer, preventing further execution of tasks.
901         (WebCore::PerformTaskContext::PerformTaskContext):
902         (WebCore::performTask): Check if the documentWeakReference is cleared by Document destructor - in this case do not run the task.
903         (WebCore::Document::postTask):
904         * dom/Document.h:
905         (WebCore::DocumentWeakReference::create):
906
907 2010-01-15  Vitaly Repeshko  <vitalyr@chromium.org>
908
909         Reviewed by David Levin.
910
911         [V8] Support SerializedScriptValue.
912         https://bugs.webkit.org/show_bug.cgi?id=32920
913         http://crbug.com/30620
914
915         Initial implementation of SerializedScriptValue which is used to
916         to create a serialized representation of JavaScript objects.  This
917         representation is needed for structured clones and worker messages.
918
919         * WebCore.gypi: Added SerializedScriptValue.cpp.
920         * bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
921         * bindings/v8/SerializedScriptValue.cpp: Added.
922         (WebCore::):
923         (WebCore::ZigZag::encode):
924         (WebCore::ZigZag::decode):
925         (WebCore::Writer::Writer):
926         (WebCore::Writer::writeUndefined):
927         (WebCore::Writer::writeNull):
928         (WebCore::Writer::writeTrue):
929         (WebCore::Writer::writeFalse):
930         (WebCore::Writer::writeString):
931         (WebCore::Writer::writeInt32):
932         (WebCore::Writer::writeNumber):
933         (WebCore::Writer::endComposite):
934         (WebCore::Writer::data):
935         (WebCore::Writer::doWriteUint32):
936         (WebCore::Writer::append):
937         (WebCore::Writer::ensureSpace):
938         (WebCore::Writer::fillHole):
939         (WebCore::Writer::charAt):
940         (WebCore::Serializer::Serializer):
941         (WebCore::Serializer::serialize):
942         (WebCore::Serializer::StateBase::~StateBase):
943         (WebCore::Serializer::StateBase::nextState):
944         (WebCore::Serializer::StateBase::setNextState):
945         (WebCore::Serializer::StateBase::composite):
946         (WebCore::Serializer::StateBase::StateBase):
947         (WebCore::Serializer::State::composite):
948         (WebCore::Serializer::State::tag):
949         (WebCore::Serializer::State::State):
950         (WebCore::Serializer::StackCleaner::StackCleaner):
951         (WebCore::Serializer::StackCleaner::~StackCleaner):
952         (WebCore::Serializer::ArrayState::ArrayState):
953         (WebCore::Serializer::ArrayState::done):
954         (WebCore::Serializer::ArrayState::advance):
955         (WebCore::Serializer::ObjectState::ObjectState):
956         (WebCore::Serializer::ObjectState::done):
957         (WebCore::Serializer::ObjectState::advance):
958         (WebCore::Serializer::ObjectState::nextProperty):
959         (WebCore::Serializer::doSerialize):
960         (WebCore::Serializer::push):
961         (WebCore::Serializer::top):
962         (WebCore::Serializer::pop):
963         (WebCore::Serializer::checkComposite):
964         (WebCore::Reader::Reader):
965         (WebCore::Reader::isEof):
966         (WebCore::Reader::read):
967         (WebCore::Reader::readTag):
968         (WebCore::Reader::readString):
969         (WebCore::Reader::readInt32):
970         (WebCore::Reader::readNumber):
971         (WebCore::Reader::doReadUint32):
972         (WebCore::Deserializer::Deserializer):
973         (WebCore::Deserializer::deserialize):
974         (WebCore::Deserializer::doDeserialize):
975         (WebCore::Deserializer::push):
976         (WebCore::Deserializer::pop):
977         (WebCore::Deserializer::stackDepth):
978         (WebCore::Deserializer::element):
979         (WebCore::SerializedScriptValue::SerializedScriptValue):
980         (WebCore::SerializedScriptValue::deserialize):
981         * bindings/v8/SerializedScriptValue.h:
982         (WebCore::SerializedScriptValue::create):
983         (WebCore::SerializedScriptValue::createFromWire):
984         (WebCore::SerializedScriptValue::release):
985         (WebCore::SerializedScriptValue::toWireString):
986
987         Updated uses of SerializedScriptValue:
988         * bindings/v8/custom/V8DOMWindowCustom.cpp:
989         (WebCore::V8DOMWindow::postMessageCallback):
990         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
991         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
992         * bindings/v8/custom/V8HistoryCustom.cpp:
993         (WebCore::V8History::pushStateCallback):
994         (WebCore::V8History::replaceStateCallback):
995         * bindings/v8/custom/V8MessageEventCustom.cpp:
996         (WebCore::V8MessageEvent::initMessageEventCallback):
997         * bindings/v8/custom/V8MessagePortCustom.cpp:
998         (WebCore::V8MessagePort::postMessageCallback):
999         * bindings/v8/custom/V8WorkerCustom.cpp:
1000         (WebCore::V8Worker::postMessageCallback):
1001
1002 2010-01-15  Oliver Hunt  <oliver@apple.com>
1003
1004         Reviewed by Dirk Schulze.
1005
1006         Bad DOM performance in large SVG files
1007         https://bugs.webkit.org/show_bug.cgi?id=30055
1008
1009         Add an early return when we go to paint a RenderPath that
1010         isn't in the current clip.
1011
1012         * rendering/RenderPath.cpp:
1013         (WebCore::RenderPath::paint):
1014         * svg/graphics/SVGImage.cpp:
1015         (WebCore::SVGImage::draw):
1016
1017 2010-01-15  Steve Block  <steveblock@google.com>
1018
1019         Reviewed by Eric Seidel.
1020
1021         Make Geolocation::suspend/resume public.
1022         https://bugs.webkit.org/show_bug.cgi?id=33679
1023
1024         These were made private in Bug 32499, but are required by Android to be public.
1025
1026         No new tests, build fix only.
1027
1028         * page/Geolocation.cpp: Modified
1029         (WebCore::Geolocation::suspend): Added back in
1030         (WebCore::Geolocation::resume): Added back in
1031         * page/Geolocation.h: Modified. Make suspend and resume public
1032
1033 2010-01-15  Alexander Pavlov  <apavlov@chromium.org>
1034
1035         Reviewed by Pavel Feldman.
1036
1037         Set pointer cursor when over a breakpoint in the BreakpointsSidebarPane
1038
1039         https://bugs.webkit.org/show_bug.cgi?id=33713
1040
1041         * inspector/front-end/inspector.css:
1042
1043 2010-01-15  Nate Chapin  <japhet@chromium.org>
1044
1045         Reviewed by Dimitri Glazkov.
1046
1047         [V8] Generate more of the custom behaviors that the v8 bindings attach to v8 FunctionTemplates.
1048
1049         * bindings/scripts/CodeGeneratorV8.pm:
1050         * bindings/v8/V8Binding.cpp:
1051         (WebCore::getToStringName):
1052         (WebCore::constructorToString):
1053         (WebCore::getToStringTemplate):
1054         * bindings/v8/V8Binding.h:
1055         * bindings/v8/V8DOMWindowShell.cpp:
1056         (WebCore::V8DOMWindowShell::createNewContext):
1057         * bindings/v8/V8DOMWrapper.cpp:
1058         (WebCore::V8DOMWrapper::getTemplate):
1059
1060 2010-01-15  Dimitri Glazkov  <dglazkov@chromium.org>
1061
1062         No review, rolling out r53331.
1063         http://trac.webkit.org/changeset/53331
1064         https://bugs.webkit.org/show_bug.cgi?id=30055
1065
1066         Broke fast/borders/svg-as-border-image-3.html. Don't give up,
1067         Oliver! You are really, really close.
1068
1069         * rendering/RenderPath.cpp:
1070         (WebCore::RenderPath::paint):
1071
1072 2010-01-15  Oliver Hunt  <oliver@apple.com>
1073
1074         Reviewed by Nikolas Zimmermann.
1075
1076         Bad DOM performance in large SVG files
1077         https://bugs.webkit.org/show_bug.cgi?id=30055
1078
1079         Add an early return when we go to paint a RenderPath that
1080         isn't in the current clip.
1081
1082         * rendering/RenderPath.cpp:
1083         (WebCore::RenderPath::paint):
1084
1085 2010-01-15  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1086
1087         Reviewed by Antti Koivisto.
1088
1089         Use OS(MAC_OS_X) instead of PLATFORM(MAC) when determining navigator.platform
1090
1091         https://bugs.webkit.org/show_bug.cgi?id=33711
1092
1093         * page/NavigatorBase.cpp:
1094
1095 2010-01-14  Philippe Normand  <pnormand@igalia.com>
1096
1097         Reviewed by Xan Lopez.
1098
1099         [Gtk] Compiler warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning
1100         https://bugs.webkit.org/show_bug.cgi?id=33575
1101
1102         Patch from Magnus Boman <captain.magnus@gmail.com>
1103
1104         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1105         (WebCore::mimeTypeCache): fix compiler warnings.
1106
1107 2010-01-14  Mikhail Naganov  <mnaganov@chromium.org>
1108
1109         Reviewed by Timothy Hatcher.
1110
1111         Add welcome screen to Profiles pane to provide some instructions for novices.
1112
1113         https://bugs.webkit.org/show_bug.cgi?id=19268
1114
1115         * English.lproj/localizedStrings.js:
1116         * WebCore.gypi:
1117         * WebCore.vcproj/WebCore.vcproj:
1118         * inspector/front-end/ProfileView.js:
1119         (WebInspector.CPUProfileType.prototype.get welcomeMessage):
1120         * inspector/front-end/ProfilesPanel.js:
1121         (WebInspector.ProfileType.prototype.get welcomeMessage):
1122         (WebInspector.ProfilesPanel):
1123         (WebInspector.ProfilesPanel.prototype.show):
1124         (WebInspector.ProfilesPanel.prototype.registerProfileType):
1125         (WebInspector.ProfilesPanel.prototype._addWelcomeMessage.messageButtonClicked):
1126         (WebInspector.ProfilesPanel.prototype._addWelcomeMessage):
1127         (WebInspector.ProfilesPanel.prototype.showProfile):
1128         (WebInspector.ProfilesPanel.prototype.closeVisibleView):
1129         (WebInspector.ProfilesPanel.prototype._updateInterface):
1130         * inspector/front-end/WebKit.qrc:
1131         * inspector/front-end/WelcomeView.js: Added.
1132         (WebInspector.WelcomeView):
1133         (WebInspector.WelcomeView.prototype._windowResized):
1134         (WebInspector.WelcomeView.prototype.addMessage):
1135         * inspector/front-end/inspector.css:
1136         * inspector/front-end/inspector.html:
1137
1138 2010-01-13  Girish Ramakrishnan  <girish@forwardbias.in>
1139
1140         Reviewed by Simon Hausmann.
1141
1142         [Qt/Win] Flash in QGraphicsWebView does not process hover correctly.
1143         
1144         https://bugs.webkit.org/show_bug.cgi?id=33591
1145         
1146         Mouse hover does not work as expected with the flash in some sites.
1147         - http://www.bbc.co.uk/ Hover over the map
1148         - http://www.barbie.com/ Hover over the menu items (Games, Videos)
1149         The problem appears to be that Flash queries NPNVnetscapeWindow on every
1150         mouse hover. I do not how flash uses this value but returning 0 when flash
1151         is in windowless mode solves the problem (When using QGraphicsWebView we
1152         inject wmode opaque, thereby putting the plugin in windowless mode).
1153
1154         * plugins/win/PluginViewWin.cpp:
1155         (windowHandleForPageClient):
1156
1157 2010-01-15  Zoltan Horvath  <zoltan@webkit.org>
1158
1159         Reviewed by Darin Adler.
1160
1161         Allow custom memory allocation control for Peer class
1162         https://bugs.webkit.org/show_bug.cgi?id=33670
1163
1164         Inherits the following class from Noncopyable because it is 
1165         instantiated by 'new' and no need to be copyable:
1166
1167         class name - instantiated at: WebCore/'location'
1168         class Peer - websockets/WebSocketChannelClient.h:38
1169
1170         * websockets/WorkerThreadableWebSocketChannel.h:
1171
1172 2010-01-15  Zoltan Horvath  <zoltan@webkit.org>
1173
1174         Reviewed by Oliver Hunt.
1175
1176         [Qt] Allow custom memory allocation control for GraphicsContextPlatformPrivate class
1177         https://bugs.webkit.org/show_bug.cgi?id=33669
1178
1179         Inherits the following class from Noncopyable because it is 
1180         instantiated by 'new' and no need to be copyable:
1181
1182         class name                           - instantiated at: WebCore/'location'
1183         class GraphicsContextPlatformPrivate - platform/graphics/qt/GraphicsContextQt.cpp:254
1184
1185         * platform/graphics/qt/GraphicsContextQt.cpp:
1186
1187 2010-01-14  Darin Fisher  <darin@chromium.org>
1188
1189         Reviewed by Brady Eidson.
1190
1191         history.pushState should clear the entire forward history
1192         https://bugs.webkit.org/show_bug.cgi?id=33160
1193
1194         Test: fast/loader/stateobjects/pushstate-clears-forward-history.html
1195
1196         * history/BackForwardList.cpp:
1197         (WebCore::BackForwardList::addItem):
1198         (WebCore::BackForwardList::pushStateItem):
1199         * history/BackForwardList.h:
1200
1201 2010-01-14  Gavin Barraclough  <barraclough@apple.com>
1202
1203         Rubber stamped by Sam Weinig.
1204
1205         Make naming & behaviour of UString[Impl] methods more consistent.
1206         https://bugs.webkit.org/show_bug.cgi?id=33702
1207
1208         WebCore change reflecting UString method name change computedHash() -> existingHash().
1209
1210         * platform/text/AtomicString.cpp:
1211         (WebCore::AtomicString::add):
1212         (WebCore::AtomicString::find):
1213
1214 2010-01-14  Dan Bernstein  <mitz@apple.com>
1215
1216         Reviewed by Simon Fraser.
1217
1218         <rdar://problem/6020083> -webkit-gradient slows down scrolling when page has horizontal scrollbar
1219         https://bugs.webkit.org/show_bug.cgi?id=19650
1220
1221         * platform/graphics/GeneratedImage.cpp:
1222         (WebCore::GeneratedImage::drawPattern): Added call to adjustParametersForTiledDrawing(),
1223         letting the generator substitute the parameters with visually-equivalent values that
1224         are more efficient.
1225         * platform/graphics/Generator.h:
1226         (WebCore::Generator::adjustParametersForTiledDrawing): Added a base class implementation
1227         that does nothing.
1228         * platform/graphics/Gradient.cpp:
1229         (WebCore::Gradient::adjustParametersForTiledDrawing): Added. If the gradient is a horizontal
1230         or vertical linear gradient, changes to use a 1-pixel tall (or wide) tile.
1231         * platform/graphics/Gradient.h:
1232
1233 2010-01-14  Norbert Leser  <norbert.leser@nokia.com>
1234
1235         Reviewed by Laszlo Gombos.
1236
1237         Platform Symbian specific:
1238         Added time-based optimization (-Otime) and increased optimization level to -O3,
1239         conditionally for RVCT compiler (for ARM), for increasing performance
1240         (primarily affecting JavaScript execution).
1241         Default settings are -Ospace and -O2.
1242
1243         No new tests needed because no new funtionality is introduced,
1244         only potential regression on existing tests needs to be evaluated.
1245
1246         * WebCore.pro:
1247
1248 2010-01-14  Jungshik Shin  <jshin@chromium.org>
1249
1250         Unreviewed, attempted build fix on chromium.
1251
1252         Fix a Chromium build failure due to an unused variable in V8 binding.(part 2)
1253
1254         * bindings/v8/V8Collection.h:
1255         (WebCore::getNamedPropertyOfCollection):
1256
1257 2010-01-14  Jungshik Shin  <jshin@chromium.org>
1258
1259         Unreviewed, attempted build fix on chromium.
1260
1261         Fix a Chromium build failure due to an unused variable in V8 binding. 
1262
1263         * bindings/v8/V8Collection.h:
1264         (WebCore::getIndexedPropertyOfCollection):
1265
1266 2010-01-14  Peter Kasting  <pkasting@google.com>
1267
1268         Unreviewed, attempted build fix.
1269
1270         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1271         (WebCore::GIFImageDecoder::haveDecodedRow):
1272
1273 2010-01-14  Peter Kasting  <pkasting@google.com>
1274
1275         Reviewed by Adam Barth.
1276
1277         Simplify image decoders by making downsampling functions available at
1278         all times, allowing much duplicated logic to be collapsed.
1279         https://bugs.webkit.org/show_bug.cgi?id=28751
1280
1281         * platform/graphics/ImageSource.cpp:
1282         (WebCore::ImageSource::setData):
1283         * platform/image-decoders/ImageDecoder.cpp:
1284         (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
1285         * platform/image-decoders/ImageDecoder.h:
1286         (WebCore::ImageDecoder::ImageDecoder):
1287         (WebCore::ImageDecoder::scaledSize):
1288         (WebCore::ImageDecoder::setMaxNumPixels):
1289         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1290         (WebCore::GIFImageDecoder::sizeNowAvailable):
1291         (WebCore::GIFImageDecoder::initFrameBuffer):
1292         (WebCore::GIFImageDecoder::haveDecodedRow):
1293         (WebCore::GIFImageDecoder::frameComplete):
1294         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1295         (WebCore::JPEGImageDecoder::setSize):
1296         (WebCore::JPEGImageDecoder::outputScanlines):
1297         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
1298         * platform/image-decoders/png/PNGImageDecoder.cpp:
1299         (WebCore::PNGImageDecoder::headerAvailable):
1300         (WebCore::PNGImageDecoder::rowAvailable):
1301
1302 2010-01-14  Jian Li  <jianli@chromium.org>
1303
1304         Reviewed by Eric Seidel.
1305
1306         [chromium] Remove obsolete CF related files from gyp build.
1307         https://bugs.webkit.org/show_bug.cgi?id=33002
1308
1309         * WebCore.gypi:
1310
1311 2010-01-14  Peter Kasting  <pkasting@google.com>
1312
1313         Reviewed by Adam Barth.
1314
1315         Decoding images to scaled output buffers resulted in garbage for
1316         no-alpha PNGs and CMYK JPEGs.
1317         https://bugs.webkit.org/show_bug.cgi?id=33624
1318         
1319         No layout test since I don't have access to a platform that scales the
1320         output buffers.
1321
1322         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1323         (WebCore::convertCMYKToRGBA):
1324         * platform/image-decoders/png/PNGImageDecoder.cpp:
1325         (WebCore::PNGImageDecoder::rowAvailable):
1326
1327 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
1328
1329         Rubber-stamped by Oliver Hunt.
1330
1331         Fix an assertion that was causing test crashes. Filed a bug
1332         about the weirdness that causes this assertion (inconsistencies 
1333         between DragOperationMove and DragOperationGeneric).
1334
1335         * dom/Clipboard.cpp:
1336         (WebCore::dragOpFromIEOp):
1337         (WebCore::Clipboard::setDestinationOperation):
1338
1339 2010-01-14  Beth Dakin  <bdakin@apple.com>
1340
1341         Reviewed by Sam Weinig.
1342
1343         Fix for https://bugs.webkit.org/show_bug.cgi?id=33498 REGRESSION: 
1344         svg/css/circle-in-mask-with-shadow.svg failing pixel tests
1345         -and corresponding-
1346         <rdar://problem/7544176>
1347
1348         This change makes repaintRectInLocalCoordinates return a rect that 
1349         is -webkit-svg-shadow-aware.
1350
1351         * rendering/RenderPath.cpp:
1352         (WebCore::RenderPath::repaintRectInLocalCoordinates):
1353         * rendering/RenderSVGContainer.cpp:
1354         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
1355         * rendering/RenderSVGImage.cpp:
1356         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
1357         * rendering/RenderSVGRoot.cpp:
1358         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
1359         * rendering/RenderSVGText.cpp:
1360         (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
1361         * rendering/SVGRenderSupport.cpp:
1362         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
1363         * rendering/style/SVGRenderStyle.cpp:
1364         (WebCore::SVGRenderStyle::inflateForShadow):
1365         * rendering/style/SVGRenderStyle.h:
1366
1367 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
1368
1369         Reviewed by Adam Roben.
1370
1371         Drag and Drop source/destination code needs cleanup.
1372         <https://bugs.webkit.org/show_bug.cgi?id=33691>.
1373         
1374         Cleaned up some Drag and Drop code that deals with getting
1375         source and destination operations, and added some ASSERTS to make
1376         sure we don't get in bad states.
1377
1378         * dom/Clipboard.cpp:
1379         (WebCore::Clipboard::sourceOperation): Make this return the operation itself.
1380         (WebCore::Clipboard::destinationOperation): Ditto.
1381         (WebCore::Clipboard::setSourceOperation): Add an assert to make sure we're valud.
1382         (WebCore::Clipboard::setDestinationOperation): Ditto.
1383         * dom/Clipboard.h:
1384         * page/DragController.cpp:
1385         (WebCore::DragController::tryDHTMLDrag):
1386         * page/EventHandler.cpp:
1387         (WebCore::EventHandler::handleDrag):
1388
1389 2010-01-14  Timothy Hatcher  <timothy@apple.com>
1390
1391         Make the Web Inspector's JavaScript debugger work with isolated worlds.
1392         Console evaluation is not performed in the correct world yet, tracked
1393         by bug http://webkit.org/b/33692.
1394
1395         http://webkit.org/b/33690
1396
1397         Reviewed by Adam Roben.
1398
1399         * bindings/js/ScriptCachedFrameData.cpp:
1400         (WebCore::ScriptCachedFrameData::restore): Attach the debugger to
1401         any window shell, not just for the debugger world.
1402         * bindings/js/ScriptController.cpp:
1403         (WebCore::ScriptController::clearWindowShell): Detach the debugger, and
1404         reattach to all window shells, not just for the debugger world.
1405         (WebCore::ScriptController::initScript): Attach the debugger to
1406         any window shell, not just for the debugger world.
1407         (WebCore::ScriptController::attachDebugger): Changed to loop through
1408         all the window shells and call the new overloaded attachDebugger.
1409         (WebCore::ScriptController::attachDebugger): Added. An overload that
1410         takes a window shell to attach the debugger to. Has most of the
1411         logic from the original attachDebugger.
1412         * bindings/js/ScriptController.h: Added the new attachDebugger.
1413
1414 2010-01-14  Adam Roben  <aroben@apple.com>
1415
1416         Make Cache::requestResource return 0 if the resource's load fails
1417         immediately
1418
1419         Fixes <rdar://problem/7543406> <http://webkit.org/b/33687>
1420         window.onload never fires if page contains a <script src=foo> whose
1421         load is cancelled by resource load delegate returning null from
1422         willSendRequest
1423
1424         Test: fast/loader/onload-willSendRequest-null-for-script.html
1425
1426         Reviewed by Dave Hyatt.
1427
1428         * loader/Cache.cpp:
1429         (WebCore::Cache::requestResource): Moved code to handle immediate load
1430         failure out of the "cache is disabled" block so that it will run even
1431         when the cache is enabled.
1432
1433 2010-01-14  Stephen White  <senorblanco@chromium.org>
1434
1435         Reviewed by mitz@webkit.org.
1436
1437         Fix for crash with gradient on table cell.  Pass the correct
1438         background object down to
1439         RenderBoxModelObject::paintFillLayerExtended().  This also allowed a
1440         rework of the fix to bug 18445 by passing the correct RenderObject
1441         from RenderBox::paintRootBoxDecorations() down to
1442         RenderBoxModelObject::paintFillLayerExtended().
1443         https://bugs.webkit.org/show_bug.cgi?id=28426
1444
1445         Covered by new layout test:  LayoutTests/fast/gradients/crash-on-tr.html
1446
1447         * rendering/RenderBox.cpp:
1448         (WebCore::RenderBox::paintFillLayers):
1449         (WebCore::RenderBox::paintFillLayer):
1450         * rendering/RenderBox.h:
1451         Plumb through the correct background RenderObject.
1452         * rendering/RenderBoxModelObject.cpp:
1453         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1454         Use the passed-in background RenderObject (if present) when painting background images.  Remove the previous fix for bug 18445.
1455         * rendering/RenderBoxModelObject.h:
1456         Plumb through the correct background RenderObject.
1457         * rendering/RenderTableCell.cpp:
1458         Pass in the correct backgroundObject to paintFillLayers().
1459
1460         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1461
1462 2010-01-14  Nate Chapin  <japhet@chromium.org>
1463
1464         Reviewed by Dimitri Glazkov.
1465
1466         Standardize the rest of the v8 bindings on toNative() wherever possible.
1467
1468         https://bugs.webkit.org/show_bug.cgi?id=33677
1469
1470         * bindings/v8/NPV8Object.cpp:
1471         (v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
1472         * bindings/v8/NPV8Object.h:
1473         * bindings/v8/ScriptController.cpp:
1474         * bindings/v8/V8Collection.cpp:
1475         * bindings/v8/V8Collection.h:
1476         (WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
1477         * bindings/v8/V8DOMWindowShell.cpp:
1478         * bindings/v8/V8DOMWrapper.cpp:
1479         * bindings/v8/V8DOMWrapper.h:
1480         * bindings/v8/V8NPObject.cpp:
1481         * bindings/v8/V8Proxy.cpp:
1482         * bindings/v8/V8SVGPODTypeWrapper.h:
1483         * bindings/v8/WorkerContextExecutionProxy.cpp:
1484
1485 2010-01-14  Evan Stade  <estade@chromium.org>
1486
1487         Reviewed by Eric Seidel.
1488
1489         Chromium Linux: don't stretch checkboxes
1490         https://bugs.webkit.org/show_bug.cgi?id=28631
1491
1492         Make the default size for checkboxes/radio buttons also the maximum
1493         size.
1494
1495         Based on patch by Adam Langley.
1496
1497         Test: fast/css/non-standard-checkbox-size.html
1498
1499         * rendering/RenderThemeChromiumSkia.cpp:
1500         (WebCore::center):
1501         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
1502         (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
1503         (WebCore::RenderThemeChromiumSkia::paintRadio):
1504
1505 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
1506
1507         Reviewed by Adam Roben.
1508
1509         Follow up to <https://bugs.webkit.org/show_bug.cgi?id=33635>.
1510         
1511         Now that dropEffect and effectAllowed are guaranteed to not be
1512         null, change null checks into asserts to make sure we are returning
1513         a proper DragOperation value.
1514
1515         * dom/Clipboard.cpp:
1516         (WebCore::Clipboard::sourceOperation): Change null check to assert.
1517         (WebCore::Clipboard::destinationOperation): Ditto.
1518
1519 2010-01-14  Brian Weinstein  <bweinstein@apple.com>
1520
1521         Reviewed by Oliver Hunt.
1522
1523         [DnD] effectAllowed and dropEffect can be set to bogus values.
1524         Fixes <https://bugs.webkit.org/show_bug.cgi?id=33635>.
1525         
1526         Test to make aure dropEffect and effectAllowed are being set to valid values
1527         when they are being set (list of valid values given by HTML5 specification).
1528         
1529         Also, drive by change to initialize dropEffect to none (as described in spec).
1530
1531         Test: fast/events/bogus-dropEffect-effectAllowed.html
1532
1533         * dom/Clipboard.cpp:
1534         (WebCore::Clipboard::Clipboard): Initialize m_dropEffect to "none".
1535         (WebCore::Clipboard::setDropEffect): Check if dropEffect is being set to a valid value.
1536         (WebCore::Clipboard::setEffectAllowed): Check if effectAllowed is being set to a valid value.
1537
1538 2010-01-14  Kent Hansen  <kent.hansen@nokia.com>
1539
1540         Reviewed by Darin Adler.
1541
1542         Infinite recursion in RuntimeObjectImp::getOwnPropertyNames()
1543         https://bugs.webkit.org/show_bug.cgi?id=33371
1544
1545         RuntimeObjectImp should not reimplement getPropertyNames();
1546         move the implementation to getOwnPropertyNames().
1547
1548         * bridge/runtime_object.cpp:
1549         (JSC::RuntimeObjectImp::getOwnPropertyNames):
1550         * bridge/runtime_object.h:
1551
1552 2010-01-14  Kwang Yul Seo  <skyul@company100.net>
1553
1554         Reviewed by Alexey Proskuryakov.
1555
1556         Add ENABLE(XSLT) guard to TransformSourceLibxslt.cpp
1557         https://bugs.webkit.org/show_bug.cgi?id=33665
1558
1559         TransformSource is available only when ENABLE(XSLT) guard is true.
1560
1561         * dom/TransformSourceLibxslt.cpp:
1562
1563 2010-01-14  Adam Roben  <aroben@apple.com>
1564
1565         Treat all synchronous loads equally in FrameLoader::loadSubframe
1566
1567         Only loads of the empty URL or about:blank were being treated as
1568         synchronous loads. But other loads can be synchronous (e.g., when we
1569         receive a null ResourceRequest from requestFromDelegate or when a
1570         policy decision of "ignore" is made). We now treat those loads the
1571         same way we treated empty URLs and about:blank.
1572
1573         Fixes <rdar://problem/7533333> <http://webkit.org/b/33533>
1574         window.onload never fires if page contains an <iframe> with a bad
1575         scheme or whose load is cancelled by returning null from resource load
1576         delegate's willSendRequest
1577
1578         Tests: fast/loader/onload-bad-scheme-for-frame.html
1579                fast/loader/onload-policy-ignore-for-frame.html
1580                fast/loader/onload-willSendRequest-null-for-frame.html
1581
1582         Reviewed by Brady Eidson.
1583
1584         * loader/FrameLoader.cpp:
1585         (WebCore::FrameLoader::loadSubframe):
1586           - Detect synchronous loads by checking the subframe's loader's
1587             state, rather than by checking its URL
1588           - Removed unnecessary call to completed(), since checkCompleted()
1589             will call completed() if needed (the call to completed() was added
1590             first and wasn't removed when the call to checkCompleted() was
1591             added in r8316)
1592           - Added more comments about the strange thing this function does
1593             with the subframe's loader
1594
1595 2010-01-14  Diego Gonzalez  <diego.gonzalez@openbossa.org>
1596
1597         Reviewed by Kenneth Christiansen.
1598
1599         [Qt] Missing fileSystemPath() method in Qt KURL implementation
1600         https://bugs.webkit.org/show_bug.cgi?id=33614
1601
1602         No new tests.
1603
1604         * platform/qt/KURLQt.cpp:
1605         (WebCore::KURL::fileSystemPath):
1606
1607 2010-01-13  Alexey Proskuryakov  <ap@apple.com>
1608
1609         Reviewed by Brady Eidson.
1610
1611         https://bugs.webkit.org/show_bug.cgi?id=33652
1612         REGRESSION: Frames stop appearing after browsing for a while
1613
1614         <rdar://problem/7308312> REGRESSION: iBench gets slower after several runs
1615
1616         I do not know how not creating renderers for frames could make iBench slower, but it did.
1617
1618         Test: fast/frames/cached-frame-counter.html
1619
1620         * history/CachedFrame.cpp:
1621         (WebCore::CachedFrame::CachedFrame): A frame that's cached is moved away from Page,
1622         so decrement frame count here.
1623         (WebCore::CachedFrame::open): Increase frame count when a frame is restored.
1624
1625         * history/CachedFrame.h: Remove unneeded forward declarations.
1626
1627         * history/CachedPage.h: Ditto.
1628
1629         * history/CachedPage.cpp: (WebCore::CachedPage::restore): Assert that page frame count is
1630         zero prior to restoring a page from b/f cache.
1631         
1632         * page/Page.cpp: (WebCore::Page::checkFrameCountConsistency): A debug-only method to
1633         check that frame count stored in Page matches the number of frames in frame tree.
1634
1635         * page/Page.h:
1636         (WebCore::Page::decrementFrameCount): Assert that frame count is positive.
1637         (WebCore::Page::frameCount): Call checkFrameCountConsistency().
1638
1639 2010-01-14  Steve Falkenburg  <sfalken@apple.com>
1640
1641         Windows build fixes.
1642         Add forward declarations and additional includes of windows.h.
1643
1644         * platform/Cursor.h: Add forward declaration of HCURSOR. Move destructor implementation into cpp.
1645         * platform/graphics/transforms/TransformationMatrix.h: Add forward declaration of XFORM. Remove windows.h include.
1646         * platform/graphics/win/TransformationMatrixWin.cpp: Add include of windows.h.
1647         * platform/win/CursorWin.cpp: Moved destructor of SharedCursor here.
1648         (WebCore::SharedCursor::~SharedCursor): Moved here.
1649         * platform/win/EventLoopWin.cpp: Add include of windows.h.
1650         * platform/win/SystemInfo.cpp: Add include of windows.h.
1651
1652 2010-01-14  Nate Chapin  <japhet@chromium.org>
1653
1654         Reviewed by Dimitri Glazkov.
1655
1656         Switch the custom V8 bindings to use class toNative() functions.
1657
1658         Refactoring, so no new tests.
1659
1660         * bindings/v8/custom/V8AbstractWorkerCustom.cpp:
1661         * bindings/v8/custom/V8AttrCustom.cpp:
1662         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1663         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1664         * bindings/v8/custom/V8ClipboardCustom.cpp:
1665         * bindings/v8/custom/V8CoordinatesCustom.cpp:
1666         * bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
1667         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1668         * bindings/v8/custom/V8DataGridColumnListCustom.cpp:
1669         * bindings/v8/custom/V8DatabaseCustom.cpp:
1670         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
1671         * bindings/v8/custom/V8DocumentCustom.cpp:
1672         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
1673         * bindings/v8/custom/V8ElementCustom.cpp:
1674         * bindings/v8/custom/V8EventCustom.cpp:
1675         * bindings/v8/custom/V8GeolocationCustom.cpp:
1676         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
1677         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1678         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1679         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1680         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
1681         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
1682         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
1683         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
1684         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
1685         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1686         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
1687         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
1688         * bindings/v8/custom/V8HistoryCustom.cpp:
1689         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1690         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
1691         * bindings/v8/custom/V8LocationCustom.cpp:
1692         * bindings/v8/custom/V8MessageEventCustom.cpp:
1693         * bindings/v8/custom/V8MessagePortCustom.cpp:
1694         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1695         * bindings/v8/custom/V8NodeCustom.cpp:
1696         * bindings/v8/custom/V8NodeIteratorCustom.cpp:
1697         * bindings/v8/custom/V8NodeListCustom.cpp:
1698         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
1699         * bindings/v8/custom/V8PopStateEventCustom.cpp:
1700         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
1701         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1702         * bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
1703         * bindings/v8/custom/V8SVGLengthCustom.cpp:
1704         * bindings/v8/custom/V8SVGMatrixCustom.cpp:
1705         * bindings/v8/custom/V8StorageCustom.cpp:
1706         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
1707         * bindings/v8/custom/V8TreeWalkerCustom.cpp:
1708         * bindings/v8/custom/V8WebGLArrayCustom.h:
1709         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1710         * bindings/v8/custom/V8WebSocketCustom.cpp:
1711         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1712         * bindings/v8/custom/V8WorkerCustom.cpp:
1713         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1714         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
1715         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
1716
1717 2010-01-14  Martin Robinson  <martin.james.robinson@gmail.com>
1718
1719         Reviewed by Xan Lopez.
1720
1721         [GTK] Enable DOM clipboard and drag-and-drop access
1722         https://bugs.webkit.org/show_bug.cgi?id=30623
1723
1724         Add DataObjectGtk, a container for pasteboard and drag-and-drop data.
1725
1726         No new tests, because functionality has not changed.
1727
1728         * GNUmakefile.am:
1729         * platform/gtk/DataObjectGtk.cpp: Added.
1730         (WebCore::DataObjectGtk::text):
1731         (WebCore::DataObjectGtk::markup):
1732         (WebCore::DataObjectGtk::setText):
1733         (WebCore::DataObjectGtk::setMarkup):
1734         (WebCore::DataObjectGtk::files):
1735         (WebCore::DataObjectGtk::url):
1736         (WebCore::DataObjectGtk::urlLabel):
1737         (WebCore::DataObjectGtk::hasURL):
1738         (WebCore::DataObjectGtk::clear):
1739         (WebCore::DataObjectGtk::forClipboard):
1740         * platform/gtk/DataObjectGtk.h: Added.
1741         (WebCore::DataObjectGtk::create):
1742         (WebCore::DataObjectGtk::uriList):
1743         (WebCore::DataObjectGtk::image):
1744         (WebCore::DataObjectGtk::setRange):
1745         (WebCore::DataObjectGtk::setURIList):
1746         (WebCore::DataObjectGtk::setImage):
1747         (WebCore::DataObjectGtk::setDragContext):
1748         (WebCore::DataObjectGtk::hasText):
1749         (WebCore::DataObjectGtk::hasMarkup):
1750         (WebCore::DataObjectGtk::hasURIList):
1751         (WebCore::DataObjectGtk::hasImage):
1752         (WebCore::DataObjectGtk::dragContext):
1753
1754 2010-01-14  Ilya Tikhonovsky  <loislo@chromium.org>
1755
1756         Reviewed by Pavel Feldman.
1757
1758         WebInspector: Scrolling of Timeline Page was broken by fix for bug 33470.
1759         https://bugs.webkit.org/show_bug.cgi?id=33666
1760
1761         * inspector/front-end/inspector.css:
1762
1763 2010-01-14  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1764
1765         [Qt] Unreviewed fix of builds with the --no-svg switch.
1766
1767         * WebCore.pri:
1768
1769 2010-01-14  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1770
1771         [Qt] Unreviewed build fix on Windows.
1772
1773         * platform/graphics/transforms/TransformationMatrix.h:
1774
1775 2010-01-14  Andreas Kling  <andreas.kling@nokia.com>
1776
1777         Reviewed by Kenneth Rohde Christiansen.
1778
1779         [Qt] Enable scrolling optimization for pages with embedded widgets
1780
1781         https://bugs.webkit.org/show_bug.cgi?id=33373
1782
1783         Added a basic manual test for scrolling of embedded QWidgets.
1784
1785         * manual-tests/qt/qtplugin-scrolling.html: Added.
1786         * platform/ScrollView.cpp:
1787         (WebCore::ScrollView::scrollContents):
1788         (WebCore::ScrollView::setParent):
1789         * platform/ScrollView.h:
1790         * platform/qt/ScrollViewQt.cpp:
1791         (WebCore::ScrollView::platformInit):
1792         (WebCore::ScrollView::platformAddChild):
1793         (WebCore::ScrollView::platformRemoveChild):
1794         * plugins/qt/PluginViewQt.cpp:
1795         (WebCore::PluginView::updatePluginWidget):
1796         (WebCore::PluginView::invalidateRect):
1797
1798 2009-12-09  Philippe Normand  <pnormand@igalia.com>
1799
1800         Reviewed by Xan Lopez.
1801
1802         [GStreamer] Check return values of gst_element_set_state()
1803         https://bugs.webkit.org/show_bug.cgi?id=30000
1804
1805         Check for state change failure when going from READY/NULL to
1806         PAUSED or PLAYING. Also refactored the common code of play() and
1807         pause() to a new private method of the player.
1808
1809         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1810         (WebCore::MediaPlayerPrivate::changePipelineState):
1811         (WebCore::MediaPlayerPrivate::play):
1812         (WebCore::MediaPlayerPrivate::pause):
1813         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1814
1815 2010-01-14  Eric Seidel  <eric@webkit.org>
1816
1817         No review, rolling out r53248.
1818         http://trac.webkit.org/changeset/53248
1819         https://bugs.webkit.org/show_bug.cgi?id=32641
1820
1821         Caused 2 tests to crash on various bots:
1822         fast/dom/HTMLSelectElement/listbox-select-reset.html and
1823         fast/forms/listbox-typeahead-scroll.html
1824
1825         * dom/SelectElement.cpp:
1826         (WebCore::SelectElement::recalcStyle):
1827         (WebCore::SelectElement::setRecalcListItems):
1828         (WebCore::SelectElement::recalcListItems):
1829         (WebCore::SelectElement::restoreFormControlState):
1830         (WebCore::SelectElement::reset):
1831         (WebCore::SelectElement::typeAheadFind):
1832         * dom/SelectElement.h:
1833         * html/HTMLOptionElement.cpp:
1834         (WebCore::HTMLOptionElement::selected):
1835         (WebCore::HTMLOptionElement::insertedIntoTree):
1836         * html/HTMLSelectElement.cpp:
1837         (WebCore::HTMLSelectElement::recalcStyle):
1838         * html/HTMLSelectElement.h:
1839         * wml/WMLSelectElement.cpp:
1840         (WebCore::WMLSelectElement::recalcStyle):
1841
1842 2010-01-14  Ben Murdoch  <benm@google.com>
1843
1844         Reviewed by Darin Adler.
1845
1846         [Android] [Qt] The document.createEvent API does not support touch events.
1847         https://bugs.webkit.org/show_bug.cgi?id=33605
1848
1849         Test: fast/events/touch/create-touch-event.html
1850
1851         * dom/Document.cpp:
1852         (WebCore::Document::createEvent): add creation of a TouchEvent when the "TouchEvent" argument is supplied.
1853
1854 2010-01-14  James Robinson  <jamesr@chromium.org>
1855
1856         Reviewed by Alexey Proskuryakov.
1857
1858         Ensures that the 'selected' attribute of an <option> is correct
1859         https://bugs.webkit.org/show_bug.cgi?id=32641
1860
1861         Adds a check in OptionElement::selected() that checks if list items need to be recalculated and does so if needed,
1862         so the attribute is up to date more often.  Also gets rid of most of the recalcStyle() side effects.
1863
1864          Our behavior now matches Firefox 3.5 and IE8 after the </select> is parsed.
1865
1866          Tests: fast/forms/HTMLOptionElement_selected2.html
1867                 fast/forms/HTMLOptionElement_selected3.html
1868
1869         * dom/SelectElement.cpp:
1870         (WebCore::SelectElement::setOptionsChangedOnRenderer):
1871         (WebCore::SelectElement::setRecalcListItems):
1872         (WebCore::SelectElement::recalcListItems):
1873         (WebCore::SelectElement::restoreFormControlState):
1874         (WebCore::SelectElement::reset):
1875         (WebCore::SelectElement::typeAheadFind):
1876         * dom/SelectElement.h:
1877         * html/HTMLOptionElement.cpp:
1878         (WebCore::HTMLOptionElement::selected):
1879         (WebCore::HTMLOptionElement::insertedIntoTree):
1880         * html/HTMLSelectElement.cpp:
1881         (WebCore::HTMLSelectElement::recalcStyle):
1882         (WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
1883         * html/HTMLSelectElement.h:
1884         * wml/WMLSelectElement.cpp:
1885         (WebCore::WMLSelectElement::recalcStyle):
1886
1887 2010-01-14  Zoltan Horvath  <zoltan@webkit.org>
1888
1889         Reviewed by Oliver Hunt.
1890
1891         [Qt] Allow custom memory allocation control for TransparencyLayer class
1892         https://bugs.webkit.org/show_bug.cgi?id=33585
1893
1894         Inherits the following class from FastAllocBase because it is 
1895         instantiated by 'new':
1896
1897         class name              - instantiated at: WebCore/'location'
1898         class TransparencyLayer - platform/graphics/qt/GraphicsContextQt.cpp:906
1899
1900         * platform/graphics/qt/GraphicsContextQt.cpp:
1901
1902 2010-01-14  Zoltan Horvath  <zoltan@webkit.org>
1903
1904         Reviewed by Oliver Hunt.
1905
1906         [Qt] Allow custom memory allocation control for FontPlatformDataPrivate class
1907         https://bugs.webkit.org/show_bug.cgi?id=33583
1908
1909         Inherits the following class from Noncopyable because it is 
1910         instantiated by 'new' and no need to be copyable:
1911
1912         class name                    - instantiated at: WebCore/'location'
1913         class FontPlatformDataPrivate - platform/graphics/qt/FontPlatformData.h:70
1914
1915         * platform/graphics/qt/FontPlatformData.h:
1916
1917 2010-01-12  Philippe Normand  <pnormand@igalia.com>
1918
1919         Reviewed by Xan Lopez.
1920
1921         [GTK] un-needed seeks
1922         https://bugs.webkit.org/show_bug.cgi?id=33532
1923
1924         Avoid un-needed seeks. Don't seek at current playback position and
1925         don't update the rate if it is already set to target value.
1926
1927         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1928         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1929         (WebCore::MediaPlayerPrivate::seek):
1930         (WebCore::MediaPlayerPrivate::setRate):
1931         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1932
1933 2010-01-14  Eric Seidel  <eric@webkit.org>
1934
1935         No review.  Tiger build fix after http://trac.webkit.org/changeset/53238.
1936
1937         Need to implement WebGLContextAttributes
1938         https://bugs.webkit.org/show_bug.cgi?id=31169
1939
1940         Fix a build break when ENABLE(3D_CANVAS) is disabled.
1941
1942         * html/HTMLCanvasElement.cpp:
1943         (WebCore::HTMLCanvasElement::getContext): UNUSED_PARAM(attrs) when 3D_CANVAS is disabled.
1944
1945 2010-01-13  Pavel Feldman  <pfeldman@chromium.org>
1946
1947         Reviewed by Timothy Hatcher.
1948
1949         Web Inspector: use hidden text area for clipboard in order to
1950         workaround windows setData bug.
1951
1952         https://bugs.webkit.org/show_bug.cgi?id=33633
1953
1954         * inspector/front-end/TextEditor.js:
1955         (WebInspector.TextEditor):
1956         (WebInspector.TextEditor.prototype._copy):
1957         * inspector/front-end/inspector.css:
1958
1959 2010-01-13  Mads Ager  <ager@chromium.org>
1960
1961         Reviewed by Dimitri Glazkov.
1962
1963         [V8] Slow named property lookup on DOMWindow because of missing fast case
1964         https://bugs.webkit.org/show_bug.cgi?id=33584
1965
1966         Add fast case checks to V8 named property getter on DOMWindow
1967         objects.  If the property is not in the DOM there is no reason to
1968         search the DOM for all occurrences.
1969
1970         Covered by layout tests.
1971
1972         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1973         (WebCore::V8DOMWindow::namedPropertyGetter):
1974
1975 2010-01-13  Gavin Barraclough  <barraclough@apple.com>
1976
1977         Reviewed by Oliver Hunt.
1978
1979         <rdar://problem/7403736> REGRESSION (r49963,r49965): 8% Dromaeo Core DOM test regression
1980
1981         Adding isolated worlds support to the JSC bindings introduced a regression due to
1982         additional map lookups.  Add a mechanism to quickly detect that a lookup is for the
1983         'normal' world, and add fast paths to a couple of methods to check the normal world
1984         first.
1985
1986         * bindings/js/JSDOMBinding.cpp:
1987         (WebCore::Document::getWrapperCache):
1988         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1989         (WebCore::forgetDOMObject):
1990         * bindings/js/JSDOMBinding.h:
1991         (WebCore::DOMWrapperWorld::isNormal):
1992         (WebCore::WebCoreJSClientData::WebCoreJSClientData):
1993         * bindings/js/ScriptController.cpp:
1994         (WebCore::IsolatedWorld::IsolatedWorld):
1995         * dom/Document.cpp:
1996         (WebCore::Document::Document):
1997         (WebCore::Document::createWrapperCache):
1998         * dom/Document.h:
1999
2000 2010-01-13  Kenneth Russell  <kbr@google.com>
2001
2002         Reviewed by Oliver Hunt.
2003
2004         Need to implement WebGLContextAttributes
2005         https://bugs.webkit.org/show_bug.cgi?id=31169
2006
2007         Added the WebGLContextAttributes class and custom JavaScript
2008         bindings to accept a native object as the second argument to
2009         getContext("experimental-webgl") per the WebGL specification.
2010         Added GraphicsContext3D::Attributes struct to isolate DOM and
2011         graphics layers. Added getContextAttributes() to
2012         WebGLRenderingContext. Added test case ensuring that context
2013         attributes can be passed down and returned. Tested in Safari and
2014         Chromium. The attributes will be hooked up to the creation of the
2015         OpenGL context in bug 33416.
2016
2017         Test: fast/canvas/webgl/context-attributes.html
2018
2019         * DerivedSources.make:
2020         * WebCore.gypi:
2021         * WebCore.xcodeproj/project.pbxproj:
2022         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2023         (WebCore::JSHTMLCanvasElement::getContext):
2024         * bindings/scripts/CodeGeneratorV8.pm:
2025         * bindings/scripts/IDLParser.pm:
2026         * bindings/v8/DOMData.cpp:
2027         * bindings/v8/DerivedSourcesAllInOne.cpp:
2028         * bindings/v8/V8DOMWrapper.cpp:
2029         * bindings/v8/V8Index.cpp:
2030         * bindings/v8/V8Index.h:
2031         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2032         (WebCore::V8HTMLCanvasElement::getContextCallback):
2033         * html/HTMLCanvasElement.cpp:
2034         (WebCore::HTMLCanvasElement::getContext):
2035         * html/HTMLCanvasElement.h:
2036         * html/HTMLCanvasElement.idl:
2037         * html/canvas/CanvasContextAttributes.cpp: Added.
2038         (WebCore::CanvasContextAttributes::CanvasContextAttributes):
2039         (WebCore::CanvasContextAttributes::~CanvasContextAttributes):
2040         * html/canvas/CanvasContextAttributes.h: Added.
2041         * html/canvas/WebGLContextAttributes.cpp: Added.
2042         (WebCore::WebGLContextAttributes::create):
2043         (WebCore::WebGLContextAttributes::WebGLContextAttributes):
2044         (WebCore::WebGLContextAttributes::~WebGLContextAttributes):
2045         (WebCore::WebGLContextAttributes::alpha):
2046         (WebCore::WebGLContextAttributes::setAlpha):
2047         (WebCore::WebGLContextAttributes::depth):
2048         (WebCore::WebGLContextAttributes::setDepth):
2049         (WebCore::WebGLContextAttributes::stencil):
2050         (WebCore::WebGLContextAttributes::setStencil):
2051         (WebCore::WebGLContextAttributes::antialias):
2052         (WebCore::WebGLContextAttributes::setAntialias):
2053         (WebCore::WebGLContextAttributes::premultipliedAlpha):
2054         (WebCore::WebGLContextAttributes::setPremultipliedAlpha):
2055         (WebCore::WebGLContextAttributes::attributes):
2056         * html/canvas/WebGLContextAttributes.h: Added.
2057         * html/canvas/WebGLContextAttributes.idl: Added.
2058         * html/canvas/WebGLRenderingContext.cpp:
2059         (WebCore::WebGLRenderingContext::create):
2060         (WebCore::WebGLRenderingContext::getContextAttributes):
2061         * html/canvas/WebGLRenderingContext.h:
2062         * html/canvas/WebGLRenderingContext.idl:
2063         * platform/graphics/GraphicsContext3D.h:
2064         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2065         (WebCore::GraphicsContext3D::create):
2066         (WebCore::GraphicsContext3D::GraphicsContext3D):
2067         (WebCore::GraphicsContext3D::getContextAttributes):
2068
2069 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
2070
2071         Fix Windows build.
2072
2073         * platform/graphics/cg/GraphicsContextCG.cpp:
2074
2075 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
2076
2077         Reviewed by Darin Adler.
2078
2079         Transition followed by animation fails to run the animation sometimes
2080         https://bugs.webkit.org/show_bug.cgi?id=33563
2081
2082         If a transition was closely followed by an animation, it was possible for the cleanup
2083         after the end of the transition to kill the animation.
2084         
2085         Fix this by including the keyframes name (or empty string for transitions) in the labels
2086         used to identify CAAnimations on layers.
2087         
2088         No test because this was a subtle timing issue that is hard to reproduce in a layout test.
2089
2090         * platform/graphics/mac/GraphicsLayerCA.h: Some new methods and signature changes.
2091         
2092         * platform/graphics/mac/GraphicsLayerCA.mm:
2093         (WebCore::animationIdentifier): Pass the keyframes name, since this is included in the identifier string now.
2094         (WebCore::moveAllAnimationsForProperty): Pass the keyframes name.
2095         (WebCore::GraphicsLayerCA::moveAnimationsForProperty): Try to move both transition- and animation-related
2096         CAAnimations, using the list of running animations to get the keyframe names for the latter.
2097
2098         (WebCore::GraphicsLayerCA::ensureStructuralLayer): moveAnimation renamed to moveAnimationsForProperty
2099         and takes the keyframes name.
2100
2101         (WebCore::GraphicsLayerCA::updateLayerAnimations): Pass keyframes name down (or "" for transitions).
2102         (WebCore::GraphicsLayerCA::setAnimationOnLayer): Pass keyframes name down.
2103         (WebCore::GraphicsLayerCA::removeAnimationFromLayer): Pass keyframes name down.
2104         (WebCore::GraphicsLayerCA::pauseAnimationOnLayer): Pass keyframes name down.
2105         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Pass keyframes name down.
2106
2107 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
2108
2109         Reviewed by Dan Bernstein.
2110
2111         Fix shadow drawing to do the correct computations using the base coordinate space
2112         https://bugs.webkit.org/show_bug.cgi?id=33629
2113         
2114         Shadows draw using the CGContext base CTM, so we need to convert the shadow offet
2115         and size from user CTM into into base CTM coordinates, via the matix obtained from wkGetUserToBaseCTM().
2116
2117         Test: compositing/shadows/shadow-drawing.html
2118
2119         * platform/graphics/cg/GraphicsContextCG.cpp:
2120         (WebCore::GraphicsContext::setPlatformShadow):
2121
2122 2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>
2123
2124         Reviewed by Oliver Hunt.
2125
2126         SVGClipPathElement shouldn't resolve style manually
2127         https://bugs.webkit.org/show_bug.cgi?id=33647
2128
2129         Build renderers for SVGClipPathElement, so we can query the style from the renderer
2130         instead of re-resolving style on every clip path resource invalidation.
2131
2132         * svg/SVGClipPathElement.cpp:
2133         (WebCore::SVGClipPathElement::createRenderer):
2134         (WebCore::SVGClipPathElement::canvasResource):
2135         * svg/SVGClipPathElement.h:
2136         (WebCore::SVGClipPathElement::isValid):
2137
2138 2010-01-13  Kelly Norton  <knorton@google.com>
2139
2140         Reviewed by Timothy Hatcher.
2141
2142         Web Inspector does not update the DOM tree when attributes change.
2143         https://bugs.webkit.org/show_bug.cgi?id=20162
2144
2145         * dom/Element.cpp: Moves callbacks to InspectorController directly into setAttribute
2146         and removeAttribute and removes the existing call sites. This makes it possible to
2147         see attribute modifications.
2148         (WebCore::Element::setAttribute):
2149         (WebCore::Element::dispatchAttrRemovalEvent):
2150         (WebCore::Element::dispatchAttrAdditionEvent):
2151         (WebCore::Element::removeAttribute):
2152         * inspector/front-end/DOMAgent.js:
2153         (WebInspector.DOMNode.prototype._setAttributesPayload): Clear existing attributes.
2154         (WebInspector.DOMAgent.prototype._didApplyDomChange): Updated call site and fixed style.
2155         (WebInspector.DOMAgent.prototype._attributesUpdated): Added.
2156         * inspector/front-end/ElementsPanel.js:
2157         (WebInspector.ElementsPanel.prototype._attributesUpdated): Added.
2158         (WebInspector.ElementsPanel.prototype.updateModifiedNodes): Updated call site.
2159         * inspector/front-end/ElementsTreeOutline.js: Renamed _updateTitle to updateTitle.
2160         (WebInspector.ElementsTreeElement.prototype.onattach): Updated updateTitle call site.
2161         (WebInspector.ElementsTreeElement.prototype._textNodeEditingCommitted): Ditto.
2162         (WebInspector.ElementsTreeElement.prototype._editingCancelled): Ditto.
2163
2164 2010-01-13  Carol Szabo <carol.szabo@nokia.com>
2165
2166         Reviewed by Darin Adler.
2167
2168         CounterNode::nextInPreOrderAfterChildren(stayWithin) does not stay within.
2169         https://bugs.webkit.org/show_bug.cgi?id=33625
2170
2171         No new tests because the fix should affect strictly performance.
2172
2173         * rendering/CounterNode.cpp:
2174         (WebCore::CounterNode::nextInPreOrderAfterChildren):
2175
2176 2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>
2177
2178         Reviewed by Oliver Hunt.
2179
2180         Window size changes are not propagated down the render tree
2181         https://bugs.webkit.org/show_bug.cgi?id=33643
2182
2183         Test: svg/custom/relative-sized-content.xhtml
2184
2185         * rendering/RenderSVGContainer.cpp: Fix incorrect markParents=true usage, leading to unnecessary relayouts.
2186         (WebCore::RenderSVGContainer::layout): Use new layoutChildren() method.
2187         (WebCore::RenderSVGContainer::paint): Fix indention.
2188         * rendering/RenderSVGHiddenContainer.cpp: Fix incorrect markParents=true usage.
2189         (WebCore::RenderSVGHiddenContainer::layout): Use new layoutChildren() helper.
2190         * rendering/RenderSVGRoot.cpp: Refactor existing code to layout children in SVGRenderSupport::layoutChildren.
2191         (WebCore::RenderSVGRoot::layout): Make children relayouting depend on width/height changes, if the outermost svg uses relative viewport sizes.
2192         * rendering/SVGRenderSupport.cpp: Add central place handling child layout, skips relayouting non-relative sized children as benefit.
2193         (WebCore::SVGRenderBase::layoutChildren): This methods contains the actual changes.
2194         * rendering/SVGRenderSupport.h:
2195         * svg/SVGGElement.h: Remove dead code.
2196         * svg/SVGSVGElement.h: Make hasRelativeValues() public to remove the need for friendship declarations.
2197         * svg/SVGStyledElement.h: Change default return value for hasRelativeValues() to false, as it was intended.
2198         (WebCore::SVGStyledElement::hasRelativeValues): Make it public, to be usable from SVGRenderSupport.
2199         * svg/SVGSymbolElement.h: Remove dead code.
2200         * svg/SVGUseElement.cpp: Implement hasRelativeValues() - it was simply missing here.
2201         (WebCore::SVGUseElement::hasRelativeValues):
2202         * svg/SVGUseElement.h:
2203
2204 2010-01-13  Fumitoshi Ukai  <ukai@chromium.org>
2205
2206         Reviewed by David Levin.
2207
2208         Fix websocket/tests/worker/worker-simple.html crash on Leopard Intel Debug (Tests) builder
2209         https://bugs.webkit.org/show_bug.cgi?id=33581
2210
2211         unref m_workerContext when websocket is disconnected, so that avoid
2212         keeping reference to workerContext longer than worker thread runs.
2213
2214         * websockets/WorkerThreadableWebSocketChannel.cpp:
2215         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
2216         (WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
2217
2218 2010-01-12  Jon Honeycutt  <jhoneycutt@apple.com>
2219
2220         MSAA: selected, selectable, extended selectable, and multiple
2221         selectable states are not reported
2222
2223         https://bugs.webkit.org/show_bug.cgi?id=33574
2224         <rdar://problem/7536826>
2225
2226         Reviewed by Darin Adler.
2227
2228         * accessibility/AccessibilityObject.h:
2229         (WebCore::AccessibilityObject::isMultiSelectable):
2230         Use the correct function name - the function name overriden by
2231         and used in AccessiblityRenderObject.
2232
2233         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2234         (setAtkStateSetFromCoreObject):
2235         Update for function rename.
2236         (webkit_accessible_selection_select_all_selection):
2237         Ditto.
2238
2239 2010-01-13  Darin Adler  <darin@apple.com>
2240
2241         Reviewed by Dan Bernstein.
2242
2243         Move more of the selection and caret painting code from Frame to SelectionController.
2244         https://bugs.webkit.org/show_bug.cgi?id=33619
2245
2246         Helpful preparation step for a bug fix I am working on.
2247
2248         * editing/SelectionController.cpp:
2249         (WebCore::SelectionController::SelectionController): Initialize new data members.
2250         Note that m_caretVisible starts as true for the drag caret controller to match the
2251         old behavior for painting.
2252         (WebCore::SelectionController::setSelection): Changed to call selectionLayoutChanged
2253         in its new name and location.
2254         (WebCore::SelectionController::paintCaret): Added checks that were formerly done
2255         at the Frame level. Tweaked formatting and changed to use early return as well.
2256         (WebCore::SelectionController::focusedOrActiveStateChanged): Updated for call
2257         moved into this class.
2258         (WebCore::SelectionController::updateAppearance): Moved the
2259         Frame::selectionLayoutChanged function here. Had to rename it because the word
2260         "layout" is usedfor other purposes in this function.
2261         (WebCore::SelectionController::setCaretVisible): Moved here from Frame.
2262         (WebCore::SelectionController::clearCaretRectIfNeeded): Ditto.
2263         (WebCore::SelectionController::caretBlinkTimerFired): Ditto.
2264
2265         * editing/SelectionController.h: Added new functions. Moved conditional function
2266         out of class definition for clarity. Removed unneeded == and != operators.
2267         Removed unneeded use of bit fields.
2268
2269         * page/Frame.cpp: Moved functions to SelectionController.
2270         (WebCore::Frame::Frame): Removed initialization of moved data members.
2271
2272         * page/Frame.h: Removed things moved to SelectionController as well as unneeded
2273         forward declaration of Timer class template.
2274
2275         * page/FrameView.cpp:
2276         (WebCore::FrameView::layout): Updated for new location of function.
2277
2278         * rendering/RenderBlock.cpp:
2279         (WebCore::RenderBlock::paintCaret): Ditto.
2280
2281 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
2282
2283         Reviewed by Darin Adler.
2284
2285         <rdar://problem/7532544>
2286         
2287         Expose new method on WebKitSystemInterface, WKGetUserToBaseCTM(), which will
2288         be used for a shadow drawing fix.
2289
2290         * WebCore.base.exp:
2291         * platform/mac/WebCoreSystemInterface.h:
2292         * platform/mac/WebCoreSystemInterface.mm:
2293
2294 2010-01-13  Simon Fraser  <simon.fraser@apple.com>
2295
2296         Reviewed by Dan Bernstein.
2297
2298         Fix shadow drawing to do the correct computations using the base coordinate space
2299         https://bugs.webkit.org/show_bug.cgi?id=33629
2300
2301         Step 1: do some renames in setPlatformShadow():
2302             size -> offset
2303             width -> xOffset
2304             height -> yOffset
2305         
2306         * platform/graphics/cg/GraphicsContextCG.cpp:
2307         (WebCore::GraphicsContext::setPlatformShadow):
2308
2309 2010-01-13  Jeremy Orlow  <jorlow@chromium.org>
2310
2311         Reviewed by Darin Fisher.
2312
2313         [Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
2314         https://bugs.webkit.org/show_bug.cgi?id=33492
2315
2316         * page/Page.cpp:
2317         (WebCore::Page::sessionStorage):
2318         * storage/StorageNamespace.cpp:
2319         (WebCore::StorageNamespace::sessionStorageNamespace):
2320         * storage/StorageNamespace.h:
2321         (WebCore::StorageNamespace::~StorageNamespace):
2322
2323 2010-01-13  Dirk Schulze  <krit@webkit.org>
2324
2325         Reviewed by Beth Dakin.
2326
2327         Repaint bug dragging a star shape with a dash stroke
2328         https://bugs.webkit.org/show_bug.cgi?id=33406
2329
2330         Calculation of repaint rects for RenderPath objects was wrong. We must take the
2331         union of strokeBoundingBox and objectBoundingBox, since the strokeBoundingBox
2332         must not contain the objectBoundingBox. This is mainly visible on dash-arrays for
2333         strokes.
2334
2335         Test: svg/custom/js-repaint-rect-on-path-with-stroke.svg
2336
2337         * rendering/RenderPath.cpp:
2338         (WebCore::RenderPath::strokeBoundingBox):
2339
2340 2010-01-13  Kevin Ollivier  <kevino@theolliviers.com>
2341
2342         [wx] Build fix. Make the XFORM operator work on wx port.
2343
2344         * platform/graphics/transforms/TransformationMatrix.h:
2345         * wscript:
2346
2347 2010-01-13  Pavel Feldman  <pfeldman@chromium.org>
2348
2349         Reviewed by Timothy Hatcher.
2350
2351         Web Inspector: Introduce SourceFrame2 with basic breakpoint / execution line
2352         rendering capabilities.
2353
2354         Contains a drive-by naming fix (lineNumberOffset and lineNumberToOffset were
2355         too close to each other, but were unrelated).
2356
2357         https://bugs.webkit.org/show_bug.cgi?id=33618
2358
2359         * WebCore.gypi:
2360         * WebCore.vcproj/WebCore.vcproj:
2361         * inspector/front-end/SourceFrame2.js: Added.
2362         (WebInspector.SourceFrame2):
2363         (WebInspector.SourceFrame2.prototype.set text):
2364         (WebInspector.SourceFrame2.prototype.get executionLine):
2365         (WebInspector.SourceFrame2.prototype.set executionLine):
2366         (WebInspector.SourceFrame2.prototype.revealLine):
2367         (WebInspector.SourceFrame2.prototype._toggleBreakpoint):
2368         (WebInspector.SourceFrame2.prototype.resize):
2369         (WebInspector.BreakpointLineNumberDecorator):
2370         (WebInspector.BreakpointLineNumberDecorator.prototype.decorate):
2371         (WebInspector.BreakpointLineNumberDecorator.prototype._paintBreakpoint):
2372         (WebInspector.BreakpointLineNumberDecorator.prototype._paintProgramCounter):
2373         (WebInspector.BreakpointLineNumberDecorator.prototype.mouseDown):
2374         (WebInspector.ExecutionLineDecorator):
2375         (WebInspector.ExecutionLineDecorator.prototype.decorate):
2376         * inspector/front-end/TextEditor.js:
2377         (WebInspector.TextEditor):
2378         (WebInspector.TextEditor.prototype.get textModel):
2379         (WebInspector.TextEditor.prototype.set readOnly):
2380         (WebInspector.TextEditor.prototype.set lineNumberDecorator):
2381         (WebInspector.TextEditor.prototype.set lineDecorator):
2382         (WebInspector.TextEditor.prototype.selectionRange):
2383         (WebInspector.TextEditor.prototype._offsetToLine):
2384         (WebInspector.TextEditor.prototype._lineToOffset):
2385         (WebInspector.TextEditor.prototype.reveal):
2386         (WebInspector.TextEditor.prototype._textChanged):
2387         (WebInspector.TextEditor.prototype._updateSize):
2388         (WebInspector.TextEditor.prototype.updateCanvasSize):
2389         (WebInspector.TextEditor.prototype._repaintAll):
2390         (WebInspector.TextEditor.prototype._paintLines):
2391         (WebInspector.TextEditor.prototype._paintLinesContinuation):
2392         (WebInspector.TextEditor.prototype.paintLineNumbers):
2393         (WebInspector.TextEditor.prototype._paintCurrentLine):
2394         (WebInspector.TextEditor.prototype._mouseDown):
2395         (WebInspector.TextEditor.prototype._caretForMouseEvent):
2396         (WebInspector.TextEditor.prototype._keyDown):
2397         (WebInspector.TextEditor.prototype._handleNavigationKey):
2398         (WebInspector.TextEditor.prototype._textInput):
2399         (WebInspector.TextEditor.prototype._updateCursor):
2400         (WebInspector.TextEditor.prototype._paintSelection):
2401         (WebInspector.TextEditor.prototype._initFont):
2402
2403 2010-01-13  Nate Chapin  <japhet@chromium.org>
2404
2405         Reviewed by Dimitri Glazkov.
2406
2407         Generate a function in the V8 bindings to convert v8 objects
2408         to native WebCore objects.
2409
2410         * bindings/scripts/CodeGeneratorV8.pm: Generate and use toNative().
2411         * bindings/v8/V8Binding.cpp: Remove manually defined conversion helprs.
2412         (WebCore::getElementStringAttr):
2413         (WebCore::setElementStringAttr):
2414         * bindings/v8/V8Binding.h: Remove manually defined conversion helprs.
2415         * bindings/v8/V8SVGPODTypeWrapper.h: Still need a manually defined coversion helper for SVGPODTypes.
2416         (WebCore::V8SVGPODTypeWrapper::toNative):
2417         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2418         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
2419         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
2420         (WebCore::V8WebGLRenderingContext::getUniformCallback):
2421
2422 2010-01-13  Brian Weinstein  <bweinstein@apple.com>
2423
2424         Reviewed by Adam Roben.
2425
2426         REGRESSION (r49268): DHTML drag not allowed unless event.dataTransfer.effectAllowed
2427         is set (differs from HTML5).
2428         Fixes <https://bugs.webkit.org/show_bug.cgi?id=33607> and <rdar://7507114>.
2429
2430         If no effectAllowed is set in the dragStart operation, we should default to
2431         uninitialized instead of none, so the user doesn't have to manually set the
2432         effectAllowed to enable drag and drop.
2433
2434         * dom/Clipboard.cpp:
2435         (WebCore::Clipboard::Clipboard):
2436
2437 2010-01-13  Dave Hyatt  <hyatt@apple.com>
2438
2439         Reviewed by Dan Bernstein.
2440
2441         https://bugs.webkit.org/show_bug.cgi?id=32495
2442
2443         font-size:small with background-color causes text to get clipped.  Make sure to only paint within the lineTop/lineBottom of
2444         a line for quirky inline flow boxes that didn't contribute to the overall height of the line. 
2445         
2446         Added fast/backgrounds/quirks-mode-line-boxes-backgrounds.html
2447
2448         * rendering/InlineFlowBox.cpp:
2449         (WebCore::InlineFlowBox::computeVerticalOverflow):
2450         (WebCore::InlineFlowBox::paintBoxDecorations):
2451         (WebCore::InlineFlowBox::paintMask):
2452
2453 2010-01-13  Dumitru Daniliuc  <dumi@chromium.org>
2454
2455         Reviewed by Darin Adler.
2456
2457         Refactoring DatabaseAuthorizer to use a CaseFoldingHash function
2458         for the set of whitelisted sqlite functions, and fixing some
2459         indenting issues.
2460
2461         https://bugs.webkit.org/show_bug.cgi?id=33612
2462
2463         * storage/DatabaseAuthorizer.cpp:
2464         (WebCore::DatabaseAuthorizer::allowFunction):
2465         * storage/DatabaseAuthorizer.h:
2466
2467 2010-01-13  Carol Szabo  <carol.szabo@nokia.com>
2468
2469         Reviewed by Darin Adler.
2470
2471         RenderObject::nextInPreOrderAfterChildren(RenderObject* stayWithin) does not stay within
2472         https://bugs.webkit.org/show_bug.cgi?id=33600
2473
2474         No new tests as this fix affects mainly performance.
2475         No test has been found yet that could evidence the bug in the layout
2476         of a page, but the fix to bug 32884 exposes this bug on some pages
2477         such as http://www.w3.org/Style/CSS/Test/CSS2.1/current/html4/counters-scope-implied-001.htm
2478
2479         * rendering/RenderObject.cpp:
2480         (WebCore::RenderObject::nextInPreOrderAfterChildren):
2481
2482 2010-01-13  Jeremy Orlow  <jorlow@chromium.org>
2483
2484         No reviewer.  More or less a build fix.  My 53180 broke some 
2485         stuff on the Chromium port so I'm reverting.
2486
2487         * page/Page.cpp:
2488         (WebCore::Page::sessionStorage):
2489         * storage/StorageNamespace.cpp:
2490         (WebCore::StorageNamespace::sessionStorageNamespace):
2491         * storage/StorageNamespace.h:
2492         (WebCore::StorageNamespace::~StorageNamespace):
2493
2494 2010-01-13  Steve Block  <steveblock@google.com>
2495
2496         Update appendClassName in jni_runtime.cpp to use WebCore::StringBuilder, rather than JSC::StringBuilder.
2497         https://bugs.webkit.org/show_bug.cgi?id=33586
2498
2499         Avoiding the JSC version of StringBuilder allows this file to be used with both JSC and V8 on Android.
2500
2501         No new tests, refactoring only.
2502
2503         * bridge/jni/jni_runtime.cpp: Modified.
2504         (JavaMethod::signature): Modified. Use WebCore::StringBuilder.
2505
2506 2010-01-13  Kent Hansen  <kent.hansen@nokia.com>
2507
2508         Reviewed by Timothy Hatcher.
2509
2510         Some objects in the global scope are not completed
2511         https://bugs.webkit.org/show_bug.cgi?id=19119
2512
2513         Use Object.getOwnPropertyNames instead of for-in to provide completions, since
2514         Object.getOwnPropertyNames reports both enumerable and non-enumerable properties.
2515
2516         * inspector/front-end/InjectedScript.js:
2517         (InjectedScript._getPropertyNames):
2518         (InjectedScript.getCompletions):
2519
2520 2010-01-13  Ben Murdoch  <benm@google.com>
2521
2522         Reviewed by Simon Hausmann.
2523
2524         [Android] [Qt] The JSC ScriptController does not consider Touch Events user gestures.
2525         https://bugs.webkit.org/show_bug.cgi?id=33597
2526
2527         * bindings/js/ScriptController.cpp:
2528         (WebCore::ScriptController::processingUserGestureEvent): Add the touch event types (touchstart, touchmove and touchend) to the set of events that are considered user gestures.
2529
2530 2010-01-13  Simon Hausmann  <simon.hausmann@nokia.com>
2531
2532         Rubber-stamped by Tor Arne Vestbø.
2533
2534         [Qt] REGRESSION(53187) Touchevent related tests fail
2535
2536         https://bugs.webkit.org/show_bug.cgi?id=33602
2537
2538         Pass the ENABLE_TOUCH_EVENTS to the IDL generators.
2539
2540         * WebCore.pri:
2541
2542 2010-01-13  Ilya Tikhonovsky  <loislo@chromium.org>
2543
2544         Reviewed by Pavel Feldman.
2545
2546         WebInspector: Timeline panel scrolling speed can be increased.
2547         https://bugs.webkit.org/show_bug.cgi?id=33579
2548
2549         * inspector/front-end/TimelinePanel.js:
2550         (WebInspector.TimelinePanel):
2551         (WebInspector.TimelinePanel.prototype._scheduleRefresh):
2552         (WebInspector.TimelinePanel.prototype._refresh):
2553         (WebInspector.TimelinePanel.prototype._refreshRecords):
2554
2555 2010-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2556
2557         Reviewed by Simon Hausmann.
2558
2559         [Qt] Split the build process in two different .pro files.
2560         This allows qmake to be run once all source files are available.
2561
2562         * DerivedSources.pro: Added.
2563         * WebCore.pri: Added. Contains common logic between source generation and compilation.
2564         * WebCore.pro: Moved source generation to DerivedSources.pro.
2565
2566 2010-01-13  Pavel Feldman  <pfeldman@chromium.org>
2567
2568         Reviewed by Timothy Hatcher.
2569
2570         Web Inspector: Scrolling editor to the 20Kth line is not smooth.
2571
2572         https://bugs.webkit.org/show_bug.cgi?id=33587
2573
2574         * inspector/front-end/TextEditor.js:
2575         (WebInspector.TextEditor):
2576         (WebInspector.TextEditor.prototype._textChanged):
2577         (WebInspector.TextEditor.prototype._highlightChanged):
2578         (WebInspector.TextEditor.prototype._paintLinesContinuation):
2579         * inspector/front-end/TextEditorHighlighter.js:
2580         (WebInspector.TextEditorHighlighter):
2581         (WebInspector.TextEditorHighlighter.prototype.highlight):
2582         (WebInspector.TextEditorHighlighter.prototype._highlightInChunks):
2583         (WebInspector.TextEditorHighlighter.prototype.updateHighlight):
2584         (WebInspector.TextEditorHighlighter.prototype._highlightLines):
2585         (WebInspector.TextEditorHighlighter.prototype._lex):
2586         * inspector/front-end/TextEditorModel.js:
2587         (WebInspector.TextEditorModel.prototype._setLine):
2588         (WebInspector.TextEditorModel.prototype.setAttribute):
2589         (WebInspector.TextEditorModel.prototype.getAttribute):
2590         (WebInspector.TextEditorModel.prototype.removeAttribute):
2591
2592 2010-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2593
2594         Reviewed by Simon Hausmann.
2595
2596         [Qt] Fix the build on Windows.
2597
2598         PluginViewWin.cpp requires the conversion operator from TransformationMatrix to XFORM.
2599
2600         * WebCore.pro: Build TransformationMatrixWin.cpp.
2601         * platform/graphics/transforms/TransformationMatrix.h: Enable the conversion operator to XFORM.
2602
2603 2010-01-13  Miikka Heikkinen <miikka.heikkinen@digia.com>
2604
2605         Reviewed by Simon Hausmann.
2606
2607         [Qt/Symbian] Added missing vendor information to qtwebkit.sis
2608
2609         This information is necessary to Symbian sign the package.
2610
2611         http://bugreports.qt.nokia.com/browse/QTBUG-7290
2612
2613         * WebCore.pro:
2614
2615 2010-01-11  Jeremy Orlow  <jorlow@chromium.org>
2616
2617         Reviewed by Darin Fisher.
2618
2619         [Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
2620         https://bugs.webkit.org/show_bug.cgi?id=33492
2621
2622         * page/Page.cpp:
2623         (WebCore::Page::sessionStorage):
2624         * storage/StorageNamespace.cpp:
2625         (WebCore::StorageNamespace::sessionStorageNamespace):
2626         * storage/StorageNamespace.h:
2627         (WebCore::StorageNamespace::~StorageNamespace):
2628
2629 2010-01-12  Dumitru Daniliuc  <dumi@chromium.org>
2630
2631         Reviewed by Adam Barth.
2632
2633         Adding a list of whitelisted sqlite functions that users are
2634         allowed to use.
2635
2636         https://bugs.webkit.org/show_bug.cgi?id=33549
2637
2638         * platform/sql/SQLiteDatabase.cpp:
2639         (WebCore::SQLiteDatabase::authorizerFunction):
2640         * storage/DatabaseAuthorizer.cpp:
2641         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
2642         (WebCore::DatabaseAuthorizer::addWhitelistedFunctions):
2643         (WebCore::DatabaseAuthorizer::allowFunction):
2644         * storage/DatabaseAuthorizer.h:
2645
2646 2010-01-12  Fumitoshi Ukai  <ukai@chromium.org>
2647
2648         Reviewed by Simon Hausmann.
2649
2650         [Qt][WebSocket] SocketStreamHandleSoup.cpp is misnamed
2651         https://bugs.webkit.org/show_bug.cgi?id=33077
2652
2653         * WebCore.pro:
2654         * platform/network/qt/SocketStreamHandleQt.cpp: Copied from WebCore/platform/network/qt/SocketStreamHandleSoup.cpp.
2655         * platform/network/qt/SocketStreamHandleSoup.cpp: Removed.
2656
2657 2010-01-12  Simon Fraser  <simon.fraser@apple.com>
2658
2659         Reviewed by Dan Bernstein.
2660
2661         position:fixed and transform on same element breaks fixed behavior
2662         https://bugs.webkit.org/show_bug.cgi?id=31283
2663
2664         Fix interactions of transforms and fixed positioning, namely that fixed position
2665         elements with a transformed ancestor are positioned relative to that ancestor,
2666         and an element with both a transform and fixed position respects that positioning.
2667         
2668         Test: transforms/2d/transform-fixed-container.html
2669
2670         * rendering/RenderBox.cpp:
2671         (WebCore::RenderBox::mapLocalToContainer):
2672         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
2673         Transforms should not unconditionally stop the propagation of the 'fixed' flag to ancestors,
2674         but only if the transformed element is not itself fixed.
2675         
2676         * rendering/RenderLayer.cpp:
2677         (WebCore::RenderLayer::convertToLayerCoords):
2678         Fix this method to behave correctly for fixed position layers whose container is not
2679         the root, but some other (probably transformed) ancestor. In that case, we can fall into
2680         the "position: absolute" code path.
2681
2682 2010-01-12  Tony Chang  <tony@chromium.org>
2683
2684         Reviewed by Adam Barth.
2685
2686         Fix an assert being triggered by how the Chromium port sets the
2687         replacing flag for error pages.  This was caused by r53143.
2688
2689         Covered by existing Chromium UI tests.
2690
2691         * loader/FrameLoader.cpp:
2692         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
2693
2694 2010-01-12  Kent Hansen  <kent.hansen@nokia.com>
2695
2696         Reviewed by Geoffrey Garen.
2697
2698         [ES5] Implement Object.getOwnPropertyNames
2699         https://bugs.webkit.org/show_bug.cgi?id=32242
2700
2701         Add new argument to reimplementations of getPropertyNames()
2702         and getOwnPropertyNames(), and update the JS bindings generator.
2703
2704         Test: fast/js/Object-getOwnPropertyNames.html
2705
2706         * bindings/js/JSDOMWindowCustom.cpp:
2707         (WebCore::JSDOMWindow::getPropertyNames):
2708         (WebCore::JSDOMWindow::getOwnPropertyNames):
2709         * bindings/js/JSDOMWindowShell.cpp:
2710         (WebCore::JSDOMWindowShell::getPropertyNames):
2711         (WebCore::JSDOMWindowShell::getOwnPropertyNames):
2712         * bindings/js/JSDOMWindowShell.h:
2713         * bindings/js/JSHistoryCustom.cpp:
2714         (WebCore::JSHistory::getOwnPropertyNames):
2715         * bindings/js/JSLocationCustom.cpp:
2716         (WebCore::JSLocation::getOwnPropertyNames):
2717         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2718         (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
2719         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyNames):
2720         * bindings/js/JSQuarantinedObjectWrapper.h:
2721         * bindings/js/JSStorageCustom.cpp:
2722         (WebCore::JSStorage::getOwnPropertyNames):
2723         * bindings/scripts/CodeGeneratorJS.pm:
2724         * bridge/runtime_array.cpp:
2725         (JSC::RuntimeArray::getOwnPropertyNames):
2726         * bridge/runtime_array.h:
2727         * bridge/runtime_object.cpp:
2728         (JSC::RuntimeObjectImp::getPropertyNames):
2729         (JSC::RuntimeObjectImp::getOwnPropertyNames):
2730         * bridge/runtime_object.h:
2731
2732 2010-01-12  Brian Weinstein  <bweinstein@apple.com>
2733
2734         Reviewed by Dave Hyatt.
2735
2736         Safari shows an unneeded horizontal scrollbar on many websites.
2737         Fixes <rdar://6321041> and <http://webkit.org/b/33555>.
2738         
2739         If a div has no children, and its height or width are 0, we can ignore
2740         it in our calculation of lowest, rightmost, and leftmost positions. This
2741         calculation was causing horizontal scrollbars to be drawn when they weren't needed.
2742
2743         Test: fast/block/positioning/absolute-positioning-no-scrollbar.html
2744
2745         * rendering/RenderBlock.cpp:
2746         (WebCore::RenderBlock::lowestPosition): Added check for no children and width or height 0.
2747         (WebCore::RenderBlock::rightmostPosition): Ditto.
2748         (WebCore::RenderBlock::leftmostPosition): Ditto.
2749
2750 2010-01-12  Alexander Pavlov  <apavlov@chromium.org>
2751
2752         Reviewed by Timothy Hatcher.
2753
2754         Optimize WebInspector.TimelineGrid.prototype.updateDividers()
2755
2756         DOM element property access and modification are slow and should be done as lazily as possible.
2757         https://bugs.webkit.org/show_bug.cgi?id=33536
2758
2759         * inspector/front-end/TimelineGrid.js:
2760         (WebInspector.TimelineGrid.prototype.updateDividers):
2761         (WebInspector.TimelineGrid.prototype._setDividerAndBarLeft):
2762
2763 2010-01-12  Beth Dakin  <bdakin@apple.com>
2764
2765         Reviewed by Sam Weinig.
2766
2767         Fix for https://bugs.webkit.org/show_bug.cgi?id=33550 REGRESSION: -
2768         webkit-svg-shadow with opacity still over-clipped
2769
2770         We need to call inflateForShadow() on the repaintRect before we 
2771         clip for opacity or we will over-clip.
2772         * rendering/SVGRenderSupport.cpp:
2773         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
2774
2775 2010-01-12  Steve Falkenburg  <sfalken@apple.com>
2776
2777         Reviewed by Sam Weinig.
2778
2779         Update all-in-one derived sources for Geolocation.
2780
2781         * DerivedSources.cpp: Add JSCoordinates.cpp, JSGeolocation.cpp, JSGeoposition.cpp, JSPositionError.cpp
2782
2783 2010-01-12  Nate Chapin  <japhet@chromium.org>
2784
2785         Reviewed by Dimitri Glazkov.
2786
2787         Remove static const ints from V8CustomBinding.h
2788
2789         https://bugs.webkit.org/show_bug.cgi?id=33547
2790
2791         * bindings/scripts/CodeGeneratorV8.pm: Generate and use custom 
2792             internal field indices from lists of custom internal fields.
2793         * bindings/v8/NPV8Object.cpp:
2794         * bindings/v8/NPV8Object.h:
2795         * bindings/v8/V8Binding.cpp:
2796         * bindings/v8/V8DOMWindowShell.cpp:
2797         * bindings/v8/V8DOMWindowShell.h:
2798         * bindings/v8/V8DOMWrapper.cpp: Remove a bunch of now unnecessary
2799             manually calls to setInternalFieldCount().
2800         * bindings/v8/V8DOMWrapper.h:
2801         * bindings/v8/V8Index.h:
2802         * bindings/v8/V8IsolatedContext.cpp:
2803         * bindings/v8/V8IsolatedContext.h:
2804         * bindings/v8/V8NPObject.cpp:
2805         * bindings/v8/custom/V8AbstractWorkerCustom.cpp:
2806         * bindings/v8/custom/V8CustomBinding.h: Remove the static const ints.
2807         * bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
2808         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2809         * bindings/v8/custom/V8DocumentCustom.cpp:
2810         * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
2811         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2812         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2813         * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
2814         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
2815         * bindings/v8/custom/V8MessagePortCustom.cpp:
2816         * bindings/v8/custom/V8NodeCustom.cpp:
2817         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
2818         * bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
2819         * bindings/v8/custom/V8WebSocketCustom.cpp:
2820         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2821         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2822         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
2823
2824 2010-01-12  Darin Fisher  <darin@chromium.org>
2825
2826         Fixing chromium build bustage.
2827
2828         * bindings/v8/custom/V8PopStateEventCustom.cpp: Add V8Proxy.h include.
2829
2830 2010-01-12  Darin Fisher  <darin@chromium.org>
2831
2832         Reviewed by Dimitri Glazkov.
2833
2834         Add V8 bindings for PopStateEvent.
2835         https://bugs.webkit.org/show_bug.cgi?id=33546
2836         
2837         This is covered by existing tests for PopStateEvent.
2838
2839         * WebCore.gypi:
2840         * bindings/v8/DOMObjectsInclude.h:
2841         * bindings/v8/DerivedSourcesAllInOne.cpp:
2842         * bindings/v8/V8DOMWrapper.cpp:
2843         (WebCore::V8DOMWrapper::convertEventToV8Object):
2844         * bindings/v8/V8Index.cpp:
2845         * bindings/v8/V8Index.h:
2846         * bindings/v8/custom/V8PopStateEventCustom.cpp: Added.
2847         (WebCore::V8PopStateEvent::initPopStateEventCallback):
2848         (WebCore::V8PopStateEvent::stateAccessorGetter):
2849
2850 2010-01-12  Kelly Norton  <knorton@google.com>
2851
2852         Reviewed by Timothy Hatcher.
2853
2854         Adds source length to ParseHTMLRecords in the inspector timeline.
2855         https://bugs.webkit.org/show_bug.cgi?id=33548
2856
2857         Test: inspector/timeline-parse-html.html
2858
2859         * html/HTMLTokenizer.cpp:
2860         (WebCore::HTMLTokenizer::write):
2861         * inspector/InspectorTimelineAgent.cpp:
2862         (WebCore::InspectorTimelineAgent::willWriteHTML):
2863         * inspector/InspectorTimelineAgent.h:
2864         * inspector/TimelineRecordFactory.cpp:
2865         (WebCore::TimelineRecordFactory::createParseHTMLRecord):
2866         * inspector/TimelineRecordFactory.h:
2867
2868 2010-01-12  Jungshik Shin  <jshin@chromium.org>
2869
2870         Reviewed by Darin Adler
2871
2872         https://bugs.webkit.org/show_bug.cgi?id=31597
2873
2874         Make ICU's text breakiterator and string search use Chrome's UI
2875         language instead of 'en-US' or the OS UI language.
2876
2877         As long as the webkit layout tests are run in en-US locale, there'd be 
2878         no visible change.
2879
2880         * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
2881         (UILanguage):
2882         (WebCore::currentSearchLocaleID):
2883         (WebCore::currentTextBreakLocaleID):
2884
2885 2010-01-12  Beth Dakin  <bdakin@apple.com>
2886
2887         Rubber-stamped by Dave Hyatt.
2888
2889         This patch changes the name of -webkit-shadow to -webkit-svg-shadow 
2890         to avoid giving a custom property an overly-general name.
2891         <rdar://problem/7534590>
2892
2893         * css/CSSComputedStyleDeclaration.cpp:
2894         (WebCore::):
2895         * css/CSSParser.cpp:
2896         (WebCore::CSSParser::parseShadow):
2897         * css/SVGCSSComputedStyleDeclaration.cpp:
2898         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
2899         * css/SVGCSSParser.cpp:
2900         (WebCore::CSSParser::parseSVGValue):
2901         * css/SVGCSSPropertyNames.in:
2902         * css/SVGCSSStyleSelector.cpp:
2903         (WebCore::CSSStyleSelector::applySVGProperty):
2904
2905 2010-01-12  Peter Kasting  <pkasting@google.com>
2906
2907         Not reviewed, build fix.
2908
2909         * WebCore.vcproj/WebCore.vcproj:
2910
2911 2010-01-12  Nate Chapin  <japhet@chromium.org>
2912
2913         Reviewed by Dimitri Glazkov.
2914
2915         Add a null check in case of an event handler with invalid syntax.
2916
2917         Should make fast/js/invalid-syntax--for-function.html not crash in
2918         Chromium's test shell.
2919
2920         * bindings/v8/V8LazyEventListener.cpp:
2921         (WebCore::V8LazyEventListener::callListenerFunction): Check the listener object before using it.
2922
2923 2010-01-12  Peter Kasting  <pkasting@google.com>
2924
2925         Reviewed by Dimitri Glazkov.
2926
2927         Remove XBM support from the open-source image decoders.
2928         https://bugs.webkit.org/show_bug.cgi?id=27823
2929
2930         * GNUmakefile.am:
2931         * WebCore.gypi:
2932         * WebCore.vcproj/WebCore.vcproj:
2933         * WebCoreSources.bkl:
2934         * platform/image-decoders/ImageDecoder.cpp:
2935         (WebCore::ImageDecoder::create):
2936         * platform/image-decoders/xbm: Removed.
2937         * platform/image-decoders/xbm/XBMImageDecoder.cpp: Removed.
2938         * platform/image-decoders/xbm/XBMImageDecoder.h: Removed.
2939
2940 2010-01-12  Alexey Proskuryakov  <ap@apple.com>
2941
2942         Reviewed by Darin Adler.
2943
2944         https://bugs.webkit.org/show_bug.cgi?id=33540
2945         Make it possible to build in debug mode with assertions disabled
2946
2947         * dom/Element.cpp: (WebCore::Element::getURLAttribute):
2948         * dom/SelectElement.cpp: (WebCore::SelectElementData::checkListItems):
2949         * editing/TextIterator.cpp:
2950         * loader/Cache.cpp: (WebCore::Cache::removeFromLRUList):
2951         * rendering/RenderArena.cpp: (WebCore::RenderArena::free):
2952
2953 2010-01-12  Eric Carlson  <eric.carlson@apple.com>
2954
2955         Reviewed by Darin Adler and Simon Fraser.
2956
2957         rdar://problem/5684062
2958         https://bugs.webkit.org/show_bug.cgi?id=23094
2959         Flash of white when switching from poster image to video playback
2960         
2961         https://bugs.webkit.org/show_bug.cgi?id=23140
2962         <video> poster should scale like a video frame
2963
2964         * html/HTMLMediaElement.cpp:
2965         (WebCore::HTMLMediaElement::setReadyState): Only call updatePosterImage from one place
2966
2967         * html/HTMLVideoElement.cpp:
2968         (WebCore::HTMLVideoElement::HTMLVideoElement): m_shouldShowPosterImage -> m_shouldDisplayPoster.
2969         (WebCore::HTMLVideoElement::createRenderer): Always create a RenderVideo.
2970         (WebCore::HTMLVideoElement::attach): Call updatePosterImage before checking to see if we
2971             should display the poster image. renderer() is never a RenderImage, don't need to check.
2972             m_shouldShowPosterImage -> m_shouldDisplayPoster.
2973         (WebCore::HTMLVideoElement::detach): m_shouldShowPosterImage -> m_shouldDisplayPoster.
2974         (WebCore::HTMLVideoElement::parseMappedAttribute): Cache poster attribute when it is set since
2975             it is checked frequently. m_shouldShowPosterImage -> m_shouldDisplayPoster.
2976         (WebCore::HTMLVideoElement::updatePosterImage): Don't bother looking at the network state, 
2977             display the poster as long as the attribute is valid and the media engine says it hasn't
2978             rendered a video frame. m_shouldShowPosterImage -> m_shouldDisplayPoster.
2979         (WebCore::HTMLVideoElement::hasAvailableVideoFrame): New, ask the media engine if a video frame
2980             is available to render.
2981         * html/HTMLVideoElement.h:
2982         (WebCore::HTMLVideoElement::poster):
2983         (WebCore::HTMLVideoElement::shouldDisplayPoster):
2984
2985         * loader/ImageLoader.cpp:
2986         (WebCore::ImageLoader::updateRenderer): Call setCachedImage for render video too.
2987
2988         * manual-tests/video-player.html: Remove bit-rot from manual test so it works again.
2989
2990         * platform/graphics/MediaPlayer.cpp:
2991         (WebCore::MediaPlayer::hasAvailableVideoFrame): New, ask the media engine if a video frame
2992             is available to render.
2993
2994         * platform/graphics/MediaPlayer.h: Prototype for hasAvailableVideoFrame.
2995         * platform/graphics/MediaPlayerPrivate.h: Ditto.
2996
2997         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Declare hasAvailableVideoFrame, declare
2998             all bool variables to aid packing.
2999         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: 
3000         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_videoFrameHasDrawn. Cleanup
3001             floating point initializers to match coding guidelines.
3002         (WebCore::MediaPlayerPrivate::load): Initialize m_videoFrameHasDrawn.
3003         (WebCore::MediaPlayerPrivate::hasAvailableVideoFrame): New.
3004         (WebCore::MediaPlayerPrivate::repaint): Set m_videoFrameHasDrawn.
3005
3006         (WebCore::RenderImage::paintReplaced): Split part out into paint method.
3007         (WebCore::RenderImage::paint): New.
3008         * rendering/RenderImage.h: Declare paint. Make isWidthSpecified and isHeightSpecified protected
3009             instead of private so RenderVideo can use them.
3010
3011         * rendering/RenderMedia.cpp:
3012         (WebCore::RenderMedia::RenderMedia): Inherit from RenderImage, not RenderReplaced
3013         (WebCore::RenderMedia::destroy): Ditto.
3014         (WebCore::RenderMedia::styleDidChange): Ditto.
3015         (WebCore::RenderMedia::layout): Ditto.
3016         (WebCore::RenderMedia::lowestPosition): Ditto.
3017         (WebCore::RenderMedia::rightmostPosition): Ditto.
3018         (WebCore::RenderMedia::leftmostPosition): Ditto.
3019         * rendering/RenderMedia.h: Declare isImage and isRenderImage.
3020
3021         * rendering/RenderVideo.cpp:
3022         (WebCore::RenderVideo::intrinsicSizeChanged): New, call RenderVideo::intrinsicSizeChanged
3023             when displaying a poster so it is sized correctly.
3024         (WebCore::RenderVideo::imageChanged): Override so we can cache the image's intrisic size and
3025         use it when we also know the movie's intrinsic size but still need to draw the poster.
3026         (WebCore::RenderVideo::videoBox): Use the poster's intrinsic size when drawing the poster,
3027         use the movie's intrinsic size when drawing frames.
3028         (WebCore::RenderVideo::paintReplaced): Call RenderImage::paint when drawing the poster.
3029         (WebCore::RenderVideo::videoElement): New.
3030         (WebCore::RenderVideo::updatePlayer):
3031         * rendering/RenderVideo.h:
3032         (WebCore::RenderVideo::minimumReplacedHeight): Added.
3033
3034 2010-01-12  Tony Chang  <tony@chromium.org>
3035
3036         Reviewed by Maciej Stachowiak.
3037
3038         Fix a crash in Chromium when receiving multipart/x-mixed-replace data.
3039         If we stop a multipart load after ResourceLoader::didReceiveResponse
3040         but before ResourceLoader::didReceiveData, we have a NULL document
3041         loader because it has been moved back to the provisional state.  New
3042         loads that happen after this will dereference the NULL document
3043         loader.
3044
3045         Work around this by moving the provisional document loader back as
3046         the document loader when the request is stopped.
3047
3048         https://bugs.webkit.org/show_bug.cgi?id=31446
3049
3050         Test: http/tests/multipart/multipart-wait-before-boundary.html
3051
3052         * loader/FrameLoader.cpp:
3053         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
3054
3055 2010-01-12  Enrica Casucci  <enrica@apple.com>
3056
3057         Reviewed by Darin Adler.
3058
3059         WebKit returns incorrect match count when first string match is on an element with user-select-none style
3060         https://bugs.webkit.org/show_bug.cgi?id=33508
3061         <rdar://problem/7482143>
3062
3063         If we use VisiblePosition to calculate the start of the new search range,
3064         we skip all the nodes with user-select-none style, producing an incorrect
3065         match count.
3066         
3067         No new tests: there are no API's available to Javascript to verify the
3068         number of matches found.
3069
3070         * page/Frame.cpp:
3071         (WebCore::Frame::markAllMatchesForText): Changed to use the end of the previous
3072         result range as the start of the new search range.
3073
3074 2010-01-12  Mikhail Naganov  <mnaganov@chromium.org>
3075
3076         Reviewed by Timothy Hatcher.
3077
3078         Changed ".sidebar" style to allow v-scroll to appear in
3079         "Profiles" panel sidebar.
3080
3081         https://bugs.webkit.org/show_bug.cgi?id=33470
3082
3083         No new tests -- no code changed.
3084
3085         * inspector/front-end/inspector.css:
3086
3087 2010-01-12  Adam Roben  <aroben@apple.com>
3088
3089         Windows accelerated compositing build fix after r53110
3090
3091         * plugins/PluginWidget.h:
3092         (WebCore::PluginWidget::platformLayer): Define platformLayer() for
3093         non-Mac platforms that have accelerated compositing turned on. It
3094         would probably be better to make PluginWidget not be used at all on
3095         non-Mac platforms, but this fix is much simpler.
3096
3097 2010-01-12  Yury Semikhatsky  <yurys@chromium.org>
3098
3099         Reviewed by Pavel Feldman.
3100
3101         Support injection of inspector scripts into the inspected context.
3102
3103         https://bugs.webkit.org/show_bug.cgi?id=33523
3104
3105         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3106         (WebCore::WeakReferenceCallback):
3107         (WebCore::createInjectedScriptHostV8Wrapper):
3108         (WebCore::createInjectedScript):
3109         (WebCore::InjectedScriptHost::injectedScriptFor):
3110
3111 2010-01-12  Ben Murdoch  <benm@google.com>
3112
3113         Reviewed by Darin Adler.
3114
3115         Form Reset : Press Back Button and Reset , TextareaElemnt is not set to Default Value
3116         https://bugs.webkit.org/show_bug.cgi?id=31539
3117
3118         Added manual test: manual-tests/textarea-reset-default-value.html.
3119
3120         * html/HTMLTextAreaElement.cpp:
3121         (WebCore::HTMLTextAreaElement::restoreFormControlState): set the value, rather than default value of a text area when restoring its state. This allows resetting a form with a textarea to work correctly after its state has been restored.
3122         * manual-tests/resources/textarea-form-back-on-submit.html: Added.
3123         * manual-tests/textarea-reset-default-value.html: Added.
3124
3125 2010-01-12  Simon Hausmann  <simon.hausmann@nokia.com>
3126
3127         Reviewed by Holger Freyther.
3128
3129         [Qt] WebCore::Path allocates QPainterPath unnecessarily on the heap
3130         https://bugs.webkit.org/show_bug.cgi?id=33466
3131
3132         WebCore::Path is a pointer to a PlatformPath. In case of Qt that's a
3133         QPainterPath, which itself is a pointer to the elements (QVector).
3134         That creates unecessary allocations in PathQt.cpp.
3135
3136         Replaced the "PlatformPath* m_path;" with a PlatformPathPtr, which
3137         is a plain QPainterPath.
3138
3139         * platform/graphics/Path.h:
3140         (WebCore::Path::platformPath):
3141         * platform/graphics/qt/GraphicsContextQt.cpp:
3142         (WebCore::drawFilledShadowPath):
3143         (WebCore::GraphicsContext::fillPath):
3144         (WebCore::GraphicsContext::fillRoundedRect):
3145         (WebCore::GraphicsContext::addPath):
3146         (WebCore::GraphicsContext::clip):
3147         (WebCore::GraphicsContext::clipOut):
3148         * platform/graphics/qt/PathQt.cpp:
3149         (WebCore::Path::~Path):
3150         (WebCore::Path::operator=):
3151         (WebCore::Path::contains):
3152         (WebCore::Path::strokeContains):
3153         (WebCore::Path::translate):
3154         (WebCore::Path::boundingRect):
3155         (WebCore::Path::strokeBoundingRect):
3156         (WebCore::Path::moveTo):
3157         (WebCore::Path::addLineTo):
3158         (WebCore::Path::addQuadCurveTo):
3159         (WebCore::Path::addBezierCurveTo):
3160         (WebCore::Path::addArcTo):
3161         (WebCore::Path::closeSubpath):
3162         (WebCore::Path::addArc):
3163         (WebCore::Path::addRect):
3164         (WebCore::Path::addEllipse):
3165         (WebCore::Path::clear):
3166         (WebCore::Path::isEmpty):
3167         (WebCore::Path::debugString):
3168         (WebCore::Path::apply):
3169         (WebCore::Path::transform):
3170
3171 2010-01-12  Jakub Wieczorek  <faw217@gmail.com>
3172
3173         Reviewed by Adam Barth.
3174
3175         [Qt] XSL stylesheets can load documents from a different origin
3176
3177         https://bugs.webkit.org/show_bug.cgi?id=33423
3178
3179         * xml/XSLTProcessorQt.cpp:
3180         (WebCore::XSLTUriResolver::XSLTUriResolver):
3181         (WebCore::XSLTUriResolver::resolve):
3182         (WebCore::XSLTProcessor::transformToString):
3183
3184 2010-01-12  Joanmarie Diggs  <joanmarie.diggs@gmail.com>
3185
3186         Reviewed by Gustavo Noronha Silva.
3187
3188         https://bugs.webkit.org/show_bug.cgi?id=30883
3189         [Gtk] Implement AtkText for HTML elements which contain text
3190
3191         Tweak/correction: Eliminate a needless variable.
3192
3193         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3194         (webkit_accessible_text_get_caret_offset):
3195
3196 2010-01-12  Yury Semikhatsky  <yurys@chromium.org>
3197
3198         Reviewed by Geoffrey Garen.
3199
3200         Allow creating injected script for the inspected script state. The InjectedScript is
3201         cached on the inspected ExecState global object and will be garbage collected when the
3202         object is collected. Each InjectedScript object is assigned unique id.
3203
3204         https://bugs.webkit.org/show_bug.cgi?id=33469
3205
3206         * bindings/js/JSDOMGlobalObject.cpp:
3207         (WebCore::JSDOMGlobalObject::markChildren):
3208         (WebCore::JSDOMGlobalObject::setInjectedScript):
3209         (WebCore::JSDOMGlobalObject::injectedScript):
3210         * bindings/js/JSDOMGlobalObject.h: InjectedScript is cached on the global object as a
3211         field that is not visible from the inspected code. This InjectedScript should be alive as long as
3212         the global object is alive and should be accessible from Web Inspector's native code.
3213         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
3214         * bindings/js/JSInjectedScriptHostCustom.cpp:
3215         (WebCore::createInjectedScript): Creates injected script using the lexical global object of the
3216         inspected ScriptState. Reference to the object is stored on the global DOM object.
3217         (WebCore::InjectedScriptHost::injectedScriptFor):
3218         * inspector/InjectedScriptHost.cpp:
3219         (WebCore::InjectedScriptHost::InjectedScriptHost):
3220         (WebCore::InjectedScriptHost::injectedScriptForId):
3221         (WebCore::InjectedScriptHost::discardInjectedScripts): This method is expected to be called when the
3222         the InjectedScript are no longer needed. In particular, this should be called before frame navigation. 
3223         * inspector/InjectedScriptHost.h:
3224         (WebCore::InjectedScriptHost::setInjectedScriptSource): This allows to provide injected script source.
3225         The source may be loaded in a platform specific way.
3226
3227 2010-01-11  Darin Adler  <darin@apple.com>
3228
3229         Reviewed by Dan Bernstein.
3230
3231         Fix handling of unusual kana sequences in search
3232         https://bugs.webkit.org/show_bug.cgi?id=33506
3233
3234         * editing/TextIterator.cpp:
3235         (WebCore::composedVoicedSoundMark): Removed unnnecessary case for a
3236         non-kana-letter character. This function only works for kana letters.
3237         (WebCore::SearchBuffer::isBadMatch): Fixed voiced sound mark code to
3238         properly handle cases where one character has a shorter list of
3239         combining voiced sound marks than the other.
3240
3241 2010-01-11  Victor Wang  <victorw@chromium.org>
3242
3243         Reviewed by Dimitri Glazkov.
3244
3245         Clear m_acceptedIndexOnAbandon flag when user accepts the selected index.
3246
3247         https://bugs.webkit.org/show_bug.cgi?id=33499
3248
3249         TEST: manual-tests/chromium/onchange-reload-popup.html
3250         It should be covered by the above test. The current
3251         test shell does not support sending keyboard events to popup
3252         list so use manual test for it.
3253
3254         * platform/chromium/PopupMenuChromium.cpp:
3255         (WebCore::PopupListBox::acceptIndex):
3256
3257 2010-01-11  Gustavo Noronha Silva  <gns@gnome.org>
3258
3259         Reviewed by Eric Seidel.
3260
3261         [GTK] Debug bots crashing in plugins/iframe-shims.html
3262         https://bugs.webkit.org/show_bug.cgi?id=33472
3263
3264         Call computeOffsetInContainerNode() instead of
3265         offsetInContainerNode(), since we are not sure this is always
3266         parent-anchored.
3267
3268         plugins/iframe-shims.html no longer ASSERTS
3269
3270         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3271         (objectAndOffsetUnignored):
3272
3273 2010-01-11  Simon Fraser  <simon.fraser@apple.com>
3274
3275         Reviewed by Kevin Decker.
3276
3277         https://bugs.webkit.org/show_bug.cgi?id=33455
3278         Allows plugins to participate in accelerated compositing
3279
3280         For plugins using the CoreAnimation rendering mode, host their CALayers in the
3281         accelerated compositing layer tree.
3282         
3283         This requires making normal flow RenderLayers for RenderEmbeddedObjects when they represent
3284         a plugin using this mode.
3285         
3286         * WebCore.base.exp: Export Node::setNeedsStyleRecalc() for use by WebKit.
3287         * WebCore.xcodeproj/project.pbxproj: Re-order files for sorting.
3288
3289         * rendering/RenderEmbeddedObject.h:
3290         * rendering/RenderEmbeddedObject.cpp:
3291         (WebCore::RenderEmbeddedObject::requiresLayer): Make a layer if the plugin is using
3292         accelerated compositing mode.
3293         (WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing): Asks whether the plugin has
3294         a layer, via PluginWidget.
3295
3296         * rendering/RenderLayer.cpp:
3297         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
3298         (WebCore::RenderLayer::isSelfPaintingLayer):
3299         RenderEmbeddedObjects should be normal flow layers, and self-painting layers.
3300         
3301         * rendering/RenderLayerBacking.cpp:
3302         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3303         Parent the plugin's layer in the GraphicsLayer when updating the layer configuration.
3304         
3305         * rendering/RenderLayerCompositor.h:
3306         * rendering/RenderLayerCompositor.cpp:
3307         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
3308         (WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
3309         RenderEmbeddedObjects that allow accelerated compositing trip accelerated compositing mode
3310         for the page.
3311
3312 2010-01-11  Andreas Kling  <andreas.kling@nokia.com>
3313
3314         Reviewed by Darin Adler.
3315
3316         Fixed an uninitialized PluginView member (m_mode) which wasn't
3317         set when constructed with a null PluginPackage*
3318
3319         https://bugs.webkit.org/show_bug.cgi?id=33468
3320
3321         * plugins/PluginView.cpp:
3322         (WebCore::PluginView::PluginView):
3323
3324 2010-01-11  Dirk Schulze  <krit@webkit.org>
3325
3326         Reviewed by Nikolas Zimmermann.
3327
3328         SVG radialGradient example radial-gradient-with-outstanding-focalPoint.svg fails
3329         https://bugs.webkit.org/show_bug.cgi?id=32201
3330
3331         This patch moves every focalPoint that lies outside the circle defined by the radial
3332         gradients central point and its radius to stay inside this circle, as demanded by the
3333         SVG 1.1 specification.
3334         We use r * 0.99 as maximum radius for the aforementioned circle, when determining where
3335         the focalPoint is lying, to achieve compatibility with Firefox.
3336
3337         * svg/SVGRadialGradientElement.cpp:
3338         (WebCore::SVGRadialGradientElement::buildGradient):
3339
3340 2010-01-11  Alexey Proskuryakov  <ap@apple.com>
3341
3342         Reviewed by Oliver Hunt.
3343
3344         https://bugs.webkit.org/show_bug.cgi?id=33493
3345         Log redirect details to Network channel
3346
3347         * platform/network/mac/ResourceHandleMac.mm:
3348         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
3349         Log response code and Location header field value. Also, removed a redundant null check.
3350
3351 2010-01-11  Beth Dakin  <bdakin@apple.com>
3352
3353         Reviewed by Oliver Hunt.
3354
3355         Fix for https://bugs.webkit.org/show_bug.cgi?id=33491 REGRESSION: 
3356         Many SVG -webkit-shadow tests are currently failing (in the pixel 
3357         tests)
3358         -and-
3359         <rdar://problem/7501200>
3360
3361         The real fix here is to call inflateForShadow() on the repaintRect 
3362         in prepareToRenderSVGContent(). But in order to do that, I had to 
3363         move inflateForShadow() to a different class since functions in 
3364         SVGRenderBase cannot call each other. inflateForShadow() now exists 
3365         in SVGRenderStyle which I think makes some sense because a similar 
3366         function that returns a box shadow's extent exists on RenderStyle.
3367
3368         Now call inflateForShadow() through the SVGRenderStyle.
3369         * rendering/RenderForeignObject.cpp:
3370         (WebCore::RenderForeignObject::computeRectForRepaint):
3371         * rendering/RenderSVGImage.cpp:
3372         (WebCore::RenderSVGImage::computeRectForRepaint):
3373         * rendering/RenderSVGModelObject.cpp:
3374         (WebCore::RenderSVGModelObject::computeRectForRepaint):
3375         * rendering/RenderSVGRoot.cpp:
3376         (WebCore::RenderSVGRoot::computeRectForRepaint):
3377         * rendering/RenderSVGText.cpp:
3378         (WebCore::RenderSVGText::computeRectForRepaint):
3379
3380         No longer implement inflateForShadow() here.
3381         * rendering/SVGRenderSupport.cpp:
3382         (WebCore::SVGRenderBase::prepareToRenderSVGContent): Call new 
3383         inflateForShadow() through the SVGRenderStyle
3384         * rendering/SVGRenderSupport.h:
3385
3386         Implementation of inflateForShadow() now lives here.
3387         * rendering/style/SVGRenderStyle.cpp:
3388         (WebCore::getSVGShadowExtent):
3389         (WebCore::SVGRenderStyle::inflateForShadow):
3390         * rendering/style/SVGRenderStyle.h:
3391
3392 2010-01-11  Alexander Pavlov  <apavlov@chromium.org>
3393
3394         Reviewed by Pavel Feldman.
3395
3396         Rewrite relative URLs in the ElementsTreeOutline to make them navigable
3397
3398         Targets for "src" and "href" attribute values in the Elements outline tree
3399         are rewritten to full URLs whenever possible.
3400         https://bugs.webkit.org/show_bug.cgi?id=33024
3401
3402         Test: inspector/elements-panel-rewrite-href.html
3403
3404         * inspector/front-end/ElementsTreeOutline.js:
3405         (WebInspector.ElementsTreeElement.prototype._rewriteAttrHref):
3406         (WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
3407         * inspector/front-end/inspector.js:
3408
3409 2010-01-11  Nikolas Zimmermann  <nzimmermann@rim.com>
3410
3411         Not reviewed. Attempt to fix windows builds, by removing the no-longer existant JSSVGPointListCustom.cpp from JSBindingsAllInOne.cpp.
3412
3413         * bindings/js/JSBindingsAllInOne.cpp:
3414
3415 2010-01-11  Nikolas Zimmermann  <nzimmermann@rim.com>
3416
3417         Reviewed by Adam Roben & Dirk Schulze.
3418
3419         svg <text> fails to update when setting x/y
3420         https://bugs.webkit.org/show_bug.cgi?id=22384
3421
3422         Introduce JSSVGPODListCustom, refactoring the existing custom code for SVG POD type lists.
3423         (Currently SVGTransformList/SVGPointList was handled correctly, and SVGLengthList/SVGNumberList not)
3424
3425         Remove the need for custom JSSVG*List.cpp implementations, but instead tweak CodeGeneratorJS.pm,
3426         to call into the new JSSVGPODListCustom methods. Fixes dynamic updates of the SVGTextElement
3427         'rotate' & 'x'/'y' SVG DOM properties.
3428
3429         Tests: svg/custom/text-xy-updates-SVGList.xhtml
3430                svg/dynamic-updates/SVGTextElement-svgdom-rotate-prop.html
3431   
3432         * Android.jscbindings.mk: Remove old files from build, add the new header.
3433         * GNUmakefile.am: Ditto.
3434         * WebCore.gypi: Ditto.
3435         * WebCore.pro: Ditto.
3436         * WebCore.vcproj/WebCore.vcproj: Ditto.
3437         * WebCore.xcodeproj/project.pbxproj: Ditto.
3438         * bindings/js/JSSVGPODListCustom.h: Copied from bindings/js/JSSVGTransformListCustom.cpp. Refactored code to be sharable between all JSSVG*List classes.
3439         (WebCore::JSSVGPODListCustom::finishGetter):
3440         (WebCore::JSSVGPODListCustom::finishSetter):
3441         (WebCore::JSSVGPODListCustom::finishSetterReadOnlyResult):
3442         (WebCore::JSSVGPODListCustom::clear):
3443         (WebCore::JSSVGPODListCustom::initialize):
3444         (WebCore::JSSVGPODListCustom::getItem):
3445         (WebCore::JSSVGPODListCustom::insertItemBefore):
3446         (WebCore::JSSVGPODListCustom::replaceItem):
3447         (WebCore::JSSVGPODListCustom::removeItem):
3448         (WebCore::JSSVGPODListCustom::appendItem):
3449         * bindings/js/JSSVGPointListCustom.cpp: Removed.
3450         * bindings/js/JSSVGTransformListCustom.cpp: Removed.
3451         * bindings/scripts/CodeGeneratorJS.pm: Forward any SVGList call on POD list types to the new JSSVGPODListCustom.
3452         * svg/SVGNumberList.cpp: Make SVGNumberList a SVGPODList, instead of a SVGList, to make dynamic updates work.
3453         (WebCore::SVGNumberList::SVGNumberList):
3454         * svg/SVGNumberList.h:
3455         * svg/SVGPointList.idl: Remove JSCCustom markers everywhere.
3456         * svg/SVGTransformList.idl: Ditto.
3457
3458 2010-01-08  Enrica Casucci  <enrica@apple.com>
3459
3460         Reviewed by Darin Adler.
3461
3462         Cannot focus on an empty editable span in a non editable div.
3463         https://bugs.webkit.org/show_bug.cgi?id=33411
3464         <rdar://problem/5982901>
3465
3466         We now allow to set the focus inside an empty inline element if it is the only
3467         editable element inside non-editable content.
3468
3469         * dom/Position.cpp:
3470         (WebCore::Position::isCandidate): Extended to allow positions in inline elements when
3471         at the border between editable and non editable content.
3472         (WebCore::Position::getInlineBoxAndOffset): Modified to be able to calculate the caret
3473         position inside an empty inline.
3474         * editing/DeleteSelectionCommand.cpp:
3475         (WebCore::DeleteSelectionCommand::mergeParagraphs): When merging, we don't always find a break
3476         element, since now an editable inline is a VisiblePosition if it is at editability boundary.
3477         * editing/VisibleSelection.h: Updated comment on the use of Position member variables
3478         instead of VisiblePosition.
3479         * page/Frame.cpp:
3480         (WebCore::Frame::selectionLayoutChanged): Changed to avoid multiple calls to upstream and
3481         downstream on the same position.
3482
3483 2010-01-06  Dimitri Glazkov  <dglazkov@chromium.org>
3484
3485         Reviewed by Nikolas Zimmermann.
3486
3487         [V8] IsRefPtrType() in CodeGeneratorV8.pm increases maintenance burden.
3488         https://bugs.webkit.org/show_bug.cgi?id=32994
3489
3490         Refactoring, covered by existings tests.
3491
3492         * bindings/scripts/CodeGeneratorV8.pm: Reversed testing for ref-counted objects,
3493             since there's a much smaller (and more stable) set of non-ref-counted ones.
3494
3495 2010-01-06  Kelly Norton  <knorton@google.com>
3496
3497         Reviewed by Pavel Feldman.
3498
3499         Fixes the fact that timeline panel results are skewed by the use of DOM mutation events.
3500         https://bugs.webkit.org/show_bug.cgi?id=32846
3501
3502         Instead of using DOM mutation events in InspectorDOMAgent, InspectorController is now called
3503         directly when the DOM is mutated.
3504
3505         * dom/ContainerNode.cpp: Calls InspectorController directly when child nodes are added/removed.
3506         (WebCore::dispatchChildInsertionEvents):
3507         (WebCore::dispatchChildRemovalEvents):
3508         * dom/Element.cpp: Calls InspectorController directly when attributes are added/removed.
3509         (WebCore::Element::dispatchAttrRemovalEvent):
3510         (WebCore::Element::dispatchAttrAdditionEvent):
3511         * inspector/InspectorController.cpp:
3512         (WebCore::InspectorController::didInsertDOMNode):
3513         (WebCore::InspectorController::didRemoveDOMNode):
3514         (WebCore::InspectorController::didModifyDOMAttr):
3515         * inspector/InspectorController.h:
3516         * inspector/InspectorDOMAgent.cpp:
3517         (WebCore::InspectorDOMAgent::startListening):
3518         (WebCore::InspectorDOMAgent::stopListening):
3519         (WebCore::InspectorDOMAgent::handleEvent):
3520         (WebCore::InspectorDOMAgent::didInsertDOMNode):
3521         (WebCore::InspectorDOMAgent::didRemoveDOMNode):
3522         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
3523         * inspector/InspectorDOMAgent.h:
3524
3525 2010-01-10  Darin Adler  <darin@apple.com>
3526
3527         Reviewed by Alexey Proskuryakov.
3528
3529         REGRESSION: Japanese text search ignores small vs. large and voicing mark differences
3530         https://bugs.webkit.org/show_bug.cgi?id=30437
3531         rdar://problem/7214058
3532
3533         Test: fast/text/find-kana.html
3534
3535         * editing/TextIterator.cpp:
3536         (WebCore::isKanaLetter): Added.
3537         (WebCore::isSmallKanaLetter): Added.
3538         (WebCore::composedVoicedSoundMark): Added.
3539         (WebCore::isCombiningVoicedSoundMark): Added.
3540         (WebCore::containsKanaLetters): Added.
3541         (WebCore::normalizeCharacters): Added.
3542         (WebCore::SearchBuffer::SearchBuffer): Initialize the data members
3543         m_targetRequiresKanaWorkaround and m_normalizedTarget.
3544         (WebCore::SearchBuffer::isBadMatch): Added. Checks for matches that
3545         ICU's default collation considers correct, but we consider incorrect.
3546         (WebCore::SearchBuffer::search): Added code to call isBadMatch and
3547         move to the next match with usearch_next if the result is true.
3548
3549 2010-01-11  Joanmarie Diggs  <joanmarie.diggs@gmail.com>
3550
3551         Reviewed by Xan Lopez.
3552
3553         https://bugs.webkit.org/show_bug.cgi?id=30883
3554         [Gtk] Implement AtkText for HTML elements which contain text
3555
3556         * accessibility/gtk/AccessibilityObjectWrapperAtk.h
3557         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3558         (objectAndOffsetUnignored):
3559         (webkit_accessible_text_get_caret_offset):
3560         * editing/gtk/SelectionControllerGtk.cpp:
3561         (Se